Share via


AtlGetObjectSourceInterface

呼叫這個函式會擷取與物件相關的預設來源介面的相關資訊。

重要

這個函式不能用於 Windows 執行階段執行的應用程式。

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

參數

  • punkObj
    [out] 資訊要傳回之物件的指標。

  • plibid
    [out] 型別包含來源介面的定義的程式庫的 GUID 的指標。

  • piid
    [out] 物件的預設來源介面的介面 ID 的指標。

  • pdwMajor
    [out] 型別包含來源介面中定義的型別程式庫的主要版本號碼的指標。

  • pdwMinor
    [out] 型別包含來源介面中定義的型別程式庫的次要版本號碼的指標。

傳回值

標準的 HRESULT 值。

備註

AtlGetObjectSourceInterface 可為您提供預設來源介面的介面 ID,與型別一起描述該介面的型別程式庫的 LIBID 和主要和次要版本號碼。

注意事項注意事項

對於成功擷取型別的函式可以要求的詳細資訊, punkObj 表示的物件必須實作 IDispatch (和傳回型別資訊傳遞 IDispatch::GetTypeInfo) 加上它也必須實作 IProvideClassInfo2IPersist。來源介面的型別資訊都必須在相同型別程式庫與 IDispatch的型別資訊。

範例

說明如何定義一個事件接收類別, CEasySink之下的範例,減少樣板引數數目可以傳遞至 IDispEventImpl 至單純的基本資訊。 EasyAdvise 和 EasyUnadvise 使用 AtlGetObjectSourceInterface 在呼叫或之前 DispEventAdviseDispEventUnadvise初始化 IDispEventImpl 成員。

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);
   }
};

需求

Header: atlcom.h

請參閱

參考

IDispEventImpl Class

IDispEventSimpleImpl Class

其他資源

Composite Control Global Functions