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
S_OK
Die Eingabemoniker wurden erfolgreich erstellt.
MK_E_SYNTAX
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)

Weitere Informationen

Imoniker

IMoniker::ComposeWith