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 |
---|---|
|
Der inverse Moniker wurde erfolgreich zurückgegeben. |
|
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 |