Pourquoi les objets proxy sont nécessaires
Avec les objets accessibles, lorsqu’un client définit une fonction de hook en contexte, la DLL dans laquelle la fonction de hook du client est implémentée est chargée dans l’espace d’adressage du serveur. Dans ce cas, lorsque le client appelle AccessibleObjectFromEvent à partir de la fonction de hook, le pointeur d’interface retourné pointe directement vers le code dans l’espace d’adressage du serveur. Lorsque le client appelle une propriété d’interface à l’aide de ce pointeur, la bibliothèque COM (Component Object Model) n’est pas impliquée dans le marshaling ou la démarshalation et ne peut pas détecter si un objet est détruit. Par conséquent, le serveur doit détecter cette situation et retourner un code d’erreur au client.