IDirectDraw7::EnumSurfaces 方法 (ddraw.h)
枚举满足指定图面说明的所有现有或可能的图面。
语法
HRESULT EnumSurfaces(
[in] DWORD unnamedParam1,
[in] LPDDSURFACEDESC2 unnamedParam2,
[in] LPVOID unnamedParam3,
[in] LPDDENUMSURFACESCALLBACK7 unnamedParam4
);
参数
[in] unnamedParam1
一个搜索类型标志和一个匹配标志的组合。 搜索类型标志确定方法如何搜索匹配的图面;可以搜索可以使用 lpDDSD2 参数中的说明创建的图面,也可以搜索已与该说明匹配的现有图面。 匹配标志确定方法是枚举所有图面、仅枚举匹配图面还是仅枚举与 lpDDSD2 参数中的说明不匹配的图面。
搜索类型标志
DDENUMSURFACES_CANBECREATED
枚举可创建并满足搜索条件的第一个图面。 此标志只能与 DDENUMSURFACES_MATCH 标志一起使用。
DDENUMSURFACES_DOESEXIST
枚举满足搜索条件的现有图面。
匹配标志
DDENUMSURFACES_ALL
枚举满足搜索条件的所有图面。 此标志只能与DDENUMSURFACES_DOESEXIST搜索类型标志一起使用。
DDENUMSURFACES_MATCH
搜索与图面说明匹配的任何图面。
DDENUMSURFACES_NOMATCH
搜索与图面说明不匹配的任何图面。
[in] unnamedParam2
定义相关图面的 DDSURFACEDESC2 结构的地址。 如果 dwFlags 包含 DDENUMSURFACES_ALL 标志,则此参数可以为 NULL。
[in] unnamedParam3
要传递给每个枚举成员的应用程序定义结构的地址。
[in] unnamedParam4
枚举过程每次找到匹配项时调用的 EnumSurfacesCallback7 函数的地址。
返回值
如果该方法成功,则返回值DD_OK。
如果失败,该方法可能会返回以下错误值之一:
- DDERR_INVALIDOBJECT
- DDERR_INVALIDPARAMS
注解
如果设置了DDENUMSURFACES_CANBECREATED标志,此方法将尝试临时创建满足搜索条件的图面。
使用 DDENUMSURFACES_DOESEXIST 标志时,枚举图面的引用计数将递增,如果不打算使用该图面,请确保使用 IDirectDrawSurface7::Release 在每次枚举后释放它。 如果要使用图面,请在不再需要 Surface 时将其释放。
此方法与以前的接口版本中的对应方法不同,因为它接受指向 EnumSurfacesCallback7 函数的指针,而不是 EnumSurfacesCallback 或 EnumSurfacesCallback2 函数。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | ddraw.h |
Library | Ddraw.lib |
DLL | Ddraw.dll |