主要参照:
http://blog.csdn.net/wangyifei0822/archive/2008/04/23/2316857.aspx
及http://blog.csdn.net/lgdli_coder/archive/2009/11/24/4855749.aspx
及http://hi.baidu.com/219977/blog/item/87fc79192087534343a9ad91.html