http://www.cnblogs.com/zhenyulu/category/6930.html?Show=All http://www.cnblogs.com/Terrylee/archive/2006/07/17/334911.html