ホーム › Media.WindowsMediaFormat › IWMWriter
IWMWriter
COMメソッド 13
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT SetProfileByID(GUID* guidProfile)
| guidProfile | GUID* | in | 適用するシステムプロファイルを識別するGUIDへのポインタ。 |
vtbl 4 HRESULT SetProfile(IWMProfile* pProfile)
| pProfile | IWMProfile* | in | 出力に適用するIWMProfileオブジェクトへのポインタ。 |
| pwszFilename | LPWSTR | in | 書き込み先ファイルのパスを指す広域文字列。 |
| pcInputs | DWORD* | out | ライター上の入力数を受け取る出力先。DWORDポインタ。 |
vtbl 7 HRESULT GetInputProps(DWORD dwInputNum, IWMInputMediaProps** ppInput)
| dwInputNum | DWORD | in | 対象入力の0起点番号を指定する。 |
| ppInput | IWMInputMediaProps** | out | 入力メディアプロパティIWMInputMediaPropsを受け取る出力先。要Release。 |
vtbl 8 HRESULT SetInputProps(DWORD dwInputNum, IWMInputMediaProps* pInput)
| dwInputNum | DWORD | in | 対象入力の0起点番号を指定する。 |
| pInput | IWMInputMediaProps* | in | 設定する入力メディアプロパティへのポインタ。NULLで既定に戻す。 |
| dwInputNumber | DWORD | in | 対象入力の0起点番号を指定する。 |
| pcFormats | DWORD* | out | その入力が受理できる形式の数を受け取る出力先。DWORDポインタ。 |
vtbl 10 HRESULT GetInputFormat(DWORD dwInputNumber, DWORD dwFormatNumber, IWMInputMediaProps** pProps)
| dwInputNumber | DWORD | in | 対象入力の0起点番号を指定する。 |
| dwFormatNumber | DWORD | in | 列挙する形式の0起点インデックス。 |
| pProps | IWMInputMediaProps** | out | 指定形式の入力メディアプロパティを受け取る出力先。要Release。 |
vtbl 11 HRESULT BeginWriting()
vtbl 12 HRESULT EndWriting()
vtbl 13 HRESULT AllocateSample(DWORD dwSampleSize, INSSBuffer** ppSample)
| dwSampleSize | DWORD | in | 確保するサンプルバッファのバイト数を指定する。 |
| ppSample | INSSBuffer** | out | 確保されたサンプル用INSSBufferを受け取る出力先。要Release。 |
vtbl 14 HRESULT WriteSample(DWORD dwInputNum, ULONGLONG cnsSampleTime, DWORD dwFlags, INSSBuffer* pSample)
| dwInputNum | DWORD | in | サンプルを書き込む入力の0起点番号。 |
| cnsSampleTime | ULONGLONG | in | サンプルの提示時刻を100ナノ秒単位で指定する。 |
| dwFlags | DWORD | in | 書き込み制御フラグ。キーフレーム指定等のWM_SF_*を指定する。 |
| pSample | INSSBuffer* | 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 指定が可能。#define global IID_IWMWriter "{96406BD4-2B2B-11D3-B36B-00C04F6108FF}" #usecom global IWMWriter IID_IWMWriter "{}" #comfunc global IWMWriter_SetProfileByID 3 sptr #comfunc global IWMWriter_SetProfile 4 sptr #comfunc global IWMWriter_SetOutputFilename 5 wstr #comfunc global IWMWriter_GetInputCount 6 sptr #comfunc global IWMWriter_GetInputProps 7 int,sptr #comfunc global IWMWriter_SetInputProps 8 int,sptr #comfunc global IWMWriter_GetInputFormatCount 9 int,sptr #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が無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。