Platform SDK: DirectX |
ここでは、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 ライブラリを閉じること。