CreateGenericComposite, fonction (objbase.h)

Effectue une composition générique de deux monikers et fournit un pointeur vers le moniker composite résultant.

Syntaxe

HRESULT CreateGenericComposite(
  [in, optional] LPMONIKER pmkFirst,
  [in, optional] LPMONIKER pmkRest,
  [out]          LPMONIKER *ppmkComposite
);

Paramètres

[in, optional] pmkFirst

Pointeur vers le moniker à composer à gauche du moniker vers lequel pmkRest pointe. Peut pointer vers n’importe quel type de moniker, y compris un composite générique.

[in, optional] pmkRest

Pointeur vers le moniker à composer à droite du moniker auquel pmkFirst pointe. Peut pointer vers n’importe quel type de moniker compatible avec le type du moniker pmkRest , y compris un composite générique.

[out] ppmkComposite

Adresse d’une variable de pointeur IMoniker* qui reçoit le pointeur d’interface vers l’objet moniker composite résultant de la composition de pmkFirst et pmkRest. Cet objet prend en charge l’implémentation de moniker composite OLE d’IMoniker. En cas de réussite, la fonction a appelé AddRef sur le moniker et l’appelant est responsable de l’appel de Release. Si pmkFirst ou pmkRest ont la valeur NULL, le pointeur fourni est celui qui n’est pas NULL. Si pmkFirst et pmkRest ont la valeur NULL ou si une erreur se produit, le pointeur retourné est NULL.

Valeur retournée

Cette fonction peut retourner la valeur de retour standard E_OUTOFMEMORY, ainsi que les valeurs suivantes.

Code de retour Description
S_OK
Les monikers d’entrée ont été composés avec succès.
MK_E_SYNTAX
Les deux monikers n’ont pas pu être composés en raison d’une erreur dans la syntaxe d’un chemin d’accès (par exemple, si pmkFirst et pmkRest sont des monikers de fichier basés sur des chemins d’accès absolus).

Remarques

CreateGenericComposite joint deux monikers en un seul. Les classes de moniker jointes peuvent être différentes, soumises uniquement aux règles de composition. Appelez cette fonction uniquement si vous écrivez une nouvelle classe moniker en implémentant l’interface IMoniker , dans une implémentation de IMoniker ::ComposeWith qui inclut une fonctionnalité de composition générique.

Les fournisseurs moniker doivent appeler ComposeWith pour composer deux monikers ensemble. Les implémentations de ComposeWith doivent (tout comme les implémentations OLE) tenter, lorsque cela est raisonnable pour la classe, d’effectuer d’abord des compositions non génériques, dans lesquelles deux monikers de la même classe sont combinés. Si cela n’est pas possible, l’implémentation peut appeler CreateGenericComposite pour effectuer une composition générique, qui combine deux monikers de classes différentes, dans les règles de composition. Vous pouvez définir de nouveaux types de compositions non génériques si vous écrivez une nouvelle classe moniker.

Pendant le processus de composition des deux monikers, CreateGenericComposite effectue toutes les simplifications possibles. Prenons l’exemple où pmkFirst est le moniker composite générique, A + B + C, et pmkRest est le moniker composite générique, C -1 + B -1 + Z (où C -1 est l’inverse de C). La fonction compose d’abord C à C -1, qui compose à rien. Ensuite, il compose B et B -1 à rien. Enfin, il compose de A à Z et fournit un pointeur vers le moniker composite générique, A + Z.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête objbase.h
Bibliothèque Ole32.lib
DLL Ole32.dll
Ensemble d’API ext-ms-win-com-ole32-l1-1-5 (introduit dans Windows 10, version 10.0.15063)

Voir aussi

IMoniker

IMoniker ::ComposeWith