Compartilhar via


Alocação de IDs do WinEvent

Cada WinEvent destina-se a ser usado apenas para uma finalidade específica. Usar um WinEvent para uma finalidade não intencional pode causar colisões com outros aplicativos ou com 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 do WinEvent. O intervalo reservado da 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 Gama Atualmente em uso Comentários
Eventos de Acessibilidade Ativa da Microsoft (Sistema Reservado) 0x0001-0x00FF 0x0001-0x0020 IDs de evento EVENT_SYSTEM_*
Eventos de Acessibilidade Ativa da Microsoft (Sistema Reservado) 0x4001-0x40FF 0x4001-0x4007 IDs de evento EVENT_CONSOLE_*
Eventos de Automação da Interface do Usuário (Sistema Reservado) 0x4E00-0x4EFF 0x4E20-0x4E33 IDs de evento da Automação da Interface do Usuário
Eventos de Automação da Interface do Usuário (Sistema Reservado) 0x7500-0x75FF 0x759B de 0x7530 IDs de evento alteradas pela propriedade da Automação da Interface do Usuário
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)
ÁTOMO 0xC000-0xFFFF 0xC000-0xFFFF Reservado para eventos personalizados alocados em runtime

 

Os tópicos a seguir descrevem os intervalos WinEvent com mais detalhes.

Eventos de automação de interface do usuário e acessibilidade ativa da Microsoft

Cinco intervalos de IDs WinEvent são reservados para uso pela Acessibilidade Ativa da Microsoft e pela Automação da Interface do Usuário da Microsoft. O primeiro intervalo (0x0001 — 0x00FF) é reservado para eventos no nível do sistema, normalmente usado 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 Automação de Interface do Usuário e Acessibilidade Ativa da Microsoft são definidos nos arquivos de cabeçalho WinUser.h e UIAutomationClient.h.

Eventos reservados do OEM

O intervalo reservado OEM é 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 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 da 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 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 Reservados ou Reservados à 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.

WinEvents

da Aliança de Interoperabilidade de Acessibilidade