Partilhar via


Exemplo do ASYNC: Downloads de dados de forma assíncrona

O exemplo ASYNC cria um controle que baixa dados de forma assíncrona de uma URL.O controle implementa a IBindStatusCallback interface. Normalmente, você baixar assincronamente objetos binário grandes ou propriedades.Isso permite que a interface do usuário do controle para permanecer desbloqueada durante operações de rede potencialmente demorada.O uso de fazer o baixar assíncrono também concede ao usuário a oportunidade de cancelar o baixar.ATL usa funções WinInet internamente para implementar o download assíncrono.

The Exemplo de atributos ASYNC é a versão atribuída neste exemplo.

Observação de segurança:

Este código de exemplo é fornecido para ilustrar um conceito e não deve ser usado em aplicativos ou sites da Web, pois ele não pode ilustrar sistema autônomo práticas de codificação mais seguras.Microsoft sistema autônomo sumes nenhuma responsabilidade por danos incidentais ou conseqüenciais deve o código de exemplo ser usado para fins diferentes de sistema autônomo se destina.

Para obter exemplos e instruções para instalá-los:

  • Sobre o Visual Studio Ajuda menu, clicar Exemplos.

    Para obter mais informações, consulte Localizando arquivos de exemplo.

  • A versão mais recente e a lista completa das Exemplos está disponível online a partir de O Visual Studio 2008 Exemplos página.

  • Você também pode localizar exemplos no disco rígido do seu computador.Por padrão, exemplos e um arquivo Leiame são copiados para uma pasta sob \programa Files\Visual Studio 9.0\Samples\.Para edições Express do Visual Studio, todos os exemplos estão localizados online.

Criando e executando o exemplo

Para compilação e executar esse exemplo

  1. em aberto async.sln de arquivo da solução.

  2. From a Compilação menu, clicar Criar solução.

  3. Depois que o exemplo de cria, em em aberto ATLAsync.htm em seu navegador da Web e siga as instruções.Isso define URLpropriedade e inicia o baixar.sistema autônomo dados baixados, você verá que ele exibido no controle ASYNC.

Você pode testar o controle no contêiner de teste de controle ActiveX.Para obter detalhes sobre como acessar o contêiner de teste e usá-lo para testar um controle, consulte Teste de propriedades e eventos com o contêiner de teste.

Como funciona o exemplo

ASYNC cria um controle de edição "subclasse" com uma propriedade chamada URL.The URL propriedade é um BSTR que representa uma URL que aponta para dados. O exemplo ASYNC usa o ATL CBindStatusCallback classe para implementar o download assíncrono. Quando o usuário controle define a propriedade URL, ASYNC cria um CBindStatusCallback objeto. The CBindStatusCallback::StartAsyncDownload método, em seguida, é chamado e passado a URL e um ponteiro para uma função de retorno de chamada. Essa função, CAtlAsync::OnDatachamado pelo ,CBindStatusCallback objeto e é passado sistema autônomo dados binário da URL sistema autônomo é recebida. CAtlAsync::OnData simplesmente envia que os dados recebidos para a subclasse edição controle, o local em que é exibida.

Para obter um exemplo de como a superclasse Windows controles usando ATL, consulte o ATL SubEdit amostra.

Palavras-chave

Este exemplo utiliza as seguintes palavras-chave:

ALT_MSG_MAP ATLTRACE BEGIN_COM_MAP; BEGIN_MSG_MAP; BEGIN_OBJECT_MAP; BEGIN_PROPERTY_MAP; CBindStatusCallback::baixar; CComBSTR::acrescentar; CComCoClass; CComControl; CComModule::GetClassObject; CComModule::GetLockCount; CComModule::Init; CComModule::RegisterServer; CComModule::Term; CComModule::UnregisterServer; CComObjectRoot; COM_INTERFACE_ENTRY; COM_INTERFACE_ENTRY_IMPL; DECLARE_REGISTRY_RESOURCEID; DisableThreadLibraryCalls; DLL_PROCESS_ATTACH; DLL_PROCESS_DETACH; DllMain; END_COM_MAP; END_MSG_MAP; END_OBJECT_MAP; END_PROPERTY_MAP; IDataObjectImpl; IDispatchImpl; IObjectSafetyImpl; IOleControlImpl; IOleInPlaceActiveObjectImpl; IOleInPlaceObjectWindowlessImpl; IOleInPlaceObjectWindowlessImpl::SetObjectRects; IOleObjectImpl; IPerPropertyBrowsingImpl; IPersistPropertyBagImpl; IPersistStorageImpl; IPersistStreamInitImpl; IProvideClassInfo2Impl; IQuickActivateImpl; IsWindow; IViewObjectExImpl; MESSAGE_HANDLER; OBJECT_ENTRY; PROP_ENTRY; SendMessage; USES_CONVERSION

Consulte também

Outros recursos

Exemplos do ATL