IMoniker_Inverse

このモニカーの逆となるモニカーを作成する。このモニカーまたは類似構造のモニカーの右側に合成すると、モニカーは何もない状態に合成される。

IMoniker_Inverse this, ppmk

this : [comobj] IMoniker インターフェースの COM オブジェクト変数
ppmk : [comobj] このモニカーの逆となるモニカーへのインターフェースポインタを受け取る IMoniker ポインタ変数のアドレス。成功時、実装は新しい逆モニカーに対して AddRef を呼び出さなければならない。呼び出し側は Release を呼び出す責任がある。エラーが発生した場合、実装は *ppmk を NULL に設定すべきである。

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

解説

このモニカーの逆となるモニカーを作成する。このモニカーまたは類似構造のモニカーの右側に合成すると、モニカーは何もない状態に合成される。

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

[備考]
モニカーの逆は、MS-DOS ファイルシステムの ".." ディレクトリに類似している。".."
ディレクトリは他の任意のディレクトリ名の逆として機能する。ディレクトリ名に ".."
を追加すると空のパスになるからである。同様に、モニカーの逆は通常は同じクラスのすべてのモニカーの逆でもある。ただし、異なるクラスのモニカーの逆であるとは限らない。複合モニカーの逆は、元のモニカーのコンポーネントの逆を逆順に並べた複合である。例えば、A
の逆を Inv( A )、A、B、C の複合を Comp( A, B, C ) とすると、Inv( Comp( A, B, C ) ) は
Comp( Inv( C ), Inv( B ), Inv( A ) )
と等しい。すべてのモニカーに逆があるわけではない。アンチモニカーなど、それ自体が逆であるモニカーの多くは逆を持たない。逆を持たないモニカーでは、それが識別するオブジェクトの内側から外側の他のオブジェクトへの相対モニカーを形成できない。呼び出し側への注意:
モニカーを使用して別のオブジェクトを特定しているオブジェクトは、通常、自身が使用しているモニカーのクラスを知らない。モニカーの逆を取得するには、使用中のモニカーがアンチモニカーを自身の逆と見なしているかどうか確信が持てないため、CreateAntiMoniker
関数ではなく常に IMoniker::Inverse を呼び出すべきである。
Inverse メソッドは、相対モニカーの構築を助けるため、IMoniker::RelativePathTo
メソッドの実装からも呼び出される。実装者への注意: モニカーに内部構造がない場合、IMoniker::Inverse
の実装内でアンチモニカーを取得するために CreateAntiMoniker
関数を呼び出すことができる。IMoniker::ComposeWith の実装では、Inverse
の実装で提供した逆をチェックする必要がある。実装固有の注意:
(以下省略)

情報

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