共用方式為


CBindStatusCallback::StartAsyncDownload

以非同步方式下載資料從指定的 URL 啟動。

HRESULT StartAsyncDownload(
   T* pT,
   ATL_PDATAAVAILABLE pFunc,
   BSTR bstrURL,
   IUnknown* pUnkContainer = NULL, 
   BOOL bRelative = FALSE 
);

參數

  • pT
    [in] 物件的指標要求非同步傳送資料的。 CBindStatusCallback 物件在此物件類別樣板化。

  • pFunc
    [out] 接收讀取資料的函式的指標。 函式是型別 T您的物件類別的成員。 的語法和範例參閱 備註

  • bstrURL
    [in] 要取得資料的 URL。 可以是任何有效的 URL 或檔案名稱。 無法 NULL。 例如:

    CComBSTR mybstr =_T("http://somesite/data.htm")

  • pUnkContainer
    [in] 容器的 IUnknownNULL 預設。

  • bRelative
    [in] 表示 URL 是否的旗標為相對或絕對的。 預設為,表示 URL 是絕對的。

傳回值

其中一個標準 HRESULT 值。

備註

在資料可供讀取時傳送至物件傳遞 OnDataAvailableOnDataAvailable 讀取資料並呼叫函式所指向的 pFunc (例如,儲存資料或列印至螢幕)。

函式所指向的 pFunc 是您的物件類別的成員且具有下列語法:

void Function_Name(

CBindStatusCallback<T>* pbsc,

BYTE* pBytes,

DWORD dwSize

);

在下列範例中 (會從 ASYNC 範例),函式 OnData 撰寫接收之資料的文字方塊中輸入。

範例

void OnData(CBindStatusCallback<CATLAsync>* , BYTE* pBytes, DWORD /*cBytes*/)
{
   ATLTRACE(_T("OnData called\n"));

   m_bstrText.Append((LPCSTR)pBytes);
   if (::IsWindow(m_EditCtrl.m_hWnd))
   {
      USES_CONVERSION;
      _ATLTRY {
         ::SendMessage(m_EditCtrl.m_hWnd, WM_SETTEXT, 0, 
            (LPARAM)(LPCTSTR)COLE2CT((BSTR)m_bstrText));
      }
      _ATLCATCH( e ) {
         e; // unused
         // COLE2CT threw an exception!
         ::SendMessage(m_EditCtrl.m_hWnd, WM_SETTEXT, 0, 
            (LPARAM)_T("Could not allocate enough memory!!!"));
      }
   }
}

需求

Header: atlctl.h

請參閱

參考

CBindStatusCallback 類別

CBindStatusCallback::OnDataAvailable