다음을 통해 공유


WM_GETOBJECT 메시지

Microsoft Active Accessibility와 Microsoft UI 자동화 서버 애플리케이션에 포함된 액세스 가능한 개체에 대한 정보를 얻기 위해 전송됩니다.

애플리케이션은 이 메시지를 직접 보내지 않습니다. Microsoft Active Accessibility는 AccessibleObjectFromPoint, AccessibleObjectFromEvent 또는 AccessibleObjectFromWindow에 대한 호출에 대한 응답으로 이 메시지를 보냅니다. 그러나 서버 애플리케이션은 이 메시지를 처리합니다. UI 자동화 IUIAutomation::ElementFromHandle, ElementFromPointGetFocusedElement에 대한 호출 및 클라이언트가 등록한 이벤트를 처리할 때 이 메시지를 보냅니다.

dwFlags = (WPARAM)(DWORD) wParam;
dwObjId = (LPARAM)(DWORD) lParam;

매개 변수

dwFlags

메시지에 대한 추가 정보를 제공하며 시스템에서만 사용됩니다. 서버는 메시지를 처리할 때 LresultFromObject 호출에서 dwFlagswParam 매개 변수로 전달합니다.

dwObjId

개체 식별자입니다. 이 값은 개체 식별자 상수 또는 사용자 지정 개체 식별자 중 하나입니다. 서버 애플리케이션은 요청되는 정보의 유형을 식별하기 위해 이 값을 검사 합니다. 이 값을 OBJID_ 값과 비교하기 전에 서버에서 DWORD로 캐스팅해야 합니다. 그렇지 않으면 64비트 Windows에서 lParam 의 기호 확장이 비교를 방해할 수 있습니다.

  • dwObjId가 OBJID_CLIENT 같은 OBJID_ 값 중 하나인 경우 요청은 IAccessible을 구현하는 Microsoft Active Accessibility 개체에 대한 것입니다.
  • dwObjIdUiaRootObjectId와 같으면 UI 자동화 공급자에 대한 요청입니다. 서버가 UI 자동화 구현하는 경우 UiaReturnRawElementProvider 함수를 사용하여 공급자를 반환해야 합니다.
  • dwObjIdOBJID_NATIVEOM 경우 요청은 컨트롤의 기본 개체 모델에 대한 것입니다. 컨트롤이 이 요청을 지원하는 경우 LresultFromObject 함수를 호출하여 적절한 COM 인터페이스를 반환해야 합니다.
  • dwObjIdOBJID_QUERYCLASSNAMEIDX 경우 컨트롤이 표준 Windows 컨트롤 또는 공용 컨트롤 라이브러리(ComCtrl.dll)에서 구현한 공통 컨트롤로 식별하기 위한 요청입니다.

반환 값

창 또는 컨트롤이 이 메시지에 응답할 필요가 없는 경우 메시지를 DefWindowProc 함수에 전달해야 합니다. 그렇지 않으면 창 또는 컨트롤은 dwObjId로 지정된 요청에 해당하는 값을 반환해야 합니다.

  • 창 또는 컨트롤이 UI 자동화 구현하는 경우 창 또는 컨트롤은 UiaReturnRawElementProvider 함수를 호출하여 얻은 값을 반환해야 합니다.
  • dwObjIdOBJID_NATIVEOM 창에서 네이티브 개체 모델을 노출하는 경우 창은 LresultFromObject 함수를 호출하여 얻은 값을 반환해야 합니다.
  • dwObjIdOBJID_CLIENT 창에서 IAccessible을 구현하는 경우 창은 LresultFromObject 함수를 호출하여 얻은 값을 반환해야 합니다.

설명

클라이언트가 AccessObjectFromWindow 또는 개체에 대한 인터페이스를 검색하는 다른 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 사용하여 다음 작업을 수행합니다.

클라이언트의 경우 이는 서버의 작업에 따라 동일한 사용자 인터페이스 요소에 대한 고유한 인터페이스 포인터를 수신할 수 있음을 의미합니다. 두 인터페이스 포인터가 동일한 사용자 인터페이스 요소를 가리키는지 확인하기 위해 클라이언트는 개체의 IAccessible 속성을 비교합니다. 포인터 비교는 작동하지 않습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버
Windows Server 2003 [데스크톱 앱만 해당]
재배포 가능 파일
SP6 이상 및 Windows 95를 Windows NT 4.0의 활성 접근성 1.3 RDK
헤더
Winuser.h(Windows.h 포함)

추가 정보

WM_GETOBJECT 처리하는 방법

WM_GETOBJECT 작동 방식

LresultFromObject