IDXGIOutput1::D uplicateOutput 方法 (dxgi1_2.h)
從代表配接器輸出的 IDXGIOutput1 介面建立桌面重複介面。
語法
HRESULT DuplicateOutput(
[in] IUnknown *pDevice,
[out] IDXGIOutputDuplication **ppOutputDuplication
);
參數
[in] pDevice
Direct3D 裝置介面的指標,可用來處理桌面映射。 此裝置必須從輸出連接的適配卡建立。
[out] ppOutputDuplication
接收新 IDXGIOutputDuplication 介面之變數的指標。
傳回值
DuplicateOutput 會傳回:
- 如果 DuplicateOutput 已成功建立桌面重複介面,S_OK。
- E_INVALIDARG下列其中一個原因:
- 指定的裝置 (pDevice) 無效、未在正確的適配卡上建立,或不是從 IDXGIFactory1 (或更新版本的 DXGI Factory 介面建立,而該介面繼承自 IDXGIFactory1) 。
- 呼叫的應用程式已經複製此桌面輸出。
- 如果應用程式沒有目前桌面映像的訪問許可權,E_ACCESSDENIED。 例如,只有LOCAL_SYSTEM執行的應用程式可以存取安全桌面。
- DXGI_ERROR_UNSUPPORTED如果建立的 IDXGIOutputDuplication 介面不支援目前的桌面模式或案例。 例如,不支援 8bpp 和非 DWM 桌面模式。 如果 DuplicateOutput 失敗並出現DXGI_ERROR_UNSUPPORTED,應用程式可以等候桌面交換器和模式變更的系統通知,然後在發生這類通知之後再次呼叫 DuplicateOutput 。 如需詳細資訊,請參閱 EVENT_SYSTEM_DESKTOPSWITCH 和模式變更通知 (WM_DISPLAYCHANGE) 。
- DXGI_ERROR_NOT_CURRENTLY_AVAILABLE如果 DXGI 達到並行重複應用程式數目上限的限制, (預設為四個) 。 因此,除非其他應用程式關閉,否則呼叫應用程式無法建立任何桌面重複介面。
- DXGI_ERROR_SESSION_DISCONNECTED如果 DuplicateOutput 失敗,因為會話目前已中斷連線。
- DXGI_ERROR 主題會 說明其他錯誤碼。
適用於 Windows 7 的平臺更新: 在已安裝 Windows 7 平臺更新 的 Windows 7 或 Windows Server 2008 R2 上, DuplicateOutput 會失敗並E_NOTIMPL。 如需 Windows 7 平臺更新的詳細資訊,請參閱 適用於 Windows 7 的平臺更新。
備註
如果應用程式想要複製整個桌面,則必須在桌面上的每個使用中輸出上建立桌面重複介面。 此介面不提供明確的方式來同步處理每個輸出影像的時間。 相反地,應用程式必須使用每個輸出的時間戳,然後決定如何合併影像。
若要讓 DuplicateOutput 成功,您必須從 IDXGIFactory1 或更新版本的 DXGI Factory 介面建立 pDevice,該介面繼承自 IDXGIFactory1。
如果目前的模式是立體聲模式,桌面重複介面只會提供左側立體聲影像的影像。
根據預設,只有四個進程可以在單一會話內同時使用 IDXGIOutputDuplication 介面。 進程在單一桌面輸出上只能有一個桌面重複介面;不過,該程式可以有桌面重複介面,適用於屬於桌面的每個輸出。
若要改善效能,請考慮使用 DuplicateOutput1。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用於 Windows 7 的 Windows 8 和平臺更新 [僅限傳統型應用程式] |
最低支援的伺服器 | 適用於 Windows Server 2008 R2 的 Windows Server 2012 和平臺更新 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | dxgi1_2.h |
程式庫 | Dxgi.lib |