CBindStatusCallback::StartAsyncDownload
Começa a fazer download de dados assíncrona da URL especificada.
HRESULT StartAsyncDownload(
T* pT,
ATL_PDATAAVAILABLE pFunc,
BSTR bstrURL,
IUnknown* pUnkContainer = NULL,
BOOL bRelative = FALSE
);
Parâmetros
pT
[in] Um ponteiro para o objeto solicitando a transferência de dados assíncrono.The CBindStatusCallback objeto é templatized na classe do objeto.pFunc
[in] Um ponteiro para a função que recebe os dados que está sendo lidos.A função é um membro da classe do seu objeto do tipo T. See Comentários para obter a sintaxe e um exemplo.bstrURL
[in] A URL para obter dados.Pode ser qualquer nome válido de URL ou arquivo.Não pode ser NULO.Por exemplo:CComBSTR mybstr =_T("http://somesite/data.htm")
pUnkContainer
[in] The IUnknown do contêiner.NULO por padrão.bRelative
[in] Um sinalizar que indica se a URL é relativo ou absoluto.FALSE por padrão, o que significa que a URL é absoluto.
Valor de retorno
Um do padrão HRESULT valores.
Comentários
Sempre que há dados disponível são enviados para o objeto por meio de OnDataAvailable. OnDataAvailable lê os dados e chama a função apontada por pFunc (por exemplo, para armazenar os dados ou imprimi-lo na tela).
A função apontada por pFunc é um membro da classe do seu objeto e tem a seguinte sintaxe:
void Function_Name(
CBindStatusCallback<T>* pbsc,
BYTE* pBytes,
DWORD dwSize
);
No exemplo a seguir (extraído o ASSÍNCRONO amostra de ), a função OnData grava os dados recebidos em uma caixa de texto.
Exemplo
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!!!"));
}
}
}
Requisitos
Cabeçalho: atlctl.h
Consulte também
Referência
CBindStatusCallback::OnDataAvailable