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] 容器的 IUnknown 。 NULL 預設。bRelative
[in] 表示 URL 是否的旗標為相對或絕對的。 否 預設為,表示 URL 是絕對的。
傳回值
其中一個標準 HRESULT 值。
備註
在資料可供讀取時傳送至物件傳遞 OnDataAvailable。 OnDataAvailable 讀取資料並呼叫函式所指向的 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