Partager via


Méthode IObjectControl ::Activate (comsvcs.h)

Permet à un objet COM+ d’effectuer une initialisation spécifique au contexte chaque fois qu’il est activé. Cette méthode est appelée par l’environnement d’exécution COM+ avant que d’autres méthodes ne soient appelées sur l’objet.

Syntaxe

HRESULT Activate();

Valeur de retour

Cette méthode peut retourner les valeurs de retour standard E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTED, E_FAIL et S_OK.

Remarques

Chaque fois qu’un client appelle un objet COM+ qui n’est pas déjà actif, l’environnement d’exécution COM+ active automatiquement l’objet. C’est ce qu’on appelle l’activation juste-à-temps. Pour les composants qui prennent en charge IObjectControl en tant qu’interface, COM+ appelle la méthode Activate de l’objet avant de passer l’appel de méthode du client à l’objet.

Toutes les procédures d’initialisation spécifiques au contexte doivent être implémentées dans la méthode Activate pour les objets qui exposent IObjectControl.

Par exemple, vous pouvez utiliser la méthode Activate pour obtenir une référence au contexte d’un objet et le stocker dans une variable membre. Ensuite, le contexte d’objet est disponible pour toutes les méthodes qui le nécessitent, et vous n’avez pas besoin d’en acquérir un nouveau chaque fois que vous souhaitez l’utiliser. Une fois que vous avez une référence au contexte de l’objet, vous pouvez utiliser les méthodes IObjectControl pour case activée si la sécurité est activée, si l’objet s’exécute dans une transaction ou si l’appelant est dans un rôle particulier.

Si vous activez le recyclage d’objets (en implémentant la méthode CanBePooled pour interroger l’objet), la méthode Activate doit être en mesure de gérer les objets nouvellement créés et recyclés. Lorsque la méthode Activate retourne, il ne doit pas y avoir de différence notable entre un nouvel objet et un objet recyclé.

COM+ interdit expressément d’appeler dans un objet qui expose IObjectControl avant d’appeler la méthode Activate (lorsqu’elle se trouve dans son constructeur). Un tel appel entraînerait une erreur RPC_E_DISCONNECTED. Par exemple, si un objet transmet une référence à lui-même dans son constructeur, puis que la référence rappelle cet objet avant l’appel à Activer, l’erreur déconnectée est retournée.

Vous pouvez également utiliser la méthode Activate pour obtenir une référence à l’interface ISecurityProperty de l’objet et case activée l’ID de sécurité du créateur de l’objet avant qu’aucune méthode ne soit appelée.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête comsvcs.h

Voir aussi

IObjectControl