MFCreateSequencerSegmentOffset 関数 (mfidl.h)
シーケンサーソースプレゼンテーション内でシークするために使用できる PROPVARIANT を作成します。
構文
HRESULT MFCreateSequencerSegmentOffset(
[in] MFSequencerElementId dwId,
[in] MFTIME hnsOffset,
[out] PROPVARIANT *pvarSegmentOffset
);
パラメーター
[in] dwId
Sequencer 要素識別子。 この値は、再生を開始するセグメントを指定します。 要素識別子は、 IMFSequencerSource::AppendTopology メソッドで返されます。
[in] hnsOffset
セグメント内の開始位置 (100 ナノ秒単位)。
[out] pvarSegmentOffset
PROPVARIANT へのポインター。 メソッドは、シーク操作を実行するために必要な情報を PROPVARIANT に入力します。 呼び出し元は PropVariantClear を呼び出して PROPVARIANT を解放する必要があります。
戻り値
この関数が成功すると、 S_OKが返されます。 そうでない場合は、HRESULT エラー コードを返します。
注釈
pvarSegmentOffset で返される PROPVARIANT は、IMFMediaSession::Start メソッドの pvarStartPosition パラメーターに使用できます。 時刻形式の GUID MF_TIME_FORMAT_SEGMENT_OFFSETを使用します。
例
// Skips to the specified segment in the sequencer source
HRESULT CPlaylist::SkipTo(DWORD index)
{
if (index >= m_count)
{
return E_INVALIDARG;
}
MFSequencerElementId ID = m_segments[index].SegmentID;
PROPVARIANT var;
HRESULT hr = MFCreateSequencerSegmentOffset(ID, NULL, &var);
if (SUCCEEDED(hr))
{
hr = m_pSession->Start(&MF_TIME_FORMAT_SEGMENT_OFFSET, &var);
PropVariantClear(&var);
}
return hr;
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | mfidl.h |
Library | Mf.lib |
[DLL] | Mf.dll |