Compartilhar via


Implementando uma interface dupla

Você pode implementar uma interface dupla usando a classe de IDispatchImpl , que fornece uma implementação padrão dos métodos de IDispatch em uma interface dupla.Para mais informações, consulte Implementing the IDispatch Interface.

Para usar esta classe:

  • Defina sua interface dupla em uma biblioteca de tipo.

  • A classe deriva de uma especialização de IDispatchImpl (informações de passagem sobre a biblioteca de interface e como argumentos de tipo de modelo).

  • Adicione uma entrada (ou entradas) ao mapa COM para expor a interface dupla com QueryInterface.

  • Implementar a parte vtable de interface em sua classe.

  • Certifique-se de que a biblioteca de tipos que contém a definição de interface está disponível para os objetos em tempo de execução.

Assistente simples de objeto de ATL

Se você desejar criar uma nova interface e uma nova classe para implementar, você pode usar ATL adiciona a caixa de diálogo de classe, e então Assistente simples de objeto de ATL.

Assistente de interface de implementam

Se você tiver uma interface existente, você pode usar Assistente de interface de implementam para adicionar as entradas necessárias da classe base, o mapa COM, e implementações de esqueleto de métodos a uma classe existente.

ObservaçãoObservação

Você talvez precise ajustar a classe base gerado para que os números de versão principal e secundário da biblioteca de tipos a serem passados como argumentos de modelo a sua classe base de IDispatchImpl .O assistente de interface de implementar não verifica o número de versão da biblioteca de tipo para você.

Implementando IDispatch

Você pode usar uma classe base de IDispatchImpl para fornecer uma implementação de um dispinterface apenas especificando a entrada apropriado no mapa COM (usando a macro de COM_INTERFACE_ENTRY2 ou de COM_INTERFACE_ENTRY_IID ) como você tiver uma biblioteca de tipo que descreve uma interface dupla correspondente.É muito comum implementar a interface de IDispatch essa maneira, por exemplo.O assistente e implementam simples de objeto de ATL interface o assistente que ambos presumem que você pretende implementar essa maneira IDispatch , o que irão aumentar a entrada apropriado ao mapa.

ObservaçãoObservação

ATL oferece as classes de IDispEventImpl e de IDispEventSimpleImpl ajudá-lo a implementação dispinterfaces sem exigir uma biblioteca de tipo que contém a definição de uma interface dupla correspondente.

Consulte também

Conceitos

Interfaces duais e ATL