Compartilhar via


Monikers assíncronos na Internet

A Internet requer novas abordagens para o design do aplicativo devido ao seu acesso lento à rede. Os aplicativos devem executar o acesso à rede de forma assíncrona para evitar a paralisação da interface do usuário. A classe do MFC CAsyncMonikerFile fornece suporte assíncrono para baixar arquivos.

Com monikers assíncronos, você pode estender seu aplicativo COM para fazer downloads de forma assíncrona pela Internet e fornecer renderização progressiva de objetos grandes, como bitmaps e objetos VRML. Monikers assíncronos permitem que uma propriedade de controle ActiveX ou um arquivo da Internet sejam baixados sem bloquear a resposta da interface do usuário.

Vantagens dos monikers assíncronos

Você pode usar monikers assíncronos para:

  • Baixar código e arquivos sem bloqueio.

  • Baixar propriedades em controles ActiveX sem bloqueio.

  • Receber notificações de andamento de download.

  • Acompanhar o progresso e as informações de estado prontas.

  • Fornecer informações de status ao usuário sobre o progresso.

  • Permitir que o usuário cancele um download a qualquer momento.

Classes do MFC para monikers assíncronos

CAsyncMonikerFile é derivada de CMonikerFile, que por sua vez é derivada de COleStreamFile. Um objeto COleStreamFile representa um fluxo de dados; um objeto CMonikerFile usa um IMoniker para obter os dados, e um objeto CAsyncMonikerFile faz isso de forma assíncrona.

Os monikers assíncronos são usados principalmente em aplicativos habilitados para Internet e controles ActiveX para fornecer uma interface do usuário responsiva durante transferências de arquivos. Um exemplo primordial disso é o uso de CDataPathProperty para fornecer propriedades assíncronas a controles ActiveX.

Classes do MFC para caminhos de dados em controles ActiveX

As classes do MFC CDataPathProperty e CCachedDataPathProperty implementam propriedades de controle ActiveX que podem ser carregadas de forma assíncrona. As propriedades assíncronas são carregadas após a iniciação síncrona. Os controles ActiveX assíncronos invocam repetidamente um retorno de chamada para indicar a disponibilidade de novos dados durante um longo processo de troca de propriedades.

CDataPathProperty é derivado de CAsyncMonikerFile. CCachedDataPathProperty é derivado de CDataPathProperty. Para implementar propriedades assíncronas em seus controles ActiveX, derive uma classe de CDataPathProperty ou CCachedDataPathProperty e substitua OnDataAvailable e outras notificações que você deseja receber.

Para baixar um arquivo usando monikers assíncronos

  1. Declare uma classe derivada de CAsyncMonikerFile.

  2. Substitua OnDataAvailable para exibir os dados.

  3. Substitua outras funções membro, incluindo OnProgress, OnStartBinding e OnStopBinding.

  4. Declare uma instância dessa classe e use-a para abrir URLs.

Para obter informações sobre como baixar de forma assíncrona em um controle ActiveX, consulte Controles ActiveX na Internet.

Confira também

Tarefas de programação da Internet no MFC
Noções básicas de programação da Internet no MFC