Что такое прокси-объекты?

Прокси-объект выступает в качестве посредника между клиентом и доступным объектом. Цель прокси-объекта — отслеживать срок жизни доступного объекта и переадресовывать вызовы к объекту со специальными возможностями только в том случае, если он не уничтожен.

Когда клиент вызывает свойство IAccess для получения сведений об объекте, прокси-объект должен проверка, доступен ли доступный объект. Если это так, прокси-объект передает запрос клиента к объекту со специальными возможностями. Если объект со специальными возможностями уничтожается (например, при закрытии диалогового окна с пользовательскими элементами управления), прокси-объект возвращает ошибку. Чтобы указать, что объект был уничтожен, рекомендуется, чтобы серверы возвращали код ошибки CO_E_OBJNOTCONNECTED поскольку эта ошибка возвращается компонентной объектной моделью (COM) после вызова сервером CoDisconnectObject.

Прокси-объект является прозрачным для клиента. Когда клиент вызывает AccessibleObjectFromEvent, AccessibleObjectFromPoint или AccessibleObjectFromWindow, он получает обратный указатель на интерфейс IAccessible . Однако если клиент использует этот указатель для вызова любого из свойств или методов IAccess , выполняемый код находится в прокси-объекте.