IDXGIOutputDuplication::GetFramePointerShape メソッド (dxgi1_2.h)
現在のデスクトップ フレームの新しいポインター図形に関する情報を取得します。
構文
HRESULT GetFramePointerShape(
[in] UINT PointerShapeBufferSize,
[out] void *pPointerShapeBuffer,
[out] UINT *pPointerShapeBufferSizeRequired,
[out] DXGI_OUTDUPL_POINTER_SHAPE_INFO *pPointerShapeInfo
);
パラメーター
[in] PointerShapeBufferSize
呼び出し元が pPointerShapeBuffer パラメーターに渡したバッファーのサイズ (バイト単位)。
[out] pPointerShapeBuffer
GetFramePointerShape がコピーして新しいポインター図形のピクセル データを返すバッファーへのポインター。
[out] pPointerShapeBufferSizeRequired
GetFramePointerShape が pPointerShapeBuffer のバッファーに新しいポインター図形ピクセル データを格納するために必要なバイト数を受け取る変数へのポインター。
必要なバッファー サイズを返す方法の詳細については、「解説」を参照してください。
[out] pPointerShapeInfo
ポインター図形情報を受け取る DXGI_OUTDUPL_POINTER_SHAPE_INFO 構造体へのポインター。
戻り値
GetFramePointerShape は 次を返します。
- 新しいポインター図形に関する情報が正常に取得された場合にS_OKします。
- デスクトップ重複インターフェイスが無効な場合にDXGI_ERROR_ACCESS_LOSTします。 デスクトップの複製インターフェイスは、通常、別の種類のイメージがデスクトップに表示されると無効になります。 この状況の例を次に示します。
- デスクトップ スイッチ
- モードの変更
- DWM オン、DWM オフ、またはその他の全画面表示アプリケーションから切り替える
- 呼び出し元のアプリケーションによって提供されたバッファーが十分な大きさでなかった場合にDXGI_ERROR_MORE_DATAします。
- アプリケーションがデスクトップ イメージを所有せずに GetFramePointerShape を呼び出した場合にDXGI_ERROR_INVALID_CALLします。
- GetFramePointerShape のパラメーターの 1 つが正しくない場合にE_INVALIDARGします。たとえば、pPointerShapeInfo が NULL の場合です。
- 場合によっては、 DXGI_ERROR トピックで説明されているその他のエラー コード。
解説
GetFramePointerShape は 、 pPointerShapeBufferSizeRequired の変数にサイズ値を格納します。 この値は、 pPointerShapeBufferSizeRequired が新しいポインター図形ピクセル データを格納するために必要なバイト数を指定します。 次の状況では、 値を使用して、 pPointerShapeBuffer に渡す将来のバッファーに割り当てるメモリの量を決定できます。
- バッファーが十分な大きさではないので、GetFramePointerShape はDXGI_ERROR_MORE_DATAで失敗します。
- GetFramePointerShape では、必要以上の大きなバッファーが提供されます。 pPointerShapeBufferSizeRequired で返されるサイズ値は、呼び出し元が PointerShapeBufferSize パラメーターで割り当て、指定したバッファー領域の量と比較して、実際に使用されたバッファー領域の量を呼び出し元に通知します。
要件
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | dxgi1_2.h |
Library | Dxgi.lib |