Como lidar com WM_GETOBJECT
Quando ele recebe uma mensagem WM_GETOBJECT que contém OBJID_CLIENT, o servidor deve retornar um ponteiro para o objeto que implementa IAccessible. Esse ponteiro é um LRESULT obtido chamando LresultFromObject. A Acessibilidade Ativa da Microsoft, em conjunto com a biblioteca COM (Component Object Model), executa o marshaling apropriado e passa o ponteiro da interface IAccessible do servidor para o cliente.
Os servidores devem lidar corretamente com a contagem de referências no objeto acessível. Lembre-se de que, quando você cria um objeto COM, a contagem de referência é 1. LresultFromObject incrementa ainda mais a contagem de referências várias vezes. Todas as referências criadas por LresultFromObject são liberadas automaticamente quando o objeto não é mais necessário, mas o servidor é responsável por liberar a referência inicial e, a menos que o faça, o objeto nunca será destruído. Os exemplos nas seções a seguir mostram como liberar referências a objetos acessíveis.
Os servidores normalmente lidam com WM_GETOBJECT de uma das seguintes maneiras:
- Criar novos objetos acessíveis
- Reutilizar ponteiros existentes para objetos
- Criar novas interfaces para o mesmo objeto
Observação
Nesta seção, como no restante da documentação, quando um ponteiro para uma interface IAccessible é discutido, esse ponteiro pode realmente ser um ponteiro para um objeto proxy que encapsula a interface IAccessible . Para obter mais informações sobre objetos proxy, consulte Criando objetos proxy.
Para obter uma visão geral de WM_GETOBJECT, consulte Como WM_GETOBJECT funciona.