CUnknown 类

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

cunknown 类层次结构

CUnknown 类实现 IUnknown 接口。 DirectShow 中的大多数组件对象模型 (COM) 对象派生自 CUnknown

如果实现 COM 对象,可能需要从 CUnknown 派生它。 从 CUnknown 派生提供了线程安全的实现,并避免了实现 IUnknown 的麻烦。

有关如何使用此基类的详细讨论,请参阅 如何实现 IUnknown。 下面是一个简短摘要:

  • 在类定义的公共节中包含 DECLARE_IUNKNOWN 宏。 此宏声明 IUnknown 接口的三种方法。
  • 重写 NonDelegatingQueryInterface 方法以支持 IUnknown 以外的接口。 在此方法中,调用 GetInterface 函数以检索接口指针。
  • 在类构造函数中,调用 CUnknown 构造函数方法。
受保护的成员变量 说明
m_cRef 引用计数。
公共方法 说明
CUnknown 构造函数方法。
~ CUnknown 析构函数方法。 虚拟。
GetOwner 获取指向控制 IUnknown 的指针。
INonDelegatingUnknown 方法 说明
NonDelegatingAddRef 递增引用计数。
NonDelegatingQueryInterface 检索接口指针并递增引用计数。
NonDelegatingRelease 递减引用计数。

要求

要求
标头
Combase.h (包括 Streams.h)

Strmbase.lib (零售版本) ;
Strmbasd.lib (调试生成)

另请参阅

DirectShow 基类