http://blog.csdn.net/jyk/archive/2006/08/15/1067300.aspx http://blog.csdn.net/jyk/archive/2006/08/15/1067320.aspx