Win32 API 日本語リファレンス
ホームMedia.DirectShow › IDirectDrawVideo

IDirectDrawVideo

COM
IID36d39eb0-dd75-11ce-bf0e-00aa0055595a継承元IUnknown自前メソッド開始 vtbl3

メソッド 16

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

vtbl 3 HRESULT GetSwitches(DWORD* pSwitches)
pSwitchesDWORD*out現在有効な動作スイッチ(機能フラグ)をDWORD*で受け取る出力。
vtbl 4 HRESULT SetSwitches(DWORD Switches)
SwitchesDWORDin設定する動作スイッチ(機能フラグ)をDWORDで指定する入力。
vtbl 5 HRESULT GetCaps(DDCAPS_DX7* pCaps)
pCapsDDCAPS_DX7*outDirectDrawハードウェアの能力を受け取るDDCAPS_DX7構造体への出力。
vtbl 6 HRESULT GetEmulatedCaps(DDCAPS_DX7* pCaps)
pCapsDDCAPS_DX7*outソフトウェアエミュレーション時の能力を受け取るDDCAPS_DX7構造体への出力。
vtbl 7 HRESULT GetSurfaceDesc(DDSURFACEDESC* pSurfaceDesc)
pSurfaceDescDDSURFACEDESC*inout使用中サーフェスの記述を受け取るDDSURFACEDESC構造体への出力。
vtbl 8 HRESULT GetFourCCCodes(DWORD* pCount, DWORD* pCodes)
pCountDWORD*out対応FourCCコード数をDWORD*で受け取る入出力。
pCodesDWORD*out対応するFourCCコード配列を受け取るDWORD*出力。NULL可で個数取得。
vtbl 9 HRESULT SetDirectDraw(IDirectDraw* pDirectDraw)
pDirectDrawIDirectDraw*in使用するIDirectDrawオブジェクトへのポインタ入力。NULLで既定。
vtbl 10 HRESULT GetDirectDraw(IDirectDraw** ppDirectDraw)
ppDirectDrawIDirectDraw**out現在使用中のIDirectDrawオブジェクトを受け取る出力。Releaseが必要。
vtbl 11 HRESULT GetSurfaceType(DWORD* pSurfaceType)
pSurfaceTypeDWORD*out現在のサーフェス種別を示す値をDWORD*で受け取る出力。
vtbl 12 HRESULT SetDefault()
vtbl 13 HRESULT UseScanLine(INT UseScanLine)
UseScanLineINTinスキャンライン同期を使用するか否かを指定するBOOL相当のINT入力。
vtbl 14 HRESULT CanUseScanLine(INT* UseScanLine)
UseScanLineINT*outスキャンライン同期が利用可能かをINT*で受け取る出力。
vtbl 15 HRESULT UseOverlayStretch(INT UseOverlayStretch)
UseOverlayStretchINTinオーバーレイ拡大縮小を使用するか否かを指定するINT入力。
vtbl 16 HRESULT CanUseOverlayStretch(INT* UseOverlayStretch)
UseOverlayStretchINT*outオーバーレイ拡大縮小が利用可能かをINT*で受け取る出力。
vtbl 17 HRESULT UseWhenFullScreen(INT UseWhenFullScreen)
UseWhenFullScreenINTin全画面時にDirectDrawを使用するか否かを指定するINT入力。
vtbl 18 HRESULT WillUseFullScreen(INT* UseWhenFullScreen)
UseWhenFullScreenINT*out全画面時にDirectDrawが使用されるかをINT*で受け取る出力。

HSP用 COM定義

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

出力引数:
#define global IID_IDirectDrawVideo "{36D39EB0-DD75-11CE-BF0E-00AA0055595A}"
#usecom global IDirectDrawVideo IID_IDirectDrawVideo "{}"
#comfunc global IDirectDrawVideo_GetSwitches           3 var
#comfunc global IDirectDrawVideo_SetSwitches           4 int
#comfunc global IDirectDrawVideo_GetCaps               5 var
#comfunc global IDirectDrawVideo_GetEmulatedCaps       6 var
#comfunc global IDirectDrawVideo_GetSurfaceDesc        7 var
#comfunc global IDirectDrawVideo_GetFourCCCodes        8 var,var
#comfunc global IDirectDrawVideo_SetDirectDraw         9 sptr
#comfunc global IDirectDrawVideo_GetDirectDraw         10 sptr
#comfunc global IDirectDrawVideo_GetSurfaceType        11 var
#comfunc global IDirectDrawVideo_SetDefault            12
#comfunc global IDirectDrawVideo_UseScanLine           13 int
#comfunc global IDirectDrawVideo_CanUseScanLine        14 var
#comfunc global IDirectDrawVideo_UseOverlayStretch     15 int
#comfunc global IDirectDrawVideo_CanUseOverlayStretch  16 var
#comfunc global IDirectDrawVideo_UseWhenFullScreen     17 int
#comfunc global IDirectDrawVideo_WillUseFullScreen     18 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。