CoDisconnectObject, fonction (combaseapi.h)
Déconnecte toutes les connexions de processus distants gérées pour le compte de tous les pointeurs d’interface qui pointent vers un objet spécifié.
Seul le processus qui gère réellement l’objet doit appeler CoDisconnectObject.
Syntaxe
HRESULT CoDisconnectObject(
[in] LPUNKNOWN pUnk,
[in] DWORD dwReserved
);
Paramètres
[in] pUnk
Pointeur vers toute interface dérivée de IUnknown sur l’objet à déconnecter.
[in] dwReserved
Ce paramètre est réservé et doit être 0.
Valeur retournée
Cette fonction retourne S_OK pour indiquer que toutes les connexions aux processus distants ont été correctement supprimées.
Remarques
La fonction CoDisconnectObject permet à un serveur de déconnecter correctement tous les clients externes de l’objet spécifié par pUnk.
Il effectue les tâches suivantes :
- Vérifie si l’objet à déconnecter implémente l’interface IMarshal . Si c’est le cas, il obtient le pointeur vers cette interface ; Si ce n’est pas le cas, il obtient un pointeur vers l’implémentation IMarshal du marshaleur standard (c’est-à-dire, com).
- À l’aide du pointeur d’interface IMarshal qu’elle a acquis, la fonction appelle ensuite IMarshal ::D isconnectObject pour déconnecter tous les clients hors processus.
De même, un conteneur OLE qui prend en charge les liens externes vers ses objets incorporés peut appeler CoDisconnectObject pour détruire ces liens. Là encore, cet appel est normalement effectué en réponse à la fermeture de l’application par un utilisateur. Le conteneur doit d’abord appeler IOleObject ::Close pour tous ses objets OLE, chacun devant envoyer des notifications IAdviseSink ::OnClose à ses différents clients. Le conteneur peut ensuite appeler CoDisconnectObject pour fermer toutes les connexions existantes.
CoDisconnectObject ne déconnecte pas nécessairement les clients hors processus immédiatement. Si des appels marshalés sont en attente sur l’objet serveur, CoDisconnectObject déconnecte l’objet uniquement lorsque ces appels sont retournés. En attendant, CoDisconnectObject définit un indicateur qui provoque le retour de tous les nouveaux appels marshalés CO_E_OBJNOTCONNECTED.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau | Applications UWP] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau | Applications UWP] |
Plateforme cible | Windows |
En-tête | combaseapi.h (inclure Objbase.h) |
Bibliothèque | Ole32.lib |
DLL | Ole32.dll |