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

IMediaSeeking

COM
IID36b73880-c2c8-11cf-8b46-00805f6cef60継承元IUnknown自前メソッド開始 vtbl3

メソッド 17

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

vtbl 3 HRESULT GetCapabilities(DWORD* pCapabilities)
pCapabilitiesDWORD*outシーク機能を示すAM_SEEKING_SeekingCapabilitiesフラグの論理和を受け取る出力先。
vtbl 4 HRESULT CheckCapabilities(DWORD* pCapabilities)
pCapabilitiesDWORD*inout入力で指定した能力フラグの対応状況を確認し、対応分のみ残して返す入出力。
vtbl 5 HRESULT IsFormatSupported(GUID* pFormat)
pFormatGUID*in対応可否を確認する時間フォーマットGUID(TIME_FORMAT_*)を指定する。
vtbl 6 HRESULT QueryPreferredFormat(GUID* pFormat)
pFormatGUID*out優先される時間フォーマットGUIDを受け取る出力先。
vtbl 7 HRESULT GetTimeFormat(GUID* pFormat)
pFormatGUID*out現在使用中の時間フォーマットGUIDを受け取る出力先。
vtbl 8 HRESULT IsUsingTimeFormat(GUID* pFormat)
pFormatGUID*in現在のフォーマットと一致するか確認する時間フォーマットGUIDを指定する。
vtbl 9 HRESULT SetTimeFormat(GUID* pFormat)
pFormatGUID*in以降のシークで使用する時間フォーマットGUIDを設定する。
vtbl 10 HRESULT GetDuration(LONGLONG* pDuration)
pDurationLONGLONG*outメディア全体の長さを現在の時間フォーマット単位で受け取る出力先。
vtbl 11 HRESULT GetStopPosition(LONGLONG* pStop)
pStopLONGLONG*out再生停止位置を現在の時間フォーマット単位で受け取る出力先。
vtbl 12 HRESULT GetCurrentPosition(LONGLONG* pCurrent)
pCurrentLONGLONG*out現在の再生位置を現在の時間フォーマット単位で受け取る出力先。
vtbl 13 HRESULT ConvertTimeFormat(LONGLONG* pTarget, GUID* pTargetFormat, LONGLONG Source, GUID* pSourceFormat)
pTargetLONGLONG*out変換後の時刻値を受け取る出力先。
pTargetFormatGUID*inoptional変換先の時間フォーマットGUID。NULLで現在のフォーマットを使う。
SourceLONGLONGin変換元の時刻値。
pSourceFormatGUID*inoptional変換元の時間フォーマットGUID。NULLで現在のフォーマットを使う。
vtbl 14 HRESULT SetPositions(LONGLONG* pCurrent, DWORD dwCurrentFlags, LONGLONG* pStop, DWORD dwStopFlags)
pCurrentLONGLONG*inoutoptional新しい現在位置を指定する入出力。dwCurrentFlagsに応じ更新後値が返る。NULL可。
dwCurrentFlagsDWORDin現在位置の設定方法を示すAM_SEEKING_SeekingFlagsフラグ。
pStopLONGLONG*inoutoptional新しい停止位置を指定する入出力。NULL可。
dwStopFlagsDWORDin停止位置の設定方法を示すAM_SEEKING_SeekingFlagsフラグ。
vtbl 15 HRESULT GetPositions(LONGLONG* pCurrent, LONGLONG* pStop)
pCurrentLONGLONG*outoptional現在位置を受け取る出力先。NULL可。
pStopLONGLONG*outoptional停止位置を受け取る出力先。NULL可。
vtbl 16 HRESULT GetAvailable(LONGLONG* pEarliest, LONGLONG* pLatest)
pEarliestLONGLONG*outoptionalシーク可能な最も早い位置を受け取る出力先。
pLatestLONGLONG*outoptionalシーク可能な最も遅い位置を受け取る出力先。
vtbl 17 HRESULT SetRate(DOUBLE dRate)
dRateDOUBLEin再生速度倍率を設定する。1.0が等速、負値で逆再生(対応時)。
vtbl 18 HRESULT GetRate(DOUBLE* pdRate)
pdRateDOUBLE*out現在の再生速度倍率を受け取る出力先。
vtbl 19 HRESULT GetPreroll(LONGLONG* pllPreroll)
pllPrerollLONGLONG*outシーク前に必要なプリロール時間を受け取る出力先(REFERENCE_TIME)。

HSP用 COM定義

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

出力引数:
#define global IID_IMediaSeeking "{36B73880-C2C8-11CF-8B46-00805F6CEF60}"
#usecom global IMediaSeeking IID_IMediaSeeking "{}"
#comfunc global IMediaSeeking_GetCapabilities       3 var
#comfunc global IMediaSeeking_CheckCapabilities     4 var
#comfunc global IMediaSeeking_IsFormatSupported     5 var
#comfunc global IMediaSeeking_QueryPreferredFormat  6 var
#comfunc global IMediaSeeking_GetTimeFormat         7 var
#comfunc global IMediaSeeking_IsUsingTimeFormat     8 var
#comfunc global IMediaSeeking_SetTimeFormat         9 var
#comfunc global IMediaSeeking_GetDuration           10 var
#comfunc global IMediaSeeking_GetStopPosition       11 var
#comfunc global IMediaSeeking_GetCurrentPosition    12 var
#comfunc global IMediaSeeking_ConvertTimeFormat     13 var,var,int64,var
#comfunc global IMediaSeeking_SetPositions          14 var,int,var,int
#comfunc global IMediaSeeking_GetPositions          15 var,var
#comfunc global IMediaSeeking_GetAvailable          16 var,var
#comfunc global IMediaSeeking_SetRate               17 double
#comfunc global IMediaSeeking_GetRate               18 var
#comfunc global IMediaSeeking_GetPreroll            19 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。