CBindStatusCallback::StartAsyncDownload

beginnt, die asynchron Daten der angegebenen URL heruntergeladen.

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

Parameter

  • Pint
    [in] Ein Zeiger auf das Objekt die asynchrone Datenübertragung angefordert.Das Objekt ist CBindStatusCallback auf dem Objekts vorlagenbasierten.

  • pFunc
    [in] Ein Zeiger auf die Funktion, die die Daten empfängt, die gelesen werden.Die Funktion ist ein Member des Objekts vom Typ T.Siehe Remarks für Syntax und ein Beispiel.

  • bstrURL
    [in] Die URL, um Daten aus der abzurufen.Kann jedes gültige URL oder Dateiname.Nicht sein kann NULL.Beispiel:

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

  • pUnkContainer
    [in] IUnknown des Containers.NULL standardmäßig.

  • bRelative
    [in] Ein - Flag, das angibt, ob die URL relativ oder absolut ist.FALSE standardmäßig, die URL wichtig ist Absolute.

Rückgabewert

Einer der HRESULT-Standardwerte.

Hinweise

Immer wenn Daten verfügbar sind, wird das Objekt durch OnDataAvailable gesendet.OnDataAvailable liest die Daten und die Funktion gezeigt mit dem pFunc auf (beispielsweise, die Daten speichern oder sie auf dem Bildschirm drucken).

Die Funktion, die von dem pFunc gezeigt wird, ist ein Member des Objekts und hat die folgende Syntax:

void Function_Name(

CBindStatusCallback<T>* pbsc,

BYTE* pBytes,

DWORD dwSize

);

Im folgenden Beispiel stammt aus dem ASYNC (Beispiel), fügt die Funktion OnData die empfangenen Daten in ein Textfeld.

Beispiel

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

Anforderungen

Header: atlctl.h

Siehe auch

Referenz

CBindStatusCallback-Klasse

CBindStatusCallback::OnDataAvailable