Compartilhar via


AtlGetObjectSourceInterface

telefonar Esta função para recuperar informações sobre a interface de fonte do padrão de um objeto.

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

Parâmetros

  • punkObj
    [in] Um ponteiro para o objeto para o qual são as informações a serem retornados.

  • plibid
    [out] Um ponteiro para LIBID da biblioteca de tipos que contém a definição de interface de fonte.

  • piid
    [out] Um ponteiro para a ID da interface de fonte padrão do objeto.

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

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

Valor de retorno

Um valor HRESULT padrão.

Comentários

AtlGetObjectSourceInterface pode fornecer a ID da interface de fonte do padrão, juntamente com o LIBID e principais e números de versão secundária da biblioteca de tipos descrevendo nessa interface.

Observação:

Para essa função com êxito recuperar as informações solicitadas, o objeto representado pelo punkObj deve implementar IDispatch (e informações sobre o tipo de retorno por meio de IDispatch::GetTypeInfo) Além de também deve implementar um dos IProvideClassInfo2 ou IPersist. sistema autônomo informações de tipo para a interface de fonte devem estar na mesma biblioteca de tipo de informações de tipo de IDispatch.

Exemplo

O exemplo a seguir mostra como você pode definir uma classe de coletor de evento, CEasySink, que reduz o número de argumentos de modelo que você pode passar para IDispEventImpl para os itens essenciais. EasyAdvise e EasyUnadvise Use AtlGetObjectSourceInterface ao inicializar o IDispEventImpl membros antes de chamar DispEventAdvise or 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 IDispEventImpl

Classe IDispEventSimpleImpl

Outros recursos

Controle composto funções global