ストリームの現在のシークポインタから別のストリームの現在のシークポインタへ、指定されたバイト数をコピーする。
IStream_CopyTo this, pstm, cb, pcbRead, pcbWritten
this : [comobj] IStream インターフェースの COM オブジェクト変数 pstm : [comobj] 宛先ストリームへのポインタ。pstm が指すストリームは、新しいストリームでもソースストリームのクローンでもよい。 cb : [int64] ソースストリームからコピーするバイト数。 pcbRead : [var] このメソッドがソースから実際に読み取ったバイト数を書き込む位置へのポインタ。このポインタを NULL に設定できる。その場合、このメソッドは実際に読み取ったバイト数を提供しない。 pcbWritten : [var] このメソッドが宛先に実際に書き込んだバイト数を書き込む位置へのポインタ。このポインタを NULL に設定できる。その場合、このメソッドは実際に書き込んだバイト数を提供しない。
(プラグイン / モジュール : com_misc.dll)
ストリームの現在のシークポインタから別のストリームの現在のシークポインタへ、指定されたバイト数をコピーする。 [戻り値] このメソッドは次のいずれかの値を返す。 | リターンコード | 説明 | |----------------|---------------| |S_OK | ストリームオブジェクトが正常にコピーされた。| |E_PENDING | 非同期ストレージのみ: コピー対象のデータの一部または全部が現在利用できない。 | |STG_E_INVALIDPOINTER | ポインタパラメータの 1 つの値が無効である。| |STG_E_MEDIUMFULL | ストレージデバイスに空き容量がないため、ストリームがコピーされない。| |STG_E_REVERTED | トランザクションツリーの上位の revert 操作によりオブジェクトが無効化された。| [備考] CopyTo メソッドは、指定されたバイトを 1 つのストリームから別のストリームにコピーする。ストリームを自分自身にコピーするのにも使用できる。各ストリームインスタンスのシークポインタは、読み書きされたバイト数だけ調整される。このメソッドは、ISequentialStream::Read を使用して cb バイトをメモリに読み込み、即座に ISequentialStream::Write を使用して宛先ストリームに書き込むのと等価であるが、IStream::CopyTo の方が効率的である。宛先ストリームは、IStream::Clone メソッドを呼び出して作成したソースストリームのクローンでもよい。IStream::CopyTo がエラーを返した場合、ソースまたは宛先のシークポインタが有効であると仮定してはならない。さらに、pcbRead と pcbWritten の値は返されても意味を持たない。IStream::CopyTo が成功した場合、実際に読み書きされたバイト数は同じである。現在のシークポインタからソースの残りをコピーするには、cb パラメータに最大の large integer 値を指定する。シークポインタがストリームの先頭にある場合、この操作はストリーム全体をコピーする。
| プラグイン / モジュール | com_misc.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の com_misc.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_com_misc_gen2.hs |