IMoniker::Inverse メソッド (objidl.h)
このモニカーの逆であるモニカーを作成します。 このモニカーの右側または同様の構造の 1 つに構成されている場合、モニカーは何も作成しません。
構文
HRESULT Inverse(
[out] IMoniker **ppmk
);
パラメーター
[out] ppmk
このモニカーの逆であるモニカーへのインターフェイス ポインターを受け取る IMoniker ポインター変数のアドレス。 成功した場合、実装は新しい逆モニカーで AddRef を呼び出す必要があります。 Release を呼び出すのは呼び出し元の責任です。 エラーが発生した場合、実装では *ppmk を NULL に設定する必要があります。
戻り値
このメソッドは、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 を呼び出す必要があります。これは、使用しているモニカーがアンチモニカーを逆と見なしていることを確信できないためです。逆メソッドは、相対モニカーの構築を支援するために、IMoniker::RelativePathTo メソッドの実装によっても呼び出されます。
実装者へのメモ
モニカーに内部構造がない場合は、 で CreateAntiMoniker 関数を呼び出して、 IMoniker::Inverse の実装でアンチモニカーを取得できます。 IMoniker::ComposeWith の実装では、逆関数の実装で指定した逆関数をチェックする必要があります。実装固有の注意事項
実装 | メモ |
---|---|
アンチモニカー | このメソッドはMK_E_NOINVERSEを返し、*ppmk を NULL に設定 します。 |
クラス モニカー | このメソッドは、アンチモニカー (つまり、 CreateAntiMoniker を呼び出した結果) を返します。 |
ファイル モニカー | このメソッドは、アンチモニカー (つまり、 CreateAntiMoniker を呼び出した結果) を返します。 |
汎用複合モニカー | このメソッドは、元の複合の各コンポーネントの逆数で構成される複合モニカーを返します。逆順に格納されます。 たとえば、A の逆関数が Inv( A ) の場合、A、B、C の複合の逆関数は Comp(Inv( C )、Inv( B )、Inv( A ) です。 |
アイテム モニカー | このメソッドは、アンチモニカー (つまり、 CreateAntiMoniker を呼び出した結果) を返します。 |
OBJREF モニカー | このメソッドは、アンチモニカー (つまり、 CreateAntiMoniker を呼び出した結果) を返します。 |
ポインター モニカー | このメソッドは、アンチモニカー (つまり、 CreateAntiMoniker を呼び出した結果) を返します。 |
URL モニカー | このメソッドはMK_E_NOINVERSEを返し、*ppmk を NULL に設定 します。 |
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | objidl.h |