IMDSPDeviceControl::Seek メソッド (mswmdm.h)
Seek メソッドは、Play メソッドまたは Record メソッドによって開始点として使用される位置をシークします。
構文
HRESULT Seek(
[in] UINT fuMode,
[in] int nOffset
);
パラメーター
[in] fuMode
実行されているシーク操作のモード。 fuMode パラメーターは、次のいずれかのモードである必要があります。
モード | 説明 |
---|---|
MDSP_SEEK_BOF | ファイルの先頭の後に nOffset 単位の位置をシークします。 |
MDSP_SEEK_CUR | 現在の位置から nOffset 単位の位置をシークします。 |
MDSP_SEEK_EOF | ファイルの末尾の前に nOffset 単位の位置をシークします。 |
[in] nOffset
シーク操作によって開始位置が fuMode で指定された原点から離れる単位数。 nOffset の単位は、コンテンツによって定義されます。 音楽の場合はミリ秒、電子書籍のページなどです。
nOffset の正の値は、ファイルを介して前方にシークすることを示します。 負の値は、ファイルを後方にシークすることを示します。 nOffset と fuMode の組み合わせは、ファイルの先頭の前またはファイルの末尾の後の位置をシークすることを示し、メソッドがE_INVALIDARGを返します。
戻り値
このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。
リターン コード | 説明 |
---|---|
|
メソッドが成功しました。 |
|
1 つ以上のパラメーターが無効です。 |
|
Seek はこのデバイスに実装されていません。 |
|
未指定のエラーが発生しました。 |
解説
シーク位置は、デバイスのストレージ メディア上の場所を指す IWMDMStorage インターフェイス、またはストリーミング オーディオをサポートするために実装された IWMDMOperation インターフェイスを渡すことによって定義されます。 IMDSPObjectInfo インターフェイスを渡して、指定したインターフェイスが指すオブジェクト内のポイントを記述することもできます。
デバイスの再生では、再生前に Seek が呼び出されない場合、再生はメディア デバイス上の最初のストレージ メディアの最初のオーディオ トラックから開始されます。
デバイス記録の場合、Record の前に Seek が呼び出されない場合、レコード操作は失敗します。 Record メソッドが呼び出されると、IMDSPObjectInfo::GetLastPlayPosition メソッドの後続の呼び出しでは、再生の合計がいつでも報告され、IMDSPObjectInfo::GetTotalLength から返される値と等しくなります。 Seek 呼び出しから戻った後に IMDSPObjectInfo::SetPlayLength メソッドを呼び出すことによって、記録の長さを制限できます。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | mswmdm.h |
Library | Mssachlp.lib |