IMoniker_BindToStorage

指定したオブジェクトのストレージにバインドする。IMoniker::BindToObject メソッドとは異なり、このメソッドはモニカーが識別するオブジェクトをアクティブ化しない。

IMoniker_BindToStorage this, pbc, pmkToLeft, riid, ppvObj

this : [comobj] IMoniker インターフェースの COM オブジェクト変数
pbc : [comobj] このバインド操作で使用するバインドコンテキストオブジェクトの IBindCtx インターフェースへのポインタ。バインドコンテキストは、バインド処理中にバインドされたオブジェクトをキャッシュし、バインドコンテキストを使用するすべての操作に適用されるパラメータを含み、モニカー実装がその環境について情報を取得するための手段を提供する。
pmkToLeft : [comobj] モニカーが複合モニカーの一部である場合、このモニカーの左側にあるモニカーへのポインタ。このパラメータは主にモニカー実装者が複合モニカーの各構成要素間の連携を可能にするために使用する。モニカークライアントは NULL を指定すべきである。
riid : [var] 要求するストレージインターフェースの識別子への参照であり、ppvObj に返されるポインタの型となる。一般的に要求されるストレージインターフェースには IStorage、IStream、および ILockBytes がある。
ppvObj : [int] riid で要求されたインターフェースポインタを受け取るポインタ変数のアドレス。呼び出しが成功すると、*ppvObj にはモニカーが識別するオブジェクトのストレージに対する要求インターフェースポインタが格納される。成功時、実装はストレージに対して AddRef を呼び出さなければならない。呼び出し側は Release を呼び出す責任がある。エラーが発生した場合、*ppvObj は NULL であるべきである。

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

解説

指定したオブジェクトのストレージにバインドする。IMoniker::BindToObject
メソッドとは異なり、このメソッドはモニカーが識別するオブジェクトをアクティブ化しない。

[戻り値]
このメソッドは、標準の戻り値 E_UNEXPECTED のほか、以下の値を返す場合がある。
(以下省略)

[備考]
BindToObject と BindToStorage
の間には重要な違いがある。例えば、スプレッドシートオブジェクトを識別するモニカーがある場合、BindToObject
を呼び出すとスプレッドシートオブジェクト自体にアクセスできるが、BindToStorage
を呼び出すとスプレッドシートが置かれているストレージオブジェクトにアクセスできる。呼び出し側への注意: COM
のモニカークラスのいずれもバインド処理でこのメソッドを呼び出さないが、新しいモニカークラスの実装ではこれを呼び出すことが適切な場合がある。pmkToLeft
パラメータで識別されるオブジェクトからの情報を必要とし、アクティブ化せずにそのオブジェクトの永続ストレージから取得できる場合、BindToObject
の実装内で本メソッドを呼び出すことができる。例えば、コンテナをアクティブ化せずにアクティブ化できるオブジェクトを識別するモニカーであれば、このメソッドが有用である。識別するオブジェクトのストレージを読み取れるクライアントもこのメソッドを呼び出せる。実装者への注意:
実装は現在のモニカーが識別するオブジェクトの永続ストレージを特定し、目的のインターフェースポインタを返すべきである。モニカーの種類によっては擬似オブジェクト
(自身の永続ストレージを持たず、コンテナの内部状態の一部を成すオブジェクト。例: スプレッドシート内のセル範囲)
を表す。このような種類のオブジェクトをモニカークラスが識別する場合、BindToStorage の実装は MK_E_NOSTORAGE
エラーを返すべきである。バインドコンテキストの BIND_OPTS 構造体に BINDFLAGS_JUSTTESTEXISTENCE
フラグが指定されている場合、実装は ppvObj に NULL を返すこともできる
(ただし、フラグを無視して完全なバインド操作を実行してもよい)。実装固有の注意:
(以下省略)

情報

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