다음을 통해 공유


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

참고 항목

참조

CBindStatusCallback 클래스

CBindStatusCallback::OnDataAvailable