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

IWMReaderAdvanced

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

メソッド 20

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

vtbl 3 HRESULT SetUserProvidedClock(BOOL fUserClock)
fUserClockBOOLinアプリが提供するクロックを使用するかを指定する。TRUEで使用する。
vtbl 4 HRESULT GetUserProvidedClock(BOOL* pfUserClock)
pfUserClockBOOL*outユーザー提供クロックが有効かを受け取る出力先である。
vtbl 5 HRESULT DeliverTime(ULONGLONG cnsTime)
cnsTimeULONGLONGinユーザー提供クロックの現在時刻を100ナノ秒単位でリーダーに通知する。
vtbl 6 HRESULT SetManualStreamSelection(BOOL fSelection)
fSelectionBOOLinストリーム選択を手動制御するかを指定する。TRUEで手動制御する。
vtbl 7 HRESULT GetManualStreamSelection(BOOL* pfSelection)
pfSelectionBOOL*out手動ストリーム選択が有効かを受け取る出力先である。
vtbl 8 HRESULT SetStreamsSelected(WORD cStreamCount, WORD* pwStreamNumbers, WMT_STREAM_SELECTION* pSelections)
cStreamCountWORDin設定するストリームの個数である。
pwStreamNumbersWORD*in設定対象ストリーム番号の配列へのポインタである。
pSelectionsWMT_STREAM_SELECTION*in各ストリームの選択状態を示すWMT_STREAM_SELECTION配列へのポインタである。
vtbl 9 HRESULT GetStreamSelected(WORD wStreamNum, WMT_STREAM_SELECTION* pSelection)
wStreamNumWORDin選択状態を取得する対象ストリームの番号である。
pSelectionWMT_STREAM_SELECTION*outストリームの選択状態を受け取るWMT_STREAM_SELECTION出力先である。
vtbl 10 HRESULT SetReceiveSelectionCallbacks(BOOL fGetCallbacks)
fGetCallbacksBOOLinストリーム選択変更のコールバックを受け取るかを指定する。TRUEで受け取る。
vtbl 11 HRESULT GetReceiveSelectionCallbacks(BOOL* pfGetCallbacks)
pfGetCallbacksBOOL*out選択コールバック受信が有効かを受け取る出力先である。
vtbl 12 HRESULT SetReceiveStreamSamples(WORD wStreamNum, BOOL fReceiveStreamSamples)
wStreamNumWORDin対象ストリームの番号である。
fReceiveStreamSamplesBOOLin出力サンプルではなく圧縮ストリームサンプルを受信するかを指定する。TRUEで受信する。
vtbl 13 HRESULT GetReceiveStreamSamples(WORD wStreamNum, BOOL* pfReceiveStreamSamples)
wStreamNumWORDin問い合わせ対象ストリームの番号である。
pfReceiveStreamSamplesBOOL*outストリームサンプル受信が有効かを受け取る出力先である。
vtbl 14 HRESULT SetAllocateForOutput(DWORD dwOutputNum, BOOL fAllocate)
dwOutputNumDWORDin対象出力の0始まりのインデックスである。
fAllocateBOOLin出力バッファをアプリ側で割り当てるかを指定する。TRUEで割り当てる。
vtbl 15 HRESULT GetAllocateForOutput(DWORD dwOutputNum, BOOL* pfAllocate)
dwOutputNumDWORDin対象出力の0始まりのインデックスである。
pfAllocateBOOL*out出力のアプリ側バッファ割り当てが有効かを受け取る出力先である。
vtbl 16 HRESULT SetAllocateForStream(WORD wStreamNum, BOOL fAllocate)
wStreamNumWORDin対象ストリームの番号である。
fAllocateBOOLinストリームバッファをアプリ側で割り当てるかを指定する。TRUEで割り当てる。
vtbl 17 HRESULT GetAllocateForStream(WORD dwSreamNum, BOOL* pfAllocate)
dwSreamNumWORDin問い合わせ対象ストリームの番号である。
pfAllocateBOOL*outストリームのアプリ側バッファ割り当てが有効かを受け取る出力先である。
vtbl 18 HRESULT GetStatistics(WM_READER_STATISTICS* pStatistics)
pStatisticsWM_READER_STATISTICS*inout読み取り統計情報を受け取るWM_READER_STATISTICS構造体へのポインタである。
vtbl 19 HRESULT SetClientInfo(WM_READER_CLIENTINFO* pClientInfo)
pClientInfoWM_READER_CLIENTINFO*inサーバーへ送るクライアント情報を保持するWM_READER_CLIENTINFO構造体へのポインタである。
vtbl 20 HRESULT GetMaxOutputSampleSize(DWORD dwOutput, DWORD* pcbMax)
dwOutputDWORDin対象出力の0始まりのインデックスである。
pcbMaxDWORD*out出力サンプルの最大バイトサイズを受け取る出力先である。
vtbl 21 HRESULT GetMaxStreamSampleSize(WORD wStream, DWORD* pcbMax)
wStreamWORDin対象ストリームの番号である。
pcbMaxDWORD*outストリームサンプルの最大バイトサイズを受け取る出力先である。
vtbl 22 HRESULT NotifyLateDelivery(ULONGLONG cnsLateness)
cnsLatenessULONGLONGinサンプルの遅延量を100ナノ秒単位でリーダーに通知する。

HSP用 COM定義

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

出力引数:
#define global IID_IWMReaderAdvanced "{96406BEA-2B2B-11D3-B36B-00C04F6108FF}"
#usecom global IWMReaderAdvanced IID_IWMReaderAdvanced "{}"
#comfunc global IWMReaderAdvanced_SetUserProvidedClock          3 int
#comfunc global IWMReaderAdvanced_GetUserProvidedClock          4 var
#comfunc global IWMReaderAdvanced_DeliverTime                   5 int64
#comfunc global IWMReaderAdvanced_SetManualStreamSelection      6 int
#comfunc global IWMReaderAdvanced_GetManualStreamSelection      7 var
#comfunc global IWMReaderAdvanced_SetStreamsSelected            8 int,var,var
#comfunc global IWMReaderAdvanced_GetStreamSelected             9 int,var
#comfunc global IWMReaderAdvanced_SetReceiveSelectionCallbacks  10 int
#comfunc global IWMReaderAdvanced_GetReceiveSelectionCallbacks  11 var
#comfunc global IWMReaderAdvanced_SetReceiveStreamSamples       12 int,int
#comfunc global IWMReaderAdvanced_GetReceiveStreamSamples       13 int,var
#comfunc global IWMReaderAdvanced_SetAllocateForOutput          14 int,int
#comfunc global IWMReaderAdvanced_GetAllocateForOutput          15 int,var
#comfunc global IWMReaderAdvanced_SetAllocateForStream          16 int,int
#comfunc global IWMReaderAdvanced_GetAllocateForStream          17 int,var
#comfunc global IWMReaderAdvanced_GetStatistics                 18 var
#comfunc global IWMReaderAdvanced_SetClientInfo                 19 var
#comfunc global IWMReaderAdvanced_GetMaxOutputSampleSize        20 int,var
#comfunc global IWMReaderAdvanced_GetMaxStreamSampleSize        21 int,var
#comfunc global IWMReaderAdvanced_NotifyLateDelivery            22 int64
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。