ホーム › Media.DirectShow › IVMRSurfaceAllocatorNotify9
IVMRSurfaceAllocatorNotify9
COMメソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT AdviseSurfaceAllocator(UINT_PTR dwUserID, IVMRSurfaceAllocator9* lpIVRMSurfaceAllocator)
| dwUserID | UINT_PTR | in | 以後の通知でアロケータを識別するための呼び出し側定義のユーザーID。 |
| lpIVRMSurfaceAllocator | IVMRSurfaceAllocator9* | in | VMR9が使用するカスタムアロケータのIVMRSurfaceAllocator9インターフェイスへのポインタ。 |
vtbl 4 HRESULT SetD3DDevice(IDirect3DDevice9* lpD3DDevice, HMONITOR hMonitor)
| lpD3DDevice | IDirect3DDevice9* | in | VMR9が描画に使用するIDirect3DDevice9デバイスへのポインタ。 |
| hMonitor | HMONITOR | in | デバイスが関連付けられるモニターのHMONITORハンドル。 |
vtbl 5 HRESULT ChangeD3DDevice(IDirect3DDevice9* lpD3DDevice, HMONITOR hMonitor)
| lpD3DDevice | IDirect3DDevice9* | in | 切り替え後に使用する新しいIDirect3DDevice9デバイスへのポインタ。 |
| hMonitor | HMONITOR | in | 新デバイスが関連付けられるモニターのHMONITORハンドル。 |
vtbl 6 HRESULT AllocateSurfaceHelper(VMR9AllocationInfo* lpAllocInfo, DWORD* lpNumBuffers, IDirect3DSurface9** lplpSurface)
| lpAllocInfo | VMR9AllocationInfo* | in | 確保するサーフェスの形式やサイズを記述するVMR9AllocationInfo構造体へのポインタ。 |
| lpNumBuffers | DWORD* | inout | 入力で要求数、出力で実際に確保された数を受け取るDWORDへのポインタ。 |
| lplpSurface | IDirect3DSurface9** | out | 確保されたIDirect3DSurface9の配列を受け取る出力ポインタ。 |
| EventCode | INT | in | フィルタグラフへ送るイベントコード。EC_系の値を指定する。 |
| Param1 | INT_PTR | in | イベントコードに依存する第1パラメータ。INT_PTR型。 |
| Param2 | INT_PTR | in | イベントコードに依存する第2パラメータ。INT_PTR型。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IVMRSurfaceAllocatorNotify9 "{DCA3F5DF-BB3A-4D03-BD81-84614BFBFA0C}" #usecom global IVMRSurfaceAllocatorNotify9 IID_IVMRSurfaceAllocatorNotify9 "{}" #comfunc global IVMRSurfaceAllocatorNotify9_AdviseSurfaceAllocator 3 sptr,sptr #comfunc global IVMRSurfaceAllocatorNotify9_SetD3DDevice 4 sptr,sptr #comfunc global IVMRSurfaceAllocatorNotify9_ChangeD3DDevice 5 sptr,sptr #comfunc global IVMRSurfaceAllocatorNotify9_AllocateSurfaceHelper 6 var,var,sptr #comfunc global IVMRSurfaceAllocatorNotify9_NotifyEvent 7 int,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IVMRSurfaceAllocatorNotify9 "{DCA3F5DF-BB3A-4D03-BD81-84614BFBFA0C}" #usecom global IVMRSurfaceAllocatorNotify9 IID_IVMRSurfaceAllocatorNotify9 "{}" #comfunc global IVMRSurfaceAllocatorNotify9_AdviseSurfaceAllocator 3 sptr,sptr #comfunc global IVMRSurfaceAllocatorNotify9_SetD3DDevice 4 sptr,sptr #comfunc global IVMRSurfaceAllocatorNotify9_ChangeD3DDevice 5 sptr,sptr #comfunc global IVMRSurfaceAllocatorNotify9_AllocateSurfaceHelper 6 sptr,sptr,sptr #comfunc global IVMRSurfaceAllocatorNotify9_NotifyEvent 7 int,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。