http://blog.csdn.net/opparts/archive/2005/02/02/278178.aspx http://www.cnblogs.com/zhumk/archive/2006/01/16/318272.html