AtlGetObjectSourceInterface
Volání této funkce můžete získat informace o výchozí rozhraní zdrojového objektu.
Důležité |
---|
Tuto funkci nelze použít v aplikacích, které v . |
ATLAPI AtlGetObjectSourceInterface(
IUnknown* punkObj,
GUID* plibid,
IID* piid,
unsigned short* pdwMajor,
unsigned short* pdwMinor
);
Parametry
punkObj
[v] Ukazatel na objekt, pro který je informace vrácena.plibid
[výstup] Ukazatel na ID KNIHOVNY obsahující definici zdrojové rozhraní knihovny typů.piid
[výstup] Ukazatel na Identifikátoru objektu výchozí zdroj rozhraní.pdwMajor
[výstup] Ukazatel na hlavní číslo verze knihovny typů obsahující definici rozhraní zdroje.pdwMinor
[výstup] Ukazatel na číslo dílčí verze knihovny typů obsahující definici rozhraní zdroje.
Vrácená hodnota
Standardní hodnota HRESULT.
Poznámky
AtlGetObjectSourceInterfacemůžete poskytnout s ID rozhraní výchozí rozhraní zdroje s ID KNIHOVNY a hlavní a dílčí verze čísla popisující rozhraní knihovny typů.
[!POZNÁMKA]
Tato funkce úspěšně načíst požadované informace objekt představovaný punkObj musí implementovat IDispatch (a vrátit typ informací prostřednictvím IDispatch::GetTypeInfo) plus je buď musí implementovat IProvideClassInfo2 nebo IPersist .Informace o zdrojové rozhraní typu musí být ve stejné knihovně typ jako informace o typu IDispatch .
Příklad
Následující příklad ukazuje, jak může definovat třídy jímky událostí, CEasySink , který snižuje počet argumentů šablony, které lze předat IDispEventImpl k úplné základy.EasyAdvisea EasyUnadvise pomocí AtlGetObjectSourceInterface inicializace IDispEventImpl členů před voláním DispEventAdvise nebo 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);
}
};
Požadavky
Záhlaví: atlcom.h