IByteBuffer::Seek メソッド
[ Seek メソッドは、[要件] セクションで指定したオペレーティング システムで使用できます。 Windows Server 2003 Service Pack 1 (SP1) 以降、Windows Vista、Windows Server 2008、およびそれ以降のバージョンのオペレーティング システムでは使用できません。 IStream インターフェイスも同様の機能を提供します。
Seek メソッドは、シーク ポインターをバッファーの先頭、バッファーの末尾、または現在のシーク ポインターに対して相対的な新しい場所に変更します。
構文
HRESULT Seek(
[in] LONG dlibMove,
[in] LONG dwOrigin,
[out] LONG *plibNewPosition
);
パラメーター
-
dlibMove [in]
-
dwOrigin によって示される位置に追加される変位。 dwOrigin がSTREAM_SEEK_SET場合、これは符号付きではなく符号なし値として解釈されます。
-
dwOrigin [in]
-
dlibMove で指定された変位の原点を指定します。 配信元には、次の表のいずれかの値を指定できます。
値 説明 - STREAM_SEEK_SET
新しいシーク ポインターは、ストリームの先頭を基準としたオフセットです。 この場合、 dlibMove パラメーターは、ストリームの先頭を基準とした新しいシーク位置です。 - STREAM_SEEK_CUR
新しいシーク ポインターは、現在のシーク ポインターの位置を基準としたオフセットです。 この場合、 dlibMove パラメーターは、現在のシーク位置からの符号付き変位です。 - STREAM_SEEK_END
新しいシーク ポインターは、ストリームの末尾を基準としたオフセットです。 この場合、 dlibMove パラメーターは、ストリームの末尾を基準とした新しいシーク位置です。 -
plibNewPosition [out]
-
このメソッドがストリームの先頭から新しいシーク ポインターの値を書き込む場所へのポインター。 このポインターを NULL に設定して、この値に関心がないことを示すことができます。 この場合、このメソッドは新しいシーク ポインターを提供しません。
戻り値
戻り値は HRESULT です。 S_OK の値は、呼び出しが成功したことを示します。
解説
Seek メソッドは、後続の読み取り操作と書き込み操作がストリーム オブジェクト内の別の場所で実行できるように、シーク ポインターを変更します。 ストリームの先頭の前にシークするとエラーになります。 ただし、ストリームの末尾を超えてシークするエラーではありません。 ストリームの末尾を超えてシークすることは、その時点でストリームが書き込み操作が実行される直前にシーク位置まで拡張されるため、後続の書き込み操作に役立ちます。
また、このメソッドを使用して、このメソッドを呼び出し、 dwOrigin パラメーターを STREAM_SEEK_CUR に設定し、 dlibMove パラメーターを 0 に設定してシーク ポインターが変更されないようにすることで、シーク ポインターの現在の値を取得することもできます。 現在のシーク ポインターは、 plibNewPosition パラメーターで返されます。
例
次の例は、シーク ポインターを新しい場所に配置する方法を示しています。
LONG lNewPos;
HRESULT hr;
// Change the seek pointer.
hr = pIByteBuff->Seek(5, STREAM_SEEK_SET, &lNewPos);
if (FAILED(hr))
printf("Failed IByteBuffer::Seek\n");
else
printf("New position is %x\n", lNewPos);
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows XP [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows Server 2003 [デスクトップ アプリのみ] |
クライアント サポートの終了 |
Windows XP |
サーバー サポートの終了 |
Windows Server 2003 |
ヘッダー |
|
タイプ ライブラリ |
|
[DLL] |
|
IID |
IID_IByteBufferは E126F8FE-A7AF-11D0-B88A-00C04FD424B9 として定義されています |