Sdílet prostřednictvím


CBindStatusCallback::StartAsyncDownload

Spuštěn asynchronně stahování dat z určité adresy URL.

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

Parametry

  • pT
    [v] Ukazatel na objekt požadavku přenosu dat asynchronní. CBindStatusCallback Je tento objekt třídy templatized objektu.

  • pFunc
    [v] Ukazatel na funkci, která přijímá data čte.Funkce je členem třídu typu T .Viz poznámky syntaxe a příklad.

  • bstrURL
    [v] Získání dat z URL.Může být libovolný platný název souboru nebo adresa URL.Nemůže být NULL.Příklad:

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

  • pUnkContainer
    [v] IUnknown kontejneru.NULL ve výchozím nastavení.

  • bRelative
    [v] Příznak označující, zda adresa URL je relativní nebo absolutní.FALSE výchozí znamená, že adresa URL je absolutní.

Vrácená hodnota

Jeden standard HRESULT hodnoty.

Poznámky

Pokaždé, když je k dispozici dat je odeslán k objektu prostřednictvím OnDataAvailable .OnDataAvailablenačte data a volá funkci odkazuje pFunc (například data uložit nebo vytisknout na obrazovku).

Funkce odkazuje pFunc je členem třídy do objektu a má následující syntaxi:

void Function_Name(

CBindStatusCallback<T>* pbsc,

BYTE* pBytes,

DWORD dwSize

);

V následujícím příkladu (z ASYNCHRONNÍ vzorku), funkce OnData zapíše přijatá data do textového pole.

Příklad

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!!!"));
      }
   }
}

Požadavky

Záhlaví: atlctl.h

Viz také

Referenční dokumentace

Třída CBindStatusCallback

CBindStatusCallback::OnDataAvailable