ホーム › Media.DirectShow › IDirectDrawMediaStream
IDirectDrawMediaStream
COMメソッド 6
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 9 HRESULT GetFormat(DDSURFACEDESC* pDDSDCurrent, IDirectDrawPalette** ppDirectDrawPalette, DDSURFACEDESC* pDDSDDesired, DWORD* pdwFlags)
| pDDSDCurrent | DDSURFACEDESC* | out | 現在のサーフェス形式を受け取るDDSURFACEDESC構造体への出力。NULL可。 |
| ppDirectDrawPalette | IDirectDrawPalette** | out | 現在のIDirectDrawPaletteを受け取る出力。NULL可。 |
| pDDSDDesired | DDSURFACEDESC* | out | 希望するサーフェス形式を受け取るDDSURFACEDESC構造体への出力。NULL可。 |
| pdwFlags | DWORD* | out | 形式に関する追加フラグをDWORD*で受け取る出力。NULL可。 |
vtbl 10 HRESULT SetFormat(DDSURFACEDESC* pDDSurfaceDesc, IDirectDrawPalette* pDirectDrawPalette)
| pDDSurfaceDesc | DDSURFACEDESC* | in | 設定するサーフェス形式を指定するDDSURFACEDESC構造体への入力。 |
| pDirectDrawPalette | IDirectDrawPalette* | in | 設定するIDirectDrawPaletteへのポインタ入力。不要ならNULL。 |
vtbl 11 HRESULT GetDirectDraw(IDirectDraw** ppDirectDraw)
| ppDirectDraw | IDirectDraw** | out | 関連付けられたIDirectDrawオブジェクトを受け取る出力。Releaseが必要。 |
vtbl 12 HRESULT SetDirectDraw(IDirectDraw* pDirectDraw)
| pDirectDraw | IDirectDraw* | in | 使用するIDirectDrawオブジェクトへのポインタ入力。NULLで既定生成。 |
vtbl 13 HRESULT CreateSample(IDirectDrawSurface* pSurface, RECT* pRect, DWORD dwFlags, IDirectDrawStreamSample** ppSample)
| pSurface | IDirectDrawSurface* | in | サンプルが使用するIDirectDrawSurfaceへのポインタ入力。NULL可で自動確保。 |
| pRect | RECT* | in | サーフェス内の使用矩形を指定するRECTへのポインタ入力。NULLで全体。 |
| dwFlags | DWORD | in | サンプル作成動作を制御するフラグ入力。 |
| ppSample | IDirectDrawStreamSample** | out | 作成されたIDirectDrawStreamSampleを受け取る出力。Releaseが必要。 |
| pFrameTime | LONGLONG* | out | 1フレームあたりの時間(100ns単位)をLONGLONG*で受け取る出力。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDirectDrawMediaStream "{F4104FCE-9A70-11D0-8FDE-00C04FD9189D}" #usecom global IDirectDrawMediaStream IID_IDirectDrawMediaStream "{}" #comfunc global IDirectDrawMediaStream_GetFormat 9 var,sptr,var,var #comfunc global IDirectDrawMediaStream_SetFormat 10 var,sptr #comfunc global IDirectDrawMediaStream_GetDirectDraw 11 sptr #comfunc global IDirectDrawMediaStream_SetDirectDraw 12 sptr #comfunc global IDirectDrawMediaStream_CreateSample 13 sptr,var,int,sptr #comfunc global IDirectDrawMediaStream_GetTimePerFrame 14 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDirectDrawMediaStream "{F4104FCE-9A70-11D0-8FDE-00C04FD9189D}" #usecom global IDirectDrawMediaStream IID_IDirectDrawMediaStream "{}" #comfunc global IDirectDrawMediaStream_GetFormat 9 sptr,sptr,sptr,sptr #comfunc global IDirectDrawMediaStream_SetFormat 10 sptr,sptr #comfunc global IDirectDrawMediaStream_GetDirectDraw 11 sptr #comfunc global IDirectDrawMediaStream_SetDirectDraw 12 sptr #comfunc global IDirectDrawMediaStream_CreateSample 13 sptr,sptr,int,sptr #comfunc global IDirectDrawMediaStream_GetTimePerFrame 14 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。