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

IVMRSurfaceAllocatorNotify9

COM
IIDdca3f5df-bb3a-4d03-bd81-84614bfbfa0c継承元IUnknown自前メソッド開始 vtbl3

メソッド 5

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

vtbl 3 HRESULT AdviseSurfaceAllocator(UINT_PTR dwUserID, IVMRSurfaceAllocator9* lpIVRMSurfaceAllocator)
dwUserIDUINT_PTRin以後の通知でアロケータを識別するための呼び出し側定義のユーザーID。
lpIVRMSurfaceAllocatorIVMRSurfaceAllocator9*inVMR9が使用するカスタムアロケータのIVMRSurfaceAllocator9インターフェイスへのポインタ。
vtbl 4 HRESULT SetD3DDevice(IDirect3DDevice9* lpD3DDevice, HMONITOR hMonitor)
lpD3DDeviceIDirect3DDevice9*inVMR9が描画に使用するIDirect3DDevice9デバイスへのポインタ。
hMonitorHMONITORinデバイスが関連付けられるモニターのHMONITORハンドル。
vtbl 5 HRESULT ChangeD3DDevice(IDirect3DDevice9* lpD3DDevice, HMONITOR hMonitor)
lpD3DDeviceIDirect3DDevice9*in切り替え後に使用する新しいIDirect3DDevice9デバイスへのポインタ。
hMonitorHMONITORin新デバイスが関連付けられるモニターのHMONITORハンドル。
vtbl 6 HRESULT AllocateSurfaceHelper(VMR9AllocationInfo* lpAllocInfo, DWORD* lpNumBuffers, IDirect3DSurface9** lplpSurface)
lpAllocInfoVMR9AllocationInfo*in確保するサーフェスの形式やサイズを記述するVMR9AllocationInfo構造体へのポインタ。
lpNumBuffersDWORD*inout入力で要求数、出力で実際に確保された数を受け取るDWORDへのポインタ。
lplpSurfaceIDirect3DSurface9**out確保されたIDirect3DSurface9の配列を受け取る出力ポインタ。
vtbl 7 HRESULT NotifyEvent(INT EventCode, INT_PTR Param1, INT_PTR Param2)
EventCodeINTinフィルタグラフへ送るイベントコード。EC_系の値を指定する。
Param1INT_PTRinイベントコードに依存する第1パラメータ。INT_PTR型。
Param2INT_PTRinイベントコードに依存する第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 指定が可能。