다음을 통해 공유


WM_GETOBJECT 메시지 처리

Microsoft Active Accessibility와 Microsoft UI 자동화 서버 또는 공급자 애플리케이션에 WM_GETOBJECT 메시지를 보내 서버 또는 공급자가 지원하는 액세스 가능한 개체에 대한 정보를 검색합니다. 클라이언트는 WM_GETOBJECT 직접 보내지 않습니다. 대신 클라이언트가 AccessibleObjectFromPoint, AccessibleObjectFromEventAccessibleObjectFromWindow 함수를 호출할 때 Microsoft Active Accessibility에서 이 메시지를 보냅니다. UI 자동화 클라이언트가IUIAutomation::ElementFromHandle, ElementFromPointGetFocusedElement를 호출하고 클라이언트가 등록한 이벤트를 처리할 때 WM_GETOBJECT 보냅니다.

Microsoft Active Accessibility 또는 UI 자동화 WM_GETOBJECT 메시지와 함께 개체 식별자라는 값을 전달하여 정보가 필요한 개체의 형식을 지정합니다. 메시지를 받으면 서버 또는 공급자는 개체 식별자를 검사하여 메시지에 응답하는 방법을 결정합니다. 응답은 수신 애플리케이션이 지정된 개체에 대해 Microsoft Active Accessibility(서버), UI 자동화(공급자) 또는 둘 다 구현하는지 여부에 따라 달라집니다.

  • 수신 애플리케이션이 Microsoft Active Accessibility 서버이고 WM_GETOBJECT 메시지에 OBJID_CLIENT 개체 식별자가 포함된 경우 서버는 개체의 IAccessible 인터페이스를 LresultFromObject 함수에 전달하여 얻은 값을 반환해야 합니다.
  • 수신 애플리케이션이 UI 자동화 공급자이고 개체 식별자가 UiaRootObjectId인 경우 공급자는 개체의 IRawElementProviderSimple 인터페이스를 반환해야 합니다. 공급자는 UiaReturnRawElementProvider 함수를 호출하여 인터페이스를 가져옵니다.
  • 수신 애플리케이션이 Microsoft Active Accessibility 또는 UI 자동화 구현하지 않으면 WM_GETOBJECT 메시지를 DefWindowProc 함수에 전달해야 합니다. 메시지를 전달하면 접근성 프레임워크가 지정된 개체에 프록시를 사용할 수 있는지 확인할 수 있습니다.
  • 개체 식별자가 OBJID_CLIENT UiaRootObjectId가 아닌 경우 수신 애플리케이션은 WM_GETOBJECT 메시지를 DefWindowProc 함수에 전달해야 합니다. 메시지를 전달하면 접근성 프레임워크가 표준 UI 요소에 기본 공급자를 사용할 수 있습니다.

Microsoft Active Accessibility 및 UI 자동화 WM_GETOBJECT 메시지에서 사용자 지정 개체 식별자를 전달하여 서버 또는 공급자에서 애플리케이션 정의 값 또는 개체를 검색할 수 있습니다. OBJID_NATIVEOM 또는 OBJID_QUERYCLASSNAMEIDX 개체 식별자를 사용하여 네이티브 개체 모델 인터페이스를 검색하거나 Oleacc.dll 지원하는 특정 프록시 개체를 요청할 수 있습니다.

OBJID_CLIENTUiaRootObjectId 개체 식별자를 모두 처리하면 Microsoft Active Accessibility 서버 구현이 UI 자동화 공급자 구현과 함께 공존할 수 있습니다. ComCtl32.dll(공용 컨트롤 라이브러리)에서 구현하는 대부분의 표준 Windows 컨트롤 및 공용 컨트롤은 Microsoft Active Accessibility 또는 UI 자동화 구현하지 않으므로 이러한 컨트롤은 일반적으로 WM_GETOBJECT 메시지를 처리하지 않습니다. 대신 Microsoft Active Accessibility 또는 UI 자동화 프레임워크는 특정 UI 요소에 프록시 개체를 사용할 수 있는지 확인합니다. 그렇지 않으면 호스트 창 개체에 대한 기본 프록시 개체를 제공합니다.