Partager via


CoCreateInstanceFromApp, fonction (combaseapi.h)

Crée une instance d’une classe spécifique sur un ordinateur spécifique à partir d’un conteneur d’application.

Syntaxe

HRESULT CoCreateInstanceFromApp(
  [in]           REFCLSID Clsid,
  [in, optional] IUnknown *punkOuter,
  [in]           DWORD    dwClsCtx,
  [in, optional] PVOID    reserved,
  [in]           DWORD    dwCount,
  [in, out]      MULTI_QI *pResults
);

Paramètres

[in] Clsid

CLSID de l’objet à créer.

[in, optional] punkOuter

Si ce paramètre n’est pas NULL, indique que le instance est en cours de création dans le cadre d’un agrégat, et que punkOuter doit être utilisé comme IUnknown de contrôle de la nouvelle instance. L’agrégation n’est actuellement pas prise en charge entre les processus ou les ordinateurs. Lors de l’instanciation d’un objet hors processus, CLASS_E_NOAGGREGATION sera retourné si punkOuter n’a pas la valeur NULL.

[in] dwClsCtx

Valeur de l’énumération CLSCTX .

[in, optional] reserved

Réservé pour un usage futur.

[in] dwCount

Nombre de structures dans pResults. Cette valeur doit être supérieure à 0.

[in, out] pResults

Tableau de structures MULTI_QI . Chaque structure a trois membres : l’identificateur d’une interface demandée (pIID), l’emplacement où retourner le pointeur d’interface (pItf) et la valeur de retour de l’appel à QueryInterface (hr).

Valeur retournée

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

Code de retour Description
S_OK
Indique la réussite de l’opération.
REGDB_E_CLASSNOTREG
Une classe spécifiée n’est pas inscrite dans la base de données d’inscription, ou la classe n’est pas prise en charge dans le conteneur d’application. Peut également indiquer que le type de serveur que vous avez demandé dans l’énumération CLSCTX n’est pas inscrit ou que les valeurs des types de serveur dans le Registre sont endommagées.
CLASS_E_NOAGGREGATION
Cette classe ne peut pas être créée dans le cadre d’un agrégat.
CO_S_NOTALLINTERFACES
Au moins une, mais pas toutes les interfaces demandées dans le tableau pResults ont été récupérées avec succès. Le membre hr de chacune des structures MULTI_QI dans pResults indique avec S_OK ou E_NOINTERFACE si l’interface spécifique a été retournée.
E_NOINTERFACE
Aucune des interfaces demandées dans le tableau pResults n’a été récupérée.

Remarques

La fonction CoCreateInstanceFromApp est identique à la fonction CoCreateInstanceEx , avec les différences suivantes.

  • La fonction CoCreateInstanceFromApp lit les inscriptions de classes uniquement à partir des contextes d’application et de la ruche de registre HKLM\SOFTWARE\Classes\CLSID.
  • Seules les classes intégrées prises en charge dans le conteneur d’application sont fournies. Les tentatives d’activation de classes non prises en charge, y compris toutes les classes installées par le code tiers ainsi que de nombreuses classes Windows, entraînent un code d’erreur REGDB_E_CLASSNOTREG.
  • La fonction CoCreateInstanceFromApp est disponible pour les applications du Windows Store. Les applications de bureau peuvent appeler cette fonction, mais elles ont les mêmes restrictions que les applications du Windows Store.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2012 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête combaseapi.h
Bibliothèque Combase.lib
DLL Combase.dll

Voir aussi

CoCreateInstanceEx

Fusion (référence d’API non managée)