⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 152.htm

📁 一些简单的编程例子 都是网页的形式
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<p></p>
<p>         Dim IID_Unk As UUID</p>
<p></p>
<p>         m_bSync = True</p>
<p></p>
<p>         注释: Create a asynchronous bind context</p>
<p>         Set m_oBC = CreateAsyncBindCtx(0, Me, Nothing)</p>
<p></p>
<p>         注释: Create a URL moniker</p>
<p>         Set m_oMk = CreateURLMoniker(Nothing, URL)</p>
<p></p>
<p>         注释: Initialize the IID for Iunknown</p>
<p>         IID_Unk.Data4(0) = &HC0</p>
<p>         IID_Unk.Data4(7) = &H46</p>
<p></p>
<p>         注释: Start the download to</p>
<p>         注释: get the object</p>
<p>         m_oMk.BindToObject m_oBC, Nothing, IID_Unk, Nothing</p>
<p></p>
<p>   End Select</p>
<p></p>
<p>End Function</p>
<p></p>
<p>注释:</p>
<p>注释: pvPtr2Str</p>
<p>注释:</p>
<p>注释: Returns a string from a pointer</p>
<p>注释:</p>
<p>Private Function pvPtr2Str(ByVal Ptr As Long) As String</p>
<p></p>
<p>   pvPtr2Str = Space$(lstrlenW(Ptr))</p>
<p>   MoveMemory ByVal StrPtr(pvPtr2Str), ByVal Ptr, LenB(pvPtr2Str)</p>
<p></p>
<p>End Function</p>
<p></p>
<p>注释:</p>
<p>注释: pvStreamFromPtr</p>
<p>注释:</p>
<p>注释: Returns a Istream reference from a pointer</p>
<p>注释:</p>
<p>Private Function pvStreamFromPtr(ByVal Ptr As Long) As Istream</p>
<p>Dim oStrm As Istream</p>
<p></p>
<p>   MoveMemory oStrm, Ptr, 4&</p>
<p></p>
<p>   Set pvStreamFromPtr = oStrm</p>
<p></p>
<p>   MoveMemory oStrm, 0&, 4&</p>
<p></p>
<p>End Function</p>
<p></p>
<p>Private Sub Class_Initialize()</p>
<p></p>
<p>   注释: Initialize the flags</p>
<p>   Flags = adlAsynchronous Or adlGetNewest Or adlResync</p>
<p></p>
<p>End Sub</p>
<p></p>
<p>Private Sub Class_Terminate()</p>
<p></p>
<p>   注释: Reset the UA</p>
<p>   UrlMkSetSessionOption URLMON_OPTION_USERAGENT_REFRESH, ByVal 0&, 0, 0</p>
<p></p>
<p>End Sub</p>
<p></p>
<p>Private Sub Iauthenticate_Authenticate( _</p>
<p>   phwnd As Long, _</p>
<p>   pszUsername As Long, _</p>
<p>   pszPassword As Long)</p>
<p></p>
<p>Dim sUser As String</p>
<p>Dim sPassword As String</p>
<p></p>
<p>   注释: Raise the event</p>
<p>   RaiseEvent Authenticate(sUser, sPassword)</p>
<p></p>
<p>   注释: Allocate memory</p>
<p>   pszUsername = pvStr2Ptr(sUser)</p>
<p>   pszPassword = pvStr2Ptr(sPassword)</p>
<p></p>
<p>End Sub</p>
<p></p>
<p>Private Sub IBindStatusCallback_GetBindInfo( _</p>
<p>   grfBINDF As olelib.BINDF, _</p>
<p>   pbindinfo As olelib.BINDINFO)</p>
<p></p>
<p>Dim lPtr As Long</p>
<p></p>
<p>   注释: Set the flags</p>
<p>   grfBINDF = Flags And Not (-BINDF_ASYNCHRONOUS * m_bSync)</p>
<p></p>
<p>   With pbindinfo</p>
<p></p>
<p>      注释: Set the verb</p>
<p>      .dwBindVerb = BINDVERB_CUSTOM</p>
<p>      .szCustomVerb = pvStr2Ptr(m_sMethod)</p>
<p></p>
<p>      If Len(m_sPostData) >  0 Then</p>
<p></p>
<p>         注释: Set the data length</p>
<p>         .cbstgmedData = LenB(m_sPostData)</p>
<p></p>
<p>         注释: Set the data type</p>
<p>         .stgmedData.TYMED = TYMED_HGLOBAL</p>
<p></p>
<p>         注释: Allocate global memory for the data</p>
<p>         .stgmedData.Data = GlobalAlloc(GHND, LenB(m_sPostData))</p>
<p></p>
<p>         注释: Get a pointer to the data</p>
<p>         lPtr = GlobalLock(.stgmedData.Data)</p>
<p></p>
<p>         注释: Copy the data to global memory</p>
<p>         MoveMemory ByVal lPtr, ByVal StrPtr(m_sPostData), LenB(m_sPostData)</p>
<p></p>
<p>         注释: Release the pointer</p>
<p>         GlobalUnlock .stgmedData.Data</p>
<p></p>
<p>      End If</p>
<p></p>
<p>   End With</p>
<p></p>
<p>End Sub</p>
<p></p>
<p>Private Function IBindStatusCallback_GetPriority() As Long</p>
<p></p>
<p>End Function</p>
<p></p>
<p>Private Sub IBindStatusCallback_OnDataAvailable( _</p>
<p>   ByVal grfBSCF As olelib.BSCF, _</p>
<p>   ByVal dwSize As Long, _</p>
<p>   pformatetc As olelib.FORMATETC, _</p>
<p>   pstgmed As olelib.STGMEDIUM)</p>
<p></p>
<p>Dim oStream As olelib.Istream</p>
<p>Dim tSTATSTG As olelib.STATSTG</p>
<p>Dim abData() As Byte</p>
<p>Dim lUbound As Long</p>
<p></p>
<p>   注释: Get the stream object</p>
<p>   Set oStream = pvStreamFromPtr(pstgmed.Data)</p>
<p></p>
<p>   注释: Get the stream info</p>
<p>   oStream.Stat tSTATSTG, STATFLAG_NONAME</p>
<p></p>
<p>   If tSTATSTG.cbSize >  0 Then</p>
<p></p>
<p>      注释: Allocate the array</p>
<p>      ReDim abData(1 To tSTATSTG.cbSize * 10000)</p>
<p></p>
<p>      注释: Read the data</p>
<p>      oStream.Read abData(1), tSTATSTG.cbSize * 10000</p>
<p></p>
<p>      If m_bFirstTime Then</p>
<p></p>
<p>         ReDim m_abData(1 To tSTATSTG.cbSize * 10000)</p>
<p></p>
<p>         m_bFirstTime = False</p>
<p></p>
<p>      Else</p>
<p></p>
<p>         注释: Get the upper bound</p>
<p>         lUbound = Ubound(m_abData)</p>
<p></p>
<p>         注释: Allocate the array</p>
<p>         ReDim Preserve m_abData(1 To lUbound + tSTATSTG.cbSize * 10000)</p>
<p></p>
<p>      End If</p>
<p></p>
<p>      注释: Copy the data to the array</p>
<p>      MoveMemory m_abData(lUbound + 1), abData(1), tSTATSTG.cbSize * 10000</p>
<p></p>
<p>      RaiseEvent DataAvailable(abData)</p>
<p></p>
<p>   End If</p>
<p></p>
<p>End Sub</p>
<p></p>
<p>Private Sub IBindStatusCallback_OnLowResource( _</p>
<p>   ByVal reserved As Long)</p>
<p>   注释: Not used</p>
<p>End Sub</p>
<p></p>
<p>Private Sub IBindStatusCallback_OnObjectAvailable( _</p>
<p>   riid As olelib.UUID, _</p>
<p>   ByVal punk As stdole.Iunknown)</p>
<p></p>
<p>   注释: Send the object</p>
<p>   RaiseEvent ObjectAvailable(punk)</p>
<p></p>
<p>End Sub</p>
<p></p>
<p>Private Sub IBindStatusCallback_OnProgress( _</p>
<p>   ByVal ulProgress As Long, _</p>
<p>   ByVal ulProgressMax As Long, _</p>
<p>   ByVal ulStatusCode As olelib.BINDSTATUS, _</p>
<p>   ByVal szStatusText As Long)</p>
<p></p>
<p>Dim lPercent As Long</p>
<p></p>
<p>   If ulProgressMax <>  0 Then</p>
<p>      lPercent = ulProgress * 100 / ulProgressMax</p>
<p>   End If</p>
<p></p>
<p>   RaiseEvent Progress(lPercent, ulStatusCode, pvPtr2Str(szStatusText))</p>
<p></p>
<p>   DoEvents</p>
<p></p>
<p>End Sub</p>
<p></p>
<p>Private Sub IBindStatusCallback_OnStartBinding( _</p>
<p>   ByVal dwReserved As Long, _</p>
<p>   ByVal pib As olelib.Ibinding)</p>
<p></p>
<p>   注释: Save the Ibinding reference</p>
<p>   Set m_oBinding = pib</p>
<p></p>
<p>   RaiseEvent StartingDownload</p>
<p></p>
<p>End Sub</p>
<p></p>
<p>Private Sub IBindStatusCallback_OnStopBinding( _</p>
<p>   ByVal hresult As Long, ByVal szError As Long)</p>
<p></p>
<p>   RaiseEvent DownloadComplete(hresult)</p>
<p></p>
<p>   注释: Release the Ibinding reference</p>
<p>   Set m_oBinding = Nothing</p>
<p></p>
<p>End Sub</p>
<p></p>
<p>Private Sub IHttpNegotiate_BeginningTransaction( _</p>
<p>   ByVal szURL As Long, _</p>
<p>   ByVal szHeaders As Long, _</p>
<p>   ByVal dwReserved As Long, _</p>
<p>   pszAdditionalHeaders As Long)</p>
<p></p>
<p>   注释: Allocate memory for the</p>
<p>   注释: additional headers</p>
<p>   pszAdditionalHeaders = pvStr2Ptr(m_sHeaders)</p>
<p></p>
<p>End Sub</p>
<p></p>
<p>Private Sub IHttpNegotiate_OnResponse( _</p>
<p>   ByVal dwResponseCode As Long, _</p>
<p>   ByVal szResponseHeaders As Long, _</p>
<p>   ByVal szRequestHeaders As Long, _</p>
<p>   pszAdditionalRequestHeaders As Long)</p>
<p></p>
<p>   注释: Raise the event</p>
<p>   RaiseEvent HTTPResponse(dwResponseCode, pvPtr2Str(szResponseHeaders))</p>
<p></p>
<p>End Sub </p>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -