Partager via


CoEnterServiceDomain, fonction (comsvcs.h)

Permet d’entrer du code qui peut ensuite utiliser les services COM+.

Syntaxe

HRESULT CoEnterServiceDomain(
  [in] IUnknown *pConfigObject
);

Paramètres

[in] pConfigObject

Pointeur vers l’interface IUnknown de l’objet, créée à partir de la classe CServiceConfig , qui contient les informations de configuration des services à utiliser dans le code inclus.

Valeur retournée

Cette méthode peut retourner les valeurs de retour standard E_INVALIDARG, E_OUTOFMEMORY et E_FAIL, ainsi que les valeurs suivantes.

Code de retour Description
S_OK
La commande s'est correctement terminée.
CO_E_SXS_CONFIG
La configuration de l’assembly côte à côte de l’objet CServiceConfig n’est pas valide.
CO_E_THREADPOOL_CONFIG
La configuration du pool de threads de l’objet CServiceConfig n’est pas valide. Le modèle d’appartement de threads ne peut pas être reconfiguré en appelant CoEnterServiceDomain.
CO_E_TRACKER_CONFIG
La configuration du suivi de l’objet CServiceConfig n’est pas valide.
COMADMIN_E_PARTITION_ACCESSDENIED
L’appelant ne dispose pas des autorisations d’accès pour la partition COM+.

Remarques

Le code entre les appels à CoEnterServiceDomain et CoLeaveServiceDomain s’exécute dans son propre contexte et se comporte comme s’il s’agissait d’une méthode appelée sur un objet créé dans le contexte. CoEnterServiceDomain ne peut pas basculer vers un autre modèle d’appartement, de sorte que le code placé entre s’exécute dans l’appartement de l’appelant et sur le thread de l’appelant. C’est une erreur que d’essayer de modifier le modèle d’appartement via l’objet CServiceConfig lors de l’appel de CoEnterServiceDomain.

CoEnterServiceDomain crée d’abord un contexte configuré comme spécifié par l’objet CServiceConfig passé en tant que paramètre pConfigObject . Les stratégies côté client et côté serveur sont ensuite déclenchées comme si un appel de méthode avait eu lieu. Le nouveau contexte est ensuite poussé vers une pile de contextes et devient le contexte actuel.

En raison de leur conception efficace et de l’absence de marshaling de threads, l’utilisation de CoEnterServiceDomain et CoLeaveServiceDomain implique une réduction significative de la surcharge par rapport à un appel de méthode équivalent.

CoEnterServiceDomain et CoLeaveServiceDomain sont particulièrement utiles dans les applications, qui peuvent utiliser ces fonctions pour accéder aux services COM+ sans avoir à créer un composant pour le faire.

Les paires CoEnterServiceDomain et CoLeaveServiceDomain peuvent être imbriquées.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête comsvcs.h
Bibliothèque ComSvcs.lib
DLL ComSvcs.dll

Voir aussi

Services COM+ sans composants

CServiceConfig

CoCreateActivity

CoLeaveServiceDomain