StgOpenStorageOnILockBytes

StgOpenStorageOnILockBytes 関数は、ディスクファイル内には存在せず、代わりに呼び出し元が提供する基礎となるバイト配列を持つ既存のストレージオブジェクトを開く。

StgOpenStorageOnILockBytes plkbyt, pstgPriority, grfMode, snbExclude, reserved, ppstgOpen

plkbyt : [var] 開かれるストレージオブジェクトを含む基礎となるバイト配列オブジェクトへの ILockBytes ポインタ。
pstgPriority : [var] NULL であるべき IStorage インターフェイスへのポインタ。NULL でない場合、このパラメータは後述の Remarks セクションで説明されるように使用される。StgOpenStorageOnILockBytes が戻った後、pStgPriority で指定されたストレージオブジェクトは解放されている可能性があり、もはや使用すべきではない。
grfMode : [int] ストレージオブジェクトを開くために使用するアクセスモードを指定する。詳細については STGM Constants と後述の Remarks を参照のこと。
snbExclude : [var] NULL でもよい。NULL でない場合、このパラメータはストレージオブジェクトが開かれるときに除外されるストレージ内の要素ブロックを指す。この除外は、開く際にスナップショットコピーが発生するかどうかとは独立して発生する。
reserved : [int] 将来の使用のために予約されていることを示す。ゼロでなければならない。
ppstgOpen : [var] 成功時に開かれたストレージへの IStorage ポインタの場所を指す。

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

解説

StgOpenStorageOnILockBytes
関数は、ディスクファイル内には存在せず、代わりに呼び出し元が提供する基礎となるバイト配列を持つ既存のストレージオブジェクトを開く。

[戻り値]
StgOpenStorageOnILockBytes 関数は HRESULT にラップされたファイルシステムエラーやシステムエラー、または
ILockBytes インターフェイスのエラー戻り値も返すことがある。Error Handling Strategies と
Handling Unknown Errors を参照のこと。

[備考]
StgOpenStorageOnILockBytes は指定されたルートストレージオブジェクトを開く。開かれたストレージオブジェクト上の
IStorage インターフェイスへのポインタは ppstgOpen パラメータを通じて提供される。ストレージオブジェクトは事前に
StgCreateDocfileOnILockBytes
関数で作成されていなければならない。プログラマが提供するバイト配列オブジェクトを指定することを除けば、StgOpenStorageOnILockBytesStgOpenStorage 関数に似ている。ストレージオブジェクトは grfMode
パラメータのアクセスモードに従って開かれるが、次の制約に従う:共有モードの動作とトランザクション分離は、LOCK_ONLYONCE
セマンティクスでの LockRegion と UnlockRegion をサポートする ILockBytes 実装に依存する。実装は
STATSTG の grfLocksSupported メンバーに LOCK_ONLYONCE
ビットを設定することで、構造化ストレージにこの機能をサポートしていることを示すことができる。ILockBytes
実装がこの機能をサポートしていない場合、共有モードは強制されず、ルートレベルのトランザクションコミットは同じバイト配列上で開かれた他のトランザクションインスタンスと適切に協調しない。CreateStreamOnHGlobal
実装のような領域ロックをサポートしない ILockBytes
実装を使用するアプリケーションは、同じバイト配列上で複数の同時インスタンスを開くことを避けるべきである。StgOpenStorageOnILockBytes
はシンプルモードをサポートしない。STGM_SIMPLE フラグが存在する場合は無視される。pStgPriority
パラメータは、既存のストレージオブジェクト(多くの場合、優先モードで開かれたもの)を、同じバイト配列で開かれた新しいストレージオブジェクトに置き換える呼び出し元の便宜のためのものである。StgOpenStorage
の pStgPriority パラメータとは異なり、このパラメータは StgOpenStorageOnILockBytes
が実行する開く操作には影響せず、単に呼び出し元が解放したい既存のストレージオブジェクトである。StgOpenStorageOnILockBytes
は状況によってはオブジェクトを解放し、他の状況では解放しないため、呼び出し元は常にこのパラメータに NULL
を渡すべきである。pStgPriority パラメータの使用は、次の例に示すように、代わりに
StgOpenStorageOnILockBytes を呼び出す前にオブジェクトを解放することで、呼び出し元がより安全な方法で複製できる:
(以下省略)

情報

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