IMoniker::Inverse-Methode (objidl.h)

Erstellt einen Moniker, der die Inverse dieses Monikers ist. Wenn er rechts von diesem Moniker oder einer ähnlichen Struktur zusammengesetzt ist, wird der Moniker in nichts komponiert.

Syntax

HRESULT Inverse(
  [out] IMoniker **ppmk
);

Parameter

[out] ppmk

Die Adresse einer IMoniker-Zeigervariable , die den Schnittstellenzeiger auf einen Moniker empfängt, der die Inverse dieses Monikers darstellt. Bei erfolgreicher Implementierung muss AddRef für den neuen inversen Moniker aufgerufen werden. Es liegt in der Verantwortung des Aufrufers , Release aufzurufen. Wenn ein Fehler auftritt, sollte die Implementierung *ppmk auf NULL festlegen.

Rückgabewert

Diese Methode kann die Standardrückgabewerte E_OUTOFMEMORY sowie die folgenden Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Der inverse Moniker wurde erfolgreich zurückgegeben.
MK_E_NOINVERSE
Die Monikerklasse weist keine Inverse auf.

Hinweise

Die Inverse eines Monikers ist analog zum Verzeichnis ".." in MS-DOS-Dateisystemen; das Verzeichnis ".." fungiert als Inverse zu jedem anderen Verzeichnisnamen, da das Anfügen von ".." an einen Verzeichnisnamen zu einem leeren Pfad führt. Auf die gleiche Weise ist die Inverse eines Monikers in der Regel auch die Inverse aller Moniker in derselben Klasse. Es ist jedoch nicht unbedingt die Umkehrung eines Monikers einer anderen Klasse.

Die Inverse eines zusammengesetzten Monikers ist ein Zusammengesetztes, das aus den Inversen der Komponenten des ursprünglichen Monikers besteht, in umgekehrter Reihenfolge angeordnet. Wenn beispielsweise die Inverse von A Inv( A ) ist und die Zusammengesetzte aus A, B und C Comp( A, B, C ) ist, dann

Inv( Comp( A, B, C ) ) ist gleich Comp( Inv( C ), Inv( B ), Inv( A ) ).

Nicht alle Moniker haben Umgekehrtes. Die meisten Moniker, die selbst Inverse sind, wie Anti-Moniker, haben keine Umkehrungen. Moniker, die keinen Umgekehrten haben, können keine relativen Moniker innerhalb der Objekte haben, die sie mit anderen Objekten außerhalb identifizieren.

Hinweise für Anrufer

Ein -Objekt, das einen Moniker verwendet, um ein anderes Objekt zu suchen, kennt normalerweise nicht die Klasse des monikers, das es verwendet. Um die Inverse eines Monikers zu erhalten, sollten Sie immer IMoniker::Inverse und nicht die CreateAntiMoniker-Funktion aufrufen, da Sie nicht sicher sein können, dass der von Ihnen verwendete Moniker einen Antimoniker als inverse betrachtet.

Die Inverse-Methode wird auch von der Implementierung der IMoniker::RelativePathTo-Methode aufgerufen, um beim Erstellen eines relativen Monikers zu unterstützen.

Hinweise zu Implementierern

Wenn Ihre Moniker keine interne Struktur haben, können Sie die Funktion CreateAntiMoniker aufrufen, um einen Antimoniker in Ihrer Implementierung von IMoniker::Inverse zu erhalten. In Ihrer Implementierung von IMoniker::ComposeWith müssen Sie die Inverse überprüfen, die Sie bei der Implementierung von Inverse bereitstellen.

Implementierungsspezifische Hinweise

Implementierung Hinweise
Antimoniker Diese Methode gibt MK_E_NOINVERSE zurück und legt *ppmk auf NULL fest.
Klassenmoniker Diese Methode gibt einen Antimoneiker zurück (d. a. die Ergebnisse des Aufrufs von CreateAntiMoniker).
Dateimoniker Diese Methode gibt einen Antimoneiker zurück (d. a. die Ergebnisse des Aufrufs von CreateAntiMoniker).
Generischer zusammengesetzter Moniker Diese Methode gibt einen zusammengesetzten Moniker zurück, der aus den Inversen der einzelnen Komponenten des ursprünglichen Zusammengesetzten besteht, die in umgekehrter Reihenfolge gespeichert sind. Wenn der Inverse von A beispielsweise Inv( A ist), ist die Inverse des Verbunds von A, B und C Comp(Inv( C ), Inv( B ), Inv( A ) ).
Elementmoniker Diese Methode gibt einen Antimoneiker zurück (d. a. die Ergebnisse des Aufrufs von CreateAntiMoniker).
OBJREF-Moniker Diese Methode gibt einen Antimoneiker zurück (d. a. die Ergebnisse des Aufrufs von CreateAntiMoniker).
Zeigermoniker Diese Methode gibt einen Antimoneiker zurück (d. a. die Ergebnisse des Aufrufs von CreateAntiMoniker).
URL-Moniker Diese Methode gibt MK_E_NOINVERSE zurück und legt *ppmk auf NULL fest.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile objidl.h

Weitere Informationen

CreateAntiMoniker

Imoniker