Qu’est-ce que les objets proxy ?
Un proxy objet agit comme intermédiaire entre le client et un objet accessible. L’objectif de l’objet proxy est de surveiller l’étendue de vie de l’objet accessible et de transférer les appels à l’objet accessible uniquement s’il n’est pas détruit.
Lorsqu’un client appelle une propriété IAccessible pour obtenir des informations sur un objet, l’objet proxy doit vérifier si l’objet accessible est toujours disponible. Si c’est le cas, l’objet proxy transmet la demande du client à l’objet accessible. Si l’objet accessible est détruit (par exemple, lorsqu’une boîte de dialogue avec des contrôles personnalisés est fermée), l’objet proxy renvoie une erreur. Pour indiquer que l’objet a été détruit, il est recommandé que les serveurs retournent le code d’erreur CO_E_OBJNOTCONNECTED, car cette erreur est retournée par le modèle objet de composant (COM) après qu’un serveur appelle CoDisconnectObject.
L’objet proxy est transparent pour le client. Lorsque le client appelle AccessibleObjectFromEvent, AccessibleObjectFromPointou AccessibleObjectFromWindow, il reçoit un pointeur vers une interface IAccessible. Toutefois, lorsque le client utilise ce pointeur pour appeler l’une des propriétés ou méthodes IAccessible, le code exécuté se trouve dans l’objet proxy.