次の方法で共有


WinEvent ID の割り当て

各 WinEvent は、特定の目的にのみ使用することを目的としています。 意図しない目的で WinEvent を使用すると、他のアプリケーションやオペレーティング システムとの競合が発生し、アプリケーションまたはオペレーティング システムが不安定になる可能性があります。

Microsoft では、WinEvents のいくつかの異なるカテゴリを定義しており、カテゴリごとに、WinEvent ID として使用する 1 つ以上の値の範囲が定義されています。 コミュニティ予約範囲 (0xA000 - 0xAFFF) は、新しい WinEvents を定義する必要があるアプリケーションで使用できます。 この範囲の値を使用すると、衝突のリスクを軽減できます。ただし、新しい WinEvents を作成する開発者は、アプリケーション間の競合を回避するために共同作業を行う必要があります。

次の表は、WinEvent カテゴリと、各カテゴリに定義されている値の範囲を示しています。

カテゴリ 範囲 現在使用中 説明
Microsoft Active Accessibility イベント (システム予約済み) 0x0001-0x00FF 0x0001-0x0020 EVENT_SYSTEM_* イベント ID
Microsoft Active Accessibility イベント (システム予約済み) 0x4001-0x40FF 0x4001-0x4007 EVENT_CONSOLE_* イベント ID
UI オートメーション イベント (システム予約済み) 0x4E00-0x4EFF 0x4E20-0x4E33 イベント ID のUI オートメーション
UI オートメーション イベント (システム予約済み) 0x7500-0x75FF 0x7530-0x759B プロパティ変更イベント ID のUI オートメーション
Microsoft Active Accessibility イベント (システム予約済み) 0x8000-0x80FF 0x8000-0x8015 EVENT_OBJECT_* イベント ID
OEM 予約済み 0x0101-0x01FF 0x0101-0x0122 IAccessible2 イベント ID
Community Reserved 0xA000-0xAFFF なし アクセシビリティ相互運用性アライアンス (AIA) 仕様によって定義された新しいイベント用に予約済み
ATOM 0xC000-0xFFFF 0xC000-0xFFFF 実行時に割り当てられたカスタム イベント用に予約済み

 

次のトピックでは、WinEvent の範囲について詳しく説明します。

Microsoft Active Accessibility and UI オートメーション イベント

5 つの範囲の WinEvent ID は、Microsoft Active Accessibility と Microsoft UI オートメーションで使用するために予約されています。 最初の範囲 (0x0001 — 0x00FF) は、システム レベルのイベント用に予約されています。通常は、システム内のすべてのアプリケーションに影響を与える状況を説明するために使用されます。 2 番目の範囲 (0x4001 - 0x40FF) は、Windows コンソール固有のイベント用に予約されています。 3 番目 (0x4E00 -0x4EFF) と 4 番目の範囲 (0x7500 — 0x75FF) は、UI オートメーション イベントのリフレクション用です。 最後に、5 番目の範囲 (0x8000 - 0x80FF) は、1 つのアプリケーション内のオブジェクトに固有の状況に関連するオブジェクト レベルのイベント用です。

すべての Microsoft Active Accessibility イベントとUI オートメーション イベントは、WinUser.h ヘッダー ファイルと UIAutomationClient.h ヘッダー ファイルで定義されます。

OEM 予約イベント

OEM 予約範囲は、通信メカニズムとして WinEvents を使用する必要があるすべてのユーザーに対して開かれています。 開発者は、イベント ID の偶発的な競合を回避できるように、イベント処理用のパラメーター (または関連するオブジェクト型) と共にイベント定義を定義して公開する必要があります。 IAccessible2 仕様では、OEM 予約範囲の一部が使用されます。

コミュニティ予約イベント

Community Reserved の範囲は、業界全体で使用するために、アクセシビリティ相互運用性アライアンス (AIA) で指定された WinEvents 用です。 開発者は、この範囲の値を使用する前に、公式の仕様を定義して公開することを強くお勧めします。

ATOM イベント

ATOM 範囲は、UI オートメーション拡張 API を介して実行時に割り当てられるイベント ID 用に予約されています。 ATOM 範囲の値は、他の目的には使用しないでください。 文字列 GUID で GlobalAddAtom 関数を使用することは、ATOM 範囲から WinEvents を割り当てる場合に推奨される方法です。

予約範囲の値の使用

WinEvent の仕様によると、システム予約範囲またはその他の定義されていない範囲の値は、SDK を変更しないと使用できません。 新しい WinEvents の場合、アプリケーションでは OEM 予約またはコミュニティ予約範囲の値を使用する必要があります。 新しい WinEvent を使用する前に、開発者は仕様をオープンかつ広く共有することを強くお勧めします。また、アクセシビリティ相互運用性アライアンスと連携して WinEvent 仕様を定義する必要があります。

WinEvents

アクセシビリティ相互運用性アライアンス