ホーム › Media.WindowsMediaFormat › IWMSyncReader
IWMSyncReader
COMメソッド 21
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| pwszFilename | LPWSTR | in | 開く対象ファイルのパスを指す広域文字列。 |
vtbl 4 HRESULT Close()
| cnsStartTime | ULONGLONG | in | 読み取り範囲の開始時刻を100ナノ秒単位で指定する。 |
| cnsDuration | LONGLONG | in | 読み取り範囲の継続時間を100ナノ秒単位で指定する。終端まではマイナス1。 |
| wStreamNum | WORD | in | 範囲を設定する対象ストリーム番号。 |
| qwFrameNumber | ULONGLONG | in | 読み取り開始フレーム番号(0起点)。 |
| cFramesToRead | LONGLONG | in | 読み取るフレーム数を指定する。 |
vtbl 7 HRESULT GetNextSample(WORD wStreamNum, INSSBuffer** ppSample, ULONGLONG* pcnsSampleTime, ULONGLONG* pcnsDuration, DWORD* pdwFlags, DWORD* pdwOutputNum, WORD* pwStreamNum)
| wStreamNum | WORD | in | 取得対象ストリーム番号。0で任意の次サンプルを取得する。 |
| ppSample | INSSBuffer** | out | 取得したサンプルのINSSBufferを受け取る出力先。要Release。 |
| pcnsSampleTime | ULONGLONG* | out | サンプルの提示時刻を100ナノ秒単位で受け取る出力先。 |
| pcnsDuration | ULONGLONG* | out | サンプルの継続時間を100ナノ秒単位で受け取る出力先。 |
| pdwFlags | DWORD* | out | サンプル属性フラグ(キーフレーム等WM_SF_*)を受け取る出力先。 |
| pdwOutputNum | DWORD* | out | サンプルが属する出力番号を受け取る出力先。 |
| pwStreamNum | WORD* | out | サンプルが属するストリーム番号を受け取る出力先。 |
vtbl 8 HRESULT SetStreamsSelected(WORD cStreamCount, WORD* pwStreamNumbers, WMT_STREAM_SELECTION* pSelections)
| cStreamCount | WORD | in | 配列に含まれるストリーム数を指定する。 |
| pwStreamNumbers | WORD* | in | 選択対象ストリーム番号の配列へのポインタ。 |
| pSelections | WMT_STREAM_SELECTION* | in | 各ストリームの選択状態WMT_STREAM_SELECTION配列へのポインタ。 |
vtbl 9 HRESULT GetStreamSelected(WORD wStreamNum, WMT_STREAM_SELECTION* pSelection)
| wStreamNum | WORD | in | 選択状態を取得する対象ストリーム番号。 |
| pSelection | WMT_STREAM_SELECTION* | out | ストリームの選択状態WMT_STREAM_SELECTIONを受け取る出力先。 |
| wStreamNum | WORD | in | 設定対象のストリーム番号。 |
| fCompressed | BOOL | in | 圧縮サンプルのまま読み取るか否か。TRUEで圧縮データを取得する。 |
| wStreamNum | WORD | in | 設定状態を取得する対象ストリーム番号。 |
| pfCompressed | BOOL* | out | 圧縮サンプル読み取り設定の有無を受け取る論理値ポインタ。 |
vtbl 12 HRESULT GetOutputSetting(DWORD dwOutputNum, LPWSTR pszName, WMT_ATTR_DATATYPE* pType, BYTE* pValue, WORD* pcbLength)
| dwOutputNum | DWORD | in | 対象出力の0起点番号を指定する。 |
| pszName | LPWSTR | in | 取得する出力設定名を指す広域文字列。 |
| pType | WMT_ATTR_DATATYPE* | out | 設定値のデータ型WMT_ATTR_DATATYPEを受け取る出力先。 |
| pValue | BYTE* | out | 設定値を受け取るバイトバッファ。NULLでサイズ問い合わせ。 |
| pcbLength | WORD* | inout | 入力で確保バイト数、出力で実バイト数を示すWORDポインタ。 |
vtbl 13 HRESULT SetOutputSetting(DWORD dwOutputNum, LPWSTR pszName, WMT_ATTR_DATATYPE Type, BYTE* pValue, WORD cbLength)
| dwOutputNum | DWORD | in | 対象出力の0起点番号を指定する。 |
| pszName | LPWSTR | in | 設定する出力設定名を指す広域文字列。 |
| Type | WMT_ATTR_DATATYPE | in | 設定値のデータ型を示すWMT_ATTR_DATATYPE列挙値。 |
| pValue | BYTE* | in | 設定する値が格納されたバイトバッファへのポインタ。 |
| cbLength | WORD | in | 設定値のバイト長を指定する。 |
| pcOutputs | DWORD* | out | リーダーの出力数を受け取る出力先。DWORDポインタ。 |
vtbl 15 HRESULT GetOutputProps(DWORD dwOutputNum, IWMOutputMediaProps** ppOutput)
| dwOutputNum | DWORD | in | 対象出力の0起点番号を指定する。 |
| ppOutput | IWMOutputMediaProps** | out | 出力メディアプロパティIWMOutputMediaPropsを受け取る出力先。要Release。 |
vtbl 16 HRESULT SetOutputProps(DWORD dwOutputNum, IWMOutputMediaProps* pOutput)
| dwOutputNum | DWORD | in | 対象出力の0起点番号を指定する。 |
| pOutput | IWMOutputMediaProps* | in | 設定する出力メディアプロパティへのポインタ。 |
| dwOutputNum | DWORD | in | 対象出力の0起点番号を指定する。 |
| pcFormats | DWORD* | out | その出力で利用可能な形式数を受け取る出力先。DWORDポインタ。 |
vtbl 18 HRESULT GetOutputFormat(DWORD dwOutputNum, DWORD dwFormatNum, IWMOutputMediaProps** ppProps)
| dwOutputNum | DWORD | in | 対象出力の0起点番号を指定する。 |
| dwFormatNum | DWORD | in | 列挙する形式の0起点インデックス。 |
| ppProps | IWMOutputMediaProps** | out | 指定形式の出力メディアプロパティを受け取る出力先。要Release。 |
| wStreamNum | WORD | in | 対応出力を調べる対象ストリーム番号。 |
| pdwOutputNum | DWORD* | out | そのストリームに対応する出力番号を受け取る出力先。 |
| dwOutputNum | DWORD | in | 対応ストリームを調べる対象出力番号。 |
| pwStreamNum | WORD* | out | その出力に対応するストリーム番号を受け取る出力先。 |
| dwOutput | DWORD | in | 対象出力の0起点番号を指定する。 |
| pcbMax | DWORD* | out | その出力が生成し得る最大サンプルバイト数を受け取る出力先。 |
| wStream | WORD | in | 対象ストリーム番号を指定する。 |
| pcbMax | DWORD* | out | そのストリームの最大サンプルバイト数を受け取る出力先。 |
| pStream | IStream* | in | 読み取り元となるIStreamインターフェイスへのポインタ。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IWMSyncReader "{9397F121-7705-4DC9-B049-98B698188414}" #usecom global IWMSyncReader IID_IWMSyncReader "{}" #comfunc global IWMSyncReader_Open 3 wstr #comfunc global IWMSyncReader_Close 4 #comfunc global IWMSyncReader_SetRange 5 int64,int64 #comfunc global IWMSyncReader_SetRangeByFrame 6 int,int64,int64 #comfunc global IWMSyncReader_GetNextSample 7 int,sptr,var,var,var,var,var #comfunc global IWMSyncReader_SetStreamsSelected 8 int,var,var #comfunc global IWMSyncReader_GetStreamSelected 9 int,var #comfunc global IWMSyncReader_SetReadStreamSamples 10 int,int #comfunc global IWMSyncReader_GetReadStreamSamples 11 int,var #comfunc global IWMSyncReader_GetOutputSetting 12 int,wstr,var,var,var #comfunc global IWMSyncReader_SetOutputSetting 13 int,wstr,int,var,int #comfunc global IWMSyncReader_GetOutputCount 14 var #comfunc global IWMSyncReader_GetOutputProps 15 int,sptr #comfunc global IWMSyncReader_SetOutputProps 16 int,sptr #comfunc global IWMSyncReader_GetOutputFormatCount 17 int,var #comfunc global IWMSyncReader_GetOutputFormat 18 int,int,sptr #comfunc global IWMSyncReader_GetOutputNumberForStream 19 int,var #comfunc global IWMSyncReader_GetStreamNumberForOutput 20 int,var #comfunc global IWMSyncReader_GetMaxOutputSampleSize 21 int,var #comfunc global IWMSyncReader_GetMaxStreamSampleSize 22 int,var #comfunc global IWMSyncReader_OpenStream 23 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IWMSyncReader "{9397F121-7705-4DC9-B049-98B698188414}" #usecom global IWMSyncReader IID_IWMSyncReader "{}" #comfunc global IWMSyncReader_Open 3 wstr #comfunc global IWMSyncReader_Close 4 #comfunc global IWMSyncReader_SetRange 5 int64,int64 #comfunc global IWMSyncReader_SetRangeByFrame 6 int,int64,int64 #comfunc global IWMSyncReader_GetNextSample 7 int,sptr,sptr,sptr,sptr,sptr,sptr #comfunc global IWMSyncReader_SetStreamsSelected 8 int,sptr,sptr #comfunc global IWMSyncReader_GetStreamSelected 9 int,sptr #comfunc global IWMSyncReader_SetReadStreamSamples 10 int,int #comfunc global IWMSyncReader_GetReadStreamSamples 11 int,sptr #comfunc global IWMSyncReader_GetOutputSetting 12 int,wstr,sptr,sptr,sptr #comfunc global IWMSyncReader_SetOutputSetting 13 int,wstr,int,sptr,int #comfunc global IWMSyncReader_GetOutputCount 14 sptr #comfunc global IWMSyncReader_GetOutputProps 15 int,sptr #comfunc global IWMSyncReader_SetOutputProps 16 int,sptr #comfunc global IWMSyncReader_GetOutputFormatCount 17 int,sptr #comfunc global IWMSyncReader_GetOutputFormat 18 int,int,sptr #comfunc global IWMSyncReader_GetOutputNumberForStream 19 int,sptr #comfunc global IWMSyncReader_GetStreamNumberForOutput 20 int,sptr #comfunc global IWMSyncReader_GetMaxOutputSampleSize 21 int,sptr #comfunc global IWMSyncReader_GetMaxStreamSampleSize 22 int,sptr #comfunc global IWMSyncReader_OpenStream 23 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。