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

IWMWriter

COM
IID96406bd4-2b2b-11d3-b36b-00c04f6108ff継承元IUnknown自前メソッド開始 vtbl3

メソッド 13

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

vtbl 3 HRESULT SetProfileByID(GUID* guidProfile)
guidProfileGUID*in適用するシステムプロファイルを識別するGUIDへのポインタ。
vtbl 4 HRESULT SetProfile(IWMProfile* pProfile)
pProfileIWMProfile*in出力に適用するIWMProfileオブジェクトへのポインタ。
vtbl 5 HRESULT SetOutputFilename(LPWSTR pwszFilename)
pwszFilenameLPWSTRin書き込み先ファイルのパスを指す広域文字列。
vtbl 6 HRESULT GetInputCount(DWORD* pcInputs)
pcInputsDWORD*outライター上の入力数を受け取る出力先。DWORDポインタ。
vtbl 7 HRESULT GetInputProps(DWORD dwInputNum, IWMInputMediaProps** ppInput)
dwInputNumDWORDin対象入力の0起点番号を指定する。
ppInputIWMInputMediaProps**out入力メディアプロパティIWMInputMediaPropsを受け取る出力先。要Release。
vtbl 8 HRESULT SetInputProps(DWORD dwInputNum, IWMInputMediaProps* pInput)
dwInputNumDWORDin対象入力の0起点番号を指定する。
pInputIWMInputMediaProps*in設定する入力メディアプロパティへのポインタ。NULLで既定に戻す。
vtbl 9 HRESULT GetInputFormatCount(DWORD dwInputNumber, DWORD* pcFormats)
dwInputNumberDWORDin対象入力の0起点番号を指定する。
pcFormatsDWORD*outその入力が受理できる形式の数を受け取る出力先。DWORDポインタ。
vtbl 10 HRESULT GetInputFormat(DWORD dwInputNumber, DWORD dwFormatNumber, IWMInputMediaProps** pProps)
dwInputNumberDWORDin対象入力の0起点番号を指定する。
dwFormatNumberDWORDin列挙する形式の0起点インデックス。
pPropsIWMInputMediaProps**out指定形式の入力メディアプロパティを受け取る出力先。要Release。
vtbl 11 HRESULT BeginWriting()
vtbl 12 HRESULT EndWriting()
vtbl 13 HRESULT AllocateSample(DWORD dwSampleSize, INSSBuffer** ppSample)
dwSampleSizeDWORDin確保するサンプルバッファのバイト数を指定する。
ppSampleINSSBuffer**out確保されたサンプル用INSSBufferを受け取る出力先。要Release。
vtbl 14 HRESULT WriteSample(DWORD dwInputNum, ULONGLONG cnsSampleTime, DWORD dwFlags, INSSBuffer* pSample)
dwInputNumDWORDinサンプルを書き込む入力の0起点番号。
cnsSampleTimeULONGLONGinサンプルの提示時刻を100ナノ秒単位で指定する。
dwFlagsDWORDin書き込み制御フラグ。キーフレーム指定等のWM_SF_*を指定する。
pSampleINSSBuffer*in書き込むサンプルデータを保持するINSSBufferへのポインタ。
vtbl 15 HRESULT Flush()

HSP用 COM定義

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

出力引数:
#define global IID_IWMWriter "{96406BD4-2B2B-11D3-B36B-00C04F6108FF}"
#usecom global IWMWriter IID_IWMWriter "{}"
#comfunc global IWMWriter_SetProfileByID       3 var
#comfunc global IWMWriter_SetProfile           4 sptr
#comfunc global IWMWriter_SetOutputFilename    5 wstr
#comfunc global IWMWriter_GetInputCount        6 var
#comfunc global IWMWriter_GetInputProps        7 int,sptr
#comfunc global IWMWriter_SetInputProps        8 int,sptr
#comfunc global IWMWriter_GetInputFormatCount  9 int,var
#comfunc global IWMWriter_GetInputFormat       10 int,int,sptr
#comfunc global IWMWriter_BeginWriting         11
#comfunc global IWMWriter_EndWriting           12
#comfunc global IWMWriter_AllocateSample       13 int,sptr
#comfunc global IWMWriter_WriteSample          14 int,int64,int,sptr
#comfunc global IWMWriter_Flush                15
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。