Platform SDK: DirectX

IDirectDraw7::EnumSurfaces

IDirectDraw7::EnumSurfaces メソッドは、指定されたサーフェス記述を満たす、既存のまたは可能なサーフェスをすべて列挙する。

HRESULT EnumSurfaces(
  DWORD dwFlags,                                   
  LPDDSURFACEDESC2 lpDDSD2,                        
  LPVOID lpContext,                                
  LPDDENUMSURFACESCALLBACK2 lpEnumSurfacesCallback  
);

パラメータ

dwFlags
1 つの検索タイプ フラグと 1 つの適合フラグの組み合わせ。検索タイプ フラグは、メソッドによる適合フラグの検索方法を決定する。つまり、lpDDSD2 パラメータの記述を使用して作成できるサーフェスを検索したり、既にその記述に適合する既存のサーフェスを検索できる。適合フラグは、メソッドによるサーフェスの列挙方法として、すべてのサーフェスを列挙する、適合するサーフェスのみ列挙する、または lpDDSD2 パラメータの記述に適合しないサーフェスのみ列挙するかどうかを決定する。

検索タイプ フラグ

DDENUMSURFACES_CANBECREATED
作成可能で検索基準に合う最初のサーフェスを列挙する。このフラグは、DDENUMSURFACES_MATCH フラグとのみ併用できる。
DDENUMSURFACES_DOESEXIST
検索基準に合う既存のサーフェスを列挙する。

適合フラグ

DDENUMSURFACES_ALL
検索基準を満たすサーフェスをすべて列挙する。このフラグは、DDENUMSURFACES_DOESEXIST 検索タイプ フラグとのみ併用できる。
DDENUMSURFACES_MATCH
サーフェス記述に適合するサーフェスを検索する。
DDENUMSURFACES_NOMATCH
サーフェス記述に適合しないサーフェスを検索する。
lpDDSD2
対象のサーフェスを定義する DDSURFACEDESC2 構造体のアドレス。dwFlags に DDENUMSURFACES_ALL フラグがある場合、このパラメータは NULL にする。
lpContext
個々の列挙メンバに渡すアプリケーション定義構造体のアドレス。
lpEnumSurfacesCallback
一致の見つかるたびに列挙プロシージャが呼び出す EnumSurfacesCallback2 関数のアドレス。

戻り値

成功すれば、DD_OK を返す。

失敗すれば、以下のエラー値のいずれかを返す。

DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS

注意

DDENUMSURFACES_CANBECREATED フラグを設定する場合、このメソッドは検索基準に合うサーフェスを一時的に作成しようとする。

DDENUMSURFACES_DOESEXIST フラグを使用している場合、列挙されるサーフェスの参照カウント がインクリメントされる。そのサーフェスを使用しない場合は、個々の列挙の後に、IDirectDrawSurface7::Release を使用してサーフェスを解放しなければならない。サーフェスを使用する場合は、そのサーフェスが不要になったときに解放する。

このメソッドは以前のバージョンのインターフェイスの対応するメソッドとは異なり、EnumSurfacesCallback 関数よりも EnumSurfacesCallback2 関数へのポインタを受け取る。

動作環境

  Windows NT/2000 :Windows 2000 が必要。
  Windows 95/98 : Windows 98 が必要。
  ヘッダー : ddraw.h で宣言。

参照

サーフェスの列挙