http://www.cnblogs.com/lovecherry/archive/2006/01/19/320151.html
http://blog.csdn.net/weilian000/archive/2007/02/20/1512075.aspx