Allocation des ID WinEvent

Chaque événement WinEvent est destiné à être utilisé uniquement dans un but spécifique. L’utilisation d’un événement WinEvent à des fins inattendues peut entraîner des collisions avec d’autres applications ou le système d’exploitation, ce qui peut entraîner l’instabilité des applications ou du système d’exploitation.

Microsoft a défini plusieurs catégories différentes de WinEvents et, pour chaque catégorie, a défini une ou plusieurs plages de valeurs à utiliser en tant qu’ID WinEvent. La plage réservée de la communauté (0xA000—0xAFFF) est disponible pour les applications qui doivent définir de nouveaux événements WinEvent. L’utilisation de valeurs de cette plage permet de réduire le risque de collisions ; toutefois, les développeurs qui créent des événements WinEvents doivent toujours collaborer pour éviter les collisions entre leurs applications.

Le tableau suivant montre les catégories WinEvent et les plages de valeurs définies pour chaque catégorie.

Category Plage Actuellement en cours d’utilisation Commentaires
Événements Microsoft Active Accessibility (réservé par le système) 0x0001-0x00FF 0x0001-0x0020 ID d’événement EVENT_SYSTEM_*
Événements Microsoft Active Accessibility (réservé par le système) 0x4001-0x40FF 0x4001-0x4007 ID d’événement EVENT_CONSOLE_*
événements UI Automation (réservés par le système) 0x4E00-0x4EFF 0x4E20-0x4E33 ID d’événement UI Automation
événements UI Automation (réservés par le système) 0x7500-0x75FF 0x7530-0x759B ID d’événement modifié par UI Automation propriété
Événements Microsoft Active Accessibility (réservé par le système) 0x8000-0x80FF 0x8000-0x8015 ID d’événement EVENT_OBJECT_*
OEM réservé 0x0101-0x01FF 0x0101-0x0122 ID d’événement IAccessible2
Communauté réservée 0xA000-0xAFFF Aucune Réservé aux nouveaux événements définis par les spécifications AIA (Accessibility Interoperability Alliance)
ATOM 0xC000-0xFFFF 0xC000-0xFFFF Réservé aux événements personnalisés alloués au moment de l’exécution

 

Les rubriques suivantes décrivent plus en détail les plages WinEvent.

Événements d’accessibilité et de UI Automation Microsoft Active

Cinq plages d’ID WinEvent sont réservées à l’utilisation par Microsoft Active Accessibility et Microsoft UI Automation. La première plage (0x0001-0x00FF) est réservée aux événements au niveau du système, généralement utilisées pour décrire des situations affectant toutes les applications du système. La deuxième plage (0x4001-0x40FF) est réservée aux événements spécifiques à la console Windows. La troisième plage (0x4E00 0x4EFF) et la quatrième (0x7500 0x75FF) sont destinées à la réflexion des événements UI Automation. Enfin, la cinquième plage (0x8000- 0x80FF) concerne les événements de niveau objet qui se rapportent à des situations spécifiques aux objets d’une application.

Tous les événements Microsoft Active Accessibility et UI Automation sont définis dans les fichiers d’en-tête WinUser.h et UIAutomationClient.h.

Événements réservés OEM

La plage réservée OEM est ouverte à toute personne qui a besoin d’utiliser WinEvents comme mécanisme de communication. Les développeurs doivent définir et publier des définitions d’événements avec leurs paramètres (ou également avec les types d’objets associés) pour le traitement des événements afin d’éviter les collisions accidentelles d’ID d’événement. La spécification IAccessible2 utilise une partie de la plage réservée OEM.

Événements réservés de la communauté

La plage réservée à la communauté est destinée aux événements WinEvents spécifiés par l’Alliance d’interopérabilité d’accessibilité (AIA) pour une utilisation dans l’ensemble du secteur. Les développeurs sont vivement encouragés à définir et publier une spécification officielle avant d’utiliser les valeurs de cette plage.

Événements ATOM

La plage ATOM est réservée aux ID d’événement alloués au moment de l’exécution via l’API d’extensibilité UI Automation. N’utilisez pas les valeurs de la plage ATOM à d’autres fins. L’utilisation de la fonction GlobalAddAtom avec un GUID de chaîne est la méthode recommandée d’allocation de WinEvents à partir de la plage ATOM.

Utilisation de valeurs d’une plage réservée

Selon la spécification WinEvent, les valeurs de la plage réservée système ou de toute autre plage non définie ne peuvent pas être utilisées sans réviser le KIT de développement logiciel (SDK). Pour les nouveaux événements WinEvents, les applications doivent utiliser des valeurs provenant des plages réservées OEM ou réservées de la communauté. Avant d’utiliser un nouveau WinEvent, il est vivement recommandé aux développeurs de partager leurs spécifications ouvertement et largement, et doivent travailler avec l’Alliance d’interopérabilité d’accessibilité pour définir les spécifications WinEvent.

WinEvents

Alliance pour l’interopérabilité de l’accessibilité