Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Esses macros insira as interfaces de um objeto no seu mapa COM para que eles possam ser acessados por QueryInterface.A ordem de entradas no mapa COM é interfaces do pedido será selecionado a existência IID compatível durante QueryInterface.
Cada objeto que deseja expor as interfaces através de QueryInterface deve ter seu próprio mapeamento COM.Inicia o mapa de BEGIN_COM_MAPCOM com macros.As entradas de interface são adicionadas a um ou mais dos COM_INTERFACE_ENTRY de macros, e o mapa terminar com a macro de END_COM_MAP .Por exemplo:
BEGIN_COM_MAP(CMyObject)
COM_INTERFACE_ENTRY(IMyObject)
COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()
Observe que a primeira entrada no mapa COM deve ser uma interface no objeto que contém o mapa COM.Portanto, não pode iniciar suas entradas de mapa de COM_INTERFACE_ENTRY_CHAINCOM com, o que faz com que o mapa da de um objeto diferente a ser pesquisada no ponto onde COM_INTERFACE_ENTRY_CHAIN(COtherObject) aparece no mapa da do objeto.Se você deseja pesquisar primeiro o mapa da de outro objeto, para adicionar uma entrada de interface para IUnknown ao seu mapa COM, então encadear o mapa da de outro objeto.Por exemplo:
BEGIN_COM_MAP(CThisObject)
COM_INTERFACE_ENTRY(IUnknown)
COM_INTERFACE_ENTRY_CHAIN(CBase)
END_COM_MAP()
Cuidado |
|---|
Até a data de versão 3,0, ATL usa a palavra-chave __uuidof( class ) do compilador para obter o IID correspondente para uma determinada classe.Devido a alterações em macros de COM_INTERFACE_ENTRY vigor na versão 3,0, agora você incluir somente o cabeçalho para que a interface, use em vez de também vincular a uma biblioteca que define o IIDs correspondente para a interface.Essa alteração pode causar problemas se o cabeçalho foi gerado anteriormente por uma versão anterior de MIDL, ou se mão- foi codificado e não marcado adequadamente.Se a declaração para a interface no cabeçalho não foi marcada comum uuidassociado )de __declspec( , então qualquer tentativa de usar a palavra-chave de __uuidof para essa interface falhará.Você pode reverter para o mais antigos (macros de ATL 2.x) COM_INTERFACE_ENTRY definindo _ATL_NO_UUIDOF em suas configurações de compilação para trabalhar em torno de alguns problemas com esse novo comportamento. |
Macros de entrada de mapa COM
A seguir estão as macros disponíveis de entrada:
Requisitos
Cabeçalho: atlcom.h
Cuidado