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

IWMReaderAdvanced2

COM
IIDae14a945-b90c-4d0d-9127-80d665f7d73e継承元IWMReaderAdvanced自前メソッド開始 vtbl23

メソッド 15

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

vtbl 23 HRESULT SetPlayMode(WMT_PLAY_MODE Mode)
ModeWMT_PLAY_MODEin再生モード(ストリーミング/ダウンロード等)を示すWMT_PLAY_MODE列挙値である。
vtbl 24 HRESULT GetPlayMode(WMT_PLAY_MODE* pMode)
pModeWMT_PLAY_MODE*out現在の再生モードを受け取るWMT_PLAY_MODE出力先である。
vtbl 25 HRESULT GetBufferProgress(DWORD* pdwPercent, ULONGLONG* pcnsBuffering)
pdwPercentDWORD*outバッファリングの進捗を百分率で受け取る出力先である。
pcnsBufferingULONGLONG*out残りバッファリング時間を100ナノ秒単位で受け取る出力先である。
vtbl 26 HRESULT GetDownloadProgress(DWORD* pdwPercent, ULONGLONG* pqwBytesDownloaded, ULONGLONG* pcnsDownload)
pdwPercentDWORD*outダウンロード進捗を百分率で受け取る出力先である。
pqwBytesDownloadedULONGLONG*outダウンロード済みバイト数を受け取る出力先である。
pcnsDownloadULONGLONG*outダウンロード済みコンテンツの時間長を100ナノ秒単位で受け取る出力先である。
vtbl 27 HRESULT GetSaveAsProgress(DWORD* pdwPercent)
pdwPercentDWORD*out名前を付けて保存の進捗を百分率で受け取る出力先である。
vtbl 28 HRESULT SaveFileAs(LPWSTR pwszFilename)
pwszFilenameLPWSTRinストリーミングコンテンツの保存先ファイルパスを示すワイド文字列である。
vtbl 29 HRESULT GetProtocolName(LPWSTR pwszProtocol, DWORD* pcchProtocol)
pwszProtocolLPWSTRout使用中プロトコル名を受け取る文字列バッファである。NULLでサイズ問い合わせ可能である。
pcchProtocolDWORD*inoutバッファ文字数を入力し必要文字数を受け取る入出力ポインタである。
vtbl 30 HRESULT StartAtMarker(WORD wMarkerIndex, ULONGLONG cnsDuration, FLOAT fRate, void* pvContext)
wMarkerIndexWORDin再生開始位置とするマーカーの0始まりのインデックスである。
cnsDurationULONGLONGin再生する継続時間を100ナノ秒単位で指定する。
fRateFLOATin再生レートを指定する。1.0で通常速度である。
pvContextvoid*inOnStartで返される呼び出し元定義のコンテキストである。NULL可である。
vtbl 31 HRESULT GetOutputSetting(DWORD dwOutputNum, LPWSTR pszName, WMT_ATTR_DATATYPE* pType, BYTE* pValue, WORD* pcbLength)
dwOutputNumDWORDin設定を取得する出力の0始まりのインデックスである。
pszNameLPWSTRin取得する設定項目の名前を示すワイド文字列である。
pTypeWMT_ATTR_DATATYPE*out取得値のデータ型を受け取るWMT_ATTR_DATATYPE出力先である。
pValueBYTE*out取得した値を受け取るバッファである。NULLでサイズ問い合わせ可能である。
pcbLengthWORD*inoutバッファサイズを入力し実際の値のバイト数を受け取る入出力ポインタである。
vtbl 32 HRESULT SetOutputSetting(DWORD dwOutputNum, LPWSTR pszName, WMT_ATTR_DATATYPE Type, BYTE* pValue, WORD cbLength)
dwOutputNumDWORDin設定を適用する出力の0始まりのインデックスである。
pszNameLPWSTRin設定する項目の名前を示すワイド文字列である。
TypeWMT_ATTR_DATATYPEin設定値のデータ型を示すWMT_ATTR_DATATYPE列挙値である。
pValueBYTE*in設定する値を保持するバッファへのポインタである。
cbLengthWORDin値バッファのバイト長である。
vtbl 33 HRESULT Preroll(ULONGLONG cnsStart, ULONGLONG cnsDuration, FLOAT fRate)
cnsStartULONGLONGinプリロールの開始時刻を100ナノ秒単位で指定する。
cnsDurationULONGLONGinプリロールする継続時間を100ナノ秒単位で指定する。
fRateFLOATinプリロール時の再生レートである。1.0で通常速度である。
vtbl 34 HRESULT SetLogClientID(BOOL fLogClientID)
fLogClientIDBOOLinクライアントIDをログに記録するかを指定する。TRUEで記録する。
vtbl 35 HRESULT GetLogClientID(BOOL* pfLogClientID)
pfLogClientIDBOOL*outクライアントIDログ記録が有効かを受け取る出力先である。
vtbl 36 HRESULT StopBuffering()
vtbl 37 HRESULT OpenStream(IStream* pStream, IWMReaderCallback* pCallback, void* pvContext)
pStreamIStream*inコンテンツを読み込むIStreamへのポインタである。
pCallbackIWMReaderCallback*in読み取りイベントを受け取るIWMReaderCallbackへのポインタである。
pvContextvoid*inコールバックに渡される呼び出し元定義のコンテキストである。NULL可である。

HSP用 COM定義

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

出力引数:
#define global IID_IWMReaderAdvanced2 "{AE14A945-B90C-4D0D-9127-80D665F7D73E}"
#usecom global IWMReaderAdvanced2 IID_IWMReaderAdvanced2 "{}"
#comfunc global IWMReaderAdvanced2_SetPlayMode          23 int
#comfunc global IWMReaderAdvanced2_GetPlayMode          24 var
#comfunc global IWMReaderAdvanced2_GetBufferProgress    25 var,var
#comfunc global IWMReaderAdvanced2_GetDownloadProgress  26 var,var,var
#comfunc global IWMReaderAdvanced2_GetSaveAsProgress    27 var
#comfunc global IWMReaderAdvanced2_SaveFileAs           28 wstr
#comfunc global IWMReaderAdvanced2_GetProtocolName      29 var,var
#comfunc global IWMReaderAdvanced2_StartAtMarker        30 int,int64,float,sptr
#comfunc global IWMReaderAdvanced2_GetOutputSetting     31 int,wstr,var,var,var
#comfunc global IWMReaderAdvanced2_SetOutputSetting     32 int,wstr,int,var,int
#comfunc global IWMReaderAdvanced2_Preroll              33 int64,int64,float
#comfunc global IWMReaderAdvanced2_SetLogClientID       34 int
#comfunc global IWMReaderAdvanced2_GetLogClientID       35 var
#comfunc global IWMReaderAdvanced2_StopBuffering        36
#comfunc global IWMReaderAdvanced2_OpenStream           37 sptr,sptr,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。