Compartilhar via


COM_INTERFACE_ENTRY macros

Essas macros inserirem interfaces de um objeto em MAP de COM para que eles podem ser acessados por QueryInterface. A ordem das entradas no MAP de COM é que interfaces ordem serão verificadas para um correspondente IID during QueryInterface.

Cada objeto que deseja expor suas interfaces via QueryInterface deve ter seu próprio MAP COM. O MAP COM começa com a macro BEGIN_COM_MAP.Interface entradas são adicionadas com um ou mais de COM_INTERFACE_ENTRY macros e o MAP é preenchido com o END_COM_MAP macro.Por exemplo:

BEGIN_COM_MAP(CMyObject)
   COM_INTERFACE_ENTRY(IMyObject)
   COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()

Observe que a primeira entrada no MAP COM deve ser uma interface no objeto que contém o MAP COM.Dessa forma, você não pode iniciar suas entradas de MAP COM COM_INTERFACE_ENTRY_CHAIN, que faz com que o MAP COM de um objeto diferente a ser pesquisada no ponto em que () COM_INTERFACE_ENTRY_CHAINCOtherObject**)** consta COM MAP do seu objeto.Se você quiser procurar o MAP COM de Outros objeto primeiro, adicione uma entrada de interface para IUnknown no MAP de COM, em seguida, cadeia COM MAP de Outros objeto.Por exemplo:

BEGIN_COM_MAP(CThisObject)
   COM_INTERFACE_ENTRY(IUnknown)
   COM_INTERFACE_ENTRY_CHAIN(CBase)
END_COM_MAP()
Cuidado:

sistema autônomo da versão 3.0, o ATL usa a palavra-chave do compilador () __uuidof class ) para obter a IID correspondente para uma determinada classe.Devido às alterações no COM_INTERFACE_ENTRY macros efetivo na versão 3.0, agora você simplesmente incluir o cabeçalho para a interface para usar, em vez de também vincular a uma biblioteca que define as IIDs correspondentes para essa interface.Essa alterar pode causar problemas se o cabeçalho gerado anteriormente por uma versão mais antiga do MIDL ou se ele foi codificado manualmente e não marcado apropriadamente.Se a declaração da interface do cabeçalho não tiver sido marcada com um associado __declspec) uuid de )e, em seguida, qualquer tentativa de usar o __uuidof palavra-chave para essa interface falhará. Você pode reverter à anterior (ATL 2.x) COM_INTERFACE_ENTRY macros definindo _ATL_NO_UUIDOF em suas configurações de compilação para solucionar problemas com esse novo comportamento.

Macros de entrada COM MAP

As macros de entrada disponível são:

Requisitos

Cabeçalho: atlcom.h

Consulte também

Outros recursos

MAP COM macros

Macros ATL