Partager via


Méthode IExternalConnection ::AddConnection (objidl.h)

Incrémente le nombre de connexions externes fortes d’un objet.

Syntaxe

DWORD AddConnection(
  [in] DWORD extconn,
  [in] DWORD reserved
);

Paramètres

[in] extconn

Type de connexion externe à l’objet. Le seul type de connexion externe actuellement pris en charge par cette interface est fort, ce qui signifie que l’objet doit rester actif tant que cette connexion externe existe. Les connexions externes fortes sont représentées par la valeur EXTCONN_STRONG, qui est définie dans l’énumération EXTCONN.

[in] reserved

Informations sur la connexion. Ce paramètre est réservé à l’utilisation par OLE. Sa valeur peut être égale à zéro, mais pas nécessairement. Par conséquent, les implémentations d’AddConnection ne doivent pas contenir de blocs de code dont l’exécution dépend du retour ou non d’une valeur nulle.

Valeur retournée

La méthode retourne le nombre de connexions. Cette valeur est destinée à être utilisée uniquement à des fins de débogage.

Remarques

Un objet créé par un serveur d’objets EXE s’appuie sur son gestionnaire de stub pour appeler AddConnection chaque fois qu’un client de lien s’active et crée donc un verrou externe sur l’objet. Lorsque le client de lien interrompt la connexion, le gestionnaire de stub appelle IExternalConnection ::ReleaseConnection pour libérer le verrou.

Les applications d’objets DLL existent dans le même espace de processus que leurs objets, de sorte qu’elles n’utilisent pas RPC (appels de procédure distante) et ne disposent pas de gestionnaires de stub pour effectuer le suivi des connexions externes. Par conséquent, les serveurs DLL qui prennent en charge les liens externes vers leurs objets doivent implémenter IExternalConnection afin que les clients de liaison puissent appeler directement l’interface pour les informer quand des connexions sont ajoutées ou libérées.

Voici une implémentation classique pour la méthode AddConnection .

DWORD MyInterface::AddConnection(DWORD extconn, DWORD dwReserved)
{
    return extconn & EXTCONN_STRONG ? ++m_cStrong : 0;
}

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 objidl.h (inclure ObjIdl.h)

Voir aussi

IExternalConnection

IRunnableObject ::LockRunning

OleLockRunning