ISequentialStream_Write

現在のシークポインタから始めて、指定された数のバイトをストリームオブジェクトへ書き込む。

ISequentialStream_Write this, pv, cb, pcbWritten

this : [comobj] ISequentialStream インターフェースの COM オブジェクト変数
pv : [intptr] ストリームに書き込むデータを含むバッファへのポインタ。cb が 0 であってもこのパラメータには有効なポインタを指定しなければならない。
cb : [int] ストリームに書き込もうとするデータのバイト数。この値は 0 でもよい。
pcbWritten : [var] このメソッドが、ストリームオブジェクトへ実際に書き込んだバイト数を書き込む ULONG 変数へのポインタ。呼び出し側はこのポインタを NULL に設定でき、その場合このメソッドは実際に書き込まれたバイト数を提供しない。

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

解説

現在のシークポインタから始めて、指定された数のバイトをストリームオブジェクトへ書き込む。

[戻り値]
このメソッドは以下のいずれかの値を返すことができる。 | 戻りコード | 説明 |
|----------------|---------------| |S_OK |
データがストリームオブジェクトへ正常に書き込まれた。| |E_PENDING | 非同期ストレージのみ:
書き込むべきデータの一部または全部が現在利用不可である。| |STG_E_MEDIUMFULL |
ストレージデバイスに残り容量がないため書き込み操作に失敗した。| |STG_E_ACCESSDENIED |
呼び出し側がこのストリームオブジェクトへ書き込むのに必要な権限を持っていない。| |STG_E_CANTSAVE |
不適切なアクセスや空き容量不足以外の理由でデータを書き込めない。| |STG_E_INVALIDPOINTER | ポインタ値の 1
つが無効である。cb が 0 でも *pv* パラメータには有効なポインタを含めなければならない。| |STG_E_REVERTED |
トランザクションツリー内でその上位の revert 操作によりオブジェクトが無効化された。| |STG_E_WRITEFAULT |
ディスクエラーにより書き込み操作に失敗した。シンプルモード (STGM_SIMPLE フラグを使用)
で開かれたストリームへ書き込もうとした場合にもこの値が返される。|

[備考]
ISequentialStream::Write
は指定されたデータをストリームオブジェクトへ書き込む。シークポインタは実際に書き込まれたバイト数だけ進められる。実際に書き込まれたバイト数は
pcbWritten パラメータで返される。バイト数が 0
の場合、書き込み操作は何の効果も持たない。シークポインタが現在ストリームの末尾を超えており、バイト数が 0
でない場合、このメソッドはストリームのサイズをシークポインタまで拡大し、シークポインタの位置から指定されたバイトを書き込む。ストリームに書き込まれた埋め草バイトは特定の値で初期化されない。これは
MS-DOS FAT ファイルシステムでのファイル末尾の動作と同じである。バイト数が 0
でかつシークポインタがストリーム末尾を超えている場合、このメソッドはストリームをシークポインタまで拡大するための埋め草バイトを作成しない。この場合、ストリームのサイズを拡大して埋め草バイトを書き込むには
IStream::SetSize メソッドを呼び出さなければならない。エラーが発生しても pcbWritten
パラメータが値を持つことがある。COM
提供の実装ではストリームオブジェクトはスパースではなく、すべての埋め草バイトは最終的にディスク上に割り当てられストリームに紐付けられる。

情報

プラグイン / モジュール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