Partilhar via


Implementando uma interface dupla

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

Para usar essa classe:

  • Defina sua interface dupla em uma biblioteca de tipos.

  • Derivar a classe de uma especialização de IDispatchImpl (passe informações sobre a biblioteca de interface e o tipo sistema autônomo argumentos modelo).

  • Adicionar uma entrada (ou entradas) para o MAP de COM para expor a interface dupla por meio de QueryInterface.

  • Implemente o vtable parte da interface em sua classe.

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

ATL Simple objeto assistente

Se você deseja criar uma nova interface e uma nova classe para implementá-lo, você pode usar o Caixa de diálogo Add Class do ATLe, em seguida, a ATL Simple objeto assistente.

Assistente de interface de implementar

Se você tiver uma interface existente, você pode usar o Assistente de interface de implementar para adicionar a classe base necessário, COM entradas de MAP e implementações de esqueleto método a uma classe existente.

Observação:

Talvez você precise ajustar a classe base gerada para que sistema autônomo números de versão principal e secundária da biblioteca de tipos são passados sistema autônomo argumentos de modelo para sua IDispatchImpl classe base. O Assistente de interface de implementação não verificar o número de versão do tipo de biblioteca para você.

Implementação de IDispatch

Você pode usar um IDispatchImpl classe para fornecer uma implementação de um dispinterface apenas especificando a entrada apropriada no MAP COM base (usando o COM_INTERFACE_ENTRY2 or COM_INTERFACE_ENTRY_IID macro), contanto que tenha uma biblioteca de tipos descrevendo uma interface dupla correspondente.É bastante comum para implementar o IDispatch interface dessa maneira, por exemplo. ATL Simple objeto Wizard e o Assistente de interface de implementar pressupõem que você pretende implementar IDispatch Dessa forma, assim, eles adicionarão na entrada apropriada no MAP.

Observação:

ATL oferece o IDispEventImpl and IDispEventSimpleImpl classes para ajudar você a implementar dispinterfaces sem a necessidade de uma biblioteca de tipos que contém a definição de uma interface dupla compatível.

Consulte também

Conceitos

Duas interfaces e ATL