Partager via


ObjectControl ::Activate, méthode (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 ObjectControl 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 ObjectControl.

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 de l’objet est disponible pour toute méthode qui en a besoin, et vous n’avez pas besoin d’en acquérir un nouveau chaque fois que vous souhaitez l’utiliser. Une fois que vous disposez d’une référence au contexte de l’objet, vous pouvez utiliser les méthodes ObjectContext 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 ainsi que les objets recyclés. Lorsque la méthode Activate est retournée, il ne doit y avoir aucune différence pouvant être distinguée entre un nouvel objet et un objet recyclé.

COM+ interdit expressément l’appel d’un objet qui expose ObjectControl 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 à Activate, l’erreur déconnectée est retourné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

ObjectControl