Condividi tramite


Quali sono gli oggetti proxy?

Un oggetto proxy funge da intermediario tra il client e un oggetto accessibile. Lo scopo dell'oggetto proxy è monitorare l'intervallo di vita dell'oggetto accessibile e inoltrare chiamate all'oggetto accessibile solo se non viene distrutto.

Quando un client chiama una proprietà IAccessibile per ottenere informazioni su un oggetto, l'oggetto proxy deve verificare se l'oggetto accessibile è ancora disponibile. In caso affermativo, l'oggetto proxy passa la richiesta del client all'oggetto accessibile. Se l'oggetto accessibile viene distrutto (ad esempio, quando viene chiusa una finestra di dialogo con controlli personalizzati), l'oggetto proxy restituisce un errore. Per indicare che l'oggetto è stato eliminato, è consigliabile che i server restituiscono il codice di errore CO_E_OBJNOTCONNECTED perché questo errore viene restituito da Component Object Model (COM) dopo che un server chiama CoDisconnectObject.

L'oggetto proxy è trasparente per il client. Quando il client chiama AccessibleObjectFromEvent, AccessibleObjectFromPoint o AccessibleObjectFromWindow, riceve un puntatore a un'interfaccia IAccess . Tuttavia, quando il client usa questo puntatore per chiamare una delle proprietà o dei metodi IAccessi , il codice eseguito è all'interno dell'oggetto proxy.