Función CoEnterServiceDomain (comsvcs.h)

Se usa para escribir código que, a continuación, puede usar servicios COM+.

Sintaxis

HRESULT CoEnterServiceDomain(
  [in] IUnknown *pConfigObject
);

Parámetros

[in] pConfigObject

Puntero a la interfaz IUnknown del objeto, creada a partir de la clase CServiceConfig , que contiene la información de configuración de los servicios que se van a usar en el código incluido.

Valor devuelto

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

Código devuelto Descripción
S_OK
El método se completó correctamente.
CO_E_SXS_CONFIG
La configuración del 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. El modelo de apartamento de subprocesos no se puede volver a configurar llamando a CoEnterServiceDomain.
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

El código que se incluye entre las llamadas a CoEnterServiceDomain y CoLeaveServiceDomain se ejecuta en su propio contexto y se comporta como si fuera un método al que se llama en un objeto creado en el contexto. CoEnterServiceDomain no puede cambiar a un modelo de apartamento diferente, por lo que el código incluido se ejecuta en el apartamento del autor de la llamada y en el subproceso del autor de la llamada. Es un error intentar cambiar el modelo de apartamento a través del objeto CServiceConfig al llamar a CoEnterServiceDomain.

CoEnterServiceDomain crea primero un contexto configurado según lo especificado por el objeto CServiceConfig que se pasa como parámetro pConfigObject . Las directivas en los lados del cliente y del servidor se desencadenan como si se hubiera producido una llamada de método. A continuación, el nuevo contexto se inserta en una pila de contextos y se convierte en el contexto actual.

Debido a su diseño eficaz y porque no hay ninguna serialización de subprocesos implicada, el uso de CoEnterServiceDomain y CoLeaveServiceDomain implica una sobrecarga significativamente reducida en comparación con una llamada de método equivalente.

CoEnterServiceDomain y CoLeaveServiceDomain son especialmente útiles en las aplicaciones, que pueden usar estas funciones para acceder a los servicios COM+ sin necesidad de crear un componente para hacerlo.

Los pares CoEnterServiceDomain y CoLeaveServiceDomain se pueden anidar.

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

CoCreateActivity

CoLeaveServiceDomain