AtlGetObjectSourceInterface

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

Observação importanteImportante

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.

ObservaçãoObservação

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