Window Control Pattern

Describes guidelines and conventions for implementing IWindowProvider, including information about properties, methods, and events. The Window control pattern supports controls that provide fundamental window-based functionality within a traditional GUI.

Examples of controls that must implement this control pattern include top-level application windows, multiple-document interface (MDI) child windows, resizable split pane controls, modal dialogs and balloon help windows. For examples of controls that implement this control pattern, see Control Pattern Mapping for UI Automation Clients.

This topic contains the following sections.

Implementation Guidelines and Conventions

When implementing the Window control pattern, note the following guidelines and conventions:

  • To support the ability to modify both window size and screen position using Microsoft UI Automation, a control must implement ITransformProvider in addition to IWindowProvider.
  • Controls that contain title bars, and title bar elements that enable the control to be moved, resized, maximized, minimized, or closed, are typically required to implement IWindowProvider.
  • Controls such as tooltip pop-ups and combo-box or menu drop-downs do not typically implement IWindowProvider.
  • Balloon help windows are differentiated from basic tooltip pop-ups by the provision of a window-like Close button.
  • Full-screen mode is not supported by IWindowProvider as it is feature-specific to an application and is not typical window behavior.

Required Members for IWindowProvider

The following properties, methods, and events are required for implementing the IWindowProvider interface.

Required members Member type Notes
WindowInteractionState Property Is not guaranteed to be WindowInteractionState_ReadyForUserInteraction
IsModal Property None
IsTopmost Property None
CanMaximize Property None
CanMinimize Property None
WindowVisualState Property None
Close Method None
SetVisualState Method None
WaitForInputIdle Method None
UIA_Window_WindowClosedEventId Event None
UIA_Window_WindowOpenedEventId Event None



UI Automation Control Patterns Overview

Control Pattern Mapping for UI Automation Clients

UI Automation Tree Overview