IDXGIOutputDuplication::AcquireNextFrame 方法 (dxgi1_2.h)
指出應用程式已準備好處理下一個桌面映像。
語法
HRESULT AcquireNextFrame(
[in] UINT TimeoutInMilliseconds,
[out] DXGI_OUTDUPL_FRAME_INFO *pFrameInfo,
[out] IDXGIResource **ppDesktopResource
);
參數
[in] TimeoutInMilliseconds
逾時間隔,以毫秒為單位。 這個間隔會指定此方法在返回呼叫端之前等候新框架的時間量。 如果間隔經過,且無法使用新的桌面映像,這個方法會傳回 。
如需超時時間間隔的詳細資訊,請參閱。
[out] pFrameInfo
接收 DXGI_OUTDUPL_FRAME_INFO 結構的記憶體位置指標,描述框架的計時和呈現統計數據。
[out] ppDesktopResource
變數的指標,這個變數會接收包含桌面點陣圖之介面的 IDXGIResource 介面。
傳回值
AcquireNextFrame 會傳回:
- 如果已成功收到下一個桌面映像,S_OK。
- 如果桌面重複介面無效,DXGI_ERROR_ACCESS_LOST。 桌面重複介面通常會在桌面上顯示不同類型的影像時變成無效。 這種情況的範例包括:
- 桌面交換器
- 模式變更
- 從 DWM 開啟、關閉 DWM 或其他全螢幕應用程式
- 如果下一個桌面框架可用之前經過的逾時間隔,DXGI_ERROR_WAIT_TIMEOUT。
- 如果應用程式呼叫 AcquireNextFrame 而不放開上一個畫面,DXGI_ERROR_INVALID_CALL。
- 如果 AcquireNextFrame 的其中一個參數不正確,E_INVALIDARG;例如,如果 pFrameInfo 為 NULL。
- 可能是 DXGI_ERROR 主題中所述的其他錯誤碼。
備註
當 AcquireNextFrame 成功傳回時,呼叫的應用程式可以存取 AcquireNextFrame 在 ppDesktopResource 變數中傳回的桌面映像。 如果呼叫端在 TimeoutInMilliseconds 參數中指定零個超時時間間隔, AcquireNextFrame 會驗證是否有可用的新桌面映射、立即傳回,並以傳回值指出其結果。 如果呼叫端在 TimeoutInMilliseconds 參數中指定 INFINITE 逾時時間間隔,則逾時間隔永遠不會經過。
注意 您無法取消您在 TimeoutInMilliseconds 參數中指定的等候。 因此,如果您必須定期檢查其他條件 (,例如終止訊號) ,您應該指定非 INFINITE 逾時間隔。 逾時間隔經過之後,您可以檢查這些其他條件,然後再次呼叫 AcquireNextFrame 以等候下一個畫面。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2012 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | dxgi1_2.h |
程式庫 | Dxgi.lib |