StgCreateDocfileOnILockBytes

呼び出し元が提供するバイト配列オブジェクトの上に新しい複合ファイルストレージオブジェクトを作成して開く。

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
インターフェイスを指す)は、ディスクファイルの代わりに基礎となるストレージとして使用される。プログラマが提供するバイト配列オブジェクトを指定することを除けば、StgCreateDocfileOnILockBytesStgCreateDocfile 関数に似ている。新しく作成された複合ファイルは 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
URLhttps://github.com/inovia/IronHSP
備考Win32 API の ole32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_ole32_gen2.hs