AtlGetObjectSourceInterface

调用该函数检索有关对象的默认源接口的信息。

重要说明重要事项

此功能无法在 Windows 运行时执行的应用程序。

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

参数

  • punkObj
    [out]一个指向信息将返回的对象的指针。

  • plibid
    [out]一个指向类型包含源接口定义的库的LIBID的指针。

  • 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选件类

IDispEventSimpleImpl选件类

其他资源

复合控件全局函数