WM_GETOBJECT メッセージ
サーバー アプリケーションに含まれるアクセス可能なオブジェクトに関する情報を取得するために、Microsoft Active Accessibility と Microsoft UI オートメーションの両方によって送信されます。
アプリケーションは、このメッセージを直接送信することはありません。 Microsoft Active Accessibility は、AccessibleObjectFromPoint、AccessibleObjectFromEvent、または AccessibleObjectFromWindow の呼び出しに応答してこのメッセージを送信します。 ただし、サーバー アプリケーションはこのメッセージを処理します。 UI オートメーションは、IUIAutomation::ElementFromHandle、ElementFromPoint、および GetFocusedElement の呼び出しに応答して、クライアントが登録したイベントを処理するときに、このメッセージを送信します。
dwFlags = (WPARAM)(DWORD) wParam;
dwObjId = (LPARAM)(DWORD) lParam;
パラメーター
-
dwFlags
-
メッセージに関する追加情報を提供し、システムによってのみ使用されます。 サーバーは、メッセージの処理時に LresultFromObject の呼び出しで dwFlags を wParam パラメーターとして渡します。
-
dwObjId
-
オブジェクト識別子。 この値は、 オブジェクト識別子 定数またはカスタム オブジェクト識別子のいずれかです。 要求される情報の種類を識別するには、サーバー アプリケーションでこの値をチェックする必要があります。 この値をOBJID_値と比較する前に、サーバーはそれを DWORD にキャストする必要があります。それ以外の場合、64 ビット Windows では、 lParam の符号拡張が比較に干渉する可能性があります。
- dwObjId が OBJID_CLIENT などのOBJID_値の 1 つである場合、要求は IAccessible を実装する Microsoft Active Accessibility オブジェクト用です。
- dwObjId が UiaRootObjectId と等しい場合、要求はUI オートメーション プロバイダーに対して行われます。 サーバーがUI オートメーション実装している場合は、UiaReturnRawElementProvider 関数を使用してプロバイダーを返す必要があります。
- dwObjId がOBJID_NATIVEOMされている場合、要求はコントロールの基になるオブジェクト モデル用です。 コントロールがこの要求をサポートしている場合は、 LresultFromObject 関数を呼び出して適切な COM インターフェイスを返す必要があります。
- dwObjId がOBJID_QUERYCLASSNAMEIDXされている場合、要求は、コントロール自体を標準の Windows コントロールまたは共通コントロール ライブラリ (ComCtrl.dll) によって実装される共通コントロールとして識別することです。
戻り値
ウィンドウまたはコントロールがこのメッセージに応答する必要がない場合は、 メッセージを DefWindowProc 関数に渡す必要があります。それ以外の場合、ウィンドウまたはコントロールは dwObjId で指定された要求に対応する値を返す必要があります。
- ウィンドウまたはコントロールがUI オートメーション実装されている場合、ウィンドウまたはコントロールは UiaReturnRawElementProvider 関数の呼び出しによって取得された値を返す必要があります。
- dwObjId がOBJID_NATIVEOMされ、ウィンドウでネイティブ オブジェクト モデルが公開されている場合、ウィンドウは LresultFromObject 関数の呼び出しによって取得された値を返す必要があります。
- dwObjId がOBJID_CLIENTされ、ウィンドウが IAccessible を実装している場合、ウィンドウは LresultFromObject 関数の呼び出しによって取得された値を返す必要があります。
解説
クライアントがオブジェクトへのインターフェイスを取得する AccessibleObjectFromWindow またはその他の AccessibleObjectFromX 関数を呼び出すと、Microsoft Active Accessibility は、適切なサーバー アプリケーション内の適切なウィンドウ プロシージャに WM_GETOBJECT メッセージを送信します。 WM_GETOBJECT処理中、サーバー アプリケーションは LresultFromObject を呼び出し、この関数の戻り値をメッセージの戻り値として使用します。 Microsoft Active Accessibility は COM ライブラリと組み合わせて、適切なマーシャリングを実行し、サーバーからクライアントにインターフェイス ポインターを渡します。
サーバーは、オブジェクトが完全に初期化される前、または閉じ始める前に、 WM_GETOBJECT に応答しません。 アプリケーションが新しいウィンドウを作成すると、システムは WM_CREATE メッセージをアプリケーションのウィンドウ プロシージャに送信する前に、クライアントに通知する EVENT_OBJECT_CREATE を送信します。 多くのアプリケーションでは WM_CREATE を使用して初期化プロセスを開始するため、サーバーは 、WM_CREATE メッセージの処理が完了するまで 、WM_GETOBJECT メッセージに応答しません。
サーバーは 、WM_GETOBJECT を使用して次のタスクを実行します。
クライアントの場合、これは、サーバーのアクションに応じて、同じユーザー インターフェイス要素に対して個別のインターフェイス ポインターを受け取る可能性があることを意味します。 2 つのインターフェイス ポインターが同じユーザー インターフェイス要素を指しているかどうかを判断するために、クライアントは オブジェクトの IAccessible プロパティを比較します。 ポインターの比較は機能しません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows Server 2003 [デスクトップ アプリのみ] |
再頒布可能パッケージ |
SP6 以降および Windows 95 を使用した Windows NT 4.0 のアクティブなアクセシビリティ 1.3 RDK |
ヘッダー |
|