次の方法で共有


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 の正の値は、ファイルを介して前方にシークすることを示します。 負の値は、ファイルを後方にシークすることを示します。 nOffsetfuMode の組み合わせは、ファイルの先頭の前またはファイルの末尾の後の位置をシークすることを示し、メソッドがE_INVALIDARGを返します。

戻り値

このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。

リターン コード 説明
S_OK
メソッドが成功しました。
E_INVALIDARG
1 つ以上のパラメーターが無効です。
WMDM_E_NOTSUPPORTED
Seek はこのデバイスに実装されていません。
E_FAIL
未指定のエラーが発生しました。

解説

シーク位置は、デバイスのストレージ メディア上の場所を指す IWMDMStorage インターフェイス、またはストリーミング オーディオをサポートするために実装された IWMDMOperation インターフェイスを渡すことによって定義されます。 IMDSPObjectInfo インターフェイスを渡して、指定したインターフェイスが指すオブジェクト内のポイントを記述することもできます。

デバイスの再生では、再生前に Seek が呼び出されない場合、再生はメディア デバイス上の最初のストレージ メディアの最初のオーディオ トラックから開始されます。

デバイス記録の場合、Record の前に Seek が呼び出されない場合、レコード操作は失敗します。 Record メソッドが呼び出されると、IMDSPObjectInfo::GetLastPlayPosition メソッドの後続の呼び出しでは、再生の合計がいつでも報告され、IMDSPObjectInfo::GetTotalLength から返される値と等しくなります。 Seek 呼び出しから戻った後に IMDSPObjectInfo::SetPlayLength メソッドを呼び出すことによって、記録の長さを制限できます。

要件

要件
対象プラットフォーム Windows
ヘッダー mswmdm.h
Library Mssachlp.lib

こちらもご覧ください

IMDSPDeviceControl インターフェイス

IMDSPObjectInfo インターフェイス

IWMDMOperation インターフェイス

IWMDMStorage インターフェイス