CBindStatusCallback::StartAsyncDownload
지정 된 URL에서 비동기적으로 데이터를 다운로드를 시작 합니다.
HRESULT StartAsyncDownload(
T* pT,
ATL_PDATAAVAILABLE pFunc,
BSTR bstrURL,
IUnknown* pUnkContainer = NULL,
BOOL bRelative = FALSE
);
매개 변수
pT
[in] 비동기 데이터 전송을 요청 하는 개체에 대 한 포인터입니다.CBindStatusCallback (를) 개체는 처리할에서이 개체의이 클래스입니다.pFunc
[in] 읽고 있는 데이터를 받는 함수에 대 한 포인터입니다.형식의 개체를 클래스의 멤버 함수는 T.참조 비고 구문 및 예제에 대 한.bstrURL
[in] 데이터를 가져온 URL입니다.URL 또는 파일 이름을 잘못 될 수 있습니다.수 없습니다 NULL.예를 들면 다음과 같습니다.CComBSTR mybstr =_T("http://somesite/data.htm")
pUnkContainer
[in] IUnknown 의 컨테이너입니다.NULL 기본적으로.bRelative
[in] URL이 상대 또는 절대 여부를 나타내는 플래그입니다.False 이면 기본적으로 절대 URL의 의미입니다.
반환 값
하나는 표준 HRESULT 값입니다.
설명
데이터를 사용할 수 있습니다 때마다 개체를 통해 전송 된 OnDataAvailable.OnDataAvailable데이터를 읽고 가리키는 함수 호출 pFunc (예: 데이터를 저장 하거나 인쇄 화면으로).
함수에서를 가리키는 pFunc 개체를 클래스의 멤버 이며 다음 구문은:
void Function_Name(
CBindStatusCallback<T>* pbsc,
BYTE* pBytes,
DWORD dwSize
);
다음 예제에서 (발췌는 비동기 샘플), 함수 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!!!"));
}
}
}
요구 사항
헤더: atlctl.h