제어 패턴 호출
메서드에 대한 정보를 포함하여 IInvokeProvider를 구현하기 위한 지침 및 규칙을 설명합니다. Invoke 컨트롤 패턴은 활성화될 때 상태를 유지하지 않고 명확한 단일 작업을 시작하거나 수행하는 컨트롤을 지원하는 데 사용됩니다.
검사 상자 및 라디오 단추와 같은 상태를 유지 관리하는 컨트롤은 대신 IToggleProvider 및 ISelectionProvider를 각각 구현해야 합니다. 이 컨트롤 패턴을 구현하는 컨트롤의 예는 컨트롤 형식 및 지원되는 컨트롤 패턴을 참조하세요.
이 항목에는 다음과 같은 섹션이 포함되어 있습니다.
구현 지침 및 규칙
Invoke 컨트롤 패턴을 구현할 때 다음 지침 및 규칙을 확인합니다.
동일한 동작이 다른 컨트롤 패턴 공급자를 통해 노출되지 않는 경우 컨트롤은 IInvokeProvider 를 구현합니다. 예를 들어 컨트롤의 IUIAutomationInvokePattern::Invoke 메서드가 IUIAutomationExpandCollapsePattern::Expand 또는 Collapse 메서드와 동일한 작업을 수행하는 경우 컨트롤 은 IInvokeProvider를 구현하지 않아야 합니다.
일반적으로 컨트롤은 미리 정의된 키보드 바로 가기 또는 몇 가지 키 입력의 조합을 클릭하거나, 두 번 클릭하거나, ENTER 키를 눌러 호출합니다.
invoked 이벤트(UIA_Invoke_InvokedEventId) 이벤트는 활성화된 컨트롤에서 발생합니다(연결된 작업을 수행하는 컨트롤에 대한 응답으로). 가능하면, 컨트롤이 작업을 완료하여 차단하지 않고 반환된 후에 이벤트가 발생해야 합니다. Invoked 이벤트(UIA_Invoke_InvokedEventId)는 다음 시나리오에서 Invoke 요청을 서비스하기 전에 발생해야 합니다.
- 작업이 완료될 때까지 기다리는 것은 실제로 불가능합니다.
- 작업에는 사용자 개입이 필요합니다.
- 작업은 시간이 오래 걸리므로 상당한 시간 동안 호출 클라이언트가 차단됩니다.
컨트롤을 호출하는 데 상당한 부작용이 있는 경우 해당 부작용은 HelpText 속성을 통해 노출되어야 합니다. 예를 들어 IUIAutomationInvokePattern::Invoke 가 선택 영역과 연결되어 있지 않더라도 Invoke 를 사용하면 다른 컨트롤이 선택될 수 있습니다.
마우스로 가리키기(또는 마우스 위로) 효과는 일반적으로 Invoked 이벤트를 구성하지 않습니다. 그러나 가리키기 상태에 따라 동작을 수행하는 컨트롤(시각적 효과를 유발하는 것이 아니라)은 Invoke 컨트롤 패턴을 지원해야 합니다.
참고
이 구현은 컨트롤을 마우스 관련 부작용의 결과로만 호출할 수 있는 경우 접근성 문제로 간주됩니다.
컨트롤을 호출하는 것은 항목을 선택하는 것과 다릅니다. 그러나 컨트롤에 따라, 컨트롤 호출로 인해 항목이 잘못된 방식으로 선택될 수 있습니다. 예를 들어, 내 문서 폴더에서 Microsoft Word 문서 목록 항목을 호출하면 항목이 선택되고 문서가 열리는 두 가지 작업이 수행됩니다.
요소가 호출되는 즉시 Microsoft UI 자동화 트리에서 사라질 수 있습니다. 그 결과, 이벤트 콜백에서 제공하는 요소로부터 정보를 요청하는 작업에 실패할 수 있습니다. 이러한 문제의 해결 방법으로 캐시된 정보를 프리페치하는 것이 좋습니다.
컨트롤은 여러 개의 컨트롤 패턴을 구현할 수 있습니다. 예를 들어 Microsoft Excel 도구 모음의 채우기 색 컨트롤은 Invoke 및 ExpandCollapse 컨트롤 패턴을 모두 구현합니다. ExpandCollapse 컨트롤 패턴은 메뉴를 표시하고 호출 컨트롤 패턴은 선택한 색으로 활성 선택을 채웁니다.
IInvokeProvider에 필요한 멤버
IInvokeProvider 인터페이스를 구현하려면 다음 메서드가 필요합니다.
필요한 멤버 | 멤버 형식 | 참고 |
---|---|---|
호출 | 메서드 |
Invoke 는 비동기 호출이며 차단 없이 즉시 반환해야 합니다. 이 동작은 호출될 때 직접 또는 간접적으로 모달 대화 상자를 시작하는 컨트롤에 특히 중요합니다. 이벤트를 발생시킨 모든 UI 자동화 클라이언트는 모달 대화 상자가 닫힐 때까지 차단된 상태로 유지됩니다. |
이 컨트롤 패턴에는 연결된 속성 또는 이벤트가 없습니다.