Propriedades de anotação que têm WinEvents correspondentes
Tenha cuidado ao substituir propriedades que mudam com frequência, especialmente aquelas que são examinadas pelos clientes como resultado de um WinEvent (como Estado, Valor e, para alguns controles, as propriedades Name ).
Em muitos casos, especialmente para controles USER e ComCtl, o WinEvent que sinaliza uma alteração de propriedade é enviado antes que o proprietário do controle seja notificado (normalmente por meio de WM_NOTIFY). Atualizar a propriedade usando SetPropValue no manipulador WM_NOTIFY será tarde demais; os clientes que usam a conexão no contexto já terão acessado o valor antigo.
Você pode lidar com esses tipos de propriedades usando objetos de servidor de retorno de chamada (usando SetPropServer); no entanto, o servidor não pode usar nenhum estado atualizado no manipulador de WM_NOTIFY porque esse manipulador ainda não terá sido chamado. Por exemplo, em vez de usar uma variável de valor atual armazenada em cache que é atualizada no manipulador WM_NOTIFY e estará desatualizada, o objeto de retorno de chamada IAccPropServer::GetPropValue deve enviar uma mensagem diretamente ao controle para obter seu valor atual verdadeiro para gerar a propriedade necessária.