Alocação de IDs winEvent
Cada WinEvent destina-se a ser usado apenas para uma finalidade específica. O uso de um WinEvent para uma finalidade não intencional pode causar colisões com outros aplicativos ou o sistema operacional, o que pode fazer com que os aplicativos ou o sistema operacional se tornem instáveis.
A Microsoft definiu várias categorias diferentes de WinEvents e, para cada categoria, definiu um ou mais intervalos de valores para uso como IDs winEvent. O intervalo Reservado à Comunidade (0xA000 — 0xAFFF) está disponível para aplicativos que precisam definir novos WinEvents. O uso de valores desse intervalo ajuda a reduzir o risco de colisões; no entanto, os desenvolvedores que criam novos WinEvents ainda precisam colaborar para evitar colisões entre seus aplicativos.
A tabela a seguir mostra as categorias WinEvent e os intervalos de valores definidos para cada categoria.
Categoria | Intervalo | Atualmente em uso | Comentários |
---|---|---|---|
Eventos de Acessibilidade Ativa da Microsoft (Sistema Reservado) | 0x00FF 0x0001 | 0x0001-0x0020 | IDs de evento EVENT_SYSTEM_* |
Eventos de Acessibilidade Ativa da Microsoft (Sistema Reservado) | 0x40FF 0x4001 | 0x4001-0x4007 | IDs de evento EVENT_CONSOLE_* |
eventos Automação da Interface do Usuário (Sistema Reservado) | 0x4E00-0x4EFF | 0x4E20-0x4E33 | Automação da Interface do Usuário IDs de evento |
eventos Automação da Interface do Usuário (Sistema Reservado) | 0x7500-0x75FF | 0x759B 0x7530 | Automação da Interface do Usuário IDs de evento alteradas por propriedade |
Eventos de Acessibilidade Ativa da Microsoft (Sistema Reservado) | 0x8000-0x80FF | 0x8000-0x8015 | IDs de evento EVENT_OBJECT_* |
OEM Reservado | 0x0101-0x01FF | 0x0101-0x0122 | IDs de evento IAccessible2 |
Comunidade Reservada | 0xA000-0xAFFF | Nenhum | Reservado para novos eventos definidos pelas especificações da AIA (Accessibility Interoperability Alliance) |
ATOM | 0xC000-0xFFFF | 0xC000-0xFFFF | Reservado para eventos personalizados alocados no runtime |
Os tópicos a seguir descrevem os intervalos WinEvent com mais detalhes.
Microsoft Active Accessibility and Automação da Interface do Usuário Events
Cinco intervalos de IDs winEvent são reservados para uso pelo Microsoft Active Accessibility e microsoft Automação da Interface do Usuário. O primeiro intervalo (0x0001 — 0x00FF) é reservado para eventos no nível do sistema, normalmente usados para descrever situações que afetam todos os aplicativos no sistema. O segundo intervalo (0x4001 — 0x40FF) é reservado para eventos específicos do console do Windows. O terceiro (0x4E00 — 0x4EFF) e os quatro intervalos (0x7500— 0x75FF) são para o reflexo de eventos de Automação da Interface do Usuário. Por fim, o quinto intervalo (0x8000 — 0x80FF) é para eventos no nível do objeto que pertencem a situações específicas de objetos dentro de um aplicativo.
Todos os eventos de Acessibilidade Ativa da Microsoft e Automação da Interface do Usuário são definidos nos arquivos de cabeçalho WinUser.h e UIAutomationClient.h.
Eventos reservados do OEM
O intervalo reservado OEM está aberto para qualquer pessoa que precise usar WinEvents como um mecanismo de comunicação. Os desenvolvedores devem definir e publicar definições de evento junto com seus parâmetros (ou também com tipos de objeto associados) para processamento de eventos para que colisões acidentais de IDs de evento possam ser evitadas. A especificação IAccessible2 usa parte do intervalo reservado do OEM.
Eventos reservados da comunidade
O intervalo Reservado à Comunidade é para WinEvents especificado pela AIA (Accessibility Interoperability Alliance) para uso em todo o setor. Os desenvolvedores são altamente incentivados a definir e publicar uma especificação oficial antes de usar valores desse intervalo.
Eventos ATOM
O intervalo ATOM é reservado para IDs de evento alocadas em runtime por meio da API de extensibilidade Automação da Interface do Usuário. Não use os valores do intervalo ATOM para qualquer outra finalidade. Usar a função GlobalAddAtom com um GUID de cadeia de caracteres é o método recomendado para alocar WinEvents do intervalo ATOM.
Usando valores de um intervalo reservado
De acordo com a especificação WinEvent, os valores do intervalo Reservado do Sistema ou de qualquer outro intervalo não definido não podem ser usados sem revisar o SDK. Para novos WinEvents, os aplicativos devem usar valores dos intervalos OEM Reservado ou Reservado à Comunidade. Antes de usar um novo WinEvent, os desenvolvedores são altamente aconselhados a compartilhar suas especificações de forma aberta e ampla e devem trabalhar com a Accessibility Interoperability Alliance para definir as especificações do WinEvent.
Tópicos relacionados