CreateGenericComposite-Funktion (objbase.h)
Führt eine generische Komposition aus zwei Monikern aus und stellt einen Zeiger auf den resultierenden zusammengesetzten Moniker bereit.
Syntax
HRESULT CreateGenericComposite(
[in, optional] LPMONIKER pmkFirst,
[in, optional] LPMONIKER pmkRest,
[out] LPMONIKER *ppmkComposite
);
Parameter
[in, optional] pmkFirst
Ein Zeiger auf den Moniker, der links neben dem Moniker zusammengesetzt werden soll, auf den pmkRest zeigt. Kann auf jede Art von Moniker verweisen, einschließlich eines generischen Zusammengesetzten.
[in, optional] pmkRest
Ein Zeiger auf den Moniker, der rechts neben dem Moniker zusammengesetzt werden soll, auf den pmkFirst verweist. Kann auf jede Art von Moniker verweisen, die mit dem Typ des pmkRest-Monikers kompatibel sind, einschließlich eines generischen Zusammengesetzten.
[out] ppmkComposite
Die Adresse einer IMoniker*-Zeigervariable, die den Schnittstellenzeiger auf das zusammengesetzte Monikerobjekt empfängt, das das Ergebnis der Erstellung von pmkFirst und pmkRest ist. Dieses Objekt unterstützt die IMPLEMENTIERUNG des zusammengesetzten OLE-Monikers von IMoniker. Bei erfolgreicher Ausführung hat die Funktion AddRef für den Moniker aufgerufen, und der Aufrufer ist für den Aufruf von Release verantwortlich. Wenn entweder pmkFirst oder pmkRestNULL sind, ist der angegebene Zeiger derjenige, der nicht NULL ist. Wenn sowohl pmkFirst als auch pmkRestNULL sind oder ein Fehler auftritt, ist der zurückgegebene Zeiger NULL.
Rückgabewert
Diese Funktion kann den Standardrückgabewert E_OUTOFMEMORY sowie die folgenden Werte zurückgeben.
Rückgabecode | BESCHREIBUNG |
---|---|
|
Die Eingabemoniker wurden erfolgreich erstellt. |
|
Die beiden Moniker konnten aufgrund eines Fehlers in der Syntax eines Pfads nicht zusammengesetzt werden (z. B. wenn sowohl pmkFirst als auch pmkRest Dateimoniker sind, die auf absoluten Pfaden basieren). |
Hinweise
CreateGenericComposite verknüpft zwei Moniker zu einem. Die moniker-Klassen, die verknüpft werden, können unterschiedlich sein und nur den Kompositionsregeln unterliegen. Rufen Sie diese Funktion nur auf, wenn Sie eine neue Moniker-Klasse schreiben, indem Sie die IMoniker-Schnittstelle implementieren, innerhalb einer Implementierung von IMoniker::ComposeWith , die eine generische Kompositionsfunktion enthält.
Moniker-Anbieter sollten ComposeWith aufrufen, um zwei Moniker zusammen zu verfassen. Implementierungen von ComposeWith sollten (ebenso wie OLE-Implementierungen) versuchen, wenn dies für die Klasse sinnvoll ist, zunächst nicht generische Kompositionen auszuführen, in denen zwei Moniker derselben Klasse kombiniert werden. Wenn dies nicht möglich ist, kann die Implementierung CreateGenericComposite aufrufen, um eine generische Komposition zu erstellen, die zwei Moniker verschiedener Klassen innerhalb der Kompositionsregeln kombiniert. Sie können neue Typen von nicht generischen Kompositionen definieren, wenn Sie eine neue Monikerklasse schreiben.
Während des Komponierens der beiden Moniker macht CreateGenericComposite alle möglichen Vereinfachungen. Betrachten Sie das Beispiel, in dem pmkFirst der generische zusammengesetzte Moniker ist, A + B + C und pmkRest der generische zusammengesetzte Moniker, C -1 + B -1 + Z (wobei C -1 der Inverse von C ist). Die Funktion erstellt zunächst C bis C -1, was zu nichts zusammensetzt. Dann besteht B und B -1 zu nichts. Schließlich besteht er aus A bis Z und liefert einen Zeiger auf den generischen zusammengesetzten Moniker A + Z.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | objbase.h |
Bibliothek | Ole32.lib |
DLL | Ole32.dll |
APIs | ext-ms-win-com-ole32-l1-1-5 (eingeführt in Windows 10, Version 10.0.15063) |