Partilhar via


AtlGetObjectSourceInterface

Chamar essa função para recuperar informações sobre a interface padrão da fonte de um objeto.

Importante

Essa função não pode ser usada em aplicativos executados em Tempo de Execução do Windows.

ATLAPI AtlGetObjectSourceInterface( 
IUnknown* punkObj, 
GUID* plibid, 
IID* piid, 
unsigned short* pdwMajor, 
unsigned short* pdwMinor 
);

Parâmetros

  • punkObj
    [in] um ponteiro ao objeto para que informações devem ser retornada.

  • plibid
    [out] um ponteiro ao LIBID da biblioteca de tipos que contém a definição da interface de origem.

  • piid
    [out] um ponteiro ao interface identificação de interface padrão de origem do objeto.

  • pdwMajor
    [out] um ponteiro ao número de versão principal da biblioteca de tipos que contém a definição da interface de origem.

  • pdwMinor
    [out] um ponteiro ao número de versão secundária da biblioteca de tipos que contém a definição da interface de origem.

Valor de retorno

Um valor padrão do HRESULT.

Comentários

AtlGetObjectSourceInterface pode fornece a interface identificação de interface padrão de origem, juntamente com o LIBID e números de versão principal e secundário de biblioteca de tipo que descreve a interface.

Dica

Para essa função que recupera informações com êxito solicitada, o objeto representado por punkObj deve implementar IDispatch (e informações de tipo de retorno com IDispatch::GetTypeInfo) mais ele também deve implementar IProvideClassInfo2 ou IPersist.Informações de tipo para a interface de origem deve estar na mesma biblioteca de tipos que informações de tipo para IDispatch.

Exemplo

O exemplo a seguir mostra como você pode definir uma classe de coletor de eventos, CEasySink, o que reduz o número de argumentos de modelo que você pode passar a IDispEventImpl para os fundamentos desencapados. EasyAdvise e EasyUnadvise usam AtlGetObjectSourceInterface para inicializar os membros de IDispEventImpl antes de chamar DispEventAdvise ou DispEventUnadvise.

template <UINT nID, class T>
class CEasySink : public IDispEventImpl<nID, T>
{
public:
   HRESULT EasyAdvise(IUnknown* pUnk) 
   { 
      AtlGetObjectSourceInterface(pUnk,
         &m_libid, &m_iid, &m_wMajorVerNum, &m_wMinorVerNum);
      return DispEventAdvise(pUnk, &m_iid);
   }
   HRESULT EasyUnadvise(IUnknown* pUnk) 
   {
      AtlGetObjectSourceInterface(pUnk,
         &m_libid, &m_iid, &m_wMajorVerNum, &m_wMinorVerNum);
      return DispEventUnadvise(pUnk, &m_iid);
   }
};

Requisitos

Cabeçalho: atlcom.h

Consulte também

Referência

Classe de IDispEventImpl

Classe de IDispEventSimpleImpl

Outros recursos

Funções globais de controle composto