Méthode IExternalConnection ::AddConnection (objidlbase.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 de la valeur zéro retournée ou non.
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 liaison s’active et crée donc un verrou externe sur l’objet. Lorsque le client de liaison interrompt la connexion, le gestionnaire de stub appelle IExternalConnection ::ReleaseConnection pour libérer le verrou.
Les applications d’objet DLL existent dans le même espace de processus que leurs objets. Elles n’utilisent donc pas RPC (appels de procédure distante) et n’ont pas de gestionnaires de stubs 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 | objidlbase.h (inclure ObjIdl.h) |