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

IMFMediaTimeRange

COM
IIDdb71a2fc-078a-414e-9df9-8c2531b0aa6c継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

時間範囲のリストを表します。各範囲は開始時刻と終了時刻によって定義されます。

解説(Remarks)

IMFMediaTimeRange インターフェイスは、HTML5 の TimeRanges インターフェイスに相当します。

いくつかの IMFMediaEngine メソッドは IMFMediaTimeRange ポインターを返します。

メソッド 6

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

vtbl 3 DWORD GetLength()

オブジェクトに含まれる時間範囲の数を取得します。

戻り値

時間範囲の数を返します。

解説(Remarks)

このメソッドは、HTML5 の TimeRanges.length 属性に相当します。

vtbl 4 HRESULT GetStart(DWORD index, DOUBLE* pStart)

指定した時間範囲の開始時刻を取得します。

indexDWORDin照会する時間範囲の 0 から始まるインデックス。時間範囲の数を取得するには、IMFMediaTimeRange::GetLength を呼び出します。
pStartDOUBLE*out開始時刻を秒単位で受け取ります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

このメソッドは、HTML5 の TimeRanges.start メソッドに相当します。

vtbl 5 HRESULT GetEnd(DWORD index, DOUBLE* pEnd)

指定した時間範囲の終了時刻を取得します。

indexDWORDin照会する時間範囲の 0 から始まるインデックス。時間範囲の数を取得するには、IMFMediaTimeRange::GetLength を呼び出します。
pEndDOUBLE*out終了時刻を秒単位で受け取ります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

このメソッドは、HTML5 の TimeRanges.end メソッドに相当します。

vtbl 6 BOOL ContainsTime(DOUBLE time)

指定した時刻がいずれかの時間範囲内に含まれるかどうかを照会します。

timeDOUBLEin時刻を秒単位で指定します。

戻り値

このオブジェクトに含まれるいずれかの時間範囲が time パラメーターの値を含む場合は TRUE を返します。それ以外の場合は FALSE を返します。

解説(Remarks)

このメソッドは、リスト内のいずれかの時間範囲について次の条件が成り立つ場合に TRUE を返します。

start time time end

vtbl 7 HRESULT AddRange(DOUBLE startTime, DOUBLE endTime)

時間範囲のリストに新しい範囲を追加します。

startTimeDOUBLEin開始時刻を秒単位で指定します。
endTimeDOUBLEin終了時刻を秒単位で指定します。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

新しい範囲がリスト内に既に存在する範囲と交差する場合、2 つの範囲は結合されます。それ以外の場合、新しい範囲がリストに追加されます。

vtbl 8 HRESULT Clear()

時間範囲のリストをクリアします。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

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

出力引数:
#define global IID_IMFMediaTimeRange "{DB71A2FC-078A-414E-9DF9-8C2531B0AA6C}"
#usecom global IMFMediaTimeRange IID_IMFMediaTimeRange "{}"
#comfunc global IMFMediaTimeRange_GetLength     3
#comfunc global IMFMediaTimeRange_GetStart      4 int,var
#comfunc global IMFMediaTimeRange_GetEnd        5 int,var
#comfunc global IMFMediaTimeRange_ContainsTime  6 double
#comfunc global IMFMediaTimeRange_AddRange      7 double,double
#comfunc global IMFMediaTimeRange_Clear         8
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。