다음을 통해 공유


IAccessible 프록시

IAccessible 프록시는 표준 UI 요소에 대한 기본 접근성 정보(사용자 컨트롤, 사용자 메뉴 및 COMCTL 및 COMCTL32의 일반 컨트롤)를 제공합니다. 이 기본 지원은 Oleacc.dll 만든 IAccessible 개체를 통해 노출되며 추가 서버 개발 작업 없이 Microsoft Active Accessibility 지원을 제공합니다. 그런 다음 서버는 동적 주석 API 를 사용하여 Oleacc.dll 노출되는 많은 정보를 수정할 수 있지만 완전히 제어할 수는 없습니다.

프록시 만들기

UI 요소가 기본적으로 IAccessible 인터페이스를 지원하는지 여부를 확인하려면 Oleacc.dll WM_GETOBJECT 메시지를 보냅니다. 0이 아닌 반환 값은 요소가 기본적으로 Microsoft Active Accessibility를 지원하고 자체 IAccessible 지원을 제공한다는 것을 의미합니다. 그러나 반환 값이 0이면 Oleacc.dll UI 요소에 대한 프록시 개체를 제공하고 대신 의미 있는 정보를 반환하려고 시도합니다. WM_GETOBJECT 대한 자세한 내용은 WM_GETOBJECT 작동 방식을 참조하세요.

노출되는 정보

Oleacc.dll UI 요소의 Windows 클래스 이름을 사용하여 각 IAccessible 속성에 대해 노출해야 하는 정보와 해당 정보를 수집하는 방법을 결정합니다. 예를 들어 Oleacc.dll GetWindowText 함수를 호출하여 표준 푸시 단추의 Name 속성을 검색하지만 이 동일한 함수를 호출하여 표준 편집 컨트롤의 Value 속성을 검색합니다. 실제로 Oleacc.dll 각 IAccessible 메서드를 적절한 Microsoft Win32 또는 컨트롤별 메시지 또는 함수 호출에 매핑합니다. 이 클래스 이름 기반 특수 대/소문자를 사용하면 서버에서 Microsoft Active Accessibility 지원 없이 IAccessible 프록시를 통해 의미 있는 정보를 반환할 수 있습니다.

표준 UI 요소로 빌드된 애플리케이션은 일반적으로 추가 개발 작업 없이 전체 Microsoft Active Accessibility 지원을 받습니다. 이 규칙의 예외는 서브클래싱되었거나, 자체 문자열을 저장하지 않거나( HASSTRINGS 스타일이 없음) 소유자가 그린 컨트롤입니다. 이러한 경우 Oleacc.dll 정보가 컨트롤 외부에 저장되므로 필요한 정보를 수집할 수 없습니다. 그러나 이러한 많은 시나리오에서 설정된 해결 방법 또는 동적 주석을 사용하면 서버가 Oleacc.dll 제공하는 프록시와 협력할 수 있습니다.

제네릭 프록시 개체

Oleacc.dll UI 요소의 클래스 이름을 인식하지 못하는 경우 가능한 한 많은 정보를 노출하는 제네릭 프록시를 만듭니다. 여기에는 개체의 경계 사각형, 부모 개체, 이름( WM_GETTEXT) 및 창 계층 구조의 모든 자식이 포함됩니다.