Win32 API 日本語リファレンス
ホームGraphics.Dxgi › IDXGIOutputDuplication

IDXGIOutputDuplication

COM
IID191cfac3-a341-470d-b26e-a864f428319c継承元IDXGIObject自前メソッド開始 vtbl7

メソッド 8

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 7 void GetDesc(DXGI_OUTDUPL_DESC* pDesc)
pDescDXGI_OUTDUPL_DESC*out出力複製の記述情報(解像度・回転・デスクトップ画像形式等)を受け取るDXGI_OUTDUPL_DESC構造体である。
vtbl 8 HRESULT AcquireNextFrame(DWORD TimeoutInMilliseconds, DXGI_OUTDUPL_FRAME_INFO* pFrameInfo, IDXGIResource** ppDesktopResource)
TimeoutInMillisecondsDWORDin新フレーム取得を待機するタイムアウトをミリ秒で指定する。0で即時、INFINITEで無限待機。
pFrameInfoDXGI_OUTDUPL_FRAME_INFO*out取得フレームの情報(更新時刻・蓄積数等)を受け取るDXGI_OUTDUPL_FRAME_INFO構造体である。
ppDesktopResourceIDXGIResource**out取得したデスクトップ画像リソースIDXGIResourceを受け取る出力先である。
vtbl 9 HRESULT GetFrameDirtyRects(DWORD DirtyRectsBufferSize, RECT* pDirtyRectsBuffer, DWORD* pDirtyRectsBufferSizeRequired)
DirtyRectsBufferSizeDWORDinダーティ矩形を受け取るバッファのサイズをバイトで指定する。
pDirtyRectsBufferRECT*out更新された矩形領域を受け取るRECT配列である。
pDirtyRectsBufferSizeRequiredDWORD*out実際に必要なバッファサイズ(バイト)を受け取る出力先である。
vtbl 10 HRESULT GetFrameMoveRects(DWORD MoveRectsBufferSize, DXGI_OUTDUPL_MOVE_RECT* pMoveRectBuffer, DWORD* pMoveRectsBufferSizeRequired)
MoveRectsBufferSizeDWORDin移動矩形を受け取るバッファのサイズをバイトで指定する。
pMoveRectBufferDXGI_OUTDUPL_MOVE_RECT*out移動した領域情報を受け取るDXGI_OUTDUPL_MOVE_RECT配列である。
pMoveRectsBufferSizeRequiredDWORD*out実際に必要なバッファサイズ(バイト)を受け取る出力先である。
vtbl 11 HRESULT GetFramePointerShape(DWORD PointerShapeBufferSize, void* pPointerShapeBuffer, DWORD* pPointerShapeBufferSizeRequired, DXGI_OUTDUPL_POINTER_SHAPE_INFO* pPointerShapeInfo)
PointerShapeBufferSizeDWORDinポインタ形状を受け取るバッファのサイズをバイトで指定する。
pPointerShapeBuffervoid*outマウスポインタのビットマップデータを受け取るバッファ(void*)である。
pPointerShapeBufferSizeRequiredDWORD*out実際に必要なバッファサイズ(バイト)を受け取る出力先である。
pPointerShapeInfoDXGI_OUTDUPL_POINTER_SHAPE_INFO*outポインタ形状のメタ情報を受け取るDXGI_OUTDUPL_POINTER_SHAPE_INFO構造体である。
vtbl 12 HRESULT MapDesktopSurface(DXGI_MAPPED_RECT* pLockedRect)
pLockedRectDXGI_MAPPED_RECT*outデスクトップ画像へCPUアクセスするためのポインタとピッチを受け取るDXGI_MAPPED_RECTである。
vtbl 13 HRESULT UnMapDesktopSurface()
vtbl 14 HRESULT ReleaseFrame()

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IDXGIOutputDuplication "{191CFAC3-A341-470D-B26E-A864F428319C}"
#usecom global IDXGIOutputDuplication IID_IDXGIOutputDuplication "{}"
#comfunc global IDXGIOutputDuplication_GetDesc               7 var
#comfunc global IDXGIOutputDuplication_AcquireNextFrame      8 int,var,sptr
#comfunc global IDXGIOutputDuplication_GetFrameDirtyRects    9 int,var,var
#comfunc global IDXGIOutputDuplication_GetFrameMoveRects     10 int,var,var
#comfunc global IDXGIOutputDuplication_GetFramePointerShape  11 int,sptr,var,var
#comfunc global IDXGIOutputDuplication_MapDesktopSurface     12 var
#comfunc global IDXGIOutputDuplication_UnMapDesktopSurface   13
#comfunc global IDXGIOutputDuplication_ReleaseFrame          14
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。