AtlGetObjectSourceInterface
Rufen Sie diese Funktion, um Informationen zu den Quellschnittstelle eines Objekts abzurufen.
Wichtig
Diese Funktion kann nicht in den Anwendungen verwendet werden, die in Windows-Runtime ausführen.
Syntax
ATLAPI AtlGetObjectSourceInterface(
IUnknown* punkObj,
GUID* plibid,
IID* piid,
unsigned short* pdwMajor,
unsigned short* pdwMinor
);
Parameter
punkObj
[in] Ein Zeiger auf das Objekt, für das Informationen zurückgegeben werden sollen.plibid
[out] Ein Zeiger auf das LIBID der Typbibliothek, die die Definition der Quellschnittstelle enthält.piid
[out] Ein Zeiger auf den Schnittstellen-ID Standard Schnittstelle des Objekts SiepdwMajor
[out] Ein Zeiger auf die Hauptversionsnummer der Typbibliothek, die die Definition der Quellschnittstelle enthält.pdwMinor
[out] Ein Zeiger auf die Nebenversionsnummer der Typbibliothek, die die Definition der Quellschnittstelle enthält.
Rückgabewert
Ein Wert des Standards HRESULT.
Hinweise
AtlGetObjectSourceInterface kann Sie mit den Schnittstellen-ID Standard Quellschnittstelle, zusammen mit dem LIBID und den Hauptversionsnummer und die Nebenversionsnummer der Typbibliothek bereitgestellt, die diese Schnittstelle beschrieben.
Hinweis
Damit diese Funktion erfolgreich die angeforderten Informationen, das Objekt abrufen, das durch punkObj dargestellt wird, muss IDispatch (und Rückgabetypinformationen durch IDispatch::GetTypeInfo) sowie es implementieren muss entweder IProvideClassInfo2 oder IPersist auch implementieren. Die Typinformationen für die Quellschnittstelle müssen in derselben Typbibliothek wie die Typinformationen für IDispatch sein.
Beispiel
Im Beispiel unten wird gezeigt, wie Sie eine Ereignissenkenklasse definierten, CEasySink, das die Anzahl von Vorlagenargumenten reduziert, die Sie zu IDispEventImpl zu den Grundlagen bloßen übergeben können. EasyAdvise und EasyUnadviseAtlGetObjectSourceInterface verwenden, um die IDispEventImpl-Member zu initialisieren, bevor sie DispEventAdvise oder DispEventUnadvise aufrufen.
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);
}
};
Anforderungen
Header: möchten
Siehe auch
Composite Control Global Functions
IDispEventImpl Class
IDispEventSimpleImpl Class