Platform SDK: DirectX

CoCreateInstance を用いた DirectDrawClipper オブジェクトの作成

[Visual Basic]

ここでは、C++ でのアプリケーション開発について説明する。

[C++]

DirectDrawClipper オブジェクトは、COM 準拠のクラスファクトリを完全にサポートする。さらに、標準的な DirectDrawCreateClipper 関数と IDirectDraw7::CreateClipper メソッドを使うことで、クラスファクトリを取得する CoGetClassObject 関数を呼び出してから CoCreateInstance 関数を呼び出すか、あるいは直接 CoCreateInstance を呼び出すことにより、DirectDrawClipper オブジェクトを作成できる。次の例で、CoCreateInstance IDirectDrawClipper::Initialize メソッドを使って DirectDrawClipper オブジェクトを作成する方法を示す。

ddrval = CoCreateInstance(&CLSID_DirectDrawClipper, 
    NULL, CLSCTX_ALL, &IID_IDirectDrawClipper, &lpClipper); 
if (!FAILED(ddrval)) 
    ddrval = IDirectDrawClipper_Initialize(lpClipper, 
        lpDD, 0UL); 

CoCreateInstance の呼び出しでは、最初のパラメータ CLSID_DirectDrawClipper が DirectDrawClipperオブジェクト クラスのクラス識別子となる。IID_IDirectDrawClipper パラメータは現在サポートされているインターフェイスを識別し、lpClipper パラメータは取得された DirectDrawClipper オブジェクトへのポインタを指す。

アプリケーションは、IDirectDrawClipper::Initialize メソッドを使ってクラスファクトリ機構により作成された DirectDrawClipper オブジェクトを、それが使用できるようになる前に初期化しなくてはならない。0UL の値は dwFlags パラメータであり、この場合にはフラグが現在サポートされていないので、その値は 0 となる。ここで示した例では、lpDD は DirectDrawClipper オブジェクトを所有する DirectDraw オブジェクトである。ただし、代わりに NULL を指定した場合は、独立した DirectDrawClipper オブジェクトが作成される (これは、DirectDrawCreateClipper 関数を使って DirectDrawClipper オブジェクトを作成した場合と同じである)。

アプリケーションを終了する前に、CoUninitialize 関数で COM ライブラリを閉じること。