Share via


Implementing the UI Automation VirtualizedItem Control Pattern

This topic introduces guidelines and conventions for implementing IVirtualizedItemProvider, including information about properties and methods. Links to additional references are listed at the end of the topic.
The VirtualizedItem control pattern is used to support virtualized items, which are items that are represented by placeholder automation elements in the Microsoft UI Automation tree. Virtualized items can include items retrieved from a control that supports the ItemContainer control pattern, or a virtualized embedded object retrieved from a control that supports the Text control pattern. The placeholder for a virtualized item might not have loaded data for all UI Automation properties, and may return UIA_E_ELEMENTNOTAVAILABLE in response to queries for properties that are not available. The VirtualizedItem control pattern provides a method for realizing a virtual item so that full information is made available for the item, and a full automation element can be created for the item in the UI Automation tree.

This topic contains the following sections.

  • Implementation Guidelines and Conventions
  • Required Members for IVirtualizedItemProvider
  • Related Topics

Implementation Guidelines and Conventions

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

  • Any UI Automation placeholder element that can be virtualized must support the VirtualizedItem control pattern by exposing the IVirtualizedItemProvider interface.
  • When IVirtualizedItemProvider::Realize is called, the placeholder object must be updated with full implementations of its properties and control patterns.
  • When Realize is called, the provider can change the viewport so that the virtualized item comes into view. Bringing the item into view is not required; however, off-screen, non-virtualized items should support the IScrollItemProvider::ScrollIntoView method.

Required Members for IVirtualizedItemProvider

The following properties and methods are required for implementing the IVirtualizedItemProvider interface.

Required members Member type Notes
IVirtualizedItemProvider::Realize Method None

This control pattern has no associated events.