Función CoCreateInstanceFromApp (combaseapi.h)

Crea una instancia de una clase específica en un equipo específico desde un contenedor de aplicaciones.

Sintaxis

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

Parámetros

[in] Clsid

El CLSID del objeto que se va a crear.

[in, optional] punkOuter

Si este parámetro no es NULL, indica que la instancia se está creando como parte de un agregado, y punkOuter se va a usar como control de IUnknown de la nueva instancia. Actualmente, la agregación no es compatible entre procesos ni entre equipos. Al crear una instancia de un objeto fuera del proceso, se devolverá CLASS_E_NOAGGREGATION si punkOuter no es NULL.

[in] dwClsCtx

Valor de la enumeración CLSCTX .

[in, optional] reserved

Reservado para uso futuro.

[in] dwCount

Número de estructuras en pResults. Este valor debe ser mayor que 0.

[in, out] pResults

Matriz de estructuras de MULTI_QI . Cada estructura tiene tres miembros: el identificador de una interfaz solicitada (pIID), la ubicación para devolver el puntero de interfaz (pItf) y el valor devuelto de la llamada a QueryInterface (hr).

Valor devuelto

Esta función puede devolver el valor devuelto estándar E_INVALIDARG, así como los siguientes valores.

Código devuelto Descripción
S_OK
Indica que se completó correctamente.
REGDB_E_CLASSNOTREG
Una clase especificada no está registrada en la base de datos de registro o la clase no se admite en el contenedor de aplicaciones. También puede indicar que el tipo de servidor solicitado en la enumeración CLSCTX no está registrado o los valores de los tipos de servidor del registro están dañados.
CLASS_E_NOAGGREGATION
Esta clase no se puede crear como parte de un agregado.
CO_S_NOTALLINTERFACES
Al menos una, pero no todas las interfaces solicitadas en la matriz pResults se recuperaron correctamente. El miembro hr de cada una de las estructuras de MULTI_QI en pResults indica con S_OK o E_NOINTERFACE si se devolvió la interfaz específica.
E_NOINTERFACE
Ninguna de las interfaces solicitadas en la matriz pResults se recuperó correctamente.

Comentarios

La función CoCreateInstanceFromApp es la misma que la función CoCreateInstanceEx , con las siguientes diferencias.

  • La función CoCreateInstanceFromApp lee registros de clases solo desde contextos de aplicación y desde el subárbol del registro HKLM\SOFTWARE\Classes\CLSID.
  • Solo se proporcionan clases integradas que se admiten en el contenedor de aplicaciones. Los intentos de activar clases no admitidas, incluidas todas las clases instaladas por código de terceros, así como muchas clases de Windows, dan como resultado código de error REGDB_E_CLASSNOTREG.
  • La función CoCreateInstanceFromApp está disponible para las aplicaciones de la Tienda Windows. Las aplicaciones de escritorio pueden llamar a esta función, pero tienen las mismas restricciones que las aplicaciones de la Tienda Windows.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2012 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado combaseapi.h
Library Combase.lib
Archivo DLL Combase.dll

Consulte también

CoCreateInstanceEx

Fusion (referencia de API no administrada)