Udostępnij za pośrednictwem


AtlGetObjectSourceInterface

Wywołanie tej funkcji do pobierania informacji o interfejsie domyślne źródło obiektu.

Ważna uwagaWażne

Nie można użyć tej funkcji w aplikacjach, które są wykonywane w Środowisko wykonawcze systemu Windows.

ATLAPI AtlGetObjectSourceInterface(
IUnknown* punkObj,
GUID* plibid,
IID* piid,
unsigned short* pdwMajor,
unsigned short* pdwMinor
);

Parametry

  • punkObj
    [w] Wskaźnik do obiektu, dla którego informacje są zwracane.

  • plibid
    [out] Wskaźnik identyfikator biblioteki zawierającej definicję interfejsu źródła biblioteki typów.

  • piid
    [out] Wskaźnik na identyfikator interfejsu interfejs źródłowy domyślnego obiektu.

  • pdwMajor
    [out] Wskaźnik główny numer wersji biblioteki typów zawierającego definicję interfejsu źródła.

  • pdwMinor
    [out] Wskaźnik pomocniczy numer wersji biblioteki typów zawierającego definicję interfejsu źródła.

Wartość zwracana

Standardowe wartości HRESULT.

Uwagi

AtlGetObjectSourceInterfacemożna podać z Identyfikatorem interfejsu interfejsu źródło domyślne oraz identyfikator biblioteki i główne i pomocnicze numery wersji biblioteki typów opisujące interfejsu.

[!UWAGA]

Dla tej funkcji pomyślnie pobrać żądane informacje obiektu jest reprezentowany przez punkObj musi implementować IDispatch (i zwraca typ informacji poprzez IDispatch::GetTypeInfo) plus musi też implementować albo IProvideClassInfo2 lub IPersist.Wpisz informacje dotyczące interfejsu źródła musi być w tej samej bibliotece typu jako wpisz informacje dotyczące IDispatch.

Przykład

W poniższym przykładzie pokazano, jak można zdefiniować klasy event sink, CEasySink, która zmniejsza liczbę argumentów szablonu, które można przekazać do IDispEventImpl do bare essentials.EasyAdvisei EasyUnadvise używać AtlGetObjectSourceInterface zainicjować IDispEventImpl członków przed wywoływaniem DispEventAdvise lub 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);
   }
};

Wymagania

Nagłówek: atlcom.h

Zobacz też

Informacje

Klasa IDispEventImpl

Klasa IDispEventSimpleImpl

Inne zasoby

Formant złożony funkcje globalne