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 函数的指针,而不是 EnumSurfacesCallbackEnumSurfacesCallback2 函数。

要求

要求
目标平台 Windows
标头 ddraw.h
Library Ddraw.lib
DLL Ddraw.dll

另请参阅

IDirectDraw7