Propiedades de anotación que tienen winEvents correspondientes

Tenga cuidado al invalidar las propiedades que cambian con frecuencia, especialmente las que los clientes examinan como resultado de un WinEvent (como State, Value y, para algunos controles, las propiedades Name ).

En muchos casos, especialmente para los controles USER y ComCtl, el winEvent que señala un cambio de propiedad se envía antes de que se notifique al propietario del control (normalmente a través de WM_NOTIFY). La actualización de la propiedad mediante SetPropValue en el controlador de WM_NOTIFY será demasiado tarde; Los clientes que usan enlaces en contexto ya tendrán acceso al valor anterior.

Puede controlar estos tipos de propiedades mediante objetos de servidor de devolución de llamada (mediante SetPropServer); Sin embargo, el servidor no puede usar ningún estado que se actualice en el controlador de WM_NOTIFY porque aún no se llamará a ese controlador. Por ejemplo, en lugar de usar una variable de valor actual almacenada en caché que se actualiza en el controlador de WM_NOTIFY y estará obsoleta, el objeto de devolución de llamada IAccPropServer::GetPropValue debe enviar un mensaje directamente al control para obtener su verdadero valor actual para generar la propiedad necesaria.