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 在每次列舉之後釋放它。 如果您要使用介面,請不再需要它時加以釋放。
這個方法與先前介面版本中的對應專案不同,因為它接受 EnumSurfacesCallback7 函式的指標,而不是 EnumSurfacesCallback 或 EnumSurfacesCallback2 函式。
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | ddraw.h |
程式庫 | Ddraw.lib |
Dll | Ddraw.dll |