次の方法で共有


CUnknown クラス

CUnknown クラスの階層

CUnknown オブジェクトは IUnknown インターフェイスを実装する。Microsoft® DirectShow® のほとんどのコンポーネント オブジェクト モデル (COM) オブジェクトは CUnknown から派生する。

COM オブジェクトを実装する場合は、CUnknown から派生させることを推奨する。CUknown から派生させると、スレッド対応の実装が提供されるほか、IUnknown を実装する面倒がなくなる。

この基底クラスの使い方については、「IUnknown の実装方法」を参照すること。以下にその概要を示す。

  • クラス定義の public セクションに DECLARE_IUNKNOWN マクロをインクルードする。このマクロは、IUnknown インターフェイスの 3 つのメソッドを宣言する。
  • NonDelegatingQueryInterface メソッドをオーバーライドして、IUnknown 以外のインターフェイスをサポートする。このメソッド内で GetInterface 関数を呼び出して、インターフェイス ポインタを取得する。
  • クラス コンストラクタ内で CUnknown コンストラクタ メソッドを呼び出す。

要件

ヘッダー : Combase.h 内で宣言し、Streams.h をインクルードする。

ライブラリ : Strmbase.lib (リテール ビルド) または Strmbasd.lib (デバッグ ビルド) を使う。

  • プロテクト メンバ変数  
    m_cRef 参照カウント。
    パブリック メソッド  
    CUnknown コンストラクタ メソッド。
    ~CUnknown デストラクタ メソッド。仮想。
    GetOwner 制御する IUnknown へのポインタを取得する。
    INonDelegatingUnknown メソッド  
    NonDelegatingAddRef 参照カウントをインクリメントする。
    NonDelegatingQueryInterface インターフェイス ポインタを取得し、参照カウントをインクリメントする。
    NonDelegatingRelease 参照カウントをデクリメントする。