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