Función CoCreateActivity (comsvcs.h)

Crea una actividad para realizar trabajo por lotes sincrónico y asincrónico que pueda utilizar los servicios COM+ sin necesidad de crear un componente COM+.

Sintaxis

HRESULT CoCreateActivity(
  [in]  IUnknown *pIUnknown,
  [in]  REFIID   riid,
  [out] void     **ppObj
);

Parámetros

[in] pIUnknown

Puntero a la interfaz IUnknown del objeto, creado a partir de la clase CServiceConfig , que contiene la información de configuración de los servicios que se van a usar dentro de la actividad creada por CoCreateActivity.

[in] riid

Identificador de la interfaz que se va a devolver a través del parámetro ppObj . Este parámetro siempre debe ser IID_IServiceActivity para que se devuelva un puntero a IServiceActivity .

[out] ppObj

Puntero a la interfaz de un objeto de actividad. La llamada a CoCreateActivity crea automáticamente el objeto de actividad.

Valor devuelto

Este método puede devolver los valores devueltos estándar E_INVALIDARG, E_OUTOFMEMORY y E_FAIL, así como los valores siguientes.

Código devuelto Descripción
S_OK
El método se completó correctamente.
CO_E_SXS_CONFIG
La configuración de ensamblado en paralelo del objeto CServiceConfig no es válida.
CO_E_THREADPOOL_CONFIG
La configuración del grupo de subprocesos del objeto CServiceConfig no es válida.
CO_E_TRACKER_CONFIG
La configuración de seguimiento del objeto CServiceConfig no es válida.
COMADMIN_E_PARTITION_ACCESSDENIED
El autor de la llamada no tiene permisos de acceso para la partición COM+.

Comentarios

CoCreateActivity crea un objeto de actividad que se usa para enviar el trabajo por lotes al sistema COM+. El contexto asociado a la actividad viene determinado por completo por el objeto CServiceConfig que se pasa a través del parámetro pIUnknown .

CoCreateActivity permite a las aplicaciones usar servicios COM+ en su trabajo por lotes sin necesidad de crear un componente para usar esos servicios. Además de reducir la sobrecarga al no requerir la creación de un componente, el uso de CoCreateActivity proporciona un entorno en tiempo de ejecución más eficaz, ya que permite que el entorno admita la configuración del servicio en toda la aplicación sin necesidad de tener acceso a la información almacenada en la base de datos de registro COM+ (RegDB).

El trabajo por lotes que se envía a través de CoCreateActivity puede ser sincrónico o asincrónico y puede ejecutarse en un apartamento de un solo subproceso (STA) o en el apartamento multiproceso (MTA). El modelo de subprocesos que se usa viene determinado por la interfaz IServiceThreadPoolConfig del objeto CServiceConfig que se pasa a través del parámetro pIUnknown .

CoCreateActivity devuelve un puntero a la interfaz IServiceActivity del objeto creado por la llamada a CoCreateActivity. Mediante el uso de los métodos de IServiceActivity, se determina si el trabajo por lotes se realiza de forma sincrónica o asincrónica. El propio trabajo por lotes se implementa a través de la interfaz IServiceCall .

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado comsvcs.h
Library ComSvcs.lib
Archivo DLL ComSvcs.dll

Consulte también

Servicios COM+ sin componentes

CServiceConfig

CoEnterServiceDomain

CoLeaveServiceDomain

IServiceActivity

IServiceCall