Platform SDK: DirectX |
ここでは、C++ でのアプリケーション開発について説明する。Visual Basic については、「Visual Basic プログラミングについて」を参照すること。
COM インターフェイスのメソッドは、C プログラムからも呼び出すことができる。C からインターフェイス メソッドを呼び出す場合には、以下の 2 点について注意しなければならない。
次の例は、C で IDirectDraw7::CreateSurface メソッドを呼び出して、DirectDraw オブジェクトに関連付けられたサーフェスを作成している。
ret = lpDD->lpVtbl->CreateSurface (lpDD, &ddsd, &lpDDS, NULL);
引数 lpDD は、新しいサーフェスが関連付けられる DirectDraw オブジェクトを参照している。このメソッドの呼び出しは、サーフェス情報構造体 (&ddsd) に値を格納し、新しいサーフェスへのポインタ (&lpDDS) を返す。
IDirectDraw7::CreateSurface メソッドを呼び出すには、まず、DirectDraw オブジェクトの vtable への参照を外し、さらに vtable からメソッドへの参照を外す。このメソッドの最初のパラメータは既に作成されており、このメソッドを呼び出す DirectDraw オブジェクトへの参照を指定する。
COM オブジェクトのメソッドを呼び出す方法の C と C++ での違いを示すために、同じメソッドを C++ で示す (C++ では、暗黙的に lpVtbl への参照が外され、this ポインタも暗黙的に渡される)。
ret = lpDD->CreateSurface(&ddsd, &lpDDS, NULL)