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.
Observaçã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 IDispEventSimpleImpl