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 |
---|---|
|
Indique la réussite de l’opération. |
|
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. |
|
Cette classe ne peut pas être créée dans le cadre d’un agrégat. |
|
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. |
|
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 |