http://www.5dmail.net/html/2005-10-17/20051017181702.htm
http://www.cnblogs.com/glaivelee/archive/2009/10/07/1578737.html