http://blog.csdn.net/bluishglc/article/details/9972951;
http://www.cnblogs.com/JeffChen/archive/2008/01/15/1039708.html;