IStream_Seek

シークポインタを新しい位置に変更する。新しい位置は、ストリームの先頭、ストリームの末尾、または現在のシークポインタからの相対位置である。

IStream_Seek this, dlibMove, dwOrigin, plibNewPosition

this : [comobj] IStream インターフェースの COM オブジェクト変数
dlibMove : [int64] dwOrigin パラメータで示される位置に加算される変位。dwOrigin が STREAM_SEEK_SET の場合、これは符号付き値ではなく符号なし値として解釈される。
dwOrigin : [int] dlibMove で指定された変位の起点。起点は、ファイルの先頭 (STREAM_SEEK_SET)、現在のシークポインタ (STREAM_SEEK_CUR)、またはファイルの末尾 (STREAM_SEEK_END) のいずれかにできる。値の詳細については STREAM_SEEK 列挙を参照。
plibNewPosition : [var] このメソッドが、ストリームの先頭からの新しいシークポインタの値を書き込む位置へのポインタ。このポインタを NULL に設定できる。その場合、このメソッドは新しいシークポインタを提供しない。

(プラグイン / モジュール : com_misc.dll)

解説

シークポインタを新しい位置に変更する。新しい位置は、ストリームの先頭、ストリームの末尾、または現在のシークポインタからの相対位置である。

[戻り値]
このメソッドは次のいずれかの値を返す。 | リターンコード | 説明 |
|----------------|---------------| |S_OK | シークポインタが正常に調整された。|
|E_PENDING | 非同期ストレージのみ: ストリームデータの一部または全部が現在利用できない。 |
|STG_E_INVALIDPOINTER | *plibNewPosition*
が読み取られないため、*plibNewPosition* が無効なメモリを指していることを示す。|
|STG_E_INVALIDFUNCTION | *dwOrigin* パラメータに無効な値が含まれているか、*dlibMove*
パラメータに不正なオフセット値が含まれている。たとえば、シークポインタの結果が負のオフセット値である。| |STG_E_REVERTED
| トランザクションツリーの上位の revert 操作によりオブジェクトが無効化された。|

[備考]
IStream::Seek
はシークポインタを変更し、ストリームオブジェクト内の異なる位置で後続の読み書き操作を実行できるようにする。ストリームの先頭より前にシークすることはエラーである。ただし、ストリームの末尾を超えてシークすることはエラーではない。ストリームの末尾を超えてシークすることは、後続の書き込み操作に有用である。書き込みが完了する直前にストリームのバイト範囲が新しいシーク位置まで拡張されるからである。dwOrigin
パラメータを STREAM_SEEK_CUR に、dlibMove パラメータを 0
に設定してこのメソッドを呼び出すことで、シークポインタを変更せずにシークポインタの現在の値を取得することもできる。現在のシークポインタは
plibNewPosition パラメータで返される。

情報

プラグイン / モジュールcom_misc.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の com_misc.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_com_misc_gen2.hs