呼び出し元が提供するバイト配列オブジェクトの上に新しい複合ファイルストレージオブジェクトを作成して開く。
StgCreateDocfileOnILockBytes plkbyt, grfMode, reserved, ppstgOpen
plkbyt : [var] 複合ファイルを作成する基礎となるバイト配列オブジェクト上の ILockBytes インターフェイスへのポインタ。 grfMode : [int] 新しい複合ファイルを開くときに使用するアクセスモードを指定する。詳細については STGM Constants と後述の Remarks を参照のこと。 reserved : [int] 将来の使用のために予約されており、ゼロでなければならない。 ppstgOpen : [var] 新しいストレージオブジェクト上の IStorage ポインタの場所へのポインタ。
(プラグイン / モジュール : ole32.dll)
呼び出し元が提供するバイト配列オブジェクトの上に新しい複合ファイルストレージオブジェクトを作成して開く。 [戻り値] StgCreateDocfileOnILockBytes 関数は HRESULT にラップされたファイルシステムエラーやシステムエラー、または ILockBytes インターフェイスのエラー戻り値も返すことがある。詳細については Error Handling Strategies と Handling Unknown Errors を参照のこと。 [備考] StgCreateDocfileOnILockBytes 関数は、IStorage インターフェイスの COM が提供する複合ファイル実装を使用して、バイト配列オブジェクトの上にストレージオブジェクトを作成する。StgCreateDocfileOnILockBytes は、メモリやリレーショナルデータベースなどの任意のデータストアにドキュメントを格納するために使用できる。バイト配列(pLkbyt パラメータが指す。これはオブジェクト上の ILockBytes インターフェイスを指す)は、ディスクファイルの代わりに基礎となるストレージとして使用される。プログラマが提供するバイト配列オブジェクトを指定することを除けば、StgCreateDocfileOnILockBytes は StgCreateDocfile 関数に似ている。新しく作成された複合ファイルは grfMode パラメータのアクセスモードに従って開かれるが、次の制約に従う:共有モードの動作とトランザクション分離は、LOCK_ONLYONCE セマンティクスでの LockRegion と UnlockRegion をサポートする ILockBytes 実装に依存する。実装は STATSTG の grfLocksSupported メンバーに LOCK_ONLYONCE ビットを設定することで、構造化ストレージにこの機能をサポートしていることを示すことができる。ILockBytes 実装がこの機能をサポートしていない場合、共有モードは強制されず、ルートレベルのトランザクションコミットは同じバイト配列上で開かれた他のトランザクションインスタンスと適切に協調しない。CreateStreamOnHGlobal 実装のような領域ロックをサポートしない ILockBytes 実装を使用するアプリケーションは、同じバイト配列上で複数の同時インスタンスを開くことを避けるべきである。StgCreateDocfileOnILockBytes はシンプルモードをサポートしない。STGM_SIMPLE フラグが存在する場合は無視される。変換目的では、ファイルはすでに存在するとみなされる。その結果、エラーが返されるため STGM_FAILIFTHERE 値を使用することは有用ではない。しかし、STGM_CREATE と STGM_CONVERT は依然として有用である。バイト配列オブジェクトの上に複合ファイルを構築できる機能は、データ(IStorage と IStream ツリー構造の下)を非永続的な空間に置く機能をサポートするために提供されている。この機能を考えると、ファイルに格納されているドキュメントがこの機能を使用することを妨げるものはない。たとえば、コンテナは COM の採用によって自分のファイル形式に与える影響を最小化するためにこれを行うかもしれない。しかし、COM ドキュメントは独自の最外殻ストレージのために IStorage インターフェイスを採用することが推奨される。これには次の利点がある: (以下省略)
| プラグイン / モジュール | ole32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の ole32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_ole32_gen2.hs |