Asignación de identificadores de WinEvent
Cada winEvent está pensado para usarse únicamente con un propósito específico. El uso de winEvent para un propósito no deseado puede provocar colisiones con otras aplicaciones o el sistema operativo, lo que puede hacer que las aplicaciones o el sistema operativo se vuelvan inestables.
Microsoft ha definido varias categorías diferentes de WinEvents y, para cada categoría, ha definido uno o varios intervalos de valores para su uso como identificadores winEvent. El intervalo reservado de la comunidad (0xA000, 0xAFFF) está disponible para las aplicaciones que necesitan definir nuevos WinEvents. El uso de valores de este rango ayuda a reducir el riesgo de colisiones; sin embargo, los desarrolladores que crean nuevos WinEvents siguen necesitando colaborar para evitar colisiones entre sus aplicaciones.
En la tabla siguiente se muestran las categorías winEvent y los intervalos de valores definidos para cada categoría.
Category | Intervalo | Actualmente en uso | Comentarios |
---|---|---|---|
Eventos de accesibilidad activa de Microsoft (reservados por el sistema) | 0x0001-0x00FF | 0x0001-0x0020 | EVENT_SYSTEM_* identificadores de eventos |
Eventos de accesibilidad activa de Microsoft (reservados por el sistema) | 0x4001-0x40FF | 0x4001-0x4007 | EVENT_CONSOLE_* identificadores de eventos |
eventos de Automatización de la interfaz de usuario (reservados por el sistema) | 0x4E00-0x4EFF | 0x4E20-0x4E33 | identificadores de eventos de Automatización de la interfaz de usuario |
eventos de Automatización de la interfaz de usuario (reservados por el sistema) | 0x7500-0x75FF | 0x7530-0x759B | Automatización de la interfaz de usuario identificadores de evento modificados por propiedades |
Eventos de accesibilidad activa de Microsoft (reservados por el sistema) | 0x8000 0x80FF | 0x8000 0x8015 | EVENT_OBJECT_* identificadores de eventos |
Reservado para OEM | 0x0101 0x01FF | 0x0101-0x0122 | Identificadores de eventos IAccessible2 |
Comunidad reservada | 0xA000-0xAFFF | Ninguno | Reservado para nuevos eventos definidos por las especificaciones de Accessibility Interoperability Alliance (AIA) |
ATOM | 0xC000-0xFFFF | 0xC000-0xFFFF | Reservado para eventos personalizados asignados en tiempo de ejecución |
En los temas siguientes se describen los intervalos de WinEvent con mayor detalle.
Eventos de accesibilidad y Automatización de la interfaz de usuario activos de Microsoft
Cinco intervalos de identificadores de WinEvent están reservados para que los use Microsoft Active Accessibility y Microsoft Automatización de la interfaz de usuario. El primer intervalo (0x0001, 0x00FF) está reservado para eventos de nivel de sistema, que se suelen usar para describir situaciones que afectan a todas las aplicaciones del sistema. El segundo intervalo (0x4001: 0x40FF) está reservado para eventos específicos de la consola de Windows. La tercera (0x4E00, 0x4EFF) y cuartos intervalos (0x7500, 0x75FF) son para la reflexión de eventos de Automatización de la interfaz de usuario. Por último, el quinto intervalo (0x8000: 0x80FF) es para eventos de nivel de objeto que pertenecen a situaciones específicas de objetos dentro de una aplicación.
Todos los eventos de accesibilidad y Automatización de la interfaz de usuario activos de Microsoft se definen en los archivos de encabezado WinUser.h y UIAutomationClient.h.
Eventos reservados de OEM
El intervalo reservado de OEM está abierto a cualquier persona que necesite usar WinEvents como mecanismo de comunicación. Los desarrolladores deben definir y publicar definiciones de eventos junto con sus parámetros (o también con tipos de objetos asociados) para el procesamiento de eventos para evitar colisiones accidentales de identificadores de eventos. La especificación IAccessible2 usa parte del intervalo reservado de OEM.
Eventos reservados de la comunidad
El intervalo reservado de la comunidad es para WinEvents especificado por la Alianza de interoperabilidad de accesibilidad (AIA) para su uso en todo el sector. Se recomienda encarecidamente a los desarrolladores definir y publicar una especificación oficial antes de usar valores de este intervalo.
Eventos ATOM
El intervalo ATOM está reservado para los identificadores de eventos que se asignan en tiempo de ejecución a través de la API de extensibilidad de Automatización de la interfaz de usuario. No utilice los valores del intervalo ATOM para ningún otro propósito. El uso de la función GlobalAddAtom con un GUID de cadena es el método recomendado para asignar WinEvents desde el intervalo ATOM.
Usar valores de un intervalo reservado
Según la especificación winEvent, los valores del intervalo reservado del sistema o cualquier otro intervalo no definido no se pueden usar sin revisar el SDK. En el caso de los nuevos WinEvents, las aplicaciones deben usar valores de los intervalos reservados de OEM o reservados de la comunidad. Antes de usar un nuevo WinEvent, se recomienda a los desarrolladores compartir sus especificaciones abierta y ampliamente, y deben trabajar con la Alianza de interoperabilidad de accesibilidad para definir especificaciones de WinEvent.
Temas relacionados