Freigeben über


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.

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 Sie

  • pdwMajor
    [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

Referenz

IDispEventImpl Class

IDispEventSimpleImpl Class

Weitere Ressourcen

Composite Control Global Functions