<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_闲云野鹤</title><subtitle type="text">为天地立心，为生民立命，为往圣继绝学，为万世开太平</subtitle><id>http://feed.cnblogs.com/blog/u/4744/rss</id><updated>2012-04-25T01:15:33Z</updated><author><name>Enli</name><uri>http://www.cnblogs.com/enli/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/enli/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/4744/rss"/><entry><id>http://www.cnblogs.com/enli/archive/2012/03/19/2406495.html</id><title type="text">Wininet请求包装类简稿</title><summary type="text">unituWnWinetClass;interfaceusesWindows,Messages,SysUtils,Classes,WinInet;constCONST_AGENT='WininetbyEnli';BUFFER_SIZE=4096;type//定义http的请求调用方式//TWinWrapVerbs=(wwvGET,wwvPOST,wwvMPOST);//定义协议版本TWinHttpVersion=(wwvHttp1,wwvHttp11);//错误类型，没有错误为wwecNilTWinInetErrorCauses=(wwecNil,//0wwecAttemptC</summary><published>2012-03-19T10:29:00Z</published><updated>2012-03-19T10:29:00Z</updated><author><name>Enli</name><uri>http://www.cnblogs.com/enli/</uri></author><link rel="alternate" href="http://www.cnblogs.com/enli/archive/2012/03/19/2406495.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/enli/archive/2012/03/19/2406495.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #0000ff"&gt;unit&lt;/span&gt;&amp;nbsp;uWnWinetClass;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;interface&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;uses&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Windows,Messages,SysUtils,Classes,WinInet;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;CONST_AGENT&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Wininet&amp;nbsp;by&amp;nbsp;Enli&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;BUFFER_SIZE&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080"&gt;4096&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;type&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;//定义http的请求调用方式&lt;br /&gt;&amp;nbsp;&amp;nbsp;//TWinWrapVerbs&amp;nbsp;=&amp;nbsp;(wwvGET,&amp;nbsp;wwvPOST,&amp;nbsp;wwvMPOST);&lt;br /&gt;&amp;nbsp;&amp;nbsp;//定义协议版本&lt;br /&gt;&amp;nbsp;&amp;nbsp;TWinHttpVersion&amp;nbsp;=&amp;nbsp;(wwvHttp1,wwvHttp11);&lt;br /&gt;&amp;nbsp;&amp;nbsp;//错误类型，没有错误为wwecNil&lt;br /&gt;&amp;nbsp;&amp;nbsp;TWinInetErrorCauses&amp;nbsp;=&amp;nbsp;(wwecNil,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wwecAttemptConnect,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wwecOpen,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&lt;span style="color: #800080"&gt;2&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wwecConnect,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&lt;span style="color: #800080"&gt;3&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wwecOpenRequest,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&lt;span style="color: #800080"&gt;4&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wwecConfigureRequest,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&lt;span style="color: #800080"&gt;5&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wwecExecRequest,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&lt;span style="color: #800080"&gt;6&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wwecEndRequest,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&lt;span style="color: #800080"&gt;7&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wwecTimeOut,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&lt;span style="color: #800080"&gt;8&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wwecUPD,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&lt;span style="color: #800080"&gt;9&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wwecAbort,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&lt;span style="color: #800080"&gt;10&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wwecStatus,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&lt;span style="color: #800080"&gt;11&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wwecHeader,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&lt;span style="color: #800080"&gt;12&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wwecContentLength,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&lt;span style="color: #800080"&gt;13&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wwecContentType,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&lt;span style="color: #800080"&gt;14&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wwecReadFile,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&lt;span style="color: #800080"&gt;15&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wwecWriteFile);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&lt;span style="color: #800080"&gt;16&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;TProxyInfo&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;record&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FProxyType&amp;nbsp;:&amp;nbsp;Integer;&amp;nbsp;//-&lt;span style="color: #800080"&gt;1&lt;/span&gt;:&amp;nbsp;preConfig&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;:&amp;nbsp;noproxy&amp;nbsp;&lt;span style="color: #800080"&gt;1&lt;/span&gt;:&amp;nbsp;sock4&amp;nbsp;&lt;span style="color: #800080"&gt;2&lt;/span&gt;:&amp;nbsp;sock5&amp;nbsp;&lt;span style="color: #800080"&gt;3&lt;/span&gt;:&amp;nbsp;http&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FProxyServer&amp;nbsp;:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FProxyPort&amp;nbsp;:&amp;nbsp;Integer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FProxyUserName&amp;nbsp;:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FProxyUserPass&amp;nbsp;:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;TWnWinetClass&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;private&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FNet:&amp;nbsp;HINTERNET;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FRequest:&amp;nbsp;HINTERNET;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FSession:&amp;nbsp;HINTERNET;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FRequestStream:&amp;nbsp;TMemoryStream;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FResponseStream:&amp;nbsp;TMemoryStream;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FVerb:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FAbort:&amp;nbsp;Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FWininetStateChanged:&amp;nbsp;Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FTimeOut:&amp;nbsp;Integer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FSecure:&amp;nbsp;Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FProxyInfo:&amp;nbsp;TProxyInfo;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FServerPort:&amp;nbsp;Integer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FEncodeUrl:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FErrInfo:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FServerPass:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FServerUser:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FServerName:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FProxy&amp;nbsp;:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FHttpHeader:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FData:&amp;nbsp;&lt;span style="color: #0000ff"&gt;array&lt;/span&gt;&amp;nbsp;[&lt;span style="color: #800080"&gt;0&lt;/span&gt;&amp;nbsp;..&amp;nbsp;BUFFER_SIZE]&amp;nbsp;&lt;span style="color: #0000ff"&gt;of&lt;/span&gt;&amp;nbsp;Char;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FErrorCause:&amp;nbsp;TWinInetErrorCauses;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FHttpVersion:&amp;nbsp;TWinHttpVersion;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FStatus:&amp;nbsp;integer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FContentType:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FContentLength:&amp;nbsp;Int64;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FTotal:&amp;nbsp;Int64;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FResponseHeader:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&amp;nbsp;SetAbort(&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&amp;nbsp;Value:&amp;nbsp;Boolean);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&amp;nbsp;FixServerInfo;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&amp;nbsp;FixProxyServerInfo;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;OpenConnection:&amp;nbsp;Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;OpenRequest:&amp;nbsp;Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;ConfigureRequest:&amp;nbsp;Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;PerformMethod:&amp;nbsp;Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;DetectProxyServer:&amp;nbsp;DWORD;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;PortToUse(APort:&amp;nbsp;Integer):&amp;nbsp;Integer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;FetchHeader(AFlags:&amp;nbsp;integer):&amp;nbsp;Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;ReadResponse:&amp;nbsp;Boolean;&amp;nbsp;//&amp;nbsp;读取接受数据&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;ReadResponseHeader:&amp;nbsp;Boolean;&amp;nbsp;&amp;nbsp;//获取返回数据包头&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;FixContentLength:&amp;nbsp;Boolean;&amp;nbsp;//&amp;nbsp;获取接受数据的大小&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;FixContentType:&amp;nbsp;Boolean;&amp;nbsp;//&amp;nbsp;获取接受数据的类型&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;FixWinINetError(AError:&amp;nbsp;integer):&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;GetHttpVersion:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&amp;nbsp;AssignError(AError:&amp;nbsp;TWinInetErrorCauses);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;constructor&lt;/span&gt;&amp;nbsp;Create;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;destructor&lt;/span&gt;&amp;nbsp;Destroy;&amp;nbsp;&lt;span style="color: #0000ff"&gt;override&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;property&lt;/span&gt;&amp;nbsp;Abort:&amp;nbsp;Boolean&amp;nbsp;&lt;span style="color: #0000ff"&gt;read&lt;/span&gt;&amp;nbsp;FAbort&amp;nbsp;&lt;span style="color: #0000ff"&gt;write&lt;/span&gt;&amp;nbsp;SetAbort;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;property&lt;/span&gt;&amp;nbsp;Response:&amp;nbsp;TMemoryStream&amp;nbsp;&lt;span style="color: #0000ff"&gt;read&lt;/span&gt;&amp;nbsp;FResponseStream;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;property&lt;/span&gt;&amp;nbsp;HttpVersion:&amp;nbsp;TWinHttpVersion&amp;nbsp;&lt;span style="color: #0000ff"&gt;read&lt;/span&gt;&amp;nbsp;FHttpVersion&amp;nbsp;&lt;span style="color: #0000ff"&gt;write&lt;/span&gt;&amp;nbsp;FHttpVersion;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;property&lt;/span&gt;&amp;nbsp;ServerName:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;read&lt;/span&gt;&amp;nbsp;FServerName&amp;nbsp;&lt;span style="color: #0000ff"&gt;write&lt;/span&gt;&amp;nbsp;FServerName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;property&lt;/span&gt;&amp;nbsp;ServerPort:&amp;nbsp;Integer&amp;nbsp;&lt;span style="color: #0000ff"&gt;read&lt;/span&gt;&amp;nbsp;FServerPort&amp;nbsp;&lt;span style="color: #0000ff"&gt;write&lt;/span&gt;&amp;nbsp;FServerPort;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;property&lt;/span&gt;&amp;nbsp;ServerUser:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;read&lt;/span&gt;&amp;nbsp;FServerUser&amp;nbsp;&lt;span style="color: #0000ff"&gt;write&lt;/span&gt;&amp;nbsp;FServerUser;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;property&lt;/span&gt;&amp;nbsp;ServerPass:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;read&lt;/span&gt;&amp;nbsp;FServerPass&amp;nbsp;&lt;span style="color: #0000ff"&gt;write&lt;/span&gt;&amp;nbsp;FServerPass;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;property&lt;/span&gt;&amp;nbsp;ProxyInfo:&amp;nbsp;TProxyInfo&amp;nbsp;&lt;span style="color: #0000ff"&gt;read&lt;/span&gt;&amp;nbsp;FProxyInfo&amp;nbsp;&lt;span style="color: #0000ff"&gt;write&lt;/span&gt;&amp;nbsp;FProxyInfo;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;property&lt;/span&gt;&amp;nbsp;HttpHeader:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;read&lt;/span&gt;&amp;nbsp;FHttpHeader&amp;nbsp;&lt;span style="color: #0000ff"&gt;write&lt;/span&gt;&amp;nbsp;FHttpHeader;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;property&lt;/span&gt;&amp;nbsp;ResponseHeader:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;read&lt;/span&gt;&amp;nbsp;FResponseHeader&amp;nbsp;&lt;span style="color: #0000ff"&gt;write&lt;/span&gt;&amp;nbsp;FResponseHeader;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;property&lt;/span&gt;&amp;nbsp;Status:&amp;nbsp;Integer&amp;nbsp;&lt;span style="color: #0000ff"&gt;read&lt;/span&gt;&amp;nbsp;FStatus;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;property&lt;/span&gt;&amp;nbsp;ContentLength:&amp;nbsp;Int64&amp;nbsp;&lt;span style="color: #0000ff"&gt;read&lt;/span&gt;&amp;nbsp;FContentLength;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;property&lt;/span&gt;&amp;nbsp;Total:&amp;nbsp;Int64&amp;nbsp;&lt;span style="color: #0000ff"&gt;read&lt;/span&gt;&amp;nbsp;FTotal;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;property&lt;/span&gt;&amp;nbsp;ErrInfo:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;read&lt;/span&gt;&amp;nbsp;FErrInfo;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;property&lt;/span&gt;&amp;nbsp;ErrorCause:&amp;nbsp;TWinInetErrorCauses&amp;nbsp;&lt;span style="color: #0000ff"&gt;read&lt;/span&gt;&amp;nbsp;FErrorCause;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&amp;nbsp;CleanUp(isAll:&amp;nbsp;Boolean);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;HttpGet(isUrl:&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;iiTimeout:Integer;ASecure:Boolean&amp;nbsp;=&amp;nbsp;False):boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;HttpPost(isUrl:&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;AStream:TMemoryStream;iiTimeout:Integer;ASecure:Boolean&amp;nbsp;=&amp;nbsp;False):boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;StreamToHex(AStream:&amp;nbsp;TMemoryStream):&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&amp;nbsp;HexToStream(AStream:&amp;nbsp;TMemoryStream;AHex:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;implementation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;{&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;TWnWinetClass&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&amp;nbsp;TWnWinetClass.AssignError(AError:&amp;nbsp;TWinInetErrorCauses);&lt;br /&gt;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;I,&amp;nbsp;H:&amp;nbsp;Integer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LTemp:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LR:&amp;nbsp;Cardinal;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FErrorCause&amp;nbsp;:=&amp;nbsp;AError;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;Length(FErrInfo)&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LR&amp;nbsp;:=&amp;nbsp;GetLastError;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(LR&amp;nbsp;&amp;lt;&amp;nbsp;&lt;span style="color: #800080"&gt;12000&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000ff"&gt;or&lt;/span&gt;&amp;nbsp;(LR&amp;nbsp;&amp;lt;&amp;nbsp;&lt;span style="color: #800080"&gt;12175&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;H&amp;nbsp;:=&amp;nbsp;GetModuleHandle(&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;wininet.dll&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetLength(LTemp,&amp;nbsp;&lt;span style="color: #800080"&gt;256&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;I&amp;nbsp;:=&amp;nbsp;FormatMessage(FORMAT_MESSAGE_FROM_HMODULE,&amp;nbsp;Pointer(H),&amp;nbsp;LR,&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PChar(LTemp),&amp;nbsp;&lt;span style="color: #800080"&gt;256&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetLength(LTemp,&amp;nbsp;I);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FErrInfo&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Error&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;+IntTostr(LR)+&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;:&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;+LTemp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FErrInfo&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Error&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;+IntTostr(LR)+&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;:&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;+SysErrorMessage(GetLastError);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&amp;nbsp;TWnWinetClass.CleanUp(isAll:&amp;nbsp;Boolean);&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;isAll&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;Assigned(FRequest)&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InternetCloseHandle(FRequest);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FRequest&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;Assigned(FSession)&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InternetCloseHandle(FSession);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FSession&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;Assigned(FNet)&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InternetCloseHandle(FNet);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FNet&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;//FResponse.Clear;&lt;br /&gt;&amp;nbsp;&amp;nbsp;SetLength(FProxy,&lt;span style="color: #800080"&gt;0&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;TWnWinetClass.ConfigureRequest:&amp;nbsp;Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;SetUPD(AOption:&amp;nbsp;DWORD;&amp;nbsp;AUPD:&amp;nbsp;PChar):&amp;nbsp;Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;(Length(AUPD)&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000ff"&gt;or&lt;/span&gt;&amp;nbsp;InternetSetOption&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(FRequest,&amp;nbsp;AOption,&amp;nbsp;AUPD,&amp;nbsp;Length(AUPD));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;False;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;FAbort&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;//&amp;nbsp;设置HTTP头&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000"&gt;{&lt;/span&gt;&lt;span style="color: #008000"&gt;if&amp;nbsp;FFileSize&amp;nbsp;&amp;gt;&amp;nbsp;0&amp;nbsp;then&lt;br /&gt;&amp;nbsp;&amp;nbsp;begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;Length(FHttpHeader)&amp;nbsp;&amp;gt;&amp;nbsp;0&amp;nbsp;then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FHttpHeader&amp;nbsp;:=&amp;nbsp;FHttpHeader&amp;nbsp;+&amp;nbsp;#13#10'Range:&amp;nbsp;bytes='&amp;nbsp;+&amp;nbsp;IntTostr(FFileSize)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;+&amp;nbsp;'-'#13#10&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FHttpHeader&amp;nbsp;:=&amp;nbsp;'Range:&amp;nbsp;bytes='&amp;nbsp;+&amp;nbsp;IntTostr(FFileSize)&amp;nbsp;+&amp;nbsp;'-'#13#10;&lt;br /&gt;&amp;nbsp;&amp;nbsp;end;&lt;/span&gt;&lt;span style="color: #008000"&gt;}&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;Length(FHttpHeader)&amp;nbsp;&amp;gt;&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;HttpAddRequestHeaders(FRequest,&amp;nbsp;PWideChar(FHttpHeader),&amp;nbsp;Cardinal&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(-&lt;span style="color: #800080"&gt;1&lt;/span&gt;),&amp;nbsp;HTTP_ADDREQ_FLAG_ADD&amp;nbsp;&lt;span style="color: #0000ff"&gt;or&lt;/span&gt;&amp;nbsp;HTTP_ADDREQ_FLAG_REPLACE);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;not&lt;/span&gt;&amp;nbsp;Result&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AssignError(wwecConfigureRequest);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;//&amp;nbsp;设置超时&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(FTimeOut&amp;nbsp;&amp;lt;&amp;nbsp;&lt;span style="color: #800080"&gt;1&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000ff"&gt;or&lt;/span&gt;&amp;nbsp;(FTimeOut&amp;nbsp;&amp;gt;&amp;nbsp;&lt;span style="color: #800080"&gt;999&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FTimeOut&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800080"&gt;30&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FTimeOut&amp;nbsp;:=&amp;nbsp;FTimeOut&amp;nbsp;*&amp;nbsp;&lt;span style="color: #800080"&gt;1000&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;InternetSetOption(FNet,&amp;nbsp;INTERNET_OPTION_CONNECT_TIMEOUT,&amp;nbsp;@FTimeOut,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SizeOf(integer))&amp;nbsp;&lt;span style="color: #0000ff"&gt;and&lt;/span&gt;&amp;nbsp;InternetSetOption&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(FNet,&amp;nbsp;INTERNET_OPTION_RECEIVE_TIMEOUT,&amp;nbsp;@FTimeOut,&amp;nbsp;SizeOf(integer))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;and&lt;/span&gt;&amp;nbsp;InternetSetOption(FNet,&amp;nbsp;INTERNET_OPTION_SEND_TIMEOUT,&amp;nbsp;@FTimeOut,&amp;nbsp;SizeOf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(integer));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;not&lt;/span&gt;(Result)&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AssignError(wwecTimeOut);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;//&amp;nbsp;设置代理用户密码，访问用户密码&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;SetUPD(INTERNET_OPTION_PROXY_USERNAME,&amp;nbsp;PChar(FProxyInfo.FProxyUserName))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;and&lt;/span&gt;&amp;nbsp;SetUPD(INTERNET_OPTION_PROXY_PASSWORD,&amp;nbsp;PChar(FProxyInfo.FProxyUserPass)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&amp;nbsp;&lt;span style="color: #0000ff"&gt;and&lt;/span&gt;&amp;nbsp;SetUPD(INTERNET_OPTION_USERNAME,&amp;nbsp;PChar(FServerPass))&amp;nbsp;&lt;span style="color: #0000ff"&gt;and&lt;/span&gt;&amp;nbsp;SetUPD&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(INTERNET_OPTION_PASSWORD,&amp;nbsp;PChar(FServerUser))&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AssignError(wwecUPD);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;constructor&lt;/span&gt;&amp;nbsp;TWnWinetClass.Create;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;inherited&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FResponseStream&amp;nbsp;:=&amp;nbsp;TMemoryStream.Create;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FRequest&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FSession&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FRequestStream&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FNet&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FAbort&amp;nbsp;:=&amp;nbsp;False;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FSecure&amp;nbsp;:=&amp;nbsp;False;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FWininetStateChanged&amp;nbsp;:=&amp;nbsp;False;&lt;br /&gt;&amp;nbsp;&amp;nbsp;SetLength(FEncodeUrl,&lt;span style="color: #800080"&gt;0&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;SetLength(FErrInfo,&lt;span style="color: #800080"&gt;0&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;SetLength(FServerUser,&lt;span style="color: #800080"&gt;0&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;SetLength(FServerPass,&lt;span style="color: #800080"&gt;0&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;SetLength(FProxy,&lt;span style="color: #800080"&gt;0&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;FVerb&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;GET&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;destructor&lt;/span&gt;&amp;nbsp;TWnWinetClass.Destroy;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FResponseStream.Free;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;inherited&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;TWnWinetClass.DetectProxyServer:&amp;nbsp;DWORD;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//-&lt;span style="color: #800080"&gt;1&lt;/span&gt;:&amp;nbsp;preConfig&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;:&amp;nbsp;noproxy&amp;nbsp;&lt;span style="color: #800080"&gt;1&lt;/span&gt;:&amp;nbsp;sock4&amp;nbsp;&lt;span style="color: #800080"&gt;2&lt;/span&gt;:&amp;nbsp;sock5&amp;nbsp;&lt;span style="color: #800080"&gt;3&lt;/span&gt;:&amp;nbsp;http&lt;br /&gt;&amp;nbsp;&amp;nbsp;//Result:&lt;br /&gt;&amp;nbsp;&amp;nbsp;//INTERNET_OPEN_TYPE_PRECONFIG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;//INTERNET_OPEN_TYPE_DIRECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;//INTERNET_OPEN_TYPE_PROXY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080"&gt;3&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;//INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY&amp;nbsp;&lt;span style="color: #800080"&gt;4&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;with&lt;/span&gt;&amp;nbsp;FProxyInfo&amp;nbsp;&lt;span style="color: #0000ff"&gt;do&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;case&lt;/span&gt;&amp;nbsp;(FProxyType-&lt;span style="color: #800080"&gt;1&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000ff"&gt;of&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;:&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;INTERNET_OPEN_TYPE_DIRECT;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080"&gt;1&lt;/span&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;INTERNET_OPEN_TYPE_PROXY;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FProxy&amp;nbsp;:=&amp;nbsp;Format(&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;socks=%s:%s&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;,[FProxyServer,Inttostr(FProxyPort)]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080"&gt;2&lt;/span&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;INTERNET_OPEN_TYPE_PROXY;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FProxy&amp;nbsp;:=&amp;nbsp;Format(&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;socks5=%s:%s&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;,[FProxyServer,Inttostr(FProxyPort)]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080"&gt;3&lt;/span&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;INTERNET_OPEN_TYPE_PROXY;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FProxy&amp;nbsp;:=&amp;nbsp;Format(&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;%s:%s&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;,[FProxyServer,Inttostr(FProxyPort)]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;INTERNET_OPEN_TYPE_PRECONFIG;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;TWnWinetClass.FetchHeader(AFlags:&amp;nbsp;integer):&amp;nbsp;Boolean;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;BufLen,&amp;nbsp;Index:&amp;nbsp;DWORD;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;False;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;FAbort&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Index&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;BufLen&amp;nbsp;:=&amp;nbsp;BUFFER_SIZE;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FillChar(FData,&amp;nbsp;BufLen,&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;HttpQueryInfo(FRequest,&amp;nbsp;AFlags,&amp;nbsp;@FData,&amp;nbsp;BufLen,&amp;nbsp;Index);&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;TWnWinetClass.FixContentLength:&amp;nbsp;Boolean;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LTemp:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;False;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;FAbort&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;FetchHeader(HTTP_QUERY_CONTENT_LENGTH);&lt;br /&gt;&amp;nbsp;&amp;nbsp;LTemp&amp;nbsp;:=&amp;nbsp;FData;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;Result&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FContentLength&amp;nbsp;:=&amp;nbsp;StrToInt64Def(LTemp,&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AssignError(wwecContentLength);&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;TWnWinetClass.FixContentType:&amp;nbsp;Boolean;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;False;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;FAbort&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;FetchHeader(HTTP_QUERY_CONTENT_TYPE);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;Result&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FContentType&amp;nbsp;:=&amp;nbsp;FData&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AssignError(wwecContentType);&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&amp;nbsp;TWnWinetClass.FixProxyServerInfo;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;ls1ServerName,&amp;nbsp;lsPort:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;liLoc:&amp;nbsp;Integer;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;ls1ServerName&amp;nbsp;:=&amp;nbsp;LowerCase(FServerName);&lt;br /&gt;&amp;nbsp;&amp;nbsp;liLoc&amp;nbsp;:=&amp;nbsp;Pos(&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;:&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;,&amp;nbsp;ls1ServerName);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;liLoc&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;lsPort&amp;nbsp;:=&amp;nbsp;Copy(ls1ServerName,&amp;nbsp;liLoc&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080"&gt;1&lt;/span&gt;,&amp;nbsp;Length(ls1ServerName)&amp;nbsp;-&amp;nbsp;liLoc);&lt;br /&gt;&amp;nbsp;&amp;nbsp;FServerName&amp;nbsp;:=&amp;nbsp;PChar(Copy(ls1ServerName,&amp;nbsp;&lt;span style="color: #800080"&gt;1&lt;/span&gt;,&amp;nbsp;liLoc&amp;nbsp;-&amp;nbsp;&lt;span style="color: #800080"&gt;1&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;FServerPort&amp;nbsp;:=&amp;nbsp;StrToIntDef(lsPort,FServerPort);&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&amp;nbsp;TWnWinetClass.FixServerInfo;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;ls1ServerName,&amp;nbsp;lsPort:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;liLoc:&amp;nbsp;Integer;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;FProxyInfo.FProxyType&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;ls1ServerName&amp;nbsp;:=&amp;nbsp;LowerCase(FProxyInfo.FProxyServer);&lt;br /&gt;&amp;nbsp;&amp;nbsp;liLoc&amp;nbsp;:=&amp;nbsp;Pos(&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;:&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;,&amp;nbsp;ls1ServerName);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;liLoc&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;lsPort&amp;nbsp;:=&amp;nbsp;Copy(ls1ServerName,&amp;nbsp;liLoc&amp;nbsp;+&amp;nbsp;&lt;span style="color: #800080"&gt;1&lt;/span&gt;,&amp;nbsp;Length(ls1ServerName)&amp;nbsp;-&amp;nbsp;liLoc);&lt;br /&gt;&amp;nbsp;&amp;nbsp;FProxyInfo.FProxyServer&amp;nbsp;:=&amp;nbsp;PChar(Copy(ls1ServerName,&amp;nbsp;&lt;span style="color: #800080"&gt;1&lt;/span&gt;,&amp;nbsp;liLoc&amp;nbsp;-&amp;nbsp;&lt;span style="color: #800080"&gt;1&lt;/span&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;FProxyInfo.FProxyPort&amp;nbsp;:=&amp;nbsp;StrToIntDef(lsPort,FProxyInfo.FProxyPort);&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;TWnWinetClass.FixWinINetError(AError:&amp;nbsp;integer):&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;//Result&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Http&amp;nbsp;Status:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&amp;nbsp;+&amp;nbsp;IntTostr(AError);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;FetchHeader(HTTP_QUERY_STATUS_TEXT)&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;FData&lt;br /&gt;&amp;nbsp;&amp;nbsp;//&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;not&lt;/span&gt;&amp;nbsp;Result&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AssignError(wwecStatus);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;TWnWinetClass.GetHttpVersion:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;FHttpVersion&amp;nbsp;=&amp;nbsp;wwvHttp1&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;HTTP/1.0&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;HTTP/1.1&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&amp;nbsp;TWnWinetClass.HexToStream(AStream:&amp;nbsp;TMemoryStream;AHex:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;I,iLen:&amp;nbsp;Integer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LTemp:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LB&amp;nbsp;:&amp;nbsp;Byte;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;iLen&amp;nbsp;:=&amp;nbsp;Length(AHex);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(iLen&amp;nbsp;&lt;span style="color: #0000ff"&gt;mod&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080"&gt;3&lt;/span&gt;)&amp;nbsp;&amp;lt;&amp;gt;&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assert(False,&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;hex字符串错误&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;for&lt;/span&gt;&amp;nbsp;I&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;to&lt;/span&gt;&amp;nbsp;(iLen&amp;nbsp;&lt;span style="color: #0000ff"&gt;div&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080"&gt;3&lt;/span&gt;)&amp;nbsp;-&amp;nbsp;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;do&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LTemp&amp;nbsp;:=&amp;nbsp;Copy(AHex,I*&lt;span style="color: #800080"&gt;3&lt;/span&gt;+&lt;span style="color: #800080"&gt;1&lt;/span&gt;,&lt;span style="color: #800080"&gt;2&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LB&amp;nbsp;:=&amp;nbsp;StrToIntDef(&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;$&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;+LTemp,&lt;span style="color: #800080"&gt;0&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AStream.WriteBuffer(Lb,&lt;span style="color: #800080"&gt;1&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Assert(Pos(IntToStr(LB),LTemp)=&lt;span style="color: #800080"&gt;0&lt;/span&gt;,&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;asdf&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;TWnWinetClass.HttpGet(isUrl:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&amp;nbsp;iiTimeout:&amp;nbsp;integer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;ASecure:&amp;nbsp;Boolean):&amp;nbsp;boolean;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FVerb&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;GET&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FRequest&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FRequestStream&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;SetLastError(&lt;span style="color: #800080"&gt;0&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;FErrInfo&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800000"&gt;''&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FErrorCause&amp;nbsp;:=&amp;nbsp;wwecNil;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;False;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FEncodeUrl&amp;nbsp;:=&amp;nbsp;isUrl;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FTimeOut&amp;nbsp;:=&amp;nbsp;iiTimeout;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FSecure&amp;nbsp;:=&amp;nbsp;ASecure;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FixServerInfo;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FixProxyServerInfo;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;OpenConnection&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;and&lt;/span&gt;&amp;nbsp;OpenRequest&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;and&lt;/span&gt;&amp;nbsp;ConfigureRequest&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;and&lt;/span&gt;&amp;nbsp;PerformMethod;&lt;br /&gt;&amp;nbsp;&amp;nbsp;CleanUp(True);&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;TWnWinetClass.HttpPost(isUrl:&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&amp;nbsp;AStream:&amp;nbsp;TMemoryStream;&lt;br /&gt;&amp;nbsp;&amp;nbsp;iiTimeout:&amp;nbsp;Integer;&amp;nbsp;ASecure:&amp;nbsp;Boolean):&amp;nbsp;boolean;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FVerb&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;POST&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FRequestStream&amp;nbsp;:=&amp;nbsp;AStream;&lt;br /&gt;&amp;nbsp;&amp;nbsp;SetLastError(&lt;span style="color: #800080"&gt;0&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;FErrInfo&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800000"&gt;''&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FErrorCause&amp;nbsp;:=&amp;nbsp;wwecNil;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;False;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FEncodeUrl&amp;nbsp;:=&amp;nbsp;isUrl;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FTimeOut&amp;nbsp;:=&amp;nbsp;iiTimeout;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FSecure&amp;nbsp;:=&amp;nbsp;ASecure;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FixServerInfo;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FixProxyServerInfo;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;OpenConnection&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;and&lt;/span&gt;&amp;nbsp;OpenRequest&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;and&lt;/span&gt;&amp;nbsp;ConfigureRequest&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;and&lt;/span&gt;&amp;nbsp;PerformMethod;&lt;br /&gt;&amp;nbsp;&amp;nbsp;CleanUp(True);&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;TWnWinetClass.OpenConnection:&amp;nbsp;Boolean;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LProxyType:&amp;nbsp;DWORD;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;WW_AttemptConnect:&amp;nbsp;Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;(CompareText(FServerName,&amp;nbsp;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;localhost&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;)&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000ff"&gt;or&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(InternetAttemptConnect(&lt;span style="color: #800080"&gt;0&lt;/span&gt;)&amp;nbsp;=&amp;nbsp;ERROR_SUCCESS);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;not&lt;/span&gt;&amp;nbsp;(Result)&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&amp;nbsp;AssignError(wwecAttemptConnect);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&amp;nbsp;CancelMaxConnectLimite();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;liPerServer1,&amp;nbsp;liPerServer2:&amp;nbsp;Integer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;liPerServer1&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800080"&gt;5&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;liPerServer2&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800080"&gt;10&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//INTERNET_OPTION_MAX_CONNS_PER_SERVER&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080"&gt;73&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InternetSetOption(&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080"&gt;73&lt;/span&gt;,&amp;nbsp;@liPerServer1,&amp;nbsp;SizeOf(Integer));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//INTERNET_OPTION_MAX_CONNS_PER_&lt;span style="color: #800080"&gt;1&lt;/span&gt;_&lt;span style="color: #800080"&gt;0&lt;/span&gt;_SERVER&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080"&gt;74&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InternetSetOption(&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080"&gt;74&lt;/span&gt;,&amp;nbsp;@liPerServer2,&amp;nbsp;SizeOf(Integer));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;except&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;WW_InternetOpen:&amp;nbsp;Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ltInfo:&amp;nbsp;INTERNET_CONNECTED_INFO;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FNet&amp;nbsp;:=&amp;nbsp;InternetOpen(PChar(CONST_AGENT),&amp;nbsp;LProxyType,&amp;nbsp;PChar(FProxy),&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;(FNet&amp;nbsp;&amp;lt;&amp;gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;Result&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;not&lt;/span&gt;&amp;nbsp;FWininetStateChanged&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//INTERNET_OPTION_CONNECTED_STATE&amp;nbsp;&amp;nbsp;&lt;span style="color: #800080"&gt;50&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//取消IE的脱机状态&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ltInfo.dwConnectedState&amp;nbsp;:=&amp;nbsp;INTERNET_STATE_CONNECTED;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ltInfo.dwFlags&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;ISO_FORCE_DISCONNECTED;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InterNetSetOption(FNet,&amp;nbsp;INTERNET_OPTION_CONNECTED_STATE,&amp;nbsp;@ltInfo,&amp;nbsp;SizeOf(ltInfo));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;except&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//InternetSetStatusCallBack(FNet,&amp;nbsp;@StatusCallBack);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//INTERNET_OPTION_HTTP_DECODING&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;InternetSetOption(FNet,&amp;nbsp;&lt;span style="color: #800080"&gt;65&lt;/span&gt;,&amp;nbsp;@Result,&amp;nbsp;&lt;span style="color: #800080"&gt;1&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Beep;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AssignError(wwecOpen);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;WW_InternetConnect:&amp;nbsp;Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;context:&amp;nbsp;dword;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//同步通讯设置&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;context&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//异步通讯需要设置特定值&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//FCallBackContext.CallbackID&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//context:=dword(@FCallBackContext);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FSession&amp;nbsp;:=&amp;nbsp;InternetConnect(FNet,&amp;nbsp;PChar(FServerName),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PortToUse(FServerPort),&amp;nbsp;&lt;span style="color: #800000"&gt;''&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000"&gt;''&lt;/span&gt;,&amp;nbsp;INTERNET_SERVICE_HTTP,&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;,&amp;nbsp;context);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;(FSession&amp;nbsp;&amp;lt;&amp;gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;not&lt;/span&gt;&amp;nbsp;(Result)&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&amp;nbsp;AssignError(wwecConnect);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;False;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;FAbort&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;WW_AttemptConnect&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LProxyType&amp;nbsp;:=&amp;nbsp;DetectProxyServer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetLastError(&lt;span style="color: #800080"&gt;0&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;not&lt;/span&gt;&amp;nbsp;FWininetStateChanged&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&amp;nbsp;CancelMaxConnectLimite();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;WW_InternetOpen&amp;nbsp;&lt;span style="color: #0000ff"&gt;and&lt;/span&gt;&amp;nbsp;WW_InternetConnect;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FWininetStateChanged&amp;nbsp;:=&amp;nbsp;True;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;TWnWinetClass.OpenRequest:&amp;nbsp;Boolean;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;context,&amp;nbsp;ATimeOut,&amp;nbsp;dwFlags:&amp;nbsp;DWORD;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;False;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;FAbort&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;context&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;FSecure&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FRequest&amp;nbsp;:=&amp;nbsp;HTTPOpenRequest(FSession,&amp;nbsp;PChar(FVerb),&amp;nbsp;PChar(FEncodeUrl),&amp;nbsp;PChar&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(GetHttpVersion),&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INTERNET_FLAG_KEEP_CONNECTION&amp;nbsp;&lt;span style="color: #0000ff"&gt;or&lt;/span&gt;&amp;nbsp;INTERNET_FLAG_SECURE&amp;nbsp;&lt;span style="color: #0000ff"&gt;or&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SECURITY_FLAG_IGNORE_UNKNOWN_CA&amp;nbsp;&lt;span style="color: #0000ff"&gt;or&lt;/span&gt;&amp;nbsp;SECURITY_FLAG_IGNORE_CERT_CN_INVALID&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;or&lt;/span&gt;&amp;nbsp;SECURITY_FLAG_IGNORE_CERT_DATE_INVALID,&amp;nbsp;context);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ATimeOut&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dwFlags&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(FRequest&amp;nbsp;&amp;lt;&amp;gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000ff"&gt;and&lt;/span&gt;&amp;nbsp;(&lt;span style="color: #0000ff"&gt;not&lt;/span&gt;&amp;nbsp;InternetQueryOption(FRequest,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INTERNET_OPTION_SECURITY_FLAGS,&amp;nbsp;Pointer(@ATimeOut),&amp;nbsp;dwFlags))&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GetLastError;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FRequest&amp;nbsp;:=&amp;nbsp;HTTPOpenRequest(FSession,&amp;nbsp;PChar(FVerb),&amp;nbsp;PChar(FEncodeUrl),&amp;nbsp;PChar&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(getHttpVersion),&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #008000"&gt;{&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;Ord(FSecure)&amp;nbsp;*&amp;nbsp;INTERNET_FLAG_SECURE&amp;nbsp;or&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;}&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INTERNET_FLAG_NO_CACHE_WRITE&amp;nbsp;&lt;span style="color: #0000ff"&gt;or&lt;/span&gt;&amp;nbsp;INTERNET_FLAG_RELOAD&amp;nbsp;&lt;span style="color: #0000ff"&gt;or&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INTERNET_FLAG_KEEP_CONNECTION,&amp;nbsp;context);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;(FRequest&amp;nbsp;&amp;lt;&amp;gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;not&lt;/span&gt;(Result)&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AssignError(wwecOpenRequest);&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;TWnWinetClass.PerformMethod:&amp;nbsp;Boolean;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;ATimeOut,&amp;nbsp;dwFlags:&amp;nbsp;DWORD;&lt;br /&gt;&amp;nbsp;&amp;nbsp;//&amp;nbsp;LErr:&amp;nbsp;Cardinal;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;False;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;FAbort&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;Assigned(FRequestStream)&amp;nbsp;&lt;span style="color: #0000ff"&gt;and&lt;/span&gt;&amp;nbsp;(FRequestStream.Size&amp;nbsp;&amp;gt;&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;HTTPSendRequest(FRequest,&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;,&amp;nbsp;FRequestStream.Memory,&amp;nbsp;FRequestStream.Size)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;HTTPSendRequest(FRequest,&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;//&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;HTTPSendRequest(FRequest,&amp;nbsp;D_C_T,&amp;nbsp;D_C_T_S,&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;not&lt;/span&gt;(Result)&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;GetLastError&amp;nbsp;=&amp;nbsp;ERROR_INTERNET_INVALID_CA&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&amp;nbsp;//&amp;nbsp;WinInet&amp;nbsp;无效证书颁发机构错误&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ATimeOut&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dwFlags&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InternetQueryOption(FRequest,&amp;nbsp;INTERNET_OPTION_SECURITY_FLAGS,&amp;nbsp;Pointer&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(@ATimeOut),&amp;nbsp;dwFlags);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dwFlags&amp;nbsp;:=&amp;nbsp;dwFlags&amp;nbsp;&lt;span style="color: #0000ff"&gt;or&lt;/span&gt;&amp;nbsp;SECURITY_FLAG_IGNORE_UNKNOWN_CA;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InternetSetOption(FRequest,&amp;nbsp;INTERNET_OPTION_SECURITY_FLAGS,&amp;nbsp;@dwFlags,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SizeOf(integer));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;HTTPSendRequest(FRequest,&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AssignError(wwecExecRequest);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;ReadResponseHeader&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;and&lt;/span&gt;&amp;nbsp;FixContentLength&amp;nbsp;&lt;span style="color: #0000ff"&gt;and&lt;/span&gt;&amp;nbsp;FixContentType&amp;nbsp;&lt;span style="color: #0000ff"&gt;and&lt;/span&gt;&amp;nbsp;ReadResponse;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;TWnWinetClass.PortToUse(APort:&amp;nbsp;Integer):&amp;nbsp;Integer;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;APort&amp;nbsp;&amp;gt;&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;APort&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;FSecure&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;INTERNET_DEFAULT_HTTPS_PORT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;INTERNET_DEFAULT_HTTP_PORT;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;TWnWinetClass.ReadResponse:&amp;nbsp;Boolean;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;ASize,&amp;nbsp;ARead:&amp;nbsp;DWORD;&lt;br /&gt;&amp;nbsp;&amp;nbsp;ABuffer:&amp;nbsp;Pointer;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;False;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;FAbort&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FResponseStream.Clear;&lt;br /&gt;&amp;nbsp;&amp;nbsp;ASize&amp;nbsp;:=&amp;nbsp;BUFFER_SIZE;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FTotal&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;ABuffer&amp;nbsp;:=&amp;nbsp;AllocMem(ASize);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;HookDataReadSized;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;repeat&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;InternetReadFile(FRequest,&amp;nbsp;ABuffer,&amp;nbsp;ASize,&amp;nbsp;ARead);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;not&lt;/span&gt;&amp;nbsp;Result&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AssignError(wwecReadFile);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Break;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(ARead&amp;nbsp;&amp;gt;&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FResponseStream.WriteBuffer(ABuffer^,&amp;nbsp;ARead);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Inc(FTotal,&amp;nbsp;ARead);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//FTotal&amp;nbsp;:=&amp;nbsp;ARead;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//HookDataReadSized;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;until&lt;/span&gt;&amp;nbsp;((ARead&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000ff"&gt;or&lt;/span&gt;&amp;nbsp;FAbort);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FResponseStream.Seek(&lt;span style="color: #800080"&gt;0&lt;/span&gt;,&lt;span style="color: #800080"&gt;0&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;finally&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FreeMem(ABuffer,&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;TWnWinetClass.ReadResponseHeader:&amp;nbsp;Boolean;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;False;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;FAbort&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;FetchHeader(HTTP_QUERY_STATUS_CODE);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;not&lt;/span&gt;&amp;nbsp;Result&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AssignError(wwecStatus);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FStatus&amp;nbsp;:=&amp;nbsp;StrToIntDef(FData,&amp;nbsp;-&lt;span style="color: #800080"&gt;1&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;FAbort&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;FetchHeader(HTTP_QUERY_RAW_HEADERS_CRLF);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;Result&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FResponseHeader&amp;nbsp;:=&amp;nbsp;FData&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AssignError(wwecHeader);&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&amp;nbsp;TWnWinetClass.SetAbort(&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&amp;nbsp;Value:&amp;nbsp;Boolean);&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FAbort&amp;nbsp;:=&amp;nbsp;Value;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&amp;nbsp;TWnWinetClass.StreamToHex(AStream:&amp;nbsp;TMemoryStream):&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;I:&amp;nbsp;Integer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Lb:&amp;nbsp;Byte;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800000"&gt;''&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;AStream.Seek(&lt;span style="color: #800080"&gt;0&lt;/span&gt;,&lt;span style="color: #800080"&gt;0&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;for&lt;/span&gt;&amp;nbsp;I&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;to&lt;/span&gt;&amp;nbsp;AStream.Size&amp;nbsp;&lt;span style="color: #0000ff"&gt;do&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AStream.ReadBuffer(LB,&lt;span style="color: #800080"&gt;1&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;Result&amp;nbsp;+&amp;nbsp;IntToHex(Ord(Lb),&lt;span style="color: #800080"&gt;2&lt;/span&gt;)+&amp;nbsp;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(I&amp;nbsp;&lt;span style="color: #0000ff"&gt;mod&lt;/span&gt;&amp;nbsp;ALen)&amp;nbsp;=&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:=&amp;nbsp;Result&amp;nbsp;+&amp;nbsp;#&lt;span style="color: #800080"&gt;13&lt;/span&gt;#&lt;span style="color: #800080"&gt;10&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;.&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/enli/aggbug/2406495.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/enli/archive/2012/03/19/2406495.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/enli/archive/2012/02/23/2364327.html</id><title type="text">自备工具库</title><summary type="text">http://115.com/file/e7fpe14u# skytest.rarhttp://115.com/file/cl317w1j# 网络抓包工具.exehttp://115.com/file/bhgkqe5n# 全产品系列下载.exe http://115.com/file/e7ft6alf# Speed.rar</summary><published>2012-02-23T02:07:00Z</published><updated>2012-02-23T02:07:00Z</updated><author><name>Enli</name><uri>http://www.cnblogs.com/enli/</uri></author><link rel="alternate" href="http://www.cnblogs.com/enli/archive/2012/02/23/2364327.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/enli/archive/2012/02/23/2364327.html"/><content type="html">&lt;p&gt;&lt;a href="http://115.com/file/e7fpe14u"&gt;http://115.com/file/e7fpe14u&lt;/a&gt;#&amp;nbsp; skytest.rar&lt;br /&gt;&lt;a href="http://115.com/file/cl317w1j"&gt;http://115.com/file/cl317w1j&lt;/a&gt;#&amp;nbsp; 网络抓包工具.exe&lt;br /&gt;&lt;a href="http://115.com/file/bhgkqe5n"&gt;http://115.com/file/bhgkqe5n&lt;/a&gt;#&amp;nbsp; 全产品系列下载.exe &lt;/p&gt;&lt;p&gt;&lt;a href="http://115.com/file/e7ft6alf"&gt;http://115.com/file/e7ft6alf&lt;/a&gt;#&amp;nbsp; Speed.rar&lt;/p&gt;&lt;img src="http://www.cnblogs.com/enli/aggbug/2364327.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/enli/archive/2012/02/23/2364327.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/enli/archive/2012/01/31/2333065.html</id><title type="text">多屏开发的备忘</title><summary type="text">1. dll里面的form显示位置问题 需要显示在主程序窗口的屏幕上，可以用下面的方法放到 TForm里面的FormActivate事件里面varHM:HMonitor;I:Integer;LRect:TRect;Begin{$IFDEFSTATIC_ADDIN}HM:=MonitorFromWindow(FContext.MasterPageHandle,MONITOR_DEFAULTTONEAREST);ifHM&gt;0thenbeginforI:=0toScreen.MonitorCount-1doifScreen.Monitors[I].Handle=HMthenbeginLRect</summary><published>2012-01-31T06:27:00Z</published><updated>2012-01-31T06:27:00Z</updated><author><name>Enli</name><uri>http://www.cnblogs.com/enli/</uri></author><link rel="alternate" href="http://www.cnblogs.com/enli/archive/2012/01/31/2333065.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/enli/archive/2012/01/31/2333065.html"/><content type="html">&lt;p&gt; 1. dll里面的form显示位置问题&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; 需要显示在主程序窗口的屏幕上，可以用下面的方法放到  &lt;span style="font-size:10.0pt;font-family:宋体"&gt;TForm&lt;/span&gt;&lt;span style="font-size: 10.0pt;font-family:宋体"&gt;里面的FormActivate事件里面&lt;/span&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #0000FF;"&gt;var&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;HM:&amp;nbsp;HMonitor;&lt;br /&gt;&amp;nbsp;&amp;nbsp;I:&amp;nbsp;Integer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LRect:&amp;nbsp;TRect;&lt;br /&gt;Begin&lt;br /&gt;&lt;span style="color: #008000;"&gt;{&lt;/span&gt;&lt;span style="color: #008000;"&gt;$IFDEF&amp;nbsp;STATIC_ADDIN&lt;/span&gt;&lt;span style="color: #008000;"&gt;}&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;HM&amp;nbsp;:=&amp;nbsp;MonitorFromWindow(FContext.MasterPageHandle,&amp;nbsp;MONITOR_DEFAULTTONEAREST);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;HM&amp;nbsp;&amp;gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;for&lt;/span&gt;&amp;nbsp;I&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;to&lt;/span&gt;&amp;nbsp;Screen.MonitorCount&amp;nbsp;-&amp;nbsp;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;do&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&amp;nbsp;Screen.Monitors[I].Handle&amp;nbsp;=&amp;nbsp;HM&amp;nbsp;&lt;span style="color: #0000FF;"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LRect&amp;nbsp;:=&amp;nbsp;Screen.Monitors[I].WorkareaRect;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetBounds(LRect.Left&amp;nbsp;+&amp;nbsp;((RectWidth(LRect)&amp;nbsp;-&amp;nbsp;Width)&amp;nbsp;&lt;span style="color: #0000FF;"&gt;div&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LRect.Top&amp;nbsp;+&amp;nbsp;((RectHeight(LRect)&amp;nbsp;-&amp;nbsp;Height)&amp;nbsp;&lt;span style="color: #0000FF;"&gt;div&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;),&amp;nbsp;Width,&amp;nbsp;Height);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Break;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008000;"&gt;{&lt;/span&gt;&lt;span style="color: #008000;"&gt;$ENDIF&lt;/span&gt;&lt;span style="color: #008000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;end&lt;/span&gt;;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;也可以直接跟着主程序的窗体走,直接在Formshow里面加&lt;/p&gt;&lt;p&gt;&lt;div&gt;&amp;nbsp; Left := FContext.MainForm.Left;&lt;br /&gt;&amp;nbsp; Top := FContext.MainForm.Top;&lt;/div&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/enli/aggbug/2333065.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/enli/archive/2012/01/31/2333065.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/enli/archive/2011/11/08/2241087.html</id><title type="text">界面方面的备忘</title><summary type="text">1. 透明panelunituWnTransparentPanel;interfaceusesWindows,Classes,StdCtrls,ExtCtrls,Messages,Forms;typeTWnTransparentPanel=class(TPanel)privateFTransparentPercent:Integer;procedureSetTransparentPercent(constValue:Integer);protectedprocedureWMPaint(varmessage:TMessage);messageWM_Paint;publicprocedureSte</summary><published>2011-11-08T06:13:00Z</published><updated>2011-11-08T06:13:00Z</updated><author><name>Enli</name><uri>http://www.cnblogs.com/enli/</uri></author><link rel="alternate" href="http://www.cnblogs.com/enli/archive/2011/11/08/2241087.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/enli/archive/2011/11/08/2241087.html"/><content type="html">&lt;p&gt;1. 透明panel&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #0000ff"&gt;unit&lt;/span&gt;&amp;nbsp;uWnTransparentPanel;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;interface&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;uses&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Windows,Classes,StdCtrls,ExtCtrls,Messages,Forms;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;type&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;TWnTransparentPanel&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;(TPanel)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;private&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FTransparentPercent:&amp;nbsp;Integer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&amp;nbsp;SetTransparentPercent(&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&amp;nbsp;Value:&amp;nbsp;Integer);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;protected&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&amp;nbsp;WMPaint(&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;message&lt;/span&gt;&amp;nbsp;:&amp;nbsp;TMessage);&amp;nbsp;&lt;span style="color: #0000ff"&gt;message&lt;/span&gt;&amp;nbsp;WM_Paint;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&amp;nbsp;StepShow(&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&amp;nbsp;ALeft,ATop,HStet,VStep:Integer);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;published&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;property&lt;/span&gt;&amp;nbsp;TransparentPercent:&amp;nbsp;Integer&amp;nbsp;&lt;span style="color: #0000ff"&gt;read&lt;/span&gt;&amp;nbsp;FTransparentPercent&amp;nbsp;&lt;span style="color: #0000ff"&gt;write&lt;/span&gt;&amp;nbsp;SetTransparentPercent;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;implementation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;{&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;TWnTransparentPanel&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&amp;nbsp;TWnTransparentPanel.SetTransparentPercent(&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&amp;nbsp;Value:&amp;nbsp;Integer);&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FTransparentPercent&amp;nbsp;:=&amp;nbsp;Value;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&amp;nbsp;TWnTransparentPanel.StepShow(&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&amp;nbsp;ALeft,&amp;nbsp;ATop,HStet,&amp;nbsp;VStep:&amp;nbsp;Integer);&lt;br /&gt;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;I:&amp;nbsp;Integer;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Visible&amp;nbsp;:=&amp;nbsp;True;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Left&amp;nbsp;:=&amp;nbsp;ALeft;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Top&amp;nbsp;:=&amp;nbsp;ATop+VStep*&lt;span style="color: #800080"&gt;10&lt;/span&gt;&amp;nbsp;&amp;nbsp;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;for&lt;/span&gt;&amp;nbsp;I&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;to&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800080"&gt;9&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;do&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Top&amp;nbsp;:=&amp;nbsp;ATop&amp;nbsp;+(&lt;span style="color: #800080"&gt;9&lt;/span&gt;-I)*VStep;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Self.Parent.Update;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Self.Repaint;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Sleep(&lt;span style="color: #800080"&gt;100&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Application.HandleMessage;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&amp;nbsp;TWnTransparentPanel.WMPaint(&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;message&lt;/span&gt;:&amp;nbsp;TMessage);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&amp;nbsp;AlphaBlendTabControl;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;MemBitmap,&amp;nbsp;OldBitmap:&amp;nbsp;HBITMAP;&lt;br /&gt;&amp;nbsp;&amp;nbsp;BF:&amp;nbsp;BLENDFUNCTION;&lt;br /&gt;&amp;nbsp;&amp;nbsp;MemDC,&amp;nbsp;DC:&amp;nbsp;HDC;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(Parent&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;)&amp;nbsp;&lt;span style="color: #0000ff"&gt;or&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;not&lt;/span&gt;&amp;nbsp;Parent.HandleAllocated&amp;nbsp;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DC&amp;nbsp;:=&amp;nbsp;GetDC(&lt;span style="color: #800080"&gt;0&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MemBitmap&amp;nbsp;:=&amp;nbsp;CreateCompatibleBitmap(DC,&amp;nbsp;Parent.Width,&amp;nbsp;Parent.Height);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ReleaseDC(&lt;span style="color: #800080"&gt;0&lt;/span&gt;,&amp;nbsp;DC);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MemDC&amp;nbsp;:=&amp;nbsp;CreateCompatibleDC(&lt;span style="color: #800080"&gt;0&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OldBitmap&amp;nbsp;:=&amp;nbsp;SelectObject(MemDC,&amp;nbsp;MemBitmap);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Parent.Perform(WM_ERASEBKGND,&amp;nbsp;MemDC,&amp;nbsp;MemDC);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Parent.Perform(WM_PAINT,&amp;nbsp;MemDC,&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BF.SourceConstantAlpha&amp;nbsp;:=&amp;nbsp;TransparentPercent;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BF.AlphaFormat&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BF.BlendOp&amp;nbsp;:=&amp;nbsp;AC_SRC_OVER;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BF.BlendFlags&amp;nbsp;:=&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Windows.AlphaBlend(Canvas.Handle,&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800080"&gt;0&lt;/span&gt;,&amp;nbsp;Width,&amp;nbsp;Height,&amp;nbsp;MemDC,&amp;nbsp;Left,&amp;nbsp;Top,&amp;nbsp;Width,&amp;nbsp;Height,&amp;nbsp;BF);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;finally&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SelectObject(MemDC,&amp;nbsp;OldBitmap);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DeleteDC(MemDC);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DeleteObject(MemBitmap);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;inherited&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;AlphaBlendTabControl;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;.&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;2. 设计的时候，panel可以用Anchors = [akLeft, akTop, akRight, akBottom] 加上Align = alCustom达到自动预留边框的目的，就可以避免panel用Align = alClient的时候panel贴边的问题&lt;/p&gt;&lt;p&gt;3. Grid载入数据的时候界面频刷的问题，主要是要Grid paint之初就要设定好高宽，而不是边画边设高宽&lt;/p&gt;&lt;img src="http://www.cnblogs.com/enli/aggbug/2241087.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/enli/archive/2011/11/08/2241087.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/enli/archive/2011/10/27/2226952.html</id><title type="text">rc资源文件的中英文应用备忘</title><summary type="text">准备好RC文件，例如Quarter.rc：stringtablebegin1000,"29"2000,"第一季度"2001,"第二季度"2002,"第三季度"2003,"第四季度"2004,"一季报"2005,"中报"2006,"三季报"2007,"年报"2008,"报告期"2009,"从"2010,"到"2011,"或"2012,&amp;qu</summary><published>2011-10-27T11:20:00Z</published><updated>2011-10-27T11:20:00Z</updated><author><name>Enli</name><uri>http://www.cnblogs.com/enli/</uri></author><link rel="alternate" href="http://www.cnblogs.com/enli/archive/2011/10/27/2226952.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/enli/archive/2011/10/27/2226952.html"/><content type="html">&lt;p&gt; 准备好RC文件，例如Quarter.rc：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;stringtable&lt;br /&gt;begin&lt;br /&gt;&lt;span style="color: #800080;"&gt;1000&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;29&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2000&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;第一季度&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2001&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;第二季度&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2002&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;第三季度&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2003&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;第四季度&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2004&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;一季报&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2005&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;中报&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2006&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;三季报&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2007&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;年报&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2008&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;报告期&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2009&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;从&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2010&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;到&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2011&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;或&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2012&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;时间&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2013&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;常用时间查询&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2014&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;自定义年度查询&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2015&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;自定义时间查询&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2016&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;筛选条件&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2017&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;全部资料&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2018&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;请选择时间范围&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2019&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;开始时间:&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2020&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;结束时间:&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2021&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;确认&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2022&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;放弃&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2023&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;年到&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2024&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;年&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2025&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;一季&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2026&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;中报&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2027&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;三季&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;2028&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;年报&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3000&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Quarter&amp;nbsp;1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3001&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Quarter&amp;nbsp;2&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3002&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Quarter&amp;nbsp;3&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3003&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Quarter&amp;nbsp;4&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3004&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Q1&amp;nbsp;Report&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3005&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Mid-Year&amp;nbsp;Report&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3006&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Q3&amp;nbsp;Report&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3007&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Annualreport&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3008&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;ReportDate&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3009&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;From&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3010&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;To&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3011&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Or&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3012&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Date&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3013&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Common&amp;nbsp;Time&amp;nbsp;Span&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3014&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;User-Defined&amp;nbsp;Year&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3015&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;User-Defined&amp;nbsp;Time&amp;nbsp;Span&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3016&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Select&amp;nbsp;by&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3017&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;All&amp;nbsp;Related&amp;nbsp;Data&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3018&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Select&amp;nbsp;Time&amp;nbsp;Period&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3019&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Begin&amp;nbsp;Time:&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3020&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;End&amp;nbsp;Time:&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3021&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;OK&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3022&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Cancel&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3023&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;To&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3024&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3025&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Q1&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3026&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Q2&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3027&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Q3&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800080;"&gt;3028&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Q4&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;End&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;用此RC文件编译成res文件，然后在代码中加上 {$R Quarter.res｝&lt;/p&gt;&lt;p&gt;从RC编译成RES文件有2个方法&lt;/p&gt;&lt;p&gt;1. 直接添加到工程中，build就可以了&lt;/p&gt;&lt;p&gt;2. 用命令brcc32 FileName.rc 编译&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/enli/aggbug/2226952.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/enli/archive/2011/10/27/2226952.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/enli/archive/2011/10/19/2217204.html</id><title type="text">Wininet下载类初稿</title><summary type="text">unit uWnDownClass;interfaceuses Windows,Messages,SysUtils,Classes,WinInet;const WM_HTTPCOMM_PROGRESS = WM_USER + 1700; InnerAgent = 'Mozilla/4.0 (compatible; MSIE 6.0; Win32)'; HttpVersion = 'HTTP/1.1'; D_C_T = 'Content-Type:application/x-www-form-urlencoded'; D_C_T_S = Lengt</summary><published>2011-10-19T01:27:00Z</published><updated>2011-10-19T01:27:00Z</updated><author><name>Enli</name><uri>http://www.cnblogs.com/enli/</uri></author><link rel="alternate" href="http://www.cnblogs.com/enli/archive/2011/10/19/2217204.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/enli/archive/2011/10/19/2217204.html"/><content type="html">&lt;div&gt;unit uWnDownClass;&lt;br /&gt;&lt;br /&gt;interface&lt;br /&gt;&lt;br /&gt;uses&lt;br /&gt;&amp;nbsp; Windows,Messages,SysUtils,Classes,WinInet;&lt;br /&gt;&lt;br /&gt;const&lt;br /&gt;&amp;nbsp; WM_HTTPCOMM_PROGRESS = WM_USER + 1700;&lt;br /&gt;&amp;nbsp; InnerAgent = 'Mozilla/4.0 (compatible; MSIE 6.0; Win32)';&lt;br /&gt;&amp;nbsp; HttpVersion = 'HTTP/1.1';&lt;br /&gt;&amp;nbsp; D_C_T = 'Content-Type:application/x-www-form-urlencoded';&lt;br /&gt;&amp;nbsp; D_C_T_S = Length(D_C_T);&lt;br /&gt;&amp;nbsp; BUFFER_SIZE = 4096;&lt;br /&gt;&lt;br /&gt;type&lt;br /&gt;&amp;nbsp; //错误类型，没有错误为wwecNil&lt;br /&gt;&amp;nbsp; TWinInetErrorCauses = (wwecNil,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wwecAttemptConnect,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wwecOpen,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wwecConnect,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wwecOpenRequest,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //4&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wwecConfigureRequest,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //5&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wwecExecRequest,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //6&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wwecEndRequest,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //7&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wwecTimeOut,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //8&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wwecUPD,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //9&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wwecAbort,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //10&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wwecStatus,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //11&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wwecContentLength,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //12&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wwecContentType,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //13&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wwecReadFile,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //14&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wwecWriteFile);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //15&lt;br /&gt;&lt;br /&gt;&amp;nbsp; TProxyInfo = record&lt;br /&gt;&amp;nbsp; public&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FProxyType : integer; //-1: preConfig 0: noproxy 1: sock4 2: sock5 3: http&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FProxyServer : String;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FProxyPort : integer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FProxyUserName : String;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FProxyUserPass : String;&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp; TOnDownloadProgress = procedure(const ASize,ATotal: Int64) of object;&lt;br /&gt;&amp;nbsp; TWnDownClass = class&lt;br /&gt;&amp;nbsp; private&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FAbort: Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //FhNotify: HWND;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FResponse: TMemoryStream;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //FKeepConnected: Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FNet: HINTERNET;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FRequest: HINTERNET;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FSession: HINTERNET;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FProxyInfo: TProxyInfo;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FProxy: string;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FServerPort: integer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FServerName: string;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FEncodeUrl: string;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FVerb: string;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FHttpHeader: string;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //FpUserData: Pointer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FSecure: Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTimeOut: Integer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FErrorCause: TWinInetErrorCauses;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FWininetStateChanged: Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FErrInfo: string;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FServerPass: string;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FServerUser: string;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FData: array[0..BUFFER_SIZE] of Char;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FStatus: Integer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FContentType: string;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FContentLength: Int64;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FTotal: Int64;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FFileSize: Int64;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FOnDownloadProgress: TOnDownloadProgress;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; procedure SetAbort(const Value: Boolean);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; procedure FixServerInfo;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; procedure FixProxyServerInfo;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function OpenConnection: Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function OpenRequest: Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function ConfigureRequest: Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function PerformGet: Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; procedure AssignError(AError: TWinInetErrorCauses);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function DetectProxyServer: DWORD;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function PortToUse(APort: Integer): Integer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function FetchHeader(AFlags: Integer): Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function FixContentLength: Boolean;&amp;nbsp; //获取接受数据的大小&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function FixContentType: Boolean;&amp;nbsp; //获取接受数据的类型&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function ReadResponse: Boolean;&amp;nbsp;&amp;nbsp;&amp;nbsp; //读取接受数据&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function FixWinINetError(AError: Integer): string;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; procedure HookDataReadSized;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; procedure SetOnDownloadProgress(const Value: TOnDownloadProgress);&lt;br /&gt;&amp;nbsp; public&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; constructor Create;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; destructor Destroy;override;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; property Abort: Boolean read FAbort write SetAbort;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //property hNotify:HWND read FhNotify write FhNotify;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; property Response: TMemoryStream read FResponse;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; property&amp;nbsp; ServerName: string read FServerName write FServerName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; property&amp;nbsp; ServerPort: integer read FServerPort write FServerPort;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; property&amp;nbsp; ServerUser: string read FServerUser write FServerUser;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; property&amp;nbsp; ServerPass: string read FServerPass write FServerPass;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; property ProxyInfo: TProxyInfo read FProxyInfo write FProxyInfo;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; property HttpHeader: string read FHttpHeader write FHttpHeader;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; property Status: Integer read FStatus;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; property ContentLength: Int64 read FContentLength;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; property ContentType: string read FContentType;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; property FileSize: Int64 read FFileSize write FFileSize;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; property ErrInfo: string read FErrInfo;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; property ErrorCause: TWinInetErrorCauses read FErrorCause;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; property OnDownloadProgress: TOnDownloadProgress&amp;nbsp; read FOnDownloadProgress write SetOnDownloadProgress;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; procedure CleanUp(isAll: Boolean);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function HttpGet(isUrl:string;iiTimeout:integer;ASecure:Boolean = False):boolean;&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;implementation&lt;br /&gt;&lt;br /&gt;uses&lt;br /&gt;&amp;nbsp; HTTPApp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//HTTP通讯过程中的状态回调函数&lt;br /&gt;procedure StatusCallback(ASession: hInternet; AContext, AIS: DWord; AInfo:&lt;br /&gt;&amp;nbsp; Pointer; ASIN: DWord); stdcall;&lt;br /&gt;//var&lt;br /&gt;//&amp;nbsp; AReason: TWinInetCallBackReason;&lt;br /&gt;//&amp;nbsp; lpHostContext: PInternetCallbackContext;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; { TODO : 回调函数 }&lt;br /&gt;&amp;nbsp; {case AIS of&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTERNET_STATUS_RESOLVING_NAME: AReason := wwcbrResolving;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTERNET_STATUS_NAME_RESOLVED: AReason := wwcbrResolved;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTERNET_STATUS_CONNECTING_TO_SERVER: AReason := wwcbrConnecting;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTERNET_STATUS_CONNECTED_TO_SERVER: AReason := wwcbrConnected;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTERNET_STATUS_SENDING_REQUEST: AReason := wwcbrWriting;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTERNET_STATUS_REQUEST_SENT: AReason := wwcbrWritten;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTERNET_STATUS_RECEIVING_RESPONSE: AReason := wwcbrReading;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTERNET_STATUS_RESPONSE_RECEIVED: AReason := wwcbrRead;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTERNET_STATUS_CLOSING_CONNECTION: AReason := wwcbrClosing;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTERNET_STATUS_CONNECTION_CLOSED: AReason := wwcbrClosed;&lt;br /&gt;&amp;nbsp; else Exit;&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp; lpHostContext := PInternetCallbackContext(AContext);&lt;br /&gt;&amp;nbsp; if Assigned(lpHostContext^.OnSelfCallBack) then begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lpHostContext^.OnSelfCallBack(AReason);&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp; if Assigned(lpHostContext^.OnCallBack) then begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lpHostContext^.OnCallBack(AReason);&lt;br /&gt;&amp;nbsp; end; }&lt;br /&gt;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;{ TWnDownClass }&lt;br /&gt;&lt;br /&gt;procedure TWnDownClass.AssignError(AError: TWinInetErrorCauses);&lt;br /&gt;var&lt;br /&gt;&amp;nbsp; I, H: Integer;&lt;br /&gt;&amp;nbsp; LTemp: string;&lt;br /&gt;&amp;nbsp; LR: Cardinal;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; FErrorCause := AError;&lt;br /&gt;&amp;nbsp; if Length(FErrInfo) = 0 then&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LR := GetLastError;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (LR &amp;lt; 12000) or (LR &amp;lt; 12175) then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; H := GetModuleHandle('wininet.dll');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetLength(LTemp, 256);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I := FormatMessage(FORMAT_MESSAGE_FROM_HMODULE, Pointer(H), LR, 0,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PChar(LTemp), 256, nil);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetLength(LTemp, I);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FErrInfo := 'Error '+IntTostr(LR)+':'+LTemp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FErrInfo := 'Error '+IntTostr(LR)+':'+SysErrorMessage(GetLastError);&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;procedure TWnDownClass.CleanUp(isAll: Boolean);&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; if isAll then&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if Assigned(FRequest) then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InternetCloseHandle(FRequest);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FRequest := nil;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if Assigned(FSession) then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InternetCloseHandle(FSession);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FSession := nil;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if Assigned(FNet) then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InternetCloseHandle(FNet);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FNet := nil;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp; //FResponse.Clear;&lt;br /&gt;&amp;nbsp; SetLength(FProxy,0);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;function TWnDownClass.ConfigureRequest: Boolean;&lt;br /&gt;&amp;nbsp; function SetUPD(AOption: DWORD; AUPD: PChar): Boolean;&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Result := (Length(AUPD) =0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; or InternetSetOption(FRequest, AOption, AUPD, Length(AUPD));&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; Result := False;&lt;br /&gt;&amp;nbsp; if FAbort then Exit;&lt;br /&gt;&amp;nbsp; //设置HTTP头&lt;br /&gt;&amp;nbsp; if FFileSize &amp;gt;0 then&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if Length(FHttpHeader) &amp;gt; 0 then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FHttpHeader := FHttpHeader + #13#10'Range: bytes='+ IntToStr(FFileSize) +'-'#13#10&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FHttpHeader := 'Range: bytes='+ IntToStr(FFileSize) +'-'#13#10;&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp; if Length(FHttpHeader) &amp;gt; 0 then&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Result := HttpAddRequestHeaders(FRequest, PWideChar(FHttpHeader),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cardinal(-1), HTTP_ADDREQ_FLAG_ADD or HTTP_ADDREQ_FLAG_REPLACE);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not Result then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AssignError(wwecConfigureRequest);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp; //设置超时&lt;br /&gt;&amp;nbsp; if (FTimeOut &amp;lt; 1) or (FTimeOut &amp;gt; 30) then FTimeOut := 30;&lt;br /&gt;&amp;nbsp; FTimeOut := FTimeOut * 1000;&lt;br /&gt;&amp;nbsp; Result := InternetSetOption(FNet, INTERNET_OPTION_CONNECT_TIMEOUT,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @FTimeOut, SizeOf(Integer)) and&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; InternetSetOption(FNet, INTERNET_OPTION_RECEIVE_TIMEOUT, @FTimeOut,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SizeOf(Integer)) and&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; InternetSetOption(FNet, INTERNET_OPTION_SEND_TIMEOUT, @FTimeOut,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SizeOf(Integer));&lt;br /&gt;&lt;br /&gt;&amp;nbsp; if not (Result) then&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AssignError(wwecTimeOut);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit;&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp; //设置代理用户密码，访问用户密码&lt;br /&gt;&amp;nbsp; if SetUPD(INTERNET_OPTION_PROXY_USERNAME,PChar(FProxyInfo.FProxyUserName))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; and SetUPD(INTERNET_OPTION_PROXY_PASSWORD,PChar(FProxyInfo.FProxyUserPass))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; and SetUPD(INTERNET_OPTION_USERNAME,PChar(fServerPass))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; and SetUPD(INTERNET_OPTION_PASSWORD,PChar(FServerUser))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; then&lt;br /&gt;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AssignError(wwecUPD);&lt;br /&gt;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;constructor TWnDownClass.Create;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; inherited;&lt;br /&gt;&amp;nbsp; FResponse := TMemoryStream.Create;&lt;br /&gt;&amp;nbsp; FRequest := nil;&lt;br /&gt;&amp;nbsp; FSession := nil;&lt;br /&gt;&amp;nbsp; FNet := nil;&lt;br /&gt;&amp;nbsp; //FKeepConnected := False;&lt;br /&gt;&amp;nbsp; FAbort := False;&lt;br /&gt;&amp;nbsp; FWininetStateChanged := False;&lt;br /&gt;&amp;nbsp; FErrInfo := '';&lt;br /&gt;&amp;nbsp; FEncodeUrl := '';&lt;br /&gt;&amp;nbsp; FServerUser := '';&lt;br /&gt;&amp;nbsp; FServerPass := '';&lt;br /&gt;&amp;nbsp; FVerb := 'GET';&lt;br /&gt;&amp;nbsp; FStatus := -1;&lt;br /&gt;&amp;nbsp; FFileSize := 0;&lt;br /&gt;&amp;nbsp; SetLength(FProxy,0);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;destructor TWnDownClass.Destroy;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; FResponse.Free;&lt;br /&gt;&amp;nbsp; inherited;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;function TWnDownClass.DetectProxyServer: DWORD;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp;&amp;nbsp; //-1: preConfig 0: noproxy 1: sock4 2: sock5 3: http&lt;br /&gt;&amp;nbsp; //Result:&lt;br /&gt;&amp;nbsp; //INTERNET_OPEN_TYPE_PRECONFIG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;&amp;nbsp; //INTERNET_OPEN_TYPE_DIRECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;br /&gt;&amp;nbsp; //INTERNET_OPEN_TYPE_PROXY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;br /&gt;&amp;nbsp; //INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY 4&lt;br /&gt;&amp;nbsp; with FProxyInfo do&lt;br /&gt;&amp;nbsp; case (FProxyType-1) of&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0: Result := INTERNET_OPEN_TYPE_DIRECT;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Result := INTERNET_OPEN_TYPE_PROXY;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FProxy := Format('socks=%s:%s',[FProxyServer,Inttostr(FProxyPort)]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Result := INTERNET_OPEN_TYPE_PROXY;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FProxy := Format('socks5=%s:%s',[FProxyServer,Inttostr(FProxyPort)]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Result := INTERNET_OPEN_TYPE_PROXY;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FProxy := Format('%s:%s',[FProxyServer,Inttostr(FProxyPort)]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Result := INTERNET_OPEN_TYPE_PRECONFIG;&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;end;&lt;br /&gt;function TWnDownClass.FetchHeader(AFlags: Integer): Boolean;&lt;br /&gt;var&lt;br /&gt;&amp;nbsp; BufLen, Index: DWORD;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; Result := False;&lt;br /&gt;&amp;nbsp; if FAbort then Exit;&lt;br /&gt;&amp;nbsp; Index := 0;&lt;br /&gt;&amp;nbsp; BufLen := BUFFER_SIZE;&lt;br /&gt;&amp;nbsp; FillChar(FData,BufLen,0);&lt;br /&gt;&amp;nbsp; Result := HttpQueryInfo(FRequest, AFlags, @FData, BufLen, Index);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;function TWnDownClass.FixContentLength: Boolean;&lt;br /&gt;var&lt;br /&gt;&amp;nbsp; LTemp: string;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; Result := False;&lt;br /&gt;&amp;nbsp; if FAbort then Exit;&lt;br /&gt;&amp;nbsp; Result := FetchHeader(HTTP_QUERY_CONTENT_LENGTH);&lt;br /&gt;&amp;nbsp; LTemp := FData;&lt;br /&gt;&amp;nbsp; if Result then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FContentLength := StrToInt64Def(LTemp,0)&lt;br /&gt;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AssignError(wwecContentLength);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;function TWnDownClass.FixContentType: Boolean;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; Result := False;&lt;br /&gt;&amp;nbsp; if FAbort then Exit;&lt;br /&gt;&amp;nbsp; Result := FetchHeader(HTTP_QUERY_CONTENT_TYPE);&lt;br /&gt;&amp;nbsp; if Result then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FContentType := FData&lt;br /&gt;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AssignError(wwecContentType);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;procedure TWnDownClass.FixProxyServerInfo;&lt;br /&gt;var&lt;br /&gt;&amp;nbsp; ls1ServerName, lsPort: string;&lt;br /&gt;&amp;nbsp; liLoc: Integer;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ls1ServerName := LowerCase(FProxyInfo.FProxyServer);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; liLoc := Pos(':', ls1ServerName);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if liLoc = 0 then Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lsPort := Copy(ls1ServerName, liLoc + 1, Length(ls1ServerName) - liLoc);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FProxyInfo.FProxyServer := PChar(Copy(ls1ServerName, 1, liLoc - 1));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FProxyInfo.FProxyPort := StrToIntDef(lsPort,FProxyInfo.FProxyPort);&lt;br /&gt;&amp;nbsp; except&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;procedure TWnDownClass.FixServerInfo;&lt;br /&gt;var&lt;br /&gt;&amp;nbsp; ls1ServerName, lsPort: string;&lt;br /&gt;&amp;nbsp; liLoc: Integer;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ls1ServerName := LowerCase(FServerName);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; liLoc := Pos(':', ls1ServerName);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if liLoc = 0 then Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lsPort := Copy(ls1ServerName, liLoc + 1, Length(ls1ServerName) - liLoc);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FServerName := PChar(Copy(ls1ServerName, 1, liLoc - 1));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FServerPort := StrToIntDef(lsPort,FServerPort);&lt;br /&gt;&amp;nbsp; except&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;function TWnDownClass.FixWinINetError(AError: Integer): string;&lt;br /&gt;{var&lt;br /&gt;&amp;nbsp; I, H: Integer;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; H := GetModuleHandle('wininet.dll');&lt;br /&gt;&amp;nbsp; SetLength(Result, 256);&lt;br /&gt;&amp;nbsp; I := FormatMessage(FORMAT_MESSAGE_FROM_HMODULE, Pointer(H), AError, 0,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PChar(Result), 256, nil);&lt;br /&gt;&amp;nbsp; SetLength(Result, I);&lt;br /&gt;end; }&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; Result := 'Http Status: '+ IntToStr(AError);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;procedure TWnDownClass.HookDataReadSized;&lt;br /&gt;//var&lt;br /&gt;&amp;nbsp; //nTransPercent: Integer;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; //if IsWindow(hNotify) then&lt;br /&gt;&amp;nbsp; //begin&lt;br /&gt;&lt;br /&gt;&amp;nbsp; if Assigned(FOnDownloadProgress) then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FOnDownloadProgress(FTotal + FFileSize,FContentLength + FFileSize);&lt;br /&gt;&lt;br /&gt;&amp;nbsp; //&amp;nbsp; PostMessage(hNotify, WM_HTTPCOMM_PROGRESS, Integer(pUserData),&lt;br /&gt;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp; nTransPercent);&lt;br /&gt;&amp;nbsp; //end;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;function TWnDownClass.HttpGet(isUrl: string; iiTimeout: integer; ASecure: Boolean): boolean;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; SetLastError(0);&lt;br /&gt;&amp;nbsp; FErrInfo := '';&lt;br /&gt;&amp;nbsp; FErrorCause := wwecNil;&lt;br /&gt;&amp;nbsp; Result := False;&lt;br /&gt;&amp;nbsp; FSecure := ASecure;&lt;br /&gt;&amp;nbsp; FTimeOut := iiTimeout;&lt;br /&gt;&amp;nbsp; FTotal := 0;&lt;br /&gt;&amp;nbsp; { TODO : 不知道是否需要UTF8编码 }&lt;br /&gt;&amp;nbsp; //FEncodeUrl := isUrl;&amp;nbsp; //EncodeUrlUtf8(FEncodeUrl);&lt;br /&gt;&amp;nbsp; FEncodeUrl := HttpEncode(UTF8Encode(isUrl));&lt;br /&gt;&amp;nbsp; FVerb := 'GET';&lt;br /&gt;&amp;nbsp; FixServerInfo;&lt;br /&gt;&amp;nbsp; FixProxyServerInfo;&lt;br /&gt;&amp;nbsp; Result := OpenConnection&lt;br /&gt;&amp;nbsp; and OpenRequest&lt;br /&gt;&amp;nbsp; and ConfigureRequest&lt;br /&gt;&amp;nbsp; and PerformGet;&lt;br /&gt;&amp;nbsp; CleanUp(True);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;function TWnDownClass.OpenConnection: Boolean;&lt;br /&gt;var&lt;br /&gt;&amp;nbsp; LProxyType: DWORD;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; function WW_AttemptConnect: Boolean;&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Result := (CompareText(FServerName, 'localhost') = 0) or&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (InternetAttemptConnect(0) = ERROR_SUCCESS);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not (Result) then AssignError(wwecAttemptConnect);&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; procedure CancelMaxConnectLimite();&lt;br /&gt;&amp;nbsp; var&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; liPerServer1, liPerServer2: Integer;&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; liPerServer1 := 5;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; liPerServer2 := 10;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //INTERNET_OPTION_MAX_CONNS_PER_SERVER&amp;nbsp; 73&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InternetSetOption(nil, 73, @liPerServer1, SizeOf(Integer));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER&amp;nbsp; 74&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InternetSetOption(nil, 74, @liPerServer2, SizeOf(Integer));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; except&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; function WW_InternetOpen: Boolean;&lt;br /&gt;&amp;nbsp; var&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ltInfo: INTERNET_CONNECTED_INFO;&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FNet := InternetOpen(PChar(InnerAgent), LProxyType, PChar(FProxy), nil, 0);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Result := (FNet &amp;lt;&amp;gt; nil);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if Result then begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not FWininetStateChanged then begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //INTERNET_OPTION_CONNECTED_STATE&amp;nbsp; 50&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //取消IE的脱机状态&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ltInfo.dwConnectedState := INTERNET_STATE_CONNECTED;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ltInfo.dwFlags := 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ISO_FORCE_DISCONNECTED;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InterNetSetOption(FNet, INTERNET_OPTION_CONNECTED_STATE, @ltInfo, SizeOf(ltInfo));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; except&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //InternetSetStatusCallBack(FNet, @StatusCallBack);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //INTERNET_OPTION_HTTP_DECODING&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if InternetSetOption(FNet, 65, @Result, 1) then begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Beep;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end else begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AssignError(wwecOpen);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; function WW_InternetConnect: Boolean;&lt;br /&gt;&amp;nbsp; var&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; context: dword;&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //同步通讯设置&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; context := 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //异步通讯需要设置特定值&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //FCallBackContext.CallbackID := 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //context:=dword(@FCallBackContext);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FSession := InternetConnect(FNet, PChar(FServerName),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PortToUse(FServerPort), '', '', INTERNET_SERVICE_HTTP, 0, context);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Result := (FSession &amp;lt;&amp;gt; nil);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not (Result) then AssignError(wwecConnect);&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; Result := False;&lt;br /&gt;&amp;nbsp; if FAbort then Exit;&lt;br /&gt;&amp;nbsp; if WW_AttemptConnect then&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LProxyType := DetectProxyServer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetLastError(0);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not FWininetStateChanged then CancelMaxConnectLimite();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Result := WW_InternetOpen and WW_InternetConnect;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FWininetStateChanged := True;&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;function TWnDownClass.OpenRequest: Boolean;&lt;br /&gt;var&lt;br /&gt;&amp;nbsp; context,ATimeOut, dwFlags: DWORD;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; Result := False;&lt;br /&gt;&amp;nbsp; if FAbort then Exit;&lt;br /&gt;&amp;nbsp; context := 0;&lt;br /&gt;&amp;nbsp; if FSecure then&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FRequest := HTTPOpenRequest(FSession, PChar(FVerb),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PChar(FEncodeUrl), PChar(HttpVersion), nil, nil, INTERNET_FLAG_KEEP_CONNECTION or&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTERNET_FLAG_SECURE or SECURITY_FLAG_IGNORE_UNKNOWN_CA or&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SECURITY_FLAG_IGNORE_CERT_CN_INVALID or&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SECURITY_FLAG_IGNORE_CERT_DATE_INVALID, context);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ATimeOut := 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dwFlags := 0;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (FRequest &amp;lt;&amp;gt; nil) and&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (not InternetQueryOption(FRequest, INTERNET_OPTION_SECURITY_FLAGS,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pointer(@ATimeOut), dwFlags)) then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GetLastError;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp; end&lt;br /&gt;&amp;nbsp; else&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FRequest := HTTPOpenRequest(FSession, PChar(FVerb),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PChar(FEncodeUrl), PChar(HttpVersion), nil, nil, {Ord(FSecure) * INTERNET_FLAG_SECURE or}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTERNET_FLAG_NO_CACHE_WRITE or INTERNET_FLAG_RELOAD or&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTERNET_FLAG_KEEP_CONNECTION , context);&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp; Result := (FRequest &amp;lt;&amp;gt; nil);&lt;br /&gt;&amp;nbsp; if not (Result) then AssignError(wwecOpenRequest);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;function TWnDownClass.PerformGet: Boolean;&lt;br /&gt;var&lt;br /&gt;&amp;nbsp; AtimeOut, dwFlags: DWORD;&lt;br /&gt;&amp;nbsp; //LErr: Cardinal;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; Result := False;&lt;br /&gt;&amp;nbsp; if FAbort then Exit;&lt;br /&gt;&amp;nbsp; Result := HTTPSendRequest(FRequest, nil, 0, nil, 0);&lt;br /&gt;&amp;nbsp; //Result := HTTPSendRequest(FRequest, D_C_T, D_C_T_S, nil, 0);&lt;br /&gt;&amp;nbsp; if not (Result) then&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if GetLastError = ERROR_INTERNET_INVALID_CA then //WinInet 无效证书颁发机构错误&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ATimeOut := 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dwFlags := 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InternetQueryOption(FRequest, INTERNET_OPTION_SECURITY_FLAGS, Pointer(@ATimeOut), dwFlags);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dwFlags := dwFlags or SECURITY_FLAG_IGNORE_UNKNOWN_CA;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InternetSetOption(FRequest, INTERNET_OPTION_SECURITY_FLAGS, @dwFlags, SizeOf(Integer));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Result := HTTPSendRequest(FRequest, nil, 0, nil, 0);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AssignError(wwecExecRequest);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp; Result := FetchHeader(HTTP_QUERY_STATUS_CODE);&lt;br /&gt;&amp;nbsp; if not Result then&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AssignError(wwecStatus);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit;&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp; FStatus := StrToIntDef(FData, -1);&lt;br /&gt;&amp;nbsp; if (FStatus = HTTP_STATUS_OK) or (FStatus = HTTP_STATUS_PARTIAL_CONTENT) then&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Result := FixContentLength and FixContentType and ReadResponse;&lt;br /&gt;&amp;nbsp; end&lt;br /&gt;&amp;nbsp; else&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FErrInfo := FixWinINetError(FStatus);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AssignError(wwecStatus);&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;function TWnDownClass.PortToUse(APort: Integer): Integer;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; if APort &amp;gt; 0 then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Result := APort&lt;br /&gt;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if FSecure then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Result := INTERNET_DEFAULT_HTTPS_PORT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Result := INTERNET_DEFAULT_HTTP_PORT;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;function TWnDownClass.ReadResponse: Boolean;&lt;br /&gt;var&lt;br /&gt;&amp;nbsp; ASize, ARead: DWORD;&lt;br /&gt;&amp;nbsp; ABuffer: Pointer;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; Result := False;&lt;br /&gt;&amp;nbsp; if FAbort then Exit;&lt;br /&gt;&amp;nbsp; FResponse.Clear;&lt;br /&gt;&amp;nbsp; ASize := BUFFER_SIZE;&lt;br /&gt;&amp;nbsp; FTotal := 0;&lt;br /&gt;&amp;nbsp; ABuffer := AllocMem(ASize);&lt;br /&gt;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HookDataReadSized;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; repeat&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Result := InternetReadFile(FRequest, ABuffer, ASize, ARead);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not Result then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AssignError(wwecReadFile);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Break;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ARead &amp;gt; 0) then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FResponse.WriteBuffer(ABuffer^, ARead);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Inc(FTotal, ARead);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HookDataReadSized;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; until ((ARead = 0) or FAbort);&lt;br /&gt;&amp;nbsp; finally&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FreeMem(ABuffer, 0);&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;procedure TWnDownClass.SetAbort(const Value: Boolean);&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; FAbort := Value;&lt;br /&gt;&amp;nbsp; if FAbort then&lt;br /&gt;&amp;nbsp; begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FErrorCause := wwecAbort;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FErrInfo := 'User Download Abouted';&lt;br /&gt;&amp;nbsp; end;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;procedure TWnDownClass.SetOnDownloadProgress(const Value: TOnDownloadProgress);&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; FOnDownloadProgress := Value;&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;end.&lt;/div&gt;&lt;img src="http://www.cnblogs.com/enli/aggbug/2217204.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/enli/archive/2011/10/19/2217204.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/enli/archive/2011/08/05/2128524.html</id><title type="text">Dephi调用C#编写的WebService的一些问题与解决 （转）</title><summary type="text">转至：http://www.cnblogs.com/Equn93/archive/2010/04/27/1722070.html问题1：服务端接收的所有中文都是"?????"(乱码) 解决：设置HTTPRIO控件的HTTPRIO.HTTPWebNode.UserUTF8InHeader属性为true问题2：Dephi编写的客户端在windows2003下调用WebService提示"Access violation at address 00E59195. Write of address 00E59195" 解决：我的电脑属性-&gt;高级-&gt;性</summary><published>2011-08-05T05:19:00Z</published><updated>2011-08-05T05:19:00Z</updated><author><name>Enli</name><uri>http://www.cnblogs.com/enli/</uri></author><link rel="alternate" href="http://www.cnblogs.com/enli/archive/2011/08/05/2128524.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/enli/archive/2011/08/05/2128524.html"/><content type="html">&lt;p&gt;&lt;strong style="color: #000080"&gt;转至：&lt;a href="http://www.cnblogs.com/Equn93/archive/2010/04/27/1722070.html"&gt;http://www.cnblogs.com/Equn93/archive/2010/04/27/1722070.html&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong style="color: #000080"&gt;问题1：&lt;/strong&gt;&lt;span&gt;服务端接收的所有中文都是"?????"(乱码) &lt;br /&gt;&lt;/span&gt;解决：设置HTTPRIO控件的HTTPRIO.HTTPWebNode.UserUTF8InHeader属性为true&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000080"&gt;&lt;strong&gt;问题2：&lt;/strong&gt;&lt;/span&gt;Dephi编写的客户端在windows2003下调用WebService提示"Access violation at address 00E59195. Write of address 00E59195" &lt;br /&gt;解决：我的电脑属性-&amp;gt;高级-&amp;gt;性能-&amp;gt;设置-&amp;gt;数据执行保护。选中"只为关键 Windows 程序和服务启用数据执行保护。当然你可以选择另一个选项，并添加我们的客户端作为例外处理。有二点比较奇怪的，一、并不是每一台windows2003的机器都需要这样设置；二、有问题的2003机器使用.net写的客户端却能正常访问WebService。&lt;br /&gt;&lt;br /&gt;&lt;strong style="color: #000080"&gt;问题3：&lt;/strong&gt;从服务端得到的XML字符串，一分析就出错 &lt;br /&gt;解决：先使用WideString变量保存返回的XML字符串。再利用这个变量分析。string不能识别换行符。&lt;br /&gt;&lt;br /&gt;&lt;strong style="color: #000080"&gt;问题4：&lt;/strong&gt;服务端得到的参数都为空值&lt;br /&gt;解决：检查一下引入的WebService单元的最后三行是否如下&lt;br /&gt;initialization&lt;br /&gt;&amp;nbsp; InvRegistry.RegisterInterface(TypeInfo(YourWebServiceSoap), 'http://tempuri.org/', 'utf-8');&lt;br /&gt;&amp;nbsp; InvRegistry.RegisterDefaultSOAPAction(TypeInfo(YourWebServiceSoap), 'http://tempuri.org/%operationName%');&lt;br /&gt;&amp;nbsp; InvRegistry.RegisterInvokeOptions(TypeInfo(YourWebServiceSoap), ioDocument);//这一行有时会没有&lt;br /&gt;end.&lt;br /&gt;这一行&amp;nbsp;InvRegistry.RegisterInvokeOptions(TypeInfo(YourWebServiceSoap), ioDocument);有时候没有的。举个例子，当我们的WebService的其中一个方法有参数的类型为DataSet时，单元文件的最后几行是这样的&lt;br /&gt;initialization&lt;br /&gt;&amp;nbsp; InvRegistry.RegisterInterface(TypeInfo(YourWebServiceSoap), 'http://tempuri.org/', 'utf-8');&lt;br /&gt;&amp;nbsp; InvRegistry.RegisterDefaultSOAPAction(TypeInfo(YourWebServiceSoap), 'http://tempuri.org/%operationName%');&lt;br /&gt;&amp;nbsp; RemClassRegistry.RegisterXSClass(GetDataSetResult, 'http://tempuri.org/', GetDataSetResult);&lt;br /&gt;&amp;nbsp; RemClassRegistry.RegisterXSClass(updateSet, 'http://tempuri.org/', 'updateSet');&lt;br /&gt;end.&lt;br /&gt;这时，服务端接收到的所有参数都为null；这里你所手工在中间加入上面所提到的那一行。&lt;br /&gt;&lt;br /&gt;&lt;strong style="color: #000080"&gt;问题5：&lt;/strong&gt;服务端方法返回的DateTime，Delphi取得的时间不对。&lt;br /&gt;解决：引用后，delphi是用TXSDateTime来接收C#的DateTime变量的。TXSDateTime有两个属性AsDateTime、AsUTCDateTime都是TDateTime，也就是Delphi用的日期变量了，但这两个属性得到的时间是不对的。放断点可以观察到TXSDateTime的年、月、时各变量都是正确的，所以解决的方式是取年月时分各变量重新组合成时间变量。&lt;br /&gt;在这个过程，我碰到一个有趣的情况。看下面的C#代码&lt;/p&gt;&lt;div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /&gt;&lt;span style="color: #000000"&gt;[WebMethod(EnableSession&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;span style="color: #000000"&gt;)]&lt;br /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DateTime&amp;nbsp;MyTime()&lt;br /&gt;&lt;img id="Codehighlighter1_57_102_Open_Image" onclick="code_collapse_toggle(this);" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif"&gt;&lt;img style="display: none" id="Codehighlighter1_57_102_Closed_Image" onclick="code_collapse_toggle(this);" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif"&gt;&lt;/span&gt;&lt;span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_57_102_Closed_Text"&gt;&lt;img alt="" src="http://www.cnblogs.com/Images/dot.gif" /&gt;&lt;/span&gt;&lt;span id="Codehighlighter1_57_102_Open_Text"&gt;&lt;span style="color: #000000"&gt;{&lt;br /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DateTime&amp;nbsp;cur&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DateTime.Now;&lt;br /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;cur;&lt;br /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /&gt;&lt;br /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /&gt;[WebMethod(EnableSession&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;span style="color: #000000"&gt;)]&lt;br /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DateTime&amp;nbsp;YourTime(DateTime&amp;nbsp;pTime)&lt;br /&gt;&lt;img id="Codehighlighter1_178_206_Open_Image" onclick="code_collapse_toggle(this);" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif"&gt;&lt;img style="display: none" id="Codehighlighter1_178_206_Closed_Image" onclick="code_collapse_toggle(this);" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif"&gt;&lt;/span&gt;&lt;span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_178_206_Closed_Text"&gt;&lt;img alt="" src="http://www.cnblogs.com/Images/dot.gif" /&gt;&lt;/span&gt;&lt;span id="Codehighlighter1_178_206_Open_Text"&gt;&lt;span style="color: #000000"&gt;{&lt;br /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;pTime.AddDays(&lt;/span&gt;&lt;span style="color: #000000"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /&gt;&lt;/span&gt;&lt;/div&gt;Delphi调用后者，TXSDateTime中的AsDateTime属性保存的时间是对的。调用MyTime()，AsDateTime保存的时间就不对! 我以为AsUTCDateTime的情况可能会有所不同，但其实这里他与AsDateTime是一样的。另外，.net能不能再做些什么呢？我注意到.net的DateTime有这么一个方法ToUniversalTime；我在MyTime中尝试应用这个方法，结果更遭，delphi得到的年时分各变量的值不对了；期待AsUTCDateTime会给我惊喜，结果他还是与AsDateTime非常的一致；结果都不对。 &lt;img src="http://www.cnblogs.com/enli/aggbug/2128524.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/enli/archive/2011/08/05/2128524.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/enli/archive/2011/05/16/2047563.html</id><title type="text">关于Window的快捷方式，图标缓存的清理</title><summary type="text">在打包的时候会发现图标，总是不对，或者有时候桌面快捷方式的图标都丢失了可以用以下脚本试试，摘至（http://hi.baidu.com/shaoping007/blog/item/2393bb1e8bd8260f41341750.html）：解决：只需重组系统图标缓存 即可。 这里有个批处理很好用把下面的文字复制到文本文档，改后缀名为.bat，双击运行，okrem 关闭Windows外壳程序explorertaskkill /f /im explorer.exerem 清理系统图标缓存数据库attrib -h -s -r "%userprofile%\AppData\Local\Ic</summary><published>2011-05-16T05:42:00Z</published><updated>2011-05-16T05:42:00Z</updated><author><name>Enli</name><uri>http://www.cnblogs.com/enli/</uri></author><link rel="alternate" href="http://www.cnblogs.com/enli/archive/2011/05/16/2047563.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/enli/archive/2011/05/16/2047563.html"/><content type="html">&lt;p&gt;在打包的时候会发现图标，总是不对，或者有时候桌面快捷方式的图标都丢失了&lt;/p&gt;&lt;p&gt;可以用以下脚本试试，摘至（&lt;div&gt;http://hi.baidu.com/shaoping007/blog/item/2393bb1e8bd8260f41341750.html&lt;/div&gt;）：&lt;/p&gt;&lt;p&gt;&lt;div&gt;&lt;p&gt;解决：只需重组系统图标缓存 即可。&lt;/p&gt;  这里有个批处理很好用&lt;br /&gt;把下面的文字复制到文本文档，改后缀名为.bat，双击运行，ok&lt;br /&gt;&lt;br /&gt;rem 关闭Windows外壳程序explorer&lt;br /&gt;&lt;br /&gt;taskkill /f /im explorer.exe&lt;br /&gt;&lt;br /&gt;rem 清理系统图标缓存数据库&lt;br /&gt;&lt;br /&gt;attrib -h -s -r "%userprofile%\AppData\Local\IconCache.db"&lt;br /&gt;&lt;br /&gt;del /f "%userprofile%\AppData\Local\IconCache.db"&lt;br /&gt;&lt;br /&gt;attrib /s /d -h -s -r "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\*"&lt;br /&gt;&lt;br /&gt;del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_32.db"&lt;br /&gt;del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_96.db"&lt;br /&gt;del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_102.db"&lt;br /&gt;del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_256.db"&lt;br /&gt;del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_1024.db"&lt;br /&gt;del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_idx.db"&lt;br /&gt;del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_sr.db"&lt;br /&gt;&lt;br /&gt;rem 清理 系统托盘记忆的图标&lt;br /&gt;&lt;br /&gt;echo y|reg delete "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" /v IconStreams&lt;br /&gt;echo y|reg delete "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" /v PastIconsStream&lt;br /&gt;&lt;br /&gt;rem 重启Windows外壳程序explorer&lt;br /&gt;&lt;br /&gt;start explorer&lt;/div&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/enli/aggbug/2047563.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/enli/archive/2011/05/16/2047563.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/enli/archive/2011/05/13/2045694.html</id><title type="text">Delphi 备忘五</title><summary type="text">1. Variant和Stream的互换procedure VarToStream(var AStm: TStream; var AOvar: Olevariant);var p: Pointer;begin AStm:= TMemoryStream.Create; AStm.Position := 0; p := VarArrayLock(AOvar); AStm.Write(p^, VarArrayHighBound(AOvar, 1)); VarArrayUnlock(AOvar);end;procedure StreamToVar(var AStm: TStream; var AOva</summary><published>2011-05-13T09:08:00Z</published><updated>2011-05-13T09:08:00Z</updated><author><name>Enli</name><uri>http://www.cnblogs.com/enli/</uri></author><link rel="alternate" href="http://www.cnblogs.com/enli/archive/2011/05/13/2045694.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/enli/archive/2011/05/13/2045694.html"/><content type="html">&lt;p&gt;1.&amp;nbsp; Variant和Stream的互换&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;procedure VarToStream(var AStm: TStream; var AOvar: Olevariant);&lt;br /&gt;var&lt;br /&gt;&amp;nbsp; p: Pointer;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; AStm:= TMemoryStream.Create;&lt;br /&gt;&amp;nbsp; AStm.Position := 0;&lt;br /&gt;&amp;nbsp; p := VarArrayLock(AOvar);&lt;br /&gt;&amp;nbsp; AStm.Write(p^, VarArrayHighBound(AOvar, 1));&lt;br /&gt;&amp;nbsp; VarArrayUnlock(AOvar);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;procedure StreamToVar(var AStm: TStream; var AOvar: Olevariant);&lt;br /&gt;var&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p: Pointer;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp; AOvar := VarArrayCreate([0, AStm.Size - 1], VarByte);&lt;br /&gt;&amp;nbsp; p := VarArrayLock(AOvar);&lt;br /&gt;&amp;nbsp; AStm.ReadBuffer(p^, AStm.Size);&lt;br /&gt;&amp;nbsp; VarArrayUnlock(AOvar);&lt;br /&gt;end;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;2. 判断文件是否在用&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #008000;"&gt;{&lt;/span&gt;&lt;span style="color: #008000;"&gt;createfile里面的第三个参数为dwShareMode&amp;nbsp;，使用如下（详见createfile的API）&lt;br /&gt;[in]&amp;nbsp;The&amp;nbsp;sharing&amp;nbsp;mode&amp;nbsp;of&amp;nbsp;an&amp;nbsp;object,&amp;nbsp;which&amp;nbsp;can&amp;nbsp;be&amp;nbsp;read,&amp;nbsp;write,&amp;nbsp;both,&amp;nbsp;or&amp;nbsp;none.&amp;nbsp;&lt;br /&gt;You&amp;nbsp;cannot&amp;nbsp;request&amp;nbsp;a&amp;nbsp;sharing&amp;nbsp;mode&amp;nbsp;that&amp;nbsp;conflicts&amp;nbsp;with&amp;nbsp;the&amp;nbsp;access&amp;nbsp;mode&amp;nbsp;that&amp;nbsp;is&amp;nbsp;specified&amp;nbsp;in&amp;nbsp;an&amp;nbsp;open&amp;nbsp;request&amp;nbsp;that&amp;nbsp;has&amp;nbsp;an&amp;nbsp;open&amp;nbsp;handle,&amp;nbsp;because&amp;nbsp;that&amp;nbsp;would&amp;nbsp;result&amp;nbsp;in&amp;nbsp;the&amp;nbsp;following&amp;nbsp;sharing&amp;nbsp;violation:&amp;nbsp;ERROR_SHARING_VIOLATION).&amp;nbsp;For&amp;nbsp;more&amp;nbsp;information,&amp;nbsp;see&amp;nbsp;Creating&amp;nbsp;and&amp;nbsp;Opening&amp;nbsp;Files.&lt;br /&gt;&lt;br /&gt;If&amp;nbsp;this&amp;nbsp;parameter&amp;nbsp;is&amp;nbsp;0&amp;nbsp;(zero)&amp;nbsp;and&amp;nbsp;CreateFile&amp;nbsp;succeeds,&amp;nbsp;the&amp;nbsp;object&amp;nbsp;cannot&amp;nbsp;be&amp;nbsp;shared&amp;nbsp;and&amp;nbsp;cannot&amp;nbsp;be&amp;nbsp;opened&amp;nbsp;again&amp;nbsp;until&amp;nbsp;the&amp;nbsp;handle&amp;nbsp;is&amp;nbsp;closed.&amp;nbsp;For&amp;nbsp;more&amp;nbsp;information,&amp;nbsp;see&amp;nbsp;the&amp;nbsp;Remarks&amp;nbsp;section&amp;nbsp;of&amp;nbsp;this&amp;nbsp;topic.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;}&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;IsFileInUse(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;AFileName:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;):&amp;nbsp;Boolean;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;HFileRes:&amp;nbsp;HFILE;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;begin&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;not&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;FileExists(AFileName)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;then&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;//&lt;/span&gt;&lt;span style="color: #000000;"&gt;如果文件不存在&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;HFileRes&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;CreateFile(pchar(AFileName),&amp;nbsp;GENERIC_READ&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;or&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;GENERIC_WRITE,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000;"&gt;{&lt;/span&gt;&lt;span style="color: #008000;"&gt;this&amp;nbsp;is&amp;nbsp;the&amp;nbsp;trick!&lt;/span&gt;&lt;span style="color: #008000;"&gt;}&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;nil&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&amp;nbsp;OPEN_EXISTING,&amp;nbsp;FILE_ATTRIBUTE_NORMAL,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;(HFileRes&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;INVALID_HANDLE_VALUE);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;not&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;Result&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;then&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CloseHandle(HFileRes);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;end&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/enli/aggbug/2045694.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/enli/archive/2011/05/13/2045694.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/enli/archive/2011/04/09/2010132.html</id><title type="text">http断点续传的单元</title><summary type="text">{****************************************************************************** 文件名称： uWnDownLoadHelper.pas 文件功能： 断点续传下载线程单元 作者 ： enli--------------------------------------------------------------------------------}unituWnDownLoadHelper;interfaceusesIdHTTP,IdAuthentication,IdHeaderList,IniFiles,md5,</summary><published>2011-04-09T01:46:00Z</published><updated>2011-04-09T01:46:00Z</updated><author><name>Enli</name><uri>http://www.cnblogs.com/enli/</uri></author><link rel="alternate" href="http://www.cnblogs.com/enli/archive/2011/04/09/2010132.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/enli/archive/2011/04/09/2010132.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #0000ff"&gt;{******************************************************************************&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 文件名称： uWnDownLoadHelper.pas&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 文件功能： 断点续传下载线程单元&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 作者&amp;nbsp;&amp;nbsp;&amp;nbsp; ： enli&lt;br /&gt;--------------------------------------------------------------------------------}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #0000ff"&gt;unit&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;uWnDownLoadHelper;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;interface&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;uses&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;IdHTTP,&amp;nbsp;IdAuthentication,&amp;nbsp;IdHeaderList,&amp;nbsp;IniFiles,&amp;nbsp;md5,&lt;br /&gt;&amp;nbsp;&amp;nbsp;SysUtils,&amp;nbsp;IdAuthenticationSSPI,&amp;nbsp;IdAuthenticationDigest,&amp;nbsp;Classes,&amp;nbsp;IdException,&lt;br /&gt;&amp;nbsp;&amp;nbsp;IdSocks,&amp;nbsp;IdIOHandlerSocket,&amp;nbsp;DateUtils,&amp;nbsp;IdComponent,&amp;nbsp;Forms,ucchttpClient;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;S_TMP_POSTFIX&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;.tmp&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;S_INI_POSTFIX&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;.sni&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;type&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;TWnDownloadProgress&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;(APosition,ACount:&amp;nbsp;Int64)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;of&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;object&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;//&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;代理设置结构&lt;br /&gt;&amp;nbsp;&amp;nbsp;TWnProxySetting&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;packed&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;record&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FIsProxyEnabled:&amp;nbsp;Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FSocksVersion:&amp;nbsp;TSocksVersion;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FProxyHost:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FProxyPort:&amp;nbsp;Word;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FAuthUserName:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FAuthPassword:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FAuthDomain:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;PWnProxySetting&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;^TWnProxySetting;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;TWnDownLoadThread&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt;(TThread)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;private&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FHttp:&amp;nbsp;TCCHTTPClient;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FProxy:&amp;nbsp;TWnProxySetting;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FTarget:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FSaveFile:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FTempFile:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FProgress:&amp;nbsp;TWnDownloadProgress;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FCurrentFileSize,FFileSize&amp;nbsp;:&amp;nbsp;Int64;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FSaveLocation:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FOnLog:&amp;nbsp;TDolog;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FWarningMsg:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FReLoad:&amp;nbsp;Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;SetProxy(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value:&amp;nbsp;PWnProxySetting);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetProxy&amp;nbsp;:PWnProxySetting;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;SetHttpProxy;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;SetTarget(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;SetProgress(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value:&amp;nbsp;TWnDownloadProgress);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DoBeginWork(Sender:&amp;nbsp;TObject;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;APos,ACount:&amp;nbsp;Int64);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DoWork(Sender:&amp;nbsp;TObject;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;AWork:Int64);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DoEndWork(Sender:&amp;nbsp;TObject);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DoUpdateUI;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;SetSaveLocation(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;SaveIniFile;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DelIniFile;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DoLog(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;AMsg:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DoSycLog;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetTempFile:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;SetOnLog(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value:&amp;nbsp;TDolog);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;SetReLoad(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value:&amp;nbsp;Boolean);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Execute;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;override&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;constructor&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Create;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;destructor&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Destroy;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;override&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;chunkedConvertToFile(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ASource,ADestination:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;property&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;PProxy:PWnProxySetting&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;read&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetProxy&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;write&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;SetProxy;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;property&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Target:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;read&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FTarget&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;write&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;SetTarget;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;property&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;SaveLocation&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;read&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FSaveLocation&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;write&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;SetSaveLocation;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;property&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Progress:TWnDownloadProgress&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;read&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FProgress&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;write&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;SetProgress;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;property&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ReLoad:Boolean&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;read&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FReLoad&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;write&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;SetReLoad;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;property&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;OnLog:&amp;nbsp;TDolog&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;read&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FOnLog&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;write&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;SetOnLog;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DownLoadFile(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;AUrl,ASaveFile:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;;AProxy:PWnProxySetting;AProgress:TWnDownloadProgress;ALog:TDolog;AReLoad:Boolean);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;implementation&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DownLoadFile(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;AUrl,ASaveFile:&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;;AProxy:PWnProxySetting;AProgress:TWnDownloadProgress;ALog:TDolog;AReLoad:Boolean);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LThread:&amp;nbsp;TWnDownLoadThread;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LThread&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TWnDownLoadThread.Create;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LThread.ReLoad&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;AReLoad;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LThread.Target&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;AUrl;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LThread.SaveLocation&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ASaveFile;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LThread.PProxy&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;AProxy;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LThread.Progress&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;AProgress;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LThread.OnLog&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ALog;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LThread.Resume;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;{&lt;/span&gt;&lt;span style="color: #008000"&gt;&amp;nbsp;TWnDownLoadThread&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;}&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TWnDownLoadThread.chunkedConvertToFile(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ASource,&lt;br /&gt;&amp;nbsp;&amp;nbsp;ADestination:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LSStream,LDStream:&amp;nbsp;TFileStream;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LBuff:&amp;nbsp;Byte;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LFlag:&amp;nbsp;Boolean;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LTemp&amp;nbsp;:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;I,LCount&amp;nbsp;:&amp;nbsp;Integer;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;not&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FileExists(ASource)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FileExists(ADestination)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LSStream&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TFileStream.Create(ASource,fmOpenRead&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;LDStream&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TFileStream.Create(ADestination,fmCreate);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LSStream.Seek(&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LFlag&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;True;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;I&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;while&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;LFlag&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;do&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LSStream.Read(LBuff,SizeOf(Byte));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Inc(I);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(LBuff&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;$0A)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;and&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(I&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #800080"&gt;2&lt;/span&gt;&lt;span style="color: #000000"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;and&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(LTemp[I&lt;/span&gt;&lt;span style="color: #000000"&gt;-&lt;/span&gt;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;]&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;#$0D)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LCount&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;StrToIntDef(&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;$&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;trim(LTemp),&lt;/span&gt;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;LCount&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LCount&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Break;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;//&lt;/span&gt;&lt;span style="color: #0000ff"&gt;raise&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;异常&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;LCount&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LFlag&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;False&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LDStream.CopyFrom(LSStream,LCount);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;I&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LTemp&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;''&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LTemp&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;LTemp&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Char(LBuff);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;finally&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FreeAndNil(LSStream);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FreeAndNil(LDStream);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;constructor&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TWnDownLoadThread.Create;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;inherited&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Create(True);&lt;br /&gt;&amp;nbsp;&amp;nbsp;FreeOnTerminate&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;True;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FTarget&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;''&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FSaveFile&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;''&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;//&lt;/span&gt;&lt;span style="color: #000000"&gt;New(FProxy);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TWnDownLoadThread.DelIniFile;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;DeleteFile(FSaveLocation&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FTempFile&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;S_INI_POSTFIX);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;destructor&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TWnDownLoadThread.Destroy;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;//&lt;/span&gt;&lt;span style="color: #000000"&gt;Dispose(FProxy);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;inherited&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TWnDownLoadThread.DoBeginWork(Sender:&amp;nbsp;TObject;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;APos,ACount:&amp;nbsp;Int64);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FFileSize&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ACount;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FCurrentFileSize&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;APos&amp;nbsp;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;SaveIniFile;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Synchronize(DoUpdateUI);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TWnDownLoadThread.DoEndWork(Sender:&amp;nbsp;TObject);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FCurrentFileSize&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FFileSize;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Synchronize(DoUpdateUI);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TWnDownLoadThread.DoLog(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;AMsg:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Assigned(FOnlog)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;///&lt;/span&gt;&lt;span style="color: #000000"&gt;DoDownLoadLog(AMsg);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FWarningMsg:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;AMsg;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Synchronize(DoSycLog);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TWnDownLoadThread.DoSycLog;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnlog(FWarningMsg);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TWnDownLoadThread.DoUpdateUI;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Assigned(FProgress)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FProgress(FCurrentFileSize,FFileSize);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TWnDownLoadThread.DoWork(Sender:&amp;nbsp;TObject;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;AWork:&amp;nbsp;Int64);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FCurrentFileSize&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FCurrentFileSize&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;AWork;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Synchronize(DoUpdateUI);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TWnDownLoadThread.Execute;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LDoc,&lt;br /&gt;&amp;nbsp;&amp;nbsp;LHost,&lt;br /&gt;&amp;nbsp;&amp;nbsp;LPath,&lt;br /&gt;&amp;nbsp;&amp;nbsp;LProto,&lt;br /&gt;&amp;nbsp;&amp;nbsp;LPort,&lt;br /&gt;&amp;nbsp;&amp;nbsp;LBookmark:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Length(FTarget)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Length(FSaveLocation)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FHttp&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TCCHTTPClient.Create(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;nil&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FHttp.IOHandler&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TIdIOHandlerSocket.Create(FHttp);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FHttp.Socket.SocksInfo&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TIdSocksInfo.Create(FHttp);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FHttp.ProtocolVersion&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;uCCHTTPClient.pv1_&lt;/span&gt;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SetHttpProxy;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FHttp.OnDownloadBegin&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;DoBeginWork;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FHttp.OnDownload&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;DoWork;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FHttp.OnDownloadEnd&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DoEndWork;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FHttp.OnLog&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DoLog;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FHttp.ParseURI(FTarget,&amp;nbsp;LProto,&amp;nbsp;LHost,&amp;nbsp;LPath,&amp;nbsp;LDoc,&amp;nbsp;LPort,&amp;nbsp;LBookmark);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FSaveFile&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;LDoc;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FTempFile&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetTempFile&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;.&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;LDoc;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FReLoad&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;and&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FileExists(FSaveLocation&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FTempFile&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;S_TMP_POSTFIX)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DeleteFile(FSaveLocation&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FTempFile&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;S_TMP_POSTFIX);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DoLog(&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;下载开始请求&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FHttp.DownLoad(FTarget,FSaveLocation&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FTempFile&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;S_TMP_POSTFIX);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;except&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;on&amp;nbsp;E:Exception&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;do&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DoLog(e.Message);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FileExists(FSaveLocation&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FTempFile&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;S_INI_POSTFIX)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FileExists(FSaveLocation&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;LDoc)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DeleteFile(FSaveLocation&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;LDoc);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FHttp.Response.TransferEncoding&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;chunked&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;chunkedConvertToFile(FSaveLocation&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FTempFile&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;S_TMP_POSTFIX,FSaveLocation&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;LDoc);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DeleteFile(FSaveLocation&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FTempFile&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;S_TMP_POSTFIX);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RenameFile(FSaveLocation&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FTempFile&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;S_TMP_POSTFIX,FSaveLocation&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;LDoc);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DelIniFile;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DeleteFile(FSaveLocation&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FTempFile&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;S_TMP_POSTFIX);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;finally&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FreeAndNil(FHttp);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DoLog(&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;下载结束&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TWnDownLoadThread.GetProxy:&amp;nbsp;PWnProxySetting;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;@FProxy&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;function&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TWnDownLoadThread.GetTempFile:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Ltemp:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Ltemp&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;MD5Print(MD5String(FTarget));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;//&lt;/span&gt;&lt;span style="color: #000000"&gt;Ltemp&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;copy(Ltemp,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;2&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;length(Ltemp)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;-&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;2&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;StringReplace(Ltemp,&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;-&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;.&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,[rfReplaceAll]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TWnDownLoadThread.SaveIniFile;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;var&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LIni:TIniFile;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LIni&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TIniFile.Create(FSaveLocation&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FTempFile&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;S_INI_POSTFIX);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LIni.WriteString(&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Setup&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;URL&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,FTarget);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LIni.WriteString(&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Setup&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;SaveLocation&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,FSaveLocation);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LIni.WriteString(&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Setup&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;SaveFile&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,FSaveFile);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LIni.WriteString(&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Setup&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;TempFile&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,FTempFile);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LIni.WriteString(&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;Setup&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;FileSize&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,FloatToStr(FFileSize));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;finally&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LIni.Free;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TWnDownLoadThread.SetHttpProxy;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;not&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Assigned(FHttp)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;with&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FProxy&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;do&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FIsProxyEnabled&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FHttp.Socket.SocksInfo.Version&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FSocksVersion;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FHttp.Socket.SocksInfo.Host&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FProxyHost;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FHttp.Socket.SocksInfo.Port&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FProxyPort;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FHttp.Socket.SocksInfo.Username&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;''&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FHttp.Socket.SocksInfo.Authentication&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;saUsernamePassword&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FHttp.Socket.SocksInfo.Authentication&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;saNoAuthentication;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FHttp.AuthUsername&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FAuthUserName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FHttp.AuthPassword&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FAuthPassword;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FHttp.AuthDomain&amp;nbsp;&amp;nbsp;&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FAuthDomain;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FHttp.ProxyHost&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FProxyHost;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FHttp.ProxyPort&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FProxyPort;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TWnDownLoadThread.SetOnLog(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value:&amp;nbsp;TDolog);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FOnLog&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TWnDownLoadThread.SetProgress(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value:&amp;nbsp;TWnDownloadProgress);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FProgress&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TWnDownLoadThread.SetProxy(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value:&amp;nbsp;PWnProxySetting);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;//&lt;/span&gt;&lt;span style="color: #000000"&gt;New(FProxy);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FProxy.FIsProxyEnabled&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;Value^.FIsProxyEnabled;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FProxy.FSocksVersion&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value^.FSocksVersion;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FProxy.FProxyHost&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value^.FProxyHost;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FProxy.FProxyPort&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value^.FProxyPort;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FProxy.FAuthUserName&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value^.FAuthUserName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FProxy.FAuthPassword&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value^.FAuthPassword;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FProxy.FAuthDomain&amp;nbsp;&amp;nbsp;&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value^.FAuthDomain;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FProxy.FProxyHost&amp;nbsp;&amp;nbsp;&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value^.FProxyHost;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FProxy.FProxyPort&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value^.FProxyPort;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TWnDownLoadThread.SetReLoad(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value:&amp;nbsp;Boolean);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FReLoad&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TWnDownLoadThread.SetSaveLocation(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FSaveLocation&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FSaveLocation[Length(FSaveLocation)]&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;\&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FSaveLocation&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;FSaveLocation&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;\&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;procedure&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;TWnDownLoadThread.SetTarget(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;const&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;begin&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Length(Value)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;UpperCase(Copy(Value,&lt;/span&gt;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;/span&gt;&lt;span style="color: #800080"&gt;7&lt;/span&gt;&lt;span style="color: #000000"&gt;))&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;HTTP://&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;then&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Exit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;FTarget&amp;nbsp;:&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Value;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;end&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;font style="background-color: #f5f5f5" face="Courier New"&gt;&amp;nbsp; 备忘：&lt;a title="IdDownLoad" href="http://files.cnblogs.com/enli/IdDownLoad.rar"&gt;IdDownLoad&lt;/a&gt;&lt;/font&gt;&lt;img src="http://www.cnblogs.com/enli/aggbug/2010132.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/enli/archive/2011/04/09/2010132.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
