擷取指定視窗的 DirectX 共用表面。 這個介面可以寫入至 ,以更新視窗的內容。
語法
HRESULT WINAPI DwmDxGetWindowSharedSurface(
_In_ HWND hwnd,
_In_ LUID luidAdapter,
_In_opt_ HMONITOR hmonitorAssociation,
_In_ DWORD dwFlags,
_Inout_ DXGI_FORMAT *pfmtWindow,
_Out_ HANDLE *phDxSurface,
_Out_ UINT64 *puiUpdateId
);
參數
hwnd
HWND,指定要更新的視窗。
luidAdapter
介面所在配接器的 LUID 。
hmonitorAssociation
保留的。
dwFlags
此參數可以是下列其中一個值,或適當情況下多個值的位 OR 組合。
| 值 | 意義 |
|---|---|
|
導致函式封鎖,直到 VSync (VSync) 自上次成功呼叫函式以來傳遞為止。 |
|
表示呼叫的應用程式能夠呈現至 GDI 共用介面。 |
pfmtWindow
在輸入時,介面所需的格式。 在輸出上,傳回介面的實際格式。
phDxSurface
在輸出上,介面的共用控制碼。
puiUpdateId
輸出時,更新的識別碼。
傳回值
此函式可以傳回其中一個值。
| 傳回碼 | 描述 |
|---|---|
| S_OK | 呼叫成功,您應該更新介面,請務必在提交更新時,將更新識別碼傳遞至D3DKMTRender (,D3DKMT_RENDER 結構的PresentHistoryToken成員中,然後應該使用相同的更新識別碼呼叫DwmDxUpdateWindowSharedSurface。 請注意,不論表面是否實際更新,都應該呼叫 DwmDxUpdateWindowSharedSurface 。 |
| DWM_S_GDI_REDIRECTION_SURFACE | 呼叫成功,您應該呼叫 D3DKMTPresent來更新介面,並將 PresentHistoryToken 成員的 Model 設定為 D3DKMT_PM_REDIRECTED_BLT,並在等位的 Blt 成員中提供更新識別碼。 只有在dwFlags中指定了DWM_REDIRECTION_FLAG_SUPPORT_PRESENT_TO_GDI_SURFACE時,才會傳回此值。 |
| DWM_E_ADAPTER_NOT_FOUND | luidAdapter的值無效。 |
| DWM_E_COMPOSITIONDISABLED | DWM 目前未啟用,而且應用程式必須以另一種方式呈現。 |
備註
此 API 適用于實作圖形驅動程式或執行時間。 應用程式可能不會呼叫這個方法。 本檔僅適用于 Windows 7,而且此 API 不保證在其他版本的 Windows 上存在或行為類似。 此函式不存在於任何標頭或靜態程式庫中,且位於 dwmapi.dll 中的序數 100。
規格需求
| 需求 | 值 |
|---|---|
| 最低支援的用戶端 | Windows 7 [僅限傳統型應用程式] |
| 最低支援的伺服器 | 都不支援 |
| 用戶端支援結束 | Windows 7 |
| 標頭 | N/A |
| DLL | Dwmapi.dll |