Co to są obiekty serwera proxy?
Obiekt proxy działa jako pośrednik między klientem a obiektem dostępnym. Celem obiektu proxy jest monitorowanie okresu życia dostępnego obiektu i przekazywanie wywołań do dostępnego obiektu tylko wtedy, gdy nie zostanie zniszczony.
Gdy klient wywołuje właściwość IAccessible w celu uzyskania informacji o obiekcie, obiekt proxy musi sprawdzić, czy dostępny obiekt jest nadal dostępny. Jeśli tak jest, obiekt serwera proxy przekazuje żądanie klienta do obiektu dostępnego. Jeśli dostępny obiekt zostanie zniszczony (na przykład po zamknięciu okna dialogowego z kontrolkami niestandardowymi), obiekt proxy zwraca błąd. Aby wskazać, że obiekt został zniszczony, zaleca się, aby serwery zwracały kod błędu CO_E_OBJNOTCONNECTED, ponieważ ten błąd jest zwracany przez model obiektów składników (COM) po wywołaniu serwera CoDisconnectObject.
Obiekt serwera proxy jest przezroczysty dla klienta. Gdy klient wywołuje AccessibleObjectFromEvent, AccessibleObjectFromPointlub AccessibleObjectFromWindow, otrzymuje wskaźnik do interfejsu IAccessible. Jeśli jednak klient używa tego wskaźnika do wywołania dowolnego z IAccessible właściwości lub metod, wykonywany kod znajduje się w obiekcie proxy.