<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[一起奔腾 - 原创作品]]></title>
<link>http://www.17benteng.com/</link>
<description><![CDATA[IIS防盗链|防盗链软件|防SQL注入|音乐防盗链|mp3防盗链|rm防盗链|图片防盗链]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[7180001@qq.com(奔腾的心)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>一起奔腾</title>
	<url>http://www.17benteng.com/images/logos.gif</url>
	<link>http://www.17benteng.com/</link>
	<description>一起奔腾</description>
</image>

			<item>
			<link>http://www.17benteng.com/article.asp?id=80</link>
			<title><![CDATA[delphi2009Crack(for Up&#100;ate1 12.0.3197.17370)破解补丁]]></title>
			<author>7180001@qq.com(admin)</author>
			<category><![CDATA[原创作品]]></category>
			<pubDate>Fri,10 Oct 2008 09:20:20 +0800</pubDate>
			<guid>http://www.17benteng.com/default.asp?id=80</guid>
		<description><![CDATA[此程序仅适用于delphi2009 Up&#100;ate1 12.0.3197.17370<br/><br/>delphi<br/>bcb<br/>.net<br/>都可以了<br/>OK 差不多搞定!<br/>有问题再说<br/><br/>下载地址:<a href="http://www.17benteng.com/soft/delphi2009Crack_Up" target="_blank" rel="external">http://www.17benteng.com/soft/delphi2009Crack_Up</a>&#100;ate1.rar<br/><br/><img src="http://www.17benteng.com/attachments/month_0810/a2008101092046.jpg" border="0" alt=""/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.17benteng.com/article.asp?id=79</link>
			<title><![CDATA[delphi2009.RMT.Crack 破解程序]]></title>
			<author>7180001@qq.com(admin)</author>
			<category><![CDATA[原创作品]]></category>
			<pubDate>Fri,10 Oct 2008 09:12:08 +0800</pubDate>
			<guid>http://www.17benteng.com/default.asp?id=79</guid>
		<description><![CDATA[本程序仅仅适用12.0.3170.16989以及之前的版本<br/>程序下载地址<br/><a href="http://www.17benteng.com/soft/delphi2009.RMT.Crack.rar" target="_blank" rel="external">http://www.17benteng.com/soft/delphi2009.RMT.Crack.rar</a><br/><br/><img src="http://www.17benteng.com/attachments/month_0810/h200810109121.jpg" border="0" alt=""/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.17benteng.com/article.asp?id=75</link>
			<title><![CDATA[vb+api实现的http下载程序,可饶过防盗链下载文件]]></title>
			<author>7180001@qq.com(admin)</author>
			<category><![CDATA[原创作品]]></category>
			<pubDate>Wed,30 Jul 2008 17:22:22 +0800</pubDate>
			<guid>http://www.17benteng.com/default.asp?id=75</guid>
		<description><![CDATA[下面是主要实现代码,支持事件,用起来非常爽的<br/><br/>Option Explicit<br/>Private Declare Function InternetOpen Lib &#34;wininet.dll&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;Alias &#34;InternetOpenA&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;(ByVal lpszCallerName As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal dwAccessType As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszProxyName As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszProxyBypass As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal dwFlags As Long) As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>Private Declare Function InternetOpenUrl Lib &#34;wininet.dll&#34; Alias &#34;InternetOpenUrlA&#34; _<br/>&nbsp;&nbsp; (ByVal hOpen As Long, _<br/>&nbsp;&nbsp; ByVal sUrl As String, _<br/>&nbsp;&nbsp; ByVal sHeaders As String, _<br/>&nbsp;&nbsp; ByVal lLength As Long, _<br/>&nbsp;&nbsp; ByVal lFlags As Long, _<br/>&nbsp;&nbsp; ByVal lContext As Long) _<br/>&nbsp;&nbsp; As Long<br/><br/>Private Declare Function InternetConnect Lib &#34;wininet.dll&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;Alias &#34;InternetConnectA&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;(ByVal hInternetSession As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszServerName As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal nProxyPort As Integer, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszUsername As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszPassword As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal dwService As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal dwFlags As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal dwContext As Long) As Long<br/><br/>Private Declare Function InternetReadFile Lib &#34;wininet.dll&#34; _<br/>&nbsp;&nbsp; (ByVal hFile As Long, _<br/>&nbsp;&nbsp; ByRef sBuffer As Byte, _<br/>&nbsp;&nbsp; ByVal lNumBytesToRead As Long, _<br/>&nbsp;&nbsp; lNumberOfBytesRead As Long) _<br/>&nbsp;&nbsp; As Integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>Private Declare Function HttpQueryInfo Lib &#34;wininet.dll&#34; Alias &#34;HttpQueryInfoA&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;(ByVal hHttpRequest As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lInfoLevel As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal sBuffer As Any, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByRef lBufferLength As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByRef lIndex As Long) As Integer<br/><br/>Private Declare Function HttpOpenRequest Lib &#34;wininet.dll&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;Alias &#34;HttpOpenRequestA&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;(ByVal hInternetSession As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszVerb As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszObjectName As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszVersion As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszReferer As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszAcceptTypes As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal dwFlags As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal dwContext As Long) As Long<br/><br/>Private Declare Function HttpSendRequest Lib &#34;wininet.dll&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;Alias &#34;HttpSendRequestA&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;(ByVal hHttpRequest As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal sHeaders As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lHeadersLength As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal sOptional As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lOptionalLength As Long) As Boolean<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>Private Declare Function HttpAddRequestHeaders Lib &#34;wininet.dll&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;Alias &#34;HttpAddRequestHeadersA&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;(ByVal hHttpRequest As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal sHeaders As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lHeadersLength As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lModifiers As Long) As Integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>Private Declare Function InternetSetCookie Lib &#34;wininet.dll&#34; Alias &#34;InternetSetCookieA&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;(ByVal lpszUrlName As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszCookieName As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszCookieData As String) _<br/>&nbsp;&nbsp;&nbsp;&nbsp;As Boolean<br/><br/>Private Declare Function InternetGetCookie Lib &#34;wininet.dll&#34; Alias &#34;InternetGetCookieA&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;(ByVal lpszUrlName As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszCookieName As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszCookieData As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;lpdwSize As Long) _<br/>&nbsp;&nbsp;&nbsp;&nbsp;As Boolean<br/><br/>Private Declare Function InternetCloseHandle Lib &#34;wininet.dll&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;(ByVal hInternetHandle As Long) As Boolean<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>Private Declare Function Del&#101;teUrlCacheEntry Lib &#34;wininet&#34; _<br/>&nbsp;&nbsp; Alias &#34;Del&#101;teUrlCacheEntryA&#34; _<br/>&nbsp;&nbsp;(ByVal lpszUrlName As String) As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>Private Declare Function Cr&#101;ateFile Lib &#34;kernel32&#34; Alias &#34;Cr&#101;ateFileA&#34; (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long<br/>Private Declare Function CloseHandle Lib &#34;kernel32&#34; (ByVal hObject As Long) As Long<br/>Private Declare Function WriteFile Lib &#34;kernel32&#34; (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, ByVal lpOverlapped As Any) As Long<br/>Private Declare Function SetFilePointer Lib &#34;kernel32&#34; (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long<br/>Private Declare Function GetFileSize Lib &#34;kernel32&#34; (ByVal hFile As Long, lpFileSizeHigh As Long) As Long<br/>Private Declare Function GetLastError Lib &#34;kernel32&#34; () As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0<br/>Private Const INTERNET_SERVICE_HTTP = 3<br/>Private Const INTERNET_DEFAULT_HTTP_PORT = 80<br/>Private Const INTERNET_FLAG_RELOAD = &amp;H80000000<br/>Private Const HTTP_ADDREQ_FLAG_ADD = &amp;H20000000<br/>Private Const HTTP_ADDREQ_FLAG_REPLACE = &amp;H80000000<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>Private Const GWL_WNDPROC = (-4)<br/>Private Const GENERIC_WRITE = &amp;H40000000<br/>Private Const OPEN_EXISTING = 3&amp;<br/>Private Const INVALID_HANDLE_VALUE = -1&amp;<br/>Private Const Cr&#101;ate_ALWAYS = 2<br/>Private Const FILE_BEGIN = 0<br/>Private Const OPEN_ALWAYS = 4<br/><br/>Public Enum wd_Status<br/>&nbsp;&nbsp;&nbsp;&nbsp;s1 = 1&nbsp;&nbsp;&#39; 开始会话<br/>&nbsp;&nbsp;&nbsp;&nbsp;s2 = 2&nbsp;&nbsp;&#39; 连接服务器<br/>&nbsp;&nbsp;&nbsp;&nbsp;s3 = 3&nbsp;&nbsp;&#39; 发送请求<br/>&nbsp;&nbsp;&nbsp;&nbsp;s4 = 4&nbsp;&nbsp;&#39; 请求成功<br/>&nbsp;&nbsp;&nbsp;&nbsp;s5 = 5&nbsp;&nbsp;&#39; 开始接收数据<br/>&nbsp;&nbsp;&nbsp;&nbsp;s6 = 6&nbsp;&nbsp;&#39; 下载结束<br/>End Enum<br/><br/>Public Enum wd_ErrorCode<br/>&nbsp;&nbsp;&nbsp;&nbsp;e1 = 1&nbsp;&nbsp;&#39; 会话失败<br/>&nbsp;&nbsp;&nbsp;&nbsp;e2 = 2&nbsp;&nbsp;&#39; 连接服务器失败<br/>&nbsp;&nbsp;&nbsp;&nbsp;e3 = 3&nbsp;&nbsp;&#39; 发送请求失败<br/>&nbsp;&nbsp;&nbsp;&nbsp;e4 = 4&nbsp;&nbsp;&#39; 下载被中止<br/>&nbsp;&nbsp;&nbsp;&nbsp;e5 = 5&nbsp;&nbsp;&#39; 文件已经存在<br/>&nbsp;&nbsp;&nbsp;&nbsp;e6 = 6&nbsp;&nbsp;&#39; 创建目录出错<br/>&nbsp;&nbsp;&nbsp;&nbsp;e7 = 7&nbsp;&nbsp;&#39; 打开文件时出错<br/>End Enum<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>Private m_Method&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As String<br/>Private m_URL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As String<br/>Private m_Referer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As String<br/>Private m_UserAgent&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As String<br/>Private m_Cookie&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As String<br/>Private m_Charset&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As String<br/>Private m_Pakesize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Long<br/>Private m_ReDown&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Boolean<br/>Private m_Filename&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As String<br/>Private m_PostData&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As String<br/>Private m_IsUpload&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Boolean<br/><br/>Private server&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As String<br/>Private port&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Long<br/>Private script&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As String<br/><br/>Private blnDownLoad&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Boolean&nbsp;&nbsp;&#39;是否下载中<br/><br/>Private hInternetOpen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Long<br/>Private hInternetConnect&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Long<br/>Private hHttpOpenRequest&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Long<br/><br/>Private Buffer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As String<br/>Private buflen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Long<br/>Private RetQueryInfo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Boolean<br/><br/>Private dtTimerStart&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Double&nbsp;&nbsp; &#39;下载时间,用来计算速度<br/>Private TimeConsuming&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Double&nbsp;&nbsp; &#39;下载耗时<br/>Private dbSpeed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Double&nbsp;&nbsp; &#39;下载速度<br/><br/>&#39;下载库通过该事件通知文件下载进度<br/>Event Progress(ByVal dbFileSize As Double, ByVal dbFinished As Double, ByVal dbSpeed As Double)<br/>&#39;下载库通过该事件通知下载过程结束<br/>Event DownloadEnd(ByVal bSuccess As Boolean)<br/>&#39;下载库通过该函数通知下载状态<br/>Event Status(ByVal lStatus As wd_Status)<br/>&#39;下载库通过该函数通知下载过程中发生的错误<br/>Event Error(ByVal lErrorCode As wd_ErrorCode)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&#39; 返回版本信息<br/>Public Property Get Version()<br/>&nbsp;&nbsp;&nbsp;&nbsp;Version = &#34;Pentium WininetDown 1.0.0&#34;<br/>End Property<br/><br/>&#39;类初始化<br/>Private Sub Class_Initialize()<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_Method = &#34;GET&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_URL = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_Referer = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_UserAgent = &#34;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_Cookie = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_Charset = &#34;gb2312&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_Pakesize = 1024<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_ReDown = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_Filename = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_PostData = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_IsUpload = False<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;server = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;port = 80<br/>&nbsp;&nbsp;&nbsp;&nbsp;script = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;blnDownLoad = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;hInternetOpen = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;hInternetConnect = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;hHttpOpenRequest = 0<br/>End Sub<br/><br/>&#39;类注销<br/>Private Sub Class_Terminate()<br/>&nbsp;&nbsp;&nbsp;&nbsp;blnDownLoad = False<br/>End Sub<br/><br/>&#39;Method<br/>Public Property Let Method(ByVal oValue As String)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_Method = oValue<br/>End Property<br/>Public Property Get Method() As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;Method = m_Method<br/>End Property<br/><br/>&#39;URL<br/>Public Property Let URL(ByVal oValue As String)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_URL = oValue<br/>End Property<br/>Public Property Get URL() As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;URL = m_URL<br/>End Property<br/><br/>&#39;Referer<br/>Public Property Let Referer(ByVal oValue As String)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_Referer = oValue<br/>End Property<br/>Public Property Get Referer() As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;Referer = m_Referer<br/>End Property<br/><br/>&#39;UserAgent<br/>Public Property Let UserAgent(ByVal oValue As String)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_UserAgent = oValue<br/>End Property<br/>Public Property Get UserAgent() As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;UserAgent = m_UserAgent<br/>End Property<br/><br/>&#39;Cookie<br/>Public Property Let Cookie(ByVal oValue As String)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_Cookie = oValue<br/>End Property<br/>Public Property Get Cookie() As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;Cookie = m_Cookie<br/>End Property<br/><br/>&#39;设置返回字符串类型<br/>Public Property Let Charset(ByVal oValue As String)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_Charset = oValue<br/>End Property<br/>Public Property Get Charset() As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;Charset = m_Charset<br/>End Property<br/><br/>&#39;Pakesize<br/>Public Property Let Pakesize(ByVal oValue As Long)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_Pakesize = oValue<br/>End Property<br/>Public Property Get Pakesize() As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;Pakesize = m_Pakesize<br/>End Property<br/><br/>&#39;ReDown<br/>Public Property Let ReDown(ByVal oValue As Boolean)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_ReDown = oValue<br/>End Property<br/>Public Property Get ReDown() As Boolean<br/>&nbsp;&nbsp;&nbsp;&nbsp;ReDown = m_ReDown<br/>End Property<br/><br/>&#39;Filename<br/>Public Property Let Filename(ByVal oValue As String)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_Filename = oValue<br/>End Property<br/>Public Property Get Filename() As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;Filename = m_Filename<br/>End Property<br/><br/>&#39;PostData<br/>Public Property Let PostData(ByVal oValue As String)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_PostData = oValue<br/>End Property<br/>Public Property Get PostData() As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;PostData = m_PostData<br/>End Property<br/><br/>&#39; IsUpload<br/>Public Property Let IsUpload(ByVal oValue As Boolean)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_IsUpload = oValue<br/>End Property<br/>Public Property Get IsUpload() As Boolean<br/>&nbsp;&nbsp;&nbsp;&nbsp;IsUpload = m_IsUpload<br/>End Property<br/><br/>&#39; SplitCode<br/>Public Property Let SplitCode(ByVal oValue As String)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_SplitCode = oValue<br/>End Property<br/>Public Property Get SplitCode() As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;SplitCode = m_SplitCode<br/>End Property<br/><br/>&#39; 使用Adodb.Stream处理二进制数据<br/>Private Function BytesToBstr(ByVal strBody, ByVal CodeBase)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim Ados<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set Ados = Cr&#101;ateObject(&#34;Adodb.Stream&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Ados.Type = 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;Ados.Mode = 3<br/>&nbsp;&nbsp;&nbsp;&nbsp;Ados.Open<br/>&nbsp;&nbsp;&nbsp;&nbsp;Ados.Write strBody<br/>&nbsp;&nbsp;&nbsp;&nbsp;Ados.Position = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;Ados.Type = 2<br/>&nbsp;&nbsp;&nbsp;&nbsp;Ados.Charset = CodeBase<br/>&nbsp;&nbsp;&nbsp;&nbsp;BytesToBstr = Ados.ReadText<br/>&nbsp;&nbsp;&nbsp;&nbsp;Ados.Close<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set Ados = Nothing<br/>End Function<br/><br/>&#39; 分析URL<br/>Private Sub URLAnalysis()<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim bStart As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;If m_URL &lt;&gt; &#34;&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server = Replace(m_URL, &#34;<a href="http://" target="_blank" rel="external">http://</a>&#34;, &#34;&#34;, 1, -1, vbTextCompare)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bStart = InStr(server, &#34;/&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If bStart &lt;= 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;script = &#34;/&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server = server<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;script = Mid(server, bStart)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server = Mid(server, 1, bStart - 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If InStr(server, &#34;:&#34;) &gt; 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim osvr As Variant<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;osvr = Split(server, &#34;:&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server = osvr(0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;port = CLng(osvr(1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server = server<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;port = 80<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>End Sub<br/><br/>&#39; 执行下载<br/>Public Function Download() As Boolean<br/>&nbsp;&nbsp;&nbsp;&nbsp;blnDownLoad = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim bRet As Boolean<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39; 分析URL<br/>&nbsp;&nbsp;&nbsp;&nbsp;URLAnalysis<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39; 建立一个internet会话<br/>&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Status(s1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;hInternetOpen = InternetOpen(m_UserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If hInternetOpen = 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Download = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Error(e1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39; 连接服务器<br/>&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Status(s2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;hInternetConnect = InternetConnect(hInternetOpen, server, port, vbNullString, &#34;HTTP/1.0&#34;, INTERNET_SERVICE_HTTP, 0, 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If hInternetConnect = 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Download = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Error(e2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39; 发送请求下载指定文件<br/>&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Status(s3)<br/>&nbsp;&nbsp;&nbsp;&nbsp;hHttpOpenRequest = HttpOpenRequest(hInternetConnect, m_Method, script, &#34;HTTP/1.0&#34;, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If hHttpOpenRequest = 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Download = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Error(e3)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39; 请求成功<br/>&nbsp;&nbsp;&nbsp;&nbsp;Download = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Status(s4)<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim sHeader As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;If m_Referer &lt;&gt; &#34;&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sHeader = sHeader &amp; &#34;Referer: &#34; &amp; m_Referer &amp; vbCrLf<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;If UCase(m_Method) = &#34;POST&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sHeader = sHeader &amp; &#34;Content-Type: application/x-www-form-urlencoded&#34; &amp; vbCrLf<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39; 发送客户端信息<br/>&nbsp;&nbsp;&nbsp;&nbsp;bRet = HttpAddRequestHeaders(hHttpOpenRequest, sHeader, Len(sHeader), HTTP_ADDREQ_FLAG_REPLACE o&#114; HTTP_ADDREQ_FLAG_ADD)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39; 发送Cookie<br/>&nbsp;&nbsp;&nbsp;&nbsp;If m_Cookie &lt;&gt; &#34;&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InternetSetCookie m_URL, vbNullString, m_Cookie<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39; 发送数据<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;If (UCase(m_Method) = &#34;POST&#34;) And (m_PostData &lt;&gt; &#34;&#34;) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim lpszPostData As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim lPostDataLen As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpszPostData = m_PostData<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lPostDataLen = Len(lpszPostData)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bRet = HttpSendRequest(hHttpOpenRequest, vbNullString, 0, lpszPostData, lPostDataLen)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Buffer = Space$(1024)<br/>&nbsp;&nbsp;&nbsp;&nbsp;buflen = 1024<br/>&nbsp;&nbsp;&nbsp;&nbsp;RetQueryInfo = HttpQueryInfo(hHttpOpenRequest, 21, Buffer, buflen, 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If RetQueryInfo Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Buffer = Mid$(Buffer, 1, buflen)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;Debug.Print Buffer<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Buffer = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>End Function<br/><br/>&#39;退出下载<br/>Public Sub bStop()<br/>&nbsp;&nbsp;&nbsp;&nbsp;blnDownLoad = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;InternetCloseHandle hHttpOpenRequest<br/>&nbsp;&nbsp;&nbsp;&nbsp;InternetCloseHandle hInternetConnect<br/>&nbsp;&nbsp;&nbsp;&nbsp;InternetCloseHandle hInternetOpen<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Del&#101;teUrlCacheEntry m_URL<br/>End Sub<br/><br/>&#39;取得文件头<br/>Public Function GetHeader(Optional hdrName As String = vbNullString) As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;On Error Resume Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim tmp As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim tmp2 As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;If blnDownLoad = False Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHeader = &#34;0&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bStop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;If Buffer &lt;&gt; &#34;&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sel&#101;ct Case UCase$(hdrName)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case &#34;CONTENT-LENGTH&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp = InStr(Buffer, &#34;Content-Length&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp2 = Mid$(Buffer, tmp + 16, Len(Buffer))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp = InStr(tmp2, Chr$(0))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHeader = CStr(Mid$(tmp2, 1, tmp - 1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case &#34;CONTENT-TYPE&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp = InStr(Buffer, &#34;Content-Type&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp2 = Mid$(Buffer, tmp + 14, Len(Buffer))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp = InStr(tmp2, Chr$(0))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHeader = CStr(Mid$(tmp2, 1, tmp - 1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case &#34;DATE&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp = InStr(Buffer, &#34;Date&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp2 = Mid$(Buffer, tmp + 6, Len(Buffer))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp = InStr(tmp2, Chr$(0))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHeader = CStr(Mid$(tmp2, 1, tmp - 1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case &#34;LAST-MODIFIED&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp = InStr(Buffer, &#34;Last-Modified&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp2 = Mid$(Buffer, tmp + 15, Len(Buffer))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp = InStr(tmp2, Chr$(0))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHeader = CStr(Mid$(tmp2, 1, tmp - 1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case &#34;SERVER&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp = InStr(Buffer, &#34;Server&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp2 = Mid$(Buffer, tmp + 8, Len(Buffer))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp = InStr(tmp2, Chr$(0))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHeader = CStr(Mid$(tmp2, 1, tmp - 1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case vbNullString<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHeader = Buffer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHeader = &#34;0&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Sel&#101;ct<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHeader = &#34;0&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>End Function<br/><br/>&#39; 取得文件大小<br/>Public Function FileSize() As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;On Error Resume Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;FileSize = GetHeader(&#34;Content-Length&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If Err Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileSize = 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>End Function<br/><br/>&#39; 取得Cookie<br/>Public Function GetCookie(Optional ByVal CookName As String = vbNullString) As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;On Error Resume Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim sCookieVal As String * 256<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim bRet As Boolean<br/>&nbsp;&nbsp;&nbsp;&nbsp;bRet = InternetGetCookie(m_URL, CookName, sCookieVal, 255)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If bRet = False Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetCookie = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sCookieVal = Replace(sCookieVal, Chr(0), &#34;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sCookieVal = Replace(sCookieVal, Chr(10), &#34;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sCookieVal = Replace(sCookieVal, Chr(13), &#34;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetCookie = sCookieVal<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>End Function<br/><br/>&#39;取得文本<br/>Public Function DownLoadToText() As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;On Error Resume Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;If Download = False Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DownLoadToText = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim TempBody&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim sReadBuffer()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Byte<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim TatolSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Double<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim lNumberOfBytesRead&nbsp;&nbsp;As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim ReadTatols&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Double<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim bRet&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Boolean<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;DownLoadToText = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;If blnDownLoad = False Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 下载被中止<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bStop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DownLoadToText = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Error(e4)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent DownloadEnd(False)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39; 取得文件大小<br/>&nbsp;&nbsp;&nbsp;&nbsp;TatolSize = FileSize<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39; 时间开始<br/>&nbsp;&nbsp;&nbsp;&nbsp;dtTimerStart = Timer()<br/>&nbsp;&nbsp;&nbsp;&nbsp;Do While True<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReDim sReadBuffer(m_Pakesize)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bRet = InternetReadFile(hHttpOpenRequest, sReadBuffer(0), m_Pakesize, lNumberOfBytesRead)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If lNumberOfBytesRead &gt; 0 And bRet = True Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReDim Preserve sReadBuffer(0 To lNumberOfBytesRead - 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempBody = TempBody &amp; BytesToBstr(sReadBuffer, m_Charset)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReadTatols = ReadTatols + lNumberOfBytesRead<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TimeConsuming = Timer() - dtTimerStart<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If TimeConsuming &gt; 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbSpeed = ReadTatols / TimeConsuming<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 开始接收数据<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Status(s5)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 进度信息<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Progress(TatolSize, ReadTatols, dbSpeed)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Do<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DoEvents<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If blnDownLoad = False Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 下载被中止<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bStop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DownLoadToText = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Error(e4)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent DownloadEnd(False)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Do<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;Loop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;取得文本<br/>&nbsp;&nbsp;&nbsp;&nbsp;DownLoadToText = TempBody<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;If blnDownLoad = True Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;下载完成<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bStop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Status(s6)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent DownloadEnd(True)<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>End Function<br/><br/>&#39;下载到文件<br/>Public Function DownloadToFile() As Boolean<br/>&nbsp;&nbsp;&nbsp;&nbsp;On Error Resume Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;If Download = False Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DownloadToFile = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim sReadBuffer()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Byte<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim TatolSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Double<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim lNumberOfBytesRead&nbsp;&nbsp;As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim ReadTatols&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Double<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim bRet&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Boolean<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim FileHandle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;文件操作句柄<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;If blnDownLoad = False Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 下载被中止<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bStop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DownloadToFile = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Error(e4)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent DownloadEnd(False)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39; 取得文件大小<br/>&nbsp;&nbsp;&nbsp;&nbsp;TatolSize = FileSize<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;文件存在<br/>&nbsp;&nbsp;&nbsp;&nbsp;If Len(Dir$(m_Filename)) = TatolSize Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If m_ReDown = False Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 文件已经存在<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bStop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DownloadToFile = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Error(e5)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent DownloadEnd(False)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 删除<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kill Filename<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 删除<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kill Filename<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;If CheckFolder(m_Filename) = True Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileHandle = Cr&#101;ateFile(m_Filename, GENERIC_WRITE, 0, ByVal 0&amp;, OPEN_ALWAYS, 0, ByVal 0&amp;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 创建目录出错<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bStop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DownloadToFile = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Error(e6)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent DownloadEnd(False)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;If Err Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Err.Clear<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;关闭文件<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CloseHandle FileHandle<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 打开文件时出错<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bStop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DownloadToFile = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Error(e7)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent DownloadEnd(False)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;设定写入位置<br/>&nbsp;&nbsp;&nbsp;&nbsp;SetFilePointer FileHandle, 0, ByVal 0&amp;, FILE_BEGIN<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39; 时间开始<br/>&nbsp;&nbsp;&nbsp;&nbsp;dtTimerStart = Timer()<br/>&nbsp;&nbsp;&nbsp;&nbsp;Do While True<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReDim sReadBuffer(m_Pakesize)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bRet = InternetReadFile(hHttpOpenRequest, sReadBuffer(0), m_Pakesize, lNumberOfBytesRead)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If lNumberOfBytesRead &gt; 0 And bRet = True Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReDim Preserve sReadBuffer(0 To lNumberOfBytesRead - 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReadTatols = ReadTatols + lNumberOfBytesRead<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim Ret As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WriteFile FileHandle, sReadBuffer(0), lNumberOfBytesRead, Ret, ByVal 0&amp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TimeConsuming = Timer() - dtTimerStart<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If TimeConsuming &gt; 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbSpeed = ReadTatols / TimeConsuming<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 开始接收数据<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Status(s5)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 进度信息<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Progress(TatolSize, ReadTatols, dbSpeed)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Do<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DoEvents<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If blnDownLoad = False Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 下载被中止<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bStop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DownloadToFile = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Error(e4)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent DownloadEnd(False)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Do<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;Loop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;关闭文件<br/>&nbsp;&nbsp;&nbsp;&nbsp;CloseHandle FileHandle<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;If blnDownLoad = True Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;下载完成<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bStop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DownloadToFile = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Status(s6)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent DownloadEnd(True)<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>End Function<br/><br/><br/>下载地址:<br/><a href="http://17benteng.com/Codes/vb/WininetDown.rar" target="_blank" rel="external">http://17benteng.com/Codes/vb/WininetDown.rar</a><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.17benteng.com/article.asp?id=74</link>
			<title><![CDATA[用vb写的一个sniffer,抓包程序]]></title>
			<author>7180001@qq.com(admin)</author>
			<category><![CDATA[原创作品]]></category>
			<pubDate>Wed,30 Jul 2008 17:13:45 +0800</pubDate>
			<guid>http://www.17benteng.com/default.asp?id=74</guid>
		<description><![CDATA[很久以前的东西了,打开后点一下按扭会在程序所在文件夹下生成一个1.txt文件,用来存放抓包的数据<br/><br/><br/>下载地址<br/><a target="_blank" href="http://17benteng.com/Codes/vb/Benteng_Sniffer2.rar" rel="external">http://17benteng.com/Codes/vb/Benteng_Sniffer2.rar</a>]]></description>
		</item>
		
			<item>
			<link>http://www.17benteng.com/article.asp?id=73</link>
			<title><![CDATA[一个修改wma,mp3标签的vb程序,含源码]]></title>
			<author>7180001@qq.com(admin)</author>
			<category><![CDATA[原创作品]]></category>
			<pubDate>Wed,30 Jul 2008 17:07:16 +0800</pubDate>
			<guid>http://www.17benteng.com/default.asp?id=73</guid>
		<description><![CDATA[<br/>可修改<br/>Title,Artist,Album,Writer,Composer,Lyrics,Description<br/><br/>Title<br/>Artist<br/>Album<br/>Writer<br/>Composer<br/>Lyrics<br/>Description<br/><br/>WM/WMADRCPeakReference<br/>WM/WMADRCAverageReference<br/>WM/Lyrics_Synchronised<br/>WM/Year<br/>WM/PromotionURL<br/>WM/GenreID<br/>WM/Track<br/>WM/AlbumCoverURL<br/>WM/Publisher<br/>WM/Publisher<br/>WM/ContentGroupDescription<br/>WM/SubTitle<br/>WM/AlbumTitle<br/>WM/OriginalAlbumTitle<br/>WM/Genre<br/>WM/Mood<br/>WM/TrackNumber<br/>WM/PartOfSet<br/>WM/AlbumArtist<br/>WM/Conductor<br/>WM/OriginalArtist<br/>WM/Writer<br/>WM/OriginalLyricist<br/>WM/Composer<br/>WM/AudioFileURL<br/>WM/AuthorURL<br/>WM/AudioSourceURL<br/>WM/Lyrics<br/><br/>等等...<br/>下载地址<br/><a target="_blank" href="http://17benteng.com/Codes/vb/修改Wma信息.rar" rel="external">http://17benteng.com/Codes/vb/修改Wma信息.rar</a><br/><br/>要记得引用WindowsMediaPlayer控件]]></description>
		</item>
		
			<item>
			<link>http://www.17benteng.com/article.asp?id=72</link>
			<title><![CDATA[一个以前为公司做的Ping测试工具,可以实时监控服务器]]></title>
			<author>7180001@qq.com(admin)</author>
			<category><![CDATA[原创作品]]></category>
			<pubDate>Wed,30 Jul 2008 16:49:23 +0800</pubDate>
			<guid>http://www.17benteng.com/default.asp?id=72</guid>
		<description><![CDATA[<img src="http://www.17benteng.com/attachments/month_0807/t2008730164754.jpg" border="0" alt=""/><br/><br/>下载地址<br/><br/><a target="_blank" href="http://17benteng.com/soft/NetPingEx.rar" rel="external">http://17benteng.com/soft/NetPingEx.rar</a>]]></description>
		</item>
		
			<item>
			<link>http://www.17benteng.com/article.asp?id=64</link>
			<title><![CDATA[js,javascript同步Import,同步调用外部js]]></title>
			<author>7180001@qq.com(admin)</author>
			<category><![CDATA[原创作品]]></category>
			<pubDate>Mon,07 Jul 2008 11:02:49 +0800</pubDate>
			<guid>http://www.17benteng.com/default.asp?id=64</guid>
		<description><![CDATA[Import.js<br/>========================================<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code89280);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.17benteng.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code89280><br/>&lt;!--<br/>(function(){<br/>&nbsp;&nbsp;&#160;&#160;&#160;&#160;if(typeof window._Import != &#34;undefined&#34;) return; //防止多次加载<br/>&nbsp;&nbsp;&#160;&#160;&#160;&#160;<br/>&nbsp;&nbsp;&#160;&#160;&#160;&#160;function _Import(uri, x) {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var f = arguments.callee.caller;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(typeof f == &#34;function&#34;) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var IsIE = (navigator.userAgent.indexOf(&#34;MSIE&#34;) == -1)? false : true;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var scriptEle = document.getElementsByTagName(&#34;head&#34;)[0].appendChild(document.cr&#101;ateElement(&#34;script&#34;));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scriptEle.type = &#34;text/javascript&#34;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scriptEle.src = uri;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (x)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (IsIE) {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scriptEle.onreadystatechange = x;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;scriptEle.onload = x;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&nbsp;&nbsp;&#160;&#160;&#160;&#160;}<br/><br/>&#160;&#160;&#160;&#160;window._Import = _Import;<br/>})();<br/>//--&gt;<br/></div></div><br/><br/>a.js<br/>========================================<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code20255);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.17benteng.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code20255><br/>var a = &#34;abcdefg===&#34;;<br/></div></div><br/><br/>调用<br/>========================================<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code27328);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.17benteng.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code27328><br/>&lt;html&gt;<br/>&lt;head&gt;<br/>&lt;title&gt;-&lt;/title&gt;<br/>&lt;/head&gt;<br/>&lt;body&gt;<br/>&lt;script type=&#34;text/javascript&#34; src=&#34;Import.js&#34;&gt;&lt;/script&gt;<br/>&lt;script type=&#34;text/javascript&#34;&gt;<br/>(function(){<br/>&#160;&#160;&#160;&#160;function callback()<br/>&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(/loaded/.test(this.readyState))<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;alert(a);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;}<br/><br/>&#160;&#160;&#160;&#160;_Import(&#34;<a href="http://www.17benteng.com/Codes/Import/a.js" target="_blank" rel="external">http://www.17benteng.com/Codes/Import/a.js</a>&#34;, callback)<br/>})()<br/>&lt;/script&gt;<br/>&lt;/body&gt;&lt;/html&gt;<br/></div></div><br/><br/>演示<br/>========================================<br/><a target="_blank" href="http://17benteng.com/Codes/Import/a.html" rel="external">http://17benteng.com/Codes/Import/a.html</a><br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.17benteng.com/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp30937">
<html>
<head>
<title>-</title>
</head>
<body>
<script type=&#34;text/javascript&#34; src=&#34;Codes/Import/Import.js&#34;></script>
<script type=&#34;text/javascript&#34;>
(function(){
	function callback()
	{
		if(/loaded/.test(this.readyState))
		{
			alert(a);
		}
	}

	_Import(&#34;Codes/Import/a.js&#34;, callback)
})()
</script>
</body></html>
</TEXTAREA><br/><INPUT onclick="runEx('temp30937')"  type="button" class="userbutton" value="运行此代码"/> <INPUT onclick="doCopy('temp30937')"  type="button" class="userbutton" value="复制此代码"/> <INPUT onclick="saveCode('temp30937')" type="button" class="userbutton" value="保存此代码"><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.17benteng.com/article.asp?id=2</link>
			<title><![CDATA[完美Ajax类,支持事件响应,支持容器响应,支持多种操作方式,兼容ie,ff]]></title>
			<author>7180001@qq.com(admin)</author>
			<category><![CDATA[原创作品]]></category>
			<pubDate>Wed,25 Jun 2008 15:53:01 +0800</pubDate>
			<guid>http://www.17benteng.com/default.asp?id=2</guid>
		<description><![CDATA[<p>演示<a href="http://www.cctvs.net/AjaxDemo/" target="_blank">http://www.cctvs.net/AjaxDemo/</a></p>
<p>下载<a href="http://www.cctvs.net/AjaxDemo/AjaxDemo.rar" target="_blank">http://www.cctvs.net/AjaxDemo/AjaxDemo.rar</a></p>
<p>&nbsp;</p>
<p><a href="http://benteng.hzwe.com/attachments/month_0806/e2008625154945.rar"><img style="MARGIN: 0px 2px -4px 0px" alt="" src="http://benteng.hzwe.com/images/download.gif" border="0" />点击下载此文件</a></p>
<p>&nbsp;</p>
<p>&lt;!--<br />// author:奔腾的心<br />//&nbsp;&nbsp;&nbsp;&nbsp; qq:7180001 <br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2007-01-07</p>
<p>function Ajax(args)<br />{<br />&nbsp;// 是否为IE<br />&nbsp;this.IsIE&nbsp;&nbsp;= false;<br />&nbsp;// 信息显示对像ID<br />&nbsp;this.MsgID&nbsp;&nbsp;= &quot;MsgBox_&quot;;<br />&nbsp;this.MsgIDOpacity&nbsp;= 100;<br />&nbsp;// 错误字符串<br />&nbsp;this.ErrorStr &nbsp;&nbsp;= null;<br />&nbsp;// 错误事件驱动,当发生错误时触发<br />&nbsp;this.OnError &nbsp;&nbsp;= null;<br />&nbsp;// 状态事件驱动,当状态改变时触发<br />&nbsp;this.OnState &nbsp;&nbsp;= null;<br />&nbsp;// 完成事件驱动,当类操作完成时触发<br />&nbsp;this.OnDownloadEnd &nbsp;= null;</p>
<p>&nbsp;// 错误显示容器<br />&nbsp;this.OnErrorOBJ&nbsp;&nbsp;= null;<br />&nbsp;// 状态显示容器<br />&nbsp;this.OnStateOBJ &nbsp;= null;<br />&nbsp;// 完成显示容器<br />&nbsp;this.OnDownloadEndOBJ &nbsp;= null;</p>
<p>&nbsp;// XMLHTTP 发送数据类型 GET 或 POST<br />&nbsp;this.method&nbsp;&nbsp;= &quot;GET&quot;;<br />&nbsp;// 将要获取的URL地址<br />&nbsp;this.URL&nbsp;&nbsp;= null;<br />&nbsp;// 指定同步或异步读取方式(true 为异步,false 为同步)<br />&nbsp;this.Sync&nbsp;&nbsp;= true;<br />&nbsp;// 当method 为 POST 时 所要发送的数据<br />&nbsp;this.PostData&nbsp;&nbsp;= null<br />&nbsp;// 页面编码<br />&nbsp;this.Charset&nbsp;&nbsp;= &quot;utf-8&quot;;<br />&nbsp;// 返回读取完成后的数据<br />&nbsp;this.RetData &nbsp;&nbsp;= null;</p>
<p>&nbsp;// 创建XMLHTTP对像<br />&nbsp;this.HttpObj &nbsp;&nbsp;= this.createXMLHttpRequest();<br />&nbsp;if(this.HttpObj == null)<br />&nbsp;{<br />&nbsp;&nbsp;// 对像创建失败时中止运行<br />&nbsp;&nbsp;return;<br />&nbsp;}</p>
<p>&nbsp;if(navigator.userAgent.indexOf('MSIE')!==-1)<br />&nbsp;{<br />&nbsp;&nbsp;this.IsIE = true;<br />&nbsp;}</p>
<p>&nbsp;// 获取参数<br />&nbsp;if(args)<br />&nbsp;{<br />&nbsp;&nbsp;var iargs = eval(args);<br />&nbsp;&nbsp;// 获取事件与事件容器<br />&nbsp;&nbsp;if(iargs.Events)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;// 获取OnError事件<br />&nbsp;&nbsp;&nbsp;if(iargs.Events[0].OnError)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;this.OnError&nbsp;&nbsp;= iargs.Events[0].OnError;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;// 获取OnState事件<br />&nbsp;&nbsp;&nbsp;if(iargs.Events[0].OnState)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;this.OnState&nbsp;&nbsp;= iargs.Events[0].OnState;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;// 获取OnDownloadEnd事件<br />&nbsp;&nbsp;&nbsp;if(iargs.Events[0].OnDownloadEnd)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;this.OnDownloadEnd&nbsp;= iargs.Events[0].OnDownloadEnd;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;// 获取容器<br />&nbsp;&nbsp;if(iargs.Vessels)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;// 获取Error容器<br />&nbsp;&nbsp;&nbsp;if(document.getElementById(iargs.Vessels[0].OnErrorOBJ))<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;this.OnErrorOBJ &nbsp;= document.getElementById(iargs.Vessels[0].OnErrorOBJ);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;// 获取State容器<br />&nbsp;&nbsp;&nbsp;if(document.getElementById(iargs.Vessels[0].OnStateOBJ))<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;this.OnStateOBJ &nbsp;= document.getElementById(iargs.Vessels[0].OnStateOBJ);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;// 获取DownloadEnd容器<br />&nbsp;&nbsp;&nbsp;if(document.getElementById(iargs.Vessels[0].OnDownloadEndOBJ))<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;this.OnDownloadEndOBJ&nbsp;= document.getElementById(iargs.Vessels[0].OnDownloadEndOBJ);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}</p>
<p><br />&nbsp;&nbsp;// 获取请求参数<br />&nbsp;&nbsp;if(iargs.Sender)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;if(iargs.Sender[0].Method)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;this.method&nbsp;= iargs.Sender[0].Method;<br />&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;if(iargs.Sender[0].URL)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;this.URL&nbsp;= iargs.Sender[0].URL;<br />&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;if(iargs.Sender[0].Sync)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;this.Sync&nbsp;= iargs.Sender[0].Sync;<br />&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;if(iargs.Sender[0].PostData)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;this.PostData&nbsp;= iargs.Sender[0].PostData;<br />&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;if(iargs.Sender[0].Charset)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;this.Charset&nbsp;= iargs.Sender[0].Charset;<br />&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;if(this.URL!==&quot;&quot;)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;this.send();<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}</p>
<p>&nbsp;}</p>
<p>&nbsp;var Obj = this;<br />&nbsp;// 调用事件检测<br />&nbsp;this.HttpObj.onreadystatechange = function()<br />&nbsp;{<br />&nbsp;&nbsp;Ajax.handleStateChange(Obj);<br />&nbsp;}<br />}</p>
<p>// 信息显示<br />Ajax.prototype.MsgBox = function(strMsg)<br />{<br />&nbsp;var Msg = &quot;&lt;table id=\&quot;&quot;+ this.MsgID +&quot;\&quot; style=\&quot;width: 100%;height: 100%;background-color: #ffffff;border: 0px solid #a9a9a9;color: #c0c0c0;font-size:12px;text-align: center;filter:alpha(opacity=100);\&quot;&gt;&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp; Msg+= &quot;&lt;tr&gt;&lt;td align=\&quot;center\&quot;&gt;&quot;+ strMsg + &quot;&lt;/td&gt;&lt;/tr&gt;&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp; Msg+= &quot;&lt;/table&gt;&quot;;</p>
<p>&nbsp;return Msg;<br />}</p>
<p>// UTF 转入 GB (by:Rimifon)<br />Ajax.prototype.UTFTOGB = function(strBody)<br />{<br />&nbsp;var Rec=new ActiveXObject(&quot;ADODB.RecordSet&quot;);<br />&nbsp;Rec.Fields.Append(&quot;DDD&quot;,201,1);<br />&nbsp;Rec.Open();<br />&nbsp;Rec.AddNew();<br />&nbsp;Rec(0).AppendChunk(strBody);<br />&nbsp;Rec.Update();<br />&nbsp;var HTML=Rec(0).Value;<br />&nbsp;Rec.Close();<br />&nbsp;delete Rec;<br />&nbsp;return(HTML);<br />}</p>
<p>// 创建XMLHTTP对像<br />Ajax.prototype.createXMLHttpRequest = function()<br />{<br />&nbsp;if (window.XMLHttpRequest) <br />&nbsp;{ <br />&nbsp;&nbsp;//Mozilla 浏览器<br />&nbsp;&nbsp;return new XMLHttpRequest();<br />&nbsp;}<br />&nbsp;else if (window.ActiveXObject)<br />&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;var msxmls = new Array('Msxml2.XMLHTTP.5.0','Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0','Msxml2.XMLHTTP','Microsoft.XMLHTTP');<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;for (var i = 0; i &lt; msxmls.length; i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;try <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;return new ActiveXObject(msxmls[i]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;}catch (e){}</p>
<p>&nbsp;&nbsp;}<br />&nbsp;}<br />&nbsp;&nbsp;&nbsp; &nbsp;return null;<br />}</p>
<p>// 发送HTTP请求<br />Ajax.prototype.send = function()<br />{</p>
<p>&nbsp;this.MsgID = this.MsgID + ((new Date()).getTime()).toString();</p>
<p>&nbsp;if(this.HttpObj == null)<br />&nbsp;{<br />&nbsp;&nbsp;// 对像创建失败时中止运行<br />&nbsp;&nbsp;this.ErrorStr = &quot;你的浏览器不支持XMLHttpRequest对象．&quot;<br />&nbsp;&nbsp;// 响应到错误事件<br />&nbsp;&nbsp;if(this.OnError)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;this.OnError(this.ErrorStr);<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;// 响应到错误容器<br />&nbsp;&nbsp;if(this.OnErrorOBJ)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;this.OnErrorOBJ.innerHTML = this.MsgBox(this.ErrorStr);<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;return;<br />&nbsp;}</p>
<p>&nbsp;if (this.HttpObj !== null)<br />&nbsp;{<br />&nbsp;&nbsp;if(this.URL.indexOf(&quot;?&quot;) != -1)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;this.URL = this.URL + &quot;&amp;t=&quot; + new Date().getTime();<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;else<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;this.URL = this.URL + &quot;?t=&quot; + new Date().getTime();<br />&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;this.HttpObj.open(this.method, this.URL, this.Sync);<br />&nbsp;&nbsp;if(this.HttpObj.overrideMimeType)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;this.HttpObj.overrideMimeType(&quot;text/html;charset=&quot; + this.Charset + &quot;;&quot;);<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;if(this.method.toLocaleUpperCase() == &quot;GET&quot;)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;this.HttpObj.send(null);<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;else if(this.method.toLocaleUpperCase() == &quot;POST&quot;)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;this.HttpObj.setRequestHeader(&quot;Content-Type&quot;,&quot;application/x-www-form-urlencoded&quot;);<br />&nbsp;&nbsp;&nbsp;this.HttpObj.send(this.PostData);<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;else<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;this.ErrorStr = &quot;错误的[method]命令．&quot;<br />&nbsp;&nbsp;&nbsp;// 响应到错误事件<br />&nbsp;&nbsp;&nbsp;if(this.OnError)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;this.OnError(this.ErrorStr);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;// 响应到错误容器<br />&nbsp;&nbsp;&nbsp;if(this.OnErrorOBJ)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;this.OnErrorOBJ.style.display = &quot;block&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;this.OnErrorOBJ.innerHTML = this.MsgBox(this.ErrorStr);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;return;<br />&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;var StateStr = this.GetState(this.HttpObj.readyState);</p>
<p>&nbsp;&nbsp;// 响应到状态事件<br />&nbsp;&nbsp;if(this.OnState)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;this.OnState(StateStr);<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;// 响应到状态容器<br />&nbsp;&nbsp;if(this.OnStateOBJ)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;this.OnStateOBJ.style.display = &quot;block&quot;;<br />&nbsp;&nbsp;&nbsp;this.OnStateOBJ.innerHTML = this.MsgBox(StateStr);<br />&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;if (this.HttpObj.readyState == 4)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;// 判断对象状态<br />&nbsp;&nbsp;&nbsp;if (this.HttpObj.status == 200) <br />&nbsp;&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;if(this.IsIE==true)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.RetData = this.UTFTOGB(this.HttpObj.responseBody);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.RetData = this.HttpObj.responseText;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;// 响应到DownloadEnd事件<br />&nbsp;&nbsp;&nbsp;&nbsp;if(this.OnDownloadEnd)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.OnDownloadEnd(this.RetData);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;// 响应到DownloadEnd容器<br />&nbsp;&nbsp;&nbsp;&nbsp;if(this.OnDownloadEndOBJ)<br />&nbsp;&nbsp;&nbsp;&nbsp;{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.OnErrorOBJ.style.display = &quot;none&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.OnStateOBJ.style.display = &quot;none&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.OnDownloadEndOBJ.style.display = &quot;block&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.OnDownloadEndOBJ.innerHTML = Obj.RetData;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br />&nbsp;&nbsp;&nbsp;else <br />&nbsp;&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;&nbsp;this.ErrorStr = &quot;您所请求的页面有异常．&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;// 响应到错误事件<br />&nbsp;&nbsp;&nbsp;&nbsp;if(this.OnError)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.OnError(this.ErrorStr);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;// 响应到错误容器<br />&nbsp;&nbsp;&nbsp;&nbsp;if(this.OnErrorOBJ)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.OnErrorOBJ.style.display = &quot;block&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.OnErrorOBJ.innerHTML = Obj.MsgBox(Obj.ErrorStr);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;return;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}</p>
<p>&nbsp;}</p>
<p>}</p>
<p>// 取得状态<br />Ajax.prototype.GetState = function(State)<br />{<br />&nbsp;var StateValue = null;<br />&nbsp;switch (State)<br />&nbsp;{<br />&nbsp;&nbsp; &nbsp;&nbsp;case 0:<br />&nbsp;&nbsp;StateValue = &quot;未初始化...&quot;;<br />&nbsp;&nbsp;break;</p>
<p>&nbsp;&nbsp; &nbsp;&nbsp;case 1:<br />&nbsp;&nbsp;StateValue = &quot;开始读取数据...&quot;;<br />&nbsp;&nbsp;break;</p>
<p>&nbsp;&nbsp; &nbsp;&nbsp;case 2:<br />&nbsp;&nbsp;StateValue = &quot;已开始读取数据...&quot;;<br />&nbsp;&nbsp;break;</p>
<p>&nbsp;&nbsp; &nbsp;&nbsp;case 3:<br />&nbsp;&nbsp;StateValue = &quot;读取数据中...&quot;;<br />&nbsp;&nbsp;break;</p>
<p>&nbsp;&nbsp; &nbsp;&nbsp;case 4:<br />&nbsp;&nbsp;StateValue = &quot;读取完成...&quot;;<br />&nbsp;&nbsp;break;</p>
<p>&nbsp;&nbsp; &nbsp;&nbsp;default: <br />&nbsp;&nbsp;StateValue = &quot;未初始化...&quot;;<br />&nbsp;&nbsp;break;<br />&nbsp;}<br />&nbsp;return (StateValue);<br />}</p>
<p>// 事件检测<br />Ajax.handleStateChange = function(Obj)<br />{<br />&nbsp;var StateStr = Obj.GetState(Obj.HttpObj.readyState);<br />&nbsp;// 响应到状态事件<br />&nbsp;if(Obj.OnState)<br />&nbsp;{<br />&nbsp;&nbsp;Obj.OnState(StateStr);<br />&nbsp;}<br />&nbsp;// 响应到状态容器<br />&nbsp;if(Obj.OnStateOBJ)<br />&nbsp;{<br />&nbsp;&nbsp;Obj.OnStateOBJ.style.display = &quot;block&quot;;<br />&nbsp;&nbsp;Obj.OnStateOBJ.innerHTML = Obj.MsgBox(StateStr);<br />&nbsp;}</p>
<p>&nbsp;if (Obj.HttpObj.readyState == 4)<br />&nbsp;{<br />&nbsp;&nbsp;// 判断对象状态<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;if (Obj.HttpObj.status == 200) <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br />&nbsp;&nbsp;&nbsp;if(Obj.IsIE==true&amp;&amp;Obj.Charset.toLowerCase()=='gb2312')<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;Obj.RetData = Obj.UTFTOGB(Obj.HttpObj.responseBody);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;Obj.RetData = Obj.HttpObj.responseText;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;// 响应到DownloadEnd事件<br />&nbsp;&nbsp;&nbsp;if(Obj.OnDownloadEnd)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;Obj.OnDownloadEnd(Obj.RetData);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;// 响应到DownloadEnd容器<br />&nbsp;&nbsp;&nbsp;if(Obj.OnDownloadEndOBJ)<br />&nbsp;&nbsp;&nbsp;{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;Obj.OnErrorOBJ.style.display = &quot;none&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;Obj.OnStateOBJ.style.display = &quot;none&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;Obj.OnDownloadEndOBJ.style.display = &quot;block&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;Obj.OnDownloadEndOBJ.innerHTML = Obj.RetData;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;else <br />&nbsp;&nbsp;{ <br />&nbsp;&nbsp;&nbsp;Obj.ErrorStr = &quot;您所请求的页面有异常．&quot;<br />&nbsp;&nbsp;&nbsp;// 响应到错误事件<br />&nbsp;&nbsp;&nbsp;if(Obj.OnError)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;Obj.OnError(Obj.ErrorStr);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;// 响应到错误容器<br />&nbsp;&nbsp;&nbsp;if(Obj.OnErrorOBJ)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;Obj.OnErrorOBJ.style.display = &quot;block&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;Obj.OnErrorOBJ.innerHTML = Obj.MsgBox(Obj.ErrorStr);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;return;<br />&nbsp;&nbsp;}<br />&nbsp;}<br />}<br />//--&gt;</p>
<p>完美Ajax类使用方法1</p>
<p>&lt;Script Language=&quot;JavaScript&quot; src=&quot;Ajax.js&quot;&gt;&lt;/Script&gt;<br />&lt;Script Language=&quot;JavaScript&quot;&gt;<br />&lt;!--</p>
<p>// 错误回调事件函数<br />function EventError(strValue)<br />{<br />&nbsp;document.getElementById(&quot;Events&quot;).value = strValue;<br />}</p>
<p>// 状态回调事件函数<br />function EventState(strValue)<br />{<br />&nbsp;document.getElementById(&quot;Events&quot;).value = strValue;<br />}</p>
<p>// 完成回调事件函数<br />function EventDownloadEnd(strValue)<br />{<br />&nbsp;document.getElementById(&quot;Events&quot;).value = strValue;<br />}</p>
<p><br />var Args = {<br />&nbsp;&nbsp;&quot;Events&quot;: [{&quot;OnError&quot;: EventError, &quot;OnState&quot;: EventState, &quot;OnDownloadEnd&quot;: EventDownloadEnd}],<br />&nbsp;&nbsp;&quot;Sender&quot;: [{&quot;Method&quot;: &quot;GET&quot;, &quot;URL&quot;: &quot;<a href="http://www.cctvs.net">http://www.cctvs.net</a>&quot;, &quot;Sync&quot;: true, &quot;PostData&quot;: null, &quot;Charset&quot;: &quot;gb2312&quot;}]<br />}</p>
<p>var A = new Ajax(Args);<br />//--&gt;<br />&lt;/Script&gt;</p>
<p>完美Ajax类使用方法2</p>
<p>&lt;Script Language=&quot;JavaScript&quot; src=&quot;Ajax.js&quot;&gt;&lt;/Script&gt;<br />&lt;Script Language=&quot;JavaScript&quot;&gt;<br />&lt;!--</p>
<p>// 错误回调事件函数<br />function EventError(strValue)<br />{<br />&nbsp;document.getElementById(&quot;Events&quot;).value = strValue;<br />}</p>
<p>// 状态回调事件函数<br />function EventState(strValue)<br />{<br />&nbsp;document.getElementById(&quot;Events&quot;).value = strValue;<br />}</p>
<p>// 完成回调事件函数<br />function EventDownloadEnd(strValue)<br />{<br />&nbsp;document.getElementById(&quot;Events&quot;).value = strValue;<br />}</p>
<p><br />var A = new Ajax();<br />// 指定错误事件<br />A.OnError &nbsp;= EventError;<br />// 指定状态事件<br />A.OnState &nbsp;= EventState;<br />// 指定完成事件<br />A.OnDownloadEnd = EventDownloadEnd;</p>
<p>// 指定错误容器<br />A.OnErrorOBJ &nbsp;&nbsp;= document.getElementById(&quot;Vessels&quot;);<br />// 指定状态容器<br />A.OnStateOBJ &nbsp;&nbsp;= document.getElementById(&quot;Vessels&quot;);<br />// 指定完成容器<br />A.OnDownloadEndOBJ &nbsp;= document.getElementById(&quot;Vessels&quot;);</p>
<p>A.method &nbsp;= &quot;GET&quot;;<br />A.URL&nbsp;&nbsp;= &quot;<a href="http://www.cctvs.net">http://www.cctvs.net</a>&quot;<br />A.Sync&nbsp;&nbsp;= true;<br />A.Charset&nbsp;= &quot;gb2312&quot;;<br />A.send();<br />//--&gt;<br />&lt;/Script&gt;</p>]]></description>
		</item>
		
</channel>
</rss>
