ISequentialStream_Read

現在のシークポインタから始めて、指定された数のバイトをストリームオブジェクトからメモリへ読み取る。

ISequentialStream_Read this, pv, cb, pcbRead

this : [comobj] ISequentialStream インターフェースの COM オブジェクト変数
pv : [intptr] ストリームデータの読み込み先となるバッファへのポインタ。
cb : [int] ストリームオブジェクトから読み取るデータのバイト数。
pcbRead : [var] ストリームオブジェクトから実際に読み取られたバイト数を受け取る ULONG 変数へのポインタ。注意 読み取られたバイト数は 0 になることもある。

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

解説

現在のシークポインタから始めて、指定された数のバイトをストリームオブジェクトからメモリへ読み取る。

[戻り値]
このメソッドは以下のいずれかの値を返すことができる。 | 戻りコード | 説明 |
|----------------|---------------| |S_OK |
要求されたデータがすべてストリームオブジェクトから正常に読み取られた。*cb* で要求したバイト数と *pcbRead*
で返されたバイト数が同じである。| |S_FALSE | *pcbRead* で返された値が *cb*
で要求したバイト数より少ない。これはストリームの末尾に達したことを示す。読み取られたバイト数は *pv*
バッファのうちどれだけが埋められたかを示す。| |E_PENDING | 非同期ストレージのみ:
読み取るべきデータの一部または全部が現在利用不可である。| |STG_E_ACCESSDENIED |
呼び出し側がこのストリームオブジェクトを読み取るのに必要な権限を持っていない。| |STG_E_INVALIDPOINTER |
ポインタ値の 1 つが無効である。| |STG_E_REVERTED | トランザクションツリー内でその上位の revert
操作によりオブジェクトが無効化された。|

[備考]
このメソッドはこのストリームオブジェクトからメモリへバイトを読み取る。ストリームオブジェクトは STGM_READ
モードで開かれていなければならない。このメソッドは実際に読み取ったバイト数だけシークポインタを進める。実際に読み取られたバイト数は
pcbRead パラメータでも返される。呼び出し側への注意
エラーが発生したり読み取り操作中にストリームの末尾に達したりした場合、実際に読み取られるバイト数は要求したバイト数より少なくなることがある。返されるバイト数は常に要求したバイト数と比較すべきである。返されるバイト数が要求より少ない場合、通常は
Read
メソッドがストリームの末尾を超えて読み取ろうとしたことを意味する。アプリケーションはストリーム終端での読み取りに対するエラー戻り値と
S_OK 戻り値の両方を扱うべきである。

情報

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