Microsoft DirectX 8.0

IUnknown インターフェイス

COM (Component Object Model) コンポーネントの有効期間を管理し、コンポーネントにその他の COM インターフェイスを照会する。その他の COM インターフェイスはすべて IUnknown を継承する。

このインターフェイスおよびこのインターフェイスに含まれるメソッドの詳細は、COM のドキュメントに記載されている。ここでは、クイック リファレンスとしてその概要のみを説明する。

インターフェイスを実装する場合には、IUnknown も同時に実装する必要がある。IUnknown を実装するための便利な手段は、CUnknown 基底クラスで提供されるが、独自の実装を開発することもできる。詳細については、「IUnknown の実装方法」を参照すること。

vtable 順のメソッド

IUnknown メソッド説明
QueryInterface サポートされているインターフェイスへのポインタを取得する。
AddRef 参照カウントをインクリメントする。
Release 参照カウントをデクリメントする。

IUnknown::AddRef

IUnknown インターフェイス

オブジェクト上にある呼び出し元インターフェイスの参照カウントをインクリメントする。このメソッドは、所定のオブジェクト上にあるインターフェイスを指すポインタの新しいコピーそれぞれについて呼び出さなければならない。

構文

ULONG AddRef(void);

戻り値

新しい参照カウントを表す 1 〜 n の整数を返す。この情報は診断やテストでの使用のみを目的としている。このため、状況によっては不安定な値をとることがある。

IUnknown::QueryInterface

IUnknown インターフェイス

クライアントが現在インターフェイス ポインタを保持しているコンポーネント上にある特定のインターフェイスを指すポインタを取得する。このメソッドは、メソッドが返すポインタ上の IUnknown::AddRef を使用する必要がある。

構文

HRESULT QueryInterface(

  REFIID iid,
  void **ppvObject
  );

パラメータ

iid
[in] 要求先インターフェイスの IID を指定する値。
ppvObject
[out] オブジェクトへのポインタのアドレス (メソッドから戻ったとき)。iid に指定されたインターフェイスをオブジェクトがサポートしていない場合、ppvObject は NULL に設定される。

戻り値

インターフェイスがサポートされている場合は、S_OK を返す。それ以外の場合は、E_NOINTERFACE を返す。

IUnknown::Release

IUnknown インターフェイス

オブジェクト上にある呼び出し元インターフェイスの参照カウントをデクリメントする。オブジェクト上の参照カウントが 0 になると、オブジェクトがメモリから解放される。

構文

ULONG Release(void);

戻り値

参照カウントの新しい値を返す。参照カウントは診断やテストの目的にのみ使用する。リソースが解放されたことを知る必要がある場合には、セマンティクス レベルが高いインターフェイスを使用する。