다음을 통해 공유


제어 패턴 호출

메서드에 대한 정보를 포함하여 IInvokeProvider구현하기 위한 지침 및 규칙에 대해 설명합니다. 호출 컨트롤 패턴은 활성화될 때 상태를 유지하지 않고 명확한 단일 작업을 시작하거나 수행하는 컨트롤을 지원하는 데 사용됩니다.

확인란 및 라디오 단추와 같은 상태를 유지 관리하는 컨트롤은 IToggleProviderISelectionProvider 각각 구현해야 합니다. 이 컨트롤 패턴을 구현하는 컨트롤의 예제는 컨트롤 형식 및 지원되는 컨트롤 패턴참조하세요.

이 항목에는 다음 섹션이 포함되어 있습니다.

구현 지침 및 규칙

호출 컨트롤 패턴을 구현하는 경우 다음 지침 및 규칙을 확인합니다.

  • 동일한 동작이 다른 컨트롤 패턴 공급자를 통해 노출되지 않는 경우 컨트롤은 IInvokeProvider 구현합니다. 예를 들어 컨트롤에서 IUIAutomationInvokePattern::Invoke 메서드가 IUIAutomationExpandCollapsePattern::Expand 또는 Collapse 메서드와 동일한 작업을 수행하는 경우 컨트롤은 IInvokeProvider구현하지 않아야 합니다.

  • 컨트롤 호출은 일반적으로 ENTER, 미리 정의된 바로 가기 키 또는 키 입력의 대체 조합을 클릭하거나 두 번 클릭하거나 눌러 수행됩니다.

  • Invoked 이벤트(UIA_Invoke_InvokedEventId) 이벤트는 활성화된 컨트롤에서 발생합니다(연결된 작업을 수행하는 컨트롤에 대한 응답으로). 가능하면 컨트롤이 작업을 완료하고 차단 없이 반환된 후에 이벤트가 발생해야 합니다. Invoked 이벤트(UIA_Invoke_InvokedEventId)는 다음 시나리오에서 호출 요청을 서비스하기 전에 발생해야 합니다.

    • 작업이 완료될 때까지 기다리는 것은 불가능하거나 실용적이지 않습니다.
    • 작업에는 사용자 상호 작용이 필요합니다.
    • 이 작업은 시간이 오래 걸리며 호출 클라이언트가 상당한 시간 동안 차단됩니다.
  • 컨트롤을 호출하는 데 상당한 부작용이 있는 경우 해당 부작용은 HelpText 속성을 통해 노출되어야 합니다. 예를 들어 IUIAutomationInvokePattern::Invoke 선택과 연결되지 않은 경우에도 호출하면 다른 컨트롤이 선택될 수 있습니다.

  • 마우스로 가리키기(또는 마우스를 덮는) 효과는 일반적으로 호출된 이벤트를 구성하지 않습니다. 그러나 호버 상태에 따라 동작을 수행하는 컨트롤은 호출 컨트롤 패턴을 지원해야 합니다.

    메모

    이 구현은 마우스 관련 부작용의 결과로서만 컨트롤을 호출할 수 있는 경우 접근성 문제로 간주됩니다.

  • 컨트롤을 호출하는 것은 항목 선택과 다릅니다. 그러나 컨트롤에 따라 호출하면 항목이 부작용으로 선택될 수 있습니다. 예를 들어 내 문서 폴더에서 Microsoft Word 문서 목록 항목을 호출하면 항목이 선택되고 문서가 열립니다.

  • 요소가 호출되는 즉시 Microsoft UI 자동화 트리에서 사라질 수 있습니다. 이벤트 콜백에서 제공하는 요소에서 정보를 요청하면 결과적으로 실패할 수 있습니다. 캐시된 정보를 미리 가져오는 것이 권장되는 해결 방법입니다.

  • 컨트롤은 여러 컨트롤 패턴을 구현할 수 있습니다. 예를 들어 Microsoft Excel 도구 모음의 채우기 색 컨트롤은 Invoke와 ExpandCollapse 컨트롤 패턴을 모두 구현합니다. ExpandCollapse 컨트롤 패턴은 메뉴를 노출하고 호출 컨트롤 패턴은 선택한 색으로 활성 선택을 채웁니다.

IInvokeProvider 필수 멤버

다음 메서드는 IInvokeProvider 인터페이스를 구현하는 데 필요합니다.

필수 멤버 멤버 형식 노트
호출 메서드 호출 비동기 호출이며 차단 없이 즉시 반환해야 합니다.
이 동작은 호출될 때 직접 또는 간접적으로 모달 대화 상자를 시작하는 컨트롤에 특히 중요합니다. 이벤트를 선동한 모든 UI 자동화 클라이언트는 모달 대화 상자가 닫히기 전까지 차단된 상태로 유지됩니다.

이 컨트롤 패턴에는 연결된 속성이나 이벤트가 없습니다.

컨트롤 형식 및 지원되는 컨트롤 패턴

UI 자동화 컨트롤 패턴 개요

UI 자동화 트리 개요

UIA_Invoke_InvokedEventId