Microsoft DirectX 8.0

CUnknown クラス

CUnknown クラスの階層

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

宣言 : Cobmase.h

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

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

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

CUnknown.m_cRef

CUnknown クラス

参照カウント。

構文

volatile LONG m_cRef;

注意

NonDelegatingAddRef または NonDelegatingRelease メソッドをオーバーライドする場合はこのメンバ変数を使用する。

CUnknown::CUnknown

CUnknown クラス

コンストラクタ メソッド。

構文

CUnknown(
    const TCHAR *pName,
    LPUNKNOWN pUnk
);

パラメータ

pName
オブジェクトの名前を格納している文字列。デバッギングのために CBaseObject コンストラクタで使用される。
pUnk
このオブジェクトの所有者へのポインタ。オブジェクトが集成されている場合は、集成オブジェクトの IUnknown インターフェイスにポインタを渡す。それ以外の場合は、このパラメータを NULL に設定する。

注意

オブジェクトは参照カウントがゼロとして初期化される。

CUnknown::~CUnknown

CUnknown クラス

デストラクタ メソッド。

構文

virtual ~CUnknown(void);

CUnknown::GetOwner

CUnknown クラス

所有コンポーネントの IUnknown インターフェイスへのポインタを取得する。集成したコンポーネントの場合、その所有者は外部コンポーネントである。それ以外の場合、コンポーネントはそれ自体を所有する。

構文

LPUNKNOWN GetOwner(void);

戻り値

制御する IUnknown インターフェイスへのポインタを返す。

CUnknown::NonDelegatingAddRef

CUnknown クラス

オブジェクトの参照カウントをインクリメントする。INonDelegatingUnknown::NonDelegatingAddRef メソッドを実装する。

構文

ULONG NonDelegatingAddRef(void);

戻り値

参照カウントを返す。

CUnknown::NonDelegatingQueryInterface

CUnknown クラス

インターフェイス ポインタを取得し、参照カウントをインクリメントする。INonDelegatingUnknown::NonDelegatingQueryInterface メソッドを実装する。

構文

HRESULT NonDelegatingQueryInterface(
    REFIID riid,
    void **ppv
);

パラメータ

riid
インターフェイスの識別子。
ppv
インターフェイスを受け取るポインタのアドレス。

戻り値

次の表に示されるいずれかの HRESULT 値を返す。
S_OK成功。
E_NOINTERFACEオブジェクトはこのインターフェイスをサポートしていない。
E_POINTERNULL ポインタ引数。

注意

CUnknown クラスは IUknown インターフェイスのみを公開する。このメソッドのオーバーライド方法については、「IUnknown の実装方法」を参照すること。

CUnknown::NonDelegatingRelease

CUnknown クラス

オブジェクトの参照カウントをデクリメントする。INonDelegatingUnknown::NonDelegatingRelease メソッドを実装する。

構文

ULONG NonDelegatingRelease(void);

戻り値

参照カウントを返す。

注意

参照カウントがゼロになると、オブジェクトはそれ自体を削除する。