xpmgr/BuildTools/Include/UIAutomationClient.idl

1924 lines
70 KiB
Plaintext
Raw Blame History

// -------------------------------------------------------------
// UIAutomationClient.idl
//
// UIAutomation Client interface definitions and related types and enums
//
// Copyright (c) Microsoft Corporation. All rights reserved.
// -------------------------------------------------------------
cpp_quote("// -------------------------------------------------------------")
cpp_quote("// UIAutomationClient.H")
cpp_quote("//")
cpp_quote("// UIAutomation Client interface definitions and related types and enums")
cpp_quote("// (Generated from UIAutomationClient.idl)")
cpp_quote("//")
cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.")
cpp_quote("// -------------------------------------------------------------")
#define DO_NO_IMPORTS
import "UIAutomationCore.idl";
midl_pragma warning( disable: 2362 ) // This is only expected to go downlevel as far as XP, so a large interface is fine.
// Base enums
enum TreeScope
{
TreeScope_Element = 0x1,
TreeScope_Children = 0x2,
TreeScope_Descendants = 0x4,
TreeScope_Parent = 0x8,
TreeScope_Ancestors = 0x10,
TreeScope_Subtree = TreeScope_Element | TreeScope_Children | TreeScope_Descendants
};
enum PropertyConditionFlags
{
PropertyConditionFlags_None = 0x00,
PropertyConditionFlags_IgnoreCase = 0x01,
};
enum AutomationElementMode
{
AutomationElementMode_None,
AutomationElementMode_Full
};
typedef void * UIA_HWND;
[
uuid(944de083-8fb8-45cf-bcb7-c477acb2f897),
lcid(0),
version(1.0),
]
library UIAutomationClient
{
importlib ("stdole2.tlb");
[dllname("<no entry points>")]
module UIA_PatternIds
{
const long UIA_InvokePatternId = 10000;
const long UIA_SelectionPatternId = 10001;
const long UIA_ValuePatternId = 10002;
const long UIA_RangeValuePatternId = 10003;
const long UIA_ScrollPatternId = 10004;
const long UIA_ExpandCollapsePatternId = 10005;
const long UIA_GridPatternId = 10006;
const long UIA_GridItemPatternId = 10007;
const long UIA_MultipleViewPatternId = 10008;
const long UIA_WindowPatternId = 10009;
const long UIA_SelectionItemPatternId = 10010;
const long UIA_DockPatternId = 10011;
const long UIA_TablePatternId = 10012;
const long UIA_TableItemPatternId = 10013;
const long UIA_TextPatternId = 10014;
const long UIA_TogglePatternId = 10015;
const long UIA_TransformPatternId = 10016;
const long UIA_ScrollItemPatternId = 10017;
const long UIA_LegacyIAccessiblePatternId = 10018;
const long UIA_ItemContainerPatternId = 10019;
const long UIA_VirtualizedItemPatternId = 10020;
const long UIA_SynchronizedInputPatternId = 10021;
};
[dllname("<no entry points>")]
module UIA_EventIds
{
const long UIA_ToolTipOpenedEventId = 20000;
const long UIA_ToolTipClosedEventId = 20001;
const long UIA_StructureChangedEventId = 20002;
const long UIA_MenuOpenedEventId = 20003;
const long UIA_AutomationPropertyChangedEventId = 20004;
const long UIA_AutomationFocusChangedEventId = 20005;
const long UIA_AsyncContentLoadedEventId = 20006;
const long UIA_MenuClosedEventId = 20007;
const long UIA_LayoutInvalidatedEventId = 20008;
const long UIA_Invoke_InvokedEventId = 20009;
const long UIA_SelectionItem_ElementAddedToSelectionEventId = 20010;
const long UIA_SelectionItem_ElementRemovedFromSelectionEventId = 20011;
const long UIA_SelectionItem_ElementSelectedEventId = 20012;
const long UIA_Selection_InvalidatedEventId = 20013;
const long UIA_Text_TextSelectionChangedEventId = 20014;
const long UIA_Text_TextChangedEventId = 20015;
const long UIA_Window_WindowOpenedEventId = 20016;
const long UIA_Window_WindowClosedEventId = 20017;
const long UIA_MenuModeStartEventId = 20018;
const long UIA_MenuModeEndEventId = 20019;
const long UIA_InputReachedTargetEventId = 20020;
const long UIA_InputReachedOtherElementEventId = 20021;
const long UIA_InputDiscardedEventId = 20022;
};
[dllname("<no entry points>")]
module UIA_PropertyIds
{
const long UIA_RuntimeIdPropertyId = 30000;
const long UIA_BoundingRectanglePropertyId = 30001;
const long UIA_ProcessIdPropertyId = 30002;
const long UIA_ControlTypePropertyId = 30003;
const long UIA_LocalizedControlTypePropertyId = 30004;
const long UIA_NamePropertyId = 30005;
const long UIA_AcceleratorKeyPropertyId = 30006;
const long UIA_AccessKeyPropertyId = 30007;
const long UIA_HasKeyboardFocusPropertyId = 30008;
const long UIA_IsKeyboardFocusablePropertyId = 30009;
const long UIA_IsEnabledPropertyId = 30010;
const long UIA_AutomationIdPropertyId = 30011;
const long UIA_ClassNamePropertyId = 30012;
const long UIA_HelpTextPropertyId = 30013;
const long UIA_ClickablePointPropertyId = 30014;
const long UIA_CulturePropertyId = 30015;
const long UIA_IsControlElementPropertyId = 30016;
const long UIA_IsContentElementPropertyId = 30017;
const long UIA_LabeledByPropertyId = 30018;
const long UIA_IsPasswordPropertyId = 30019;
const long UIA_NativeWindowHandlePropertyId = 30020;
const long UIA_ItemTypePropertyId = 30021;
const long UIA_IsOffscreenPropertyId = 30022;
const long UIA_OrientationPropertyId = 30023;
const long UIA_FrameworkIdPropertyId = 30024;
const long UIA_IsRequiredForFormPropertyId = 30025;
const long UIA_ItemStatusPropertyId = 30026;
const long UIA_IsDockPatternAvailablePropertyId = 30027;
const long UIA_IsExpandCollapsePatternAvailablePropertyId = 30028;
const long UIA_IsGridItemPatternAvailablePropertyId = 30029;
const long UIA_IsGridPatternAvailablePropertyId = 30030;
const long UIA_IsInvokePatternAvailablePropertyId = 30031;
const long UIA_IsMultipleViewPatternAvailablePropertyId = 30032;
const long UIA_IsRangeValuePatternAvailablePropertyId = 30033;
const long UIA_IsScrollPatternAvailablePropertyId = 30034;
const long UIA_IsScrollItemPatternAvailablePropertyId = 30035;
const long UIA_IsSelectionItemPatternAvailablePropertyId = 30036;
const long UIA_IsSelectionPatternAvailablePropertyId = 30037;
const long UIA_IsTablePatternAvailablePropertyId = 30038;
const long UIA_IsTableItemPatternAvailablePropertyId = 30039;
const long UIA_IsTextPatternAvailablePropertyId = 30040;
const long UIA_IsTogglePatternAvailablePropertyId = 30041;
const long UIA_IsTransformPatternAvailablePropertyId = 30042;
const long UIA_IsValuePatternAvailablePropertyId = 30043;
const long UIA_IsWindowPatternAvailablePropertyId = 30044;
const long UIA_ValueValuePropertyId = 30045;
const long UIA_ValueIsReadOnlyPropertyId = 30046;
const long UIA_RangeValueValuePropertyId = 30047;
const long UIA_RangeValueIsReadOnlyPropertyId = 30048;
const long UIA_RangeValueMinimumPropertyId = 30049;
const long UIA_RangeValueMaximumPropertyId = 30050;
const long UIA_RangeValueLargeChangePropertyId = 30051;
const long UIA_RangeValueSmallChangePropertyId = 30052;
const long UIA_ScrollHorizontalScrollPercentPropertyId = 30053;
const long UIA_ScrollHorizontalViewSizePropertyId = 30054;
const long UIA_ScrollVerticalScrollPercentPropertyId = 30055;
const long UIA_ScrollVerticalViewSizePropertyId = 30056;
const long UIA_ScrollHorizontallyScrollablePropertyId = 30057;
const long UIA_ScrollVerticallyScrollablePropertyId = 30058;
const long UIA_SelectionSelectionPropertyId = 30059;
const long UIA_SelectionCanSelectMultiplePropertyId = 30060;
const long UIA_SelectionIsSelectionRequiredPropertyId = 30061;
const long UIA_GridRowCountPropertyId = 30062;
const long UIA_GridColumnCountPropertyId = 30063;
const long UIA_GridItemRowPropertyId = 30064;
const long UIA_GridItemColumnPropertyId = 30065;
const long UIA_GridItemRowSpanPropertyId = 30066;
const long UIA_GridItemColumnSpanPropertyId = 30067;
const long UIA_GridItemContainingGridPropertyId = 30068;
const long UIA_DockDockPositionPropertyId = 30069;
const long UIA_ExpandCollapseExpandCollapseStatePropertyId = 30070;
const long UIA_MultipleViewCurrentViewPropertyId = 30071;
const long UIA_MultipleViewSupportedViewsPropertyId = 30072;
const long UIA_WindowCanMaximizePropertyId = 30073;
const long UIA_WindowCanMinimizePropertyId = 30074;
const long UIA_WindowWindowVisualStatePropertyId = 30075;
const long UIA_WindowWindowInteractionStatePropertyId = 30076;
const long UIA_WindowIsModalPropertyId = 30077;
const long UIA_WindowIsTopmostPropertyId = 30078;
const long UIA_SelectionItemIsSelectedPropertyId = 30079;
const long UIA_SelectionItemSelectionContainerPropertyId = 30080;
const long UIA_TableRowHeadersPropertyId = 30081;
const long UIA_TableColumnHeadersPropertyId = 30082;
const long UIA_TableRowOrColumnMajorPropertyId = 30083;
const long UIA_TableItemRowHeaderItemsPropertyId = 30084;
const long UIA_TableItemColumnHeaderItemsPropertyId = 30085;
const long UIA_ToggleToggleStatePropertyId = 30086;
const long UIA_TransformCanMovePropertyId = 30087;
const long UIA_TransformCanResizePropertyId = 30088;
const long UIA_TransformCanRotatePropertyId = 30089;
const long UIA_IsLegacyIAccessiblePatternAvailablePropertyId = 30090;
const long UIA_LegacyIAccessibleChildIdPropertyId = 30091;
const long UIA_LegacyIAccessibleNamePropertyId = 30092;
const long UIA_LegacyIAccessibleValuePropertyId = 30093;
const long UIA_LegacyIAccessibleDescriptionPropertyId = 30094;
const long UIA_LegacyIAccessibleRolePropertyId = 30095;
const long UIA_LegacyIAccessibleStatePropertyId = 30096;
const long UIA_LegacyIAccessibleHelpPropertyId = 30097;
const long UIA_LegacyIAccessibleKeyboardShortcutPropertyId = 30098;
const long UIA_LegacyIAccessibleSelectionPropertyId = 30099;
const long UIA_LegacyIAccessibleDefaultActionPropertyId = 30100;
const long UIA_AriaRolePropertyId = 30101;
const long UIA_AriaPropertiesPropertyId = 30102;
const long UIA_IsDataValidForFormPropertyId = 30103;
const long UIA_ControllerForPropertyId = 30104;
const long UIA_DescribedByPropertyId = 30105;
const long UIA_FlowsToPropertyId = 30106;
const long UIA_ProviderDescriptionPropertyId = 30107;
const long UIA_IsItemContainerPatternAvailablePropertyId = 30108;
const long UIA_IsVirtualizedItemPatternAvailablePropertyId = 30109;
const long UIA_IsSynchronizedInputPatternAvailablePropertyId = 30110;
}
[dllname("<no entry points>")]
module UIA_TextAttributeIds
{
const long UIA_AnimationStyleAttributeId = 40000;
const long UIA_BackgroundColorAttributeId = 40001;
const long UIA_BulletStyleAttributeId = 40002;
const long UIA_CapStyleAttributeId = 40003;
const long UIA_CultureAttributeId = 40004;
const long UIA_FontNameAttributeId = 40005;
const long UIA_FontSizeAttributeId = 40006;
const long UIA_FontWeightAttributeId = 40007;
const long UIA_ForegroundColorAttributeId = 40008;
const long UIA_HorizontalTextAlignmentAttributeId = 40009;
const long UIA_IndentationFirstLineAttributeId = 40010;
const long UIA_IndentationLeadingAttributeId = 40011;
const long UIA_IndentationTrailingAttributeId = 40012;
const long UIA_IsHiddenAttributeId = 40013;
const long UIA_IsItalicAttributeId = 40014;
const long UIA_IsReadOnlyAttributeId = 40015;
const long UIA_IsSubscriptAttributeId = 40016;
const long UIA_IsSuperscriptAttributeId = 40017;
const long UIA_MarginBottomAttributeId = 40018;
const long UIA_MarginLeadingAttributeId = 40019;
const long UIA_MarginTopAttributeId = 40020;
const long UIA_MarginTrailingAttributeId = 40021;
const long UIA_OutlineStylesAttributeId = 40022;
const long UIA_OverlineColorAttributeId = 40023;
const long UIA_OverlineStyleAttributeId = 40024;
const long UIA_StrikethroughColorAttributeId = 40025;
const long UIA_StrikethroughStyleAttributeId = 40026;
const long UIA_TabsAttributeId = 40027;
const long UIA_TextFlowDirectionsAttributeId = 40028;
const long UIA_UnderlineColorAttributeId = 40029;
const long UIA_UnderlineStyleAttributeId = 40030;
}
[dllname("<no entry points>")]
module UIA_ControlTypeIds
{
const long UIA_ButtonControlTypeId = 50000;
const long UIA_CalendarControlTypeId = 50001;
const long UIA_CheckBoxControlTypeId = 50002;
const long UIA_ComboBoxControlTypeId = 50003;
const long UIA_EditControlTypeId = 50004;
const long UIA_HyperlinkControlTypeId = 50005;
const long UIA_ImageControlTypeId = 50006;
const long UIA_ListItemControlTypeId = 50007;
const long UIA_ListControlTypeId = 50008;
const long UIA_MenuControlTypeId = 50009;
const long UIA_MenuBarControlTypeId = 50010;
const long UIA_MenuItemControlTypeId = 50011;
const long UIA_ProgressBarControlTypeId = 50012;
const long UIA_RadioButtonControlTypeId = 50013;
const long UIA_ScrollBarControlTypeId = 50014;
const long UIA_SliderControlTypeId = 50015;
const long UIA_SpinnerControlTypeId = 50016;
const long UIA_StatusBarControlTypeId = 50017;
const long UIA_TabControlTypeId = 50018;
const long UIA_TabItemControlTypeId = 50019;
const long UIA_TextControlTypeId = 50020;
const long UIA_ToolBarControlTypeId = 50021;
const long UIA_ToolTipControlTypeId = 50022;
const long UIA_TreeControlTypeId = 50023;
const long UIA_TreeItemControlTypeId = 50024;
const long UIA_CustomControlTypeId = 50025;
const long UIA_GroupControlTypeId = 50026;
const long UIA_ThumbControlTypeId = 50027;
const long UIA_DataGridControlTypeId = 50028;
const long UIA_DataItemControlTypeId = 50029;
const long UIA_DocumentControlTypeId = 50030;
const long UIA_SplitButtonControlTypeId = 50031;
const long UIA_WindowControlTypeId = 50032;
const long UIA_PaneControlTypeId = 50033;
const long UIA_HeaderControlTypeId = 50034;
const long UIA_HeaderItemControlTypeId = 50035;
const long UIA_TableControlTypeId = 50036;
const long UIA_TitleBarControlTypeId = 50037;
const long UIA_SeparatorControlTypeId = 50038;
};
interface IUIAutomationElement;
interface IUIAutomationElementArray;
//
// IUIAutomationCondition
//
[object, uuid(352ffba8-0973-437c-a61f-f64cafd81df9), pointer_default(unique)]
interface IUIAutomationCondition : IUnknown
{
}
//
// IUIAutomationBoolCondition
//
[object, uuid(1b4e1f2e-75eb-4d0b-8952-5a69988e2307), pointer_default(unique)]
interface IUIAutomationBoolCondition : IUIAutomationCondition
{
[propget] HRESULT BooleanValue (
[out, retval] BOOL * boolVal );
}
//
// IUIAutomationPropertyCondition
//
[object, uuid(99ebf2cb-5578-4267-9ad4-afd6ea77e94b), pointer_default(unique)]
interface IUIAutomationPropertyCondition : IUIAutomationCondition
{
[propget] HRESULT PropertyId (
[out, retval] PROPERTYID * propertyId );
[propget] HRESULT PropertyValue (
[out, retval] VARIANT * propertyValue );
[propget] HRESULT PropertyConditionFlags (
[out, retval] enum PropertyConditionFlags * flags );
}
//
// IUIAutomationAndCondition
//
[object, uuid(a7d0af36-b912-45fe-9855-091ddc174aec), pointer_default(unique)]
interface IUIAutomationAndCondition : IUIAutomationCondition
{
[propget] HRESULT ChildCount (
[out, retval] int * childCount );
HRESULT GetChildrenAsNativeArray (
[out, size_is( ,*childArrayCount)] IUIAutomationCondition *** childArray,
[out] int * childArrayCount );
HRESULT GetChildren (
[out, retval] SAFEARRAY(IUIAutomationCondition) * childArray );
}
//
// IUIAutomationOrCondition
//
[object, uuid(8753f032-3db1-47b5-a1fc-6e34a266c712), pointer_default(unique)]
interface IUIAutomationOrCondition : IUIAutomationCondition
{
[propget] HRESULT ChildCount (
[out, retval] int * childCount );
HRESULT GetChildrenAsNativeArray (
[out, size_is( ,*childArrayCount)] IUIAutomationCondition *** childArray,
[out] int * childArrayCount );
HRESULT GetChildren (
[out, retval] SAFEARRAY(IUIAutomationCondition) * childArray );
}
//
// IUIAutomationNotCondition
//
[object, uuid(f528b657-847b-498c-8896-d52b565407a1), pointer_default(unique)]
interface IUIAutomationNotCondition : IUIAutomationCondition
{
HRESULT GetChild(
[out, retval] IUIAutomationCondition ** condition );
}
//
// IUIAutomationCacheRequest
//
[object, uuid(b32a92b5-bc25-4078-9c08-d7ee95c48e03), pointer_default(unique)]
interface IUIAutomationCacheRequest : IUnknown
{
HRESULT AddProperty (
[in] PROPERTYID propertyId );
HRESULT AddPattern (
[in] PATTERNID patternId );
HRESULT Clone (
[out, retval] IUIAutomationCacheRequest ** clonedRequest );
[propget] HRESULT TreeScope (
[out, retval] enum TreeScope * scope );
[propput] HRESULT TreeScope (
[in] enum TreeScope scope );
[propget] HRESULT TreeFilter (
[out, retval] IUIAutomationCondition ** filter );
[propput] HRESULT TreeFilter (
[in] IUIAutomationCondition * filter );
[propget] HRESULT AutomationElementMode (
[out, retval] enum AutomationElementMode * mode );
[propput] HRESULT AutomationElementMode (
[in] enum AutomationElementMode mode );
}
//
// IUIAutomationTreeWalker
//
[object, uuid(4042c624-389c-4afc-a630-9df854a541fc), pointer_default(unique)]
interface IUIAutomationTreeWalker : IUnknown
{
HRESULT GetParentElement (
[in] IUIAutomationElement * element,
[out, retval] IUIAutomationElement ** parent );
HRESULT GetFirstChildElement (
[in] IUIAutomationElement * element,
[out, retval] IUIAutomationElement ** first );
HRESULT GetLastChildElement (
[in] IUIAutomationElement * element,
[out, retval] IUIAutomationElement ** last );
HRESULT GetNextSiblingElement (
[in] IUIAutomationElement * element,
[out, retval] IUIAutomationElement ** next );
HRESULT GetPreviousSiblingElement (
[in] IUIAutomationElement * element,
[out, retval] IUIAutomationElement ** previous );
HRESULT NormalizeElement (
[in] IUIAutomationElement * element,
[out, retval] IUIAutomationElement ** normalized );
// Separate * CacheRequest names exist, because there<72>s no name overloading in COM
HRESULT GetParentElementBuildCache (
[in] IUIAutomationElement * element,
[in] IUIAutomationCacheRequest * cacheRequest,
[out, retval] IUIAutomationElement ** parent );
HRESULT GetFirstChildElementBuildCache (
[in] IUIAutomationElement * element,
[in] IUIAutomationCacheRequest * cacheRequest,
[out, retval] IUIAutomationElement ** first );
HRESULT GetLastChildElementBuildCache (
[in] IUIAutomationElement * element,
[in] IUIAutomationCacheRequest * cacheRequest,
[out, retval] IUIAutomationElement ** last );
HRESULT GetNextSiblingElementBuildCache (
[in] IUIAutomationElement * element,
[in] IUIAutomationCacheRequest * cacheRequest,
[out, retval] IUIAutomationElement ** next );
HRESULT GetPreviousSiblingElementBuildCache (
[in] IUIAutomationElement * element,
[in] IUIAutomationCacheRequest * cacheRequest,
[out, retval] IUIAutomationElement ** previous );
HRESULT NormalizeElementBuildCache (
[in] IUIAutomationElement * element,
[in] IUIAutomationCacheRequest * cacheRequest,
[out, retval] IUIAutomationElement ** normalized );
[propget] HRESULT Condition (
[out, retval] IUIAutomationCondition ** condition );
}
//
// IUIAutomationEventHandler
//
[object, uuid(146c3c17-f12e-4e22-8c27-f894b9b79c69), pointer_default(unique), oleautomation]
interface IUIAutomationEventHandler : IUnknown
{
HRESULT HandleAutomationEvent (
[in] IUIAutomationElement * sender,
[in] EVENTID eventId );
}
//
// IUIAutomationPropertyChangedEventHandler
//
[object, uuid(40cd37d4-c756-4b0c-8c6f-bddfeeb13b50), pointer_default(unique), oleautomation]
interface IUIAutomationPropertyChangedEventHandler : IUnknown
{
HRESULT HandlePropertyChangedEvent (
[in] IUIAutomationElement * sender,
[in] PROPERTYID propertyId,
[in] VARIANT newValue );
}
//
// IUIAutomationStructureChangedEventHandler
//
[object, uuid(e81d1b4e-11c5-42f8-9754-e7036c79f054), pointer_default(unique), oleautomation]
interface IUIAutomationStructureChangedEventHandler : IUnknown
{
HRESULT HandleStructureChangedEvent (
[in] IUIAutomationElement * sender,
[in] enum StructureChangeType changeType,
[in] SAFEARRAY(int) runtimeId );
}
//
// IUIAutomationFocusChangedEventHandler
//
[object, uuid(c270f6b5-5c69-4290-9745-7a7f97169468), pointer_default(unique), oleautomation]
interface IUIAutomationFocusChangedEventHandler : IUnknown
{
HRESULT HandleFocusChangedEvent (
[in] IUIAutomationElement * sender );
}
//
// IUIAutomationInvokePattern
//
[object, uuid(fb377fbe-8ea6-46d5-9c73-6499642d3059), pointer_default(unique)]
interface IUIAutomationInvokePattern : IUnknown
{
HRESULT Invoke ( );
}
//
// IUIAutomationDockPattern
//
[object, uuid(fde5ef97-1464-48f6-90bf-43d0948e86ec), pointer_default(unique)]
interface IUIAutomationDockPattern : IUnknown
{
HRESULT SetDockPosition (
[in] enum DockPosition dockPos );
[propget] HRESULT CurrentDockPosition (
[out, retval] enum DockPosition * retVal );
[propget] HRESULT CachedDockPosition (
[out, retval] enum DockPosition * retVal );
}
//
// IUIAutomationExpandCollapsePattern
//
[object, uuid(619be086-1f4e-4ee4-bafa-210128738730), pointer_default(unique)]
interface IUIAutomationExpandCollapsePattern : IUnknown
{
HRESULT Expand ( );
HRESULT Collapse ( );
[propget] HRESULT CurrentExpandCollapseState (
[out, retval] enum ExpandCollapseState * retVal );
[propget] HRESULT CachedExpandCollapseState (
[out, retval] enum ExpandCollapseState * retVal );
}
//
// IUIAutomationGridPattern
//
[object, uuid(414c3cdc-856b-4f5b-8538-3131c6302550), pointer_default(unique)]
interface IUIAutomationGridPattern : IUnknown
{
HRESULT GetItem (
[in] int row,
[in] int column,
[out, retval] IUIAutomationElement ** element );
[propget] HRESULT CurrentRowCount (
[out, retval] int * retVal );
[propget] HRESULT CurrentColumnCount (
[out, retval] int * retVal );
[propget] HRESULT CachedRowCount (
[out, retval] int * retVal );
[propget] HRESULT CachedColumnCount (
[out, retval] int * retVal );
}
//
// IUIAutomationGridItemPattern
//
[object, uuid(78f8ef57-66c3-4e09-bd7c-e79b2004894d), pointer_default(unique)]
interface IUIAutomationGridItemPattern : IUnknown
{
[propget] HRESULT CurrentContainingGrid (
[out, retval] IUIAutomationElement ** retVal );
[propget] HRESULT CurrentRow (
[out, retval] int * retVal );
[propget] HRESULT CurrentColumn (
[out, retval] int * retVal );
[propget] HRESULT CurrentRowSpan (
[out, retval] int * retVal );
[propget] HRESULT CurrentColumnSpan (
[out, retval] int * retVal );
[propget] HRESULT CachedContainingGrid (
[out, retval] IUIAutomationElement ** retVal );
[propget] HRESULT CachedRow (
[out, retval] int * retVal );
[propget] HRESULT CachedColumn (
[out, retval] int * retVal );
[propget] HRESULT CachedRowSpan (
[out, retval] int * retVal );
[propget] HRESULT CachedColumnSpan (
[out, retval] int * retVal );
}
//
// IUIAutomationMultipleViewPattern
//
[object, uuid(8d253c91-1dc5-4bb5-b18f-ade16fa495e8), pointer_default(unique)]
interface IUIAutomationMultipleViewPattern : IUnknown
{
HRESULT GetViewName (
[in] int view,
[out, retval] BSTR * name );
HRESULT SetCurrentView (
[in] int view );
[propget] HRESULT CurrentCurrentView (
[out, retval] int * retVal );
HRESULT GetCurrentSupportedViews (
[out, retval] SAFEARRAY(int) * retVal );
[propget] HRESULT CachedCurrentView (
[out, retval] int * retVal );
HRESULT GetCachedSupportedViews (
[out, retval] SAFEARRAY(int) * retVal );
}
//
// IUIAutomationRangeValuePattern
//
[object, uuid(59213f4f-7346-49e5-b120-80555987a148), pointer_default(unique)]
interface IUIAutomationRangeValuePattern : IUnknown
{
HRESULT SetValue (
[in] double val );
[propget] HRESULT CurrentValue (
[out, retval] double * retVal );
[propget] HRESULT CurrentIsReadOnly (
[out, retval] BOOL * retVal );
[propget] HRESULT CurrentMaximum (
[out, retval] double * retVal );
[propget] HRESULT CurrentMinimum (
[out, retval] double * retVal );
[propget] HRESULT CurrentLargeChange (
[out, retval] double * retVal );
[propget] HRESULT CurrentSmallChange (
[out, retval] double * retVal );
[propget] HRESULT CachedValue (
[out, retval] double * retVal );
[propget] HRESULT CachedIsReadOnly (
[out, retval] BOOL * retVal );
[propget] HRESULT CachedMaximum (
[out, retval] double * retVal );
[propget] HRESULT CachedMinimum (
[out, retval] double * retVal );
[propget] HRESULT CachedLargeChange (
[out, retval] double * retVal );
[propget] HRESULT CachedSmallChange (
[out, retval] double * retVal );
}
//
// IUIAutomationScrollPattern
//
[object, uuid(88f4d42a-e881-459d-a77c-73bbbb7e02dc), pointer_default(unique)]
interface IUIAutomationScrollPattern : IUnknown
{
HRESULT Scroll (
[in] enum ScrollAmount horizontalAmount,
[in] enum ScrollAmount verticalAmount );
HRESULT SetScrollPercent (
[in] double horizontalPercent,
[in] double verticalPercent );
[propget] HRESULT CurrentHorizontalScrollPercent (
[out, retval] double * retVal );
[propget] HRESULT CurrentVerticalScrollPercent (
[out, retval] double * retVal );
[propget] HRESULT CurrentHorizontalViewSize (
[out, retval] double * retVal );
[propget] HRESULT CurrentVerticalViewSize (
[out, retval] double * retVal );
[propget] HRESULT CurrentHorizontallyScrollable (
[out, retval] BOOL * retVal );
[propget] HRESULT CurrentVerticallyScrollable (
[out, retval] BOOL * retVal );
[propget] HRESULT CachedHorizontalScrollPercent (
[out, retval] double * retVal );
[propget] HRESULT CachedVerticalScrollPercent (
[out, retval] double * retVal );
[propget] HRESULT CachedHorizontalViewSize (
[out, retval] double * retVal );
[propget] HRESULT CachedVerticalViewSize (
[out, retval] double * retVal );
[propget] HRESULT CachedHorizontallyScrollable (
[out, retval] BOOL * retVal );
[propget] HRESULT CachedVerticallyScrollable (
[out, retval] BOOL * retVal );
}
//
// IUIAutomationScrollItemPattern
//
[object, uuid(b488300f-d015-4f19-9c29-bb595e3645ef), pointer_default(unique)]
interface IUIAutomationScrollItemPattern : IUnknown
{
HRESULT ScrollIntoView ( );
}
//
// IUIAutomationSelectionPattern
//
[object, uuid(5ed5202e-b2ac-47a6-b638-4b0bf140d78e), pointer_default(unique)]
interface IUIAutomationSelectionPattern : IUnknown
{
HRESULT GetCurrentSelection (
[out, retval] IUIAutomationElementArray ** retVal );
[propget] HRESULT CurrentCanSelectMultiple (
[out, retval] BOOL * retVal );
[propget] HRESULT CurrentIsSelectionRequired (
[out, retval] BOOL * retVal );
HRESULT GetCachedSelection (
[out, retval] IUIAutomationElementArray ** retVal );
[propget] HRESULT CachedCanSelectMultiple (
[out, retval] BOOL * retVal );
[propget] HRESULT CachedIsSelectionRequired (
[out, retval] BOOL * retVal );
}
//
// IUIAutomationSelectionItemPattern
//
[object, uuid(a8efa66a-0fda-421a-9194-38021f3578ea), pointer_default(unique)]
interface IUIAutomationSelectionItemPattern : IUnknown
{
HRESULT Select ( );
HRESULT AddToSelection ( );
HRESULT RemoveFromSelection ( );
[propget] HRESULT CurrentIsSelected (
[out, retval] BOOL * retVal );
[propget] HRESULT CurrentSelectionContainer (
[out, retval] IUIAutomationElement ** retVal );
[propget] HRESULT CachedIsSelected (
[out, retval] BOOL * retVal );
[propget] HRESULT CachedSelectionContainer (
[out, retval] IUIAutomationElement ** retVal );
}
//
// IUIAutomationSynchronizedInputPattern
//
[object, uuid(2233be0b-afb7-448b-9fda-3b378aa5eae1), pointer_default(unique)]
interface IUIAutomationSynchronizedInputPattern : IUnknown
{
HRESULT StartListening (
[in] enum SynchronizedInputType inputType );
HRESULT Cancel ( );
}
//
// IUIAutomationTablePattern
//
[object, uuid(620e691c-ea96-4710-a850-754b24ce2417), pointer_default(unique)]
interface IUIAutomationTablePattern : IUnknown
{
HRESULT GetCurrentRowHeaders (
[out, retval] IUIAutomationElementArray ** retVal );
HRESULT GetCurrentColumnHeaders (
[out, retval] IUIAutomationElementArray ** retVal );
[propget] HRESULT CurrentRowOrColumnMajor (
[out, retval] enum RowOrColumnMajor * retVal );
HRESULT GetCachedRowHeaders (
[out, retval] IUIAutomationElementArray ** retVal );
HRESULT GetCachedColumnHeaders (
[out, retval] IUIAutomationElementArray ** retVal );
[propget] HRESULT CachedRowOrColumnMajor (
[out, retval] enum RowOrColumnMajor * retVal );
}
//
// IUIAutomationTableItemPattern
//
[object, uuid(0b964eb3-ef2e-4464-9c79-61d61737a27e), pointer_default(unique)]
interface IUIAutomationTableItemPattern : IUnknown
{
HRESULT GetCurrentRowHeaderItems (
[out, retval] IUIAutomationElementArray ** retVal );
HRESULT GetCurrentColumnHeaderItems (
[out, retval] IUIAutomationElementArray ** retVal );
HRESULT GetCachedRowHeaderItems (
[out, retval] IUIAutomationElementArray ** retVal );
HRESULT GetCachedColumnHeaderItems (
[out, retval] IUIAutomationElementArray ** retVal );
}
//
// IUIAutomationTogglePattern
//
[object, uuid(94cf8058-9b8d-4ab9-8bfd-4cd0a33c8c70), pointer_default(unique)]
interface IUIAutomationTogglePattern : IUnknown
{
HRESULT Toggle ( );
[propget] HRESULT CurrentToggleState (
[out, retval] enum ToggleState * retVal );
[propget] HRESULT CachedToggleState (
[out, retval] enum ToggleState * retVal );
}
//
// IUIAutomationTransformPattern
//
[object, uuid(a9b55844-a55d-4ef0-926d-569c16ff89bb), pointer_default(unique)]
interface IUIAutomationTransformPattern : IUnknown
{
HRESULT Move (
[in] double x,
[in] double y );
HRESULT Resize (
[in] double width,
[in] double height );
HRESULT Rotate (
[in] double degrees );
[propget] HRESULT CurrentCanMove (
[out, retval] BOOL * retVal );
[propget] HRESULT CurrentCanResize (
[out, retval] BOOL * retVal );
[propget] HRESULT CurrentCanRotate (
[out, retval] BOOL * retVal );
[propget] HRESULT CachedCanMove (
[out, retval] BOOL * retVal );
[propget] HRESULT CachedCanResize (
[out, retval] BOOL * retVal );
[propget] HRESULT CachedCanRotate (
[out, retval] BOOL * retVal );
}
//
// IUIAutomationValuePattern
//
[object, uuid(a94cd8b1-0844-4cd6-9d2d-640537ab39e9), pointer_default(unique)]
interface IUIAutomationValuePattern : IUnknown
{
HRESULT SetValue (
[in] BSTR val );
[propget] HRESULT CurrentValue (
[out, retval] BSTR * retVal );
[propget] HRESULT CurrentIsReadOnly (
[out, retval] BOOL * retVal );
[propget] HRESULT CachedValue (
[out, retval] BSTR * retVal );
[propget] HRESULT CachedIsReadOnly (
[out, retval] BOOL * retVal );
}
//
// IUIAutomationWindowPattern
//
[object, uuid(0faef453-9208-43ef-bbb2-3b485177864f), pointer_default(unique)]
interface IUIAutomationWindowPattern : IUnknown
{
HRESULT Close ( );
HRESULT WaitForInputIdle (
[in] int milliseconds,
[out, retval] BOOL * success );
HRESULT SetWindowVisualState (
[in] enum WindowVisualState state );
[propget] HRESULT CurrentCanMaximize (
[out, retval] BOOL * retVal );
[propget] HRESULT CurrentCanMinimize (
[out, retval] BOOL * retVal );
[propget] HRESULT CurrentIsModal (
[out, retval] BOOL * retVal );
[propget] HRESULT CurrentIsTopmost (
[out, retval] BOOL * retVal );
[propget] HRESULT CurrentWindowVisualState (
[out, retval] enum WindowVisualState * retVal );
[propget] HRESULT CurrentWindowInteractionState (
[out, retval] enum WindowInteractionState * retVal );
[propget] HRESULT CachedCanMaximize (
[out, retval] BOOL * retVal );
[propget] HRESULT CachedCanMinimize (
[out, retval] BOOL * retVal );
[propget] HRESULT CachedIsModal (
[out, retval] BOOL * retVal );
[propget] HRESULT CachedIsTopmost (
[out, retval] BOOL * retVal );
[propget] HRESULT CachedWindowVisualState (
[out, retval] enum WindowVisualState * retVal );
[propget] HRESULT CachedWindowInteractionState (
[out, retval] enum WindowInteractionState * retVal );
}
//
// IUIAutomationTextRange
//
[object, uuid(a543cc6a-f4ae-494b-8239-c814481187a8), pointer_default(unique)]
interface IUIAutomationTextRange : IUnknown
{
HRESULT Clone (
[out, retval] IUIAutomationTextRange ** clonedRange );
HRESULT Compare (
[in] IUIAutomationTextRange * range,
[out, retval] BOOL * areSame );
HRESULT CompareEndpoints (
[in] enum TextPatternRangeEndpoint srcEndPoint,
[in] IUIAutomationTextRange * range,
[in] enum TextPatternRangeEndpoint targetEndPoint,
[out, retval] int * compValue );
HRESULT ExpandToEnclosingUnit (
[in] enum TextUnit textUnit );
HRESULT FindAttribute (
[in] TEXTATTRIBUTEID attr,
[in] VARIANT val,
[in] BOOL backward,
[out, retval] IUIAutomationTextRange ** found );
HRESULT FindText (
[in] BSTR text,
[in] BOOL backward,
[in] BOOL ignoreCase,
[out, retval] IUIAutomationTextRange ** found );
HRESULT GetAttributeValue (
[in] TEXTATTRIBUTEID attr,
[out, retval] VARIANT * value );
HRESULT GetBoundingRectangles (
[out, retval] SAFEARRAY(double) * boundingRects );
HRESULT GetEnclosingElement (
[out, retval] IUIAutomationElement ** enclosingElement );
HRESULT GetText (
[in] int maxLength,
[out, retval] BSTR * text );
HRESULT Move (
[in] enum TextUnit unit,
[in] int count,
[out, retval] int * moved );
HRESULT MoveEndpointByUnit (
[in] enum TextPatternRangeEndpoint endpoint,
[in] enum TextUnit unit,
[in] int count,
[out, retval] int * moved );
HRESULT MoveEndpointByRange (
[in] enum TextPatternRangeEndpoint srcEndPoint,
[in] IUIAutomationTextRange * range,
[in] enum TextPatternRangeEndpoint targetEndPoint );
HRESULT Select ( );
HRESULT AddToSelection ( );
HRESULT RemoveFromSelection ( );
HRESULT ScrollIntoView (
[in] BOOL alignToTop );
HRESULT GetChildren (
[out, retval] IUIAutomationElementArray ** children );
}
//
// IUIAutomationTextRangeArray
//
[object, uuid(ce4ae76a-e717-4c98-81ea-47371d028eb6), pointer_default(unique)]
interface IUIAutomationTextRangeArray : IUnknown
{
[propget] HRESULT Length (
[out, retval] int * length );
HRESULT GetElement (
[in] int index,
[out, retval] IUIAutomationTextRange ** element );
}
//
// IUIAutomationTextPattern
//
[object, uuid(32eba289-3583-42c9-9c59-3b6d9a1e9b6a), pointer_default(unique)]
interface IUIAutomationTextPattern : IUnknown
{
HRESULT RangeFromPoint (
[in] POINT pt,
[out, retval] IUIAutomationTextRange ** range );
HRESULT RangeFromChild (
[in] IUIAutomationElement * child,
[out, retval] IUIAutomationTextRange ** range );
HRESULT GetSelection (
[out, retval] IUIAutomationTextRangeArray ** ranges );
HRESULT GetVisibleRanges (
[out, retval] IUIAutomationTextRangeArray ** ranges );
[propget] HRESULT DocumentRange (
[out, retval] IUIAutomationTextRange ** range );
[propget] HRESULT SupportedTextSelection (
[out, retval] enum SupportedTextSelection * supportedTextSelection );
}
//
// IUIAutomationLegacyIAccessiblePattern
//
// Parameter names are intentionally kept the same as IAccessible
[object, uuid(828055ad-355b-4435-86d5-3b51c14a9b1b), pointer_default(unique)]
interface IUIAutomationLegacyIAccessiblePattern: IUnknown
{
HRESULT Select ( long flagsSelect );
HRESULT DoDefaultAction ();
HRESULT SetValue ( LPCWSTR szValue );
[propget] HRESULT CurrentChildId (
[out, retval] int * pRetVal );
[propget] HRESULT CurrentName (
[out, retval] BSTR * pszName );
[propget] HRESULT CurrentValue (
[out, retval] BSTR * pszValue );
[propget] HRESULT CurrentDescription (
[out, retval] BSTR * pszDescription );
[propget] HRESULT CurrentRole (
[out, retval] DWORD * pdwRole );
[propget] HRESULT CurrentState (
[out, retval] DWORD * pdwState );
[propget] HRESULT CurrentHelp (
[out, retval] BSTR * pszHelp );
[propget] HRESULT CurrentKeyboardShortcut (
[out, retval] BSTR * pszKeyboardShortcut );
HRESULT GetCurrentSelection (
[out, retval] IUIAutomationElementArray ** pvarSelectedChildren );
[propget] HRESULT CurrentDefaultAction (
[out, retval] BSTR * pszDefaultAction );
[propget] HRESULT CachedChildId (
[out, retval] int * pRetVal );
[propget] HRESULT CachedName (
[out, retval] BSTR * pszName );
[propget] HRESULT CachedValue (
[out, retval] BSTR * pszValue );
[propget] HRESULT CachedDescription (
[out, retval] BSTR * pszDescription );
[propget] HRESULT CachedRole (
[out, retval] DWORD * pdwRole );
[propget] HRESULT CachedState (
[out, retval] DWORD * pdwState );
[propget] HRESULT CachedHelp (
[out, retval] BSTR * pszHelp );
[propget] HRESULT CachedKeyboardShortcut (
[out, retval] BSTR * pszKeyboardShortcut );
HRESULT GetCachedSelection (
[out, retval] IUIAutomationElementArray ** pvarSelectedChildren );
[propget] HRESULT CachedDefaultAction (
[out, retval] BSTR * pszDefaultAction );
HRESULT GetIAccessible ( [out, retval] IAccessible ** ppAccessible );
};
[object, uuid(c690fdb2-27a8-423c-812d-429773c9084e), pointer_default(unique)]
interface IUIAutomationItemContainerPattern : IUnknown
{
// Find item by specified property/value. May return actual
// AutomationElement or a placeholder if the matching element is
// virtualized.
// Returns E_INVALIDARG if the property requested is not one that the
// container supports searching over. Expected that most containers will
// support Name property, and if appropriate for the container,
// AutomationId and IsSelected.
//
// This method is expected to be relatively slow, since it may need to
// traverse multiple objects in order to find a matching one.
// When used in a loop to return multiple items, no specific order is
// defined so long as each item is returned only once (ie. loop should
// terminate). This method is also item-centric, not UI-centric, so items
// with multiple UI representations need only be returned once.
//
// A special propertyId of 0 means 'match all items'. This can be used
// with pStartAfter=NULL to get the first item, and then to get successive
// items. Value should be VT_EMPTY in this case.
HRESULT FindItemByProperty([in] IUIAutomationElement * pStartAfter,
[in] PROPERTYID propertyId,
[in] VARIANT value,
[out, retval] IUIAutomationElement ** pFound);
};
[object, uuid(6ba3d7a6-04cf-4f11-8793-a8d1cde9969f), pointer_default(unique)]
interface IUIAutomationVirtualizedItemPattern : IUnknown
{
// Request that a placeholder element make itself fully available. Blocks
// until element is available, which could take time.
// Returns S_OK if item is already available.
// Parent control may scroll as a side effect if the container needs to
// being the item into view in order to devirtualize it.
HRESULT Realize();
};
//
// IUIAutomationElement
//
[object, uuid(d22108aa-8ac5-49a5-837b-37bbb3d7591e), pointer_default(unique)]
interface IUIAutomationElement : IUnknown
{
HRESULT SetFocus ( );
HRESULT GetRuntimeId (
[out, retval] SAFEARRAY(int) * runtimeId );
HRESULT FindFirst (
[in] enum TreeScope scope,
[in] IUIAutomationCondition * condition,
[out, retval] IUIAutomationElement ** found );
HRESULT FindAll (
[in] enum TreeScope scope,
[in] IUIAutomationCondition * condition,
[out, retval] IUIAutomationElementArray ** found );
HRESULT FindFirstBuildCache (
[in] enum TreeScope scope,
[in] IUIAutomationCondition * condition,
[in] IUIAutomationCacheRequest * cacheRequest,
[out, retval] IUIAutomationElement ** found );
HRESULT FindAllBuildCache (
[in] enum TreeScope scope,
[in] IUIAutomationCondition * condition,
[in] IUIAutomationCacheRequest * cacheRequest,
[out, retval] IUIAutomationElementArray ** found );
HRESULT BuildUpdatedCache (
[in] IUIAutomationCacheRequest * cacheRequest,
[out, retval] IUIAutomationElement ** updatedElement );
HRESULT GetCurrentPropertyValue (
[in] PROPERTYID propertyId,
[out, retval] VARIANT * retVal);
HRESULT GetCurrentPropertyValueEx (
[in] PROPERTYID propertyId,
[in] BOOL ignoreDefaultValue,
[out, retval] VARIANT * retVal );
HRESULT GetCachedPropertyValue (
[in] PROPERTYID propertyId,
[out, retval] VARIANT * retVal );
HRESULT GetCachedPropertyValueEx (
[in] PROPERTYID propertyId,
[in] BOOL ignoreDefaultValue,
[out, retval] VARIANT * retVal );
// These versions exist to simplify using these methods, avoiding the extra Query
// Interface step that inevitably follows getting the Pattern.
HRESULT GetCurrentPatternAs (
[in] PATTERNID patternId,
[in] REFIID riid,
[out, iid_is(riid), retval] void ** patternObject );
HRESULT GetCachedPatternAs (
[in] PATTERNID patternId,
[in] REFIID riid,
[out, iid_is(riid), retval] void ** patternObject );
// These versions are better for managed code, or code that wants a generalized
// handling path, they return as pure IUnknowns
HRESULT GetCurrentPattern (
[in] PATTERNID patternId,
[out, retval] IUnknown ** patternObject );
HRESULT GetCachedPattern (
[in] PATTERNID patternId,
[out, retval] IUnknown ** patternObject );
HRESULT GetCachedParent (
[out, retval] IUIAutomationElement ** parent );
HRESULT GetCachedChildren (
[out, retval] IUIAutomationElementArray ** children );
// Current Property Getters (for convenience)
[propget] HRESULT CurrentProcessId (
[out, retval] int * retVal );
[propget] HRESULT CurrentControlType (
[out, retval] CONTROLTYPEID * retVal );
[propget] HRESULT CurrentLocalizedControlType (
[out, retval] BSTR * retVal );
[propget] HRESULT CurrentName (
[out, retval] BSTR * retVal );
[propget] HRESULT CurrentAcceleratorKey (
[out, retval] BSTR * retVal );
[propget] HRESULT CurrentAccessKey (
[out, retval] BSTR * retVal );
[propget] HRESULT CurrentHasKeyboardFocus (
[out, retval] BOOL * retVal );
[propget] HRESULT CurrentIsKeyboardFocusable (
[out, retval] BOOL * retVal );
[propget] HRESULT CurrentIsEnabled (
[out, retval] BOOL * retVal );
[propget] HRESULT CurrentAutomationId (
[out, retval] BSTR * retVal );
[propget] HRESULT CurrentClassName (
[out, retval] BSTR * retVal );
[propget] HRESULT CurrentHelpText (
[out, retval] BSTR * retVal );
[propget] HRESULT CurrentCulture (
[out, retval] int * retVal );
[propget] HRESULT CurrentIsControlElement (
[out, retval] BOOL * retVal );
[propget] HRESULT CurrentIsContentElement (
[out, retval] BOOL * retVal );
[propget] HRESULT CurrentIsPassword (
[out, retval] BOOL * retVal );
[propget] HRESULT CurrentNativeWindowHandle (
[out, retval] UIA_HWND * retVal );
[propget] HRESULT CurrentItemType (
[out, retval] BSTR * retVal );
[propget] HRESULT CurrentIsOffscreen (
[out, retval] BOOL * retVal );
[propget] HRESULT CurrentOrientation (
[out, retval] enum OrientationType * retVal );
[propget] HRESULT CurrentFrameworkId (
[out, retval] BSTR * retVal );
[propget] HRESULT CurrentIsRequiredForForm (
[out, retval] BOOL * retVal );
[propget] HRESULT CurrentItemStatus (
[out, retval] BSTR * retVal );
[propget] HRESULT CurrentBoundingRectangle (
[out, retval] RECT * retVal );
[propget] HRESULT CurrentLabeledBy (
[out, retval] IUIAutomationElement ** retVal );
[propget] HRESULT CurrentAriaRole (
[out, retval] BSTR * retVal );
[propget] HRESULT CurrentAriaProperties (
[out, retval] BSTR * retVal );
[propget] HRESULT CurrentIsDataValidForForm (
[out, retval] BOOL * retVal );
[propget] HRESULT CurrentControllerFor (
[out, retval] IUIAutomationElementArray ** retVal );
[propget] HRESULT CurrentDescribedBy (
[out, retval] IUIAutomationElementArray ** retVal );
[propget] HRESULT CurrentFlowsTo (
[out, retval] IUIAutomationElementArray ** retVal );
[propget] HRESULT CurrentProviderDescription (
[out, retval] BSTR * retVal );
// Cached Property Getters (for convenience)
[propget] HRESULT CachedProcessId (
[out, retval] int * retVal );
[propget] HRESULT CachedControlType (
[out, retval] CONTROLTYPEID * retVal );
[propget] HRESULT CachedLocalizedControlType (
[out, retval] BSTR * retVal );
[propget] HRESULT CachedName (
[out, retval] BSTR * retVal );
[propget] HRESULT CachedAcceleratorKey (
[out, retval] BSTR * retVal );
[propget] HRESULT CachedAccessKey (
[out, retval] BSTR * retVal );
[propget] HRESULT CachedHasKeyboardFocus (
[out, retval] BOOL * retVal );
[propget] HRESULT CachedIsKeyboardFocusable (
[out, retval] BOOL * retVal );
[propget] HRESULT CachedIsEnabled (
[out, retval] BOOL * retVal );
[propget] HRESULT CachedAutomationId (
[out, retval] BSTR * retVal );
[propget] HRESULT CachedClassName (
[out, retval] BSTR * retVal );
[propget] HRESULT CachedHelpText (
[out, retval] BSTR * retVal );
[propget] HRESULT CachedCulture (
[out, retval] int * retVal );
[propget] HRESULT CachedIsControlElement (
[out, retval] BOOL * retVal );
[propget] HRESULT CachedIsContentElement (
[out, retval] BOOL * retVal );
[propget] HRESULT CachedIsPassword (
[out, retval] BOOL * retVal );
[propget] HRESULT CachedNativeWindowHandle (
[out, retval] UIA_HWND * retVal );
[propget] HRESULT CachedItemType (
[out, retval] BSTR * retVal );
[propget] HRESULT CachedIsOffscreen (
[out, retval] BOOL * retVal );
[propget] HRESULT CachedOrientation (
[out, retval] enum OrientationType * retVal );
[propget] HRESULT CachedFrameworkId (
[out, retval] BSTR * retVal );
[propget] HRESULT CachedIsRequiredForForm (
[out, retval] BOOL * retVal );
[propget] HRESULT CachedItemStatus (
[out, retval] BSTR * retVal );
[propget] HRESULT CachedBoundingRectangle (
[out, retval] RECT * retVal );
[propget] HRESULT CachedLabeledBy (
[out, retval] IUIAutomationElement ** retVal );
[propget] HRESULT CachedAriaRole (
[out, retval] BSTR * retVal );
[propget] HRESULT CachedAriaProperties (
[out, retval] BSTR * retVal );
[propget] HRESULT CachedIsDataValidForForm (
[out, retval] BOOL * retVal );
[propget] HRESULT CachedControllerFor (
[out, retval] IUIAutomationElementArray ** retVal );
[propget] HRESULT CachedDescribedBy (
[out, retval] IUIAutomationElementArray ** retVal );
[propget] HRESULT CachedFlowsTo (
[out, retval] IUIAutomationElementArray ** retVal );
[propget] HRESULT CachedProviderDescription (
[out, retval] BSTR * retVal );
// Clickable point helper
HRESULT GetClickablePoint(
[out] POINT * clickable,
[out, retval] BOOL * gotClickable );
}
//
// IUIAutomationElementArray
//
[object, uuid(14314595-b4bc-4055-95f2-58f2e42c9855), pointer_default(unique)]
interface IUIAutomationElementArray : IUnknown
{
[propget] HRESULT Length (
[out, retval] int * length );
HRESULT GetElement (
[in] int index,
[out, retval] IUIAutomationElement ** element );
}
//
// IUIAutomationProxyFactory
//
[object, uuid(85b94ecd-849d-42b6-b94d-d6db23fdf5a4), pointer_default(unique)]
interface IUIAutomationProxyFactory : IUnknown
{
HRESULT CreateProvider (
[in] UIA_HWND hwnd,
[in] LONG idObject,
[in] LONG idChild,
[out, retval] IRawElementProviderSimple **provider );
// The proxy Factory Id is an identifier of the Proxy Factory, it serves several purposes:
// - It uniquely identifies a given proxy factory, for ease of finding in the ProxyFactoryMapping
// - It is non-localized, so programs can use it to find a given proxy factory in the mapping for removal or position changing
// - It identifies which proxy factory created the proxy of a given element, for debugging purposes
// - Recommended Format is "Company Name: Proxy Name", to assist with uniqueness
[propget] HRESULT ProxyFactoryId (
[out, retval] BSTR *factoryId );
}
//
// IUIAutomationProxyFactoryEntry
//
[object, uuid(d50e472e-b64b-490c-bca1-d30696f9f289), pointer_default(unique)]
interface IUIAutomationProxyFactoryEntry : IUnknown
{
[propget] HRESULT ProxyFactory (
[out, retval] IUIAutomationProxyFactory **factory );
[propget] HRESULT ClassName (
[out, retval] BSTR *className );
[propget] HRESULT ImageName (
[out, retval] BSTR *imageName );
[propget] HRESULT AllowSubstringMatch (
[out, retval] BOOL *allowSubstringMatch );
[propget] HRESULT CanCheckBaseClass (
[out, retval] BOOL *canCheckBaseClass );
[propget] HRESULT NeedsAdviseEvents (
[out, retval] BOOL *adviseEvents );
[propput] HRESULT ClassName (
[in] LPCWSTR className );
[propput] HRESULT ImageName (
[in] LPCWSTR imageName );
[propput] HRESULT AllowSubstringMatch (
[in] BOOL allowSubstringMatch );
[propput] HRESULT CanCheckBaseClass (
[in] BOOL canCheckBaseClass );
[propput] HRESULT NeedsAdviseEvents (
[in] BOOL adviseEvents );
HRESULT SetWinEventsForAutomationEvent (
[in] EVENTID eventId,
[in] PROPERTYID propertyId,
[in] SAFEARRAY(UINT) winEvents );
HRESULT GetWinEventsForAutomationEvent (
[in] EVENTID eventId,
[in] PROPERTYID propertyId,
[out, retval] SAFEARRAY(UINT) * winEvents );
}
//
// IUIAutomationProxyFactoryMapping
//
[object, uuid(09e31e18-872d-4873-93d1-1e541ec133fd), pointer_default(unique)]
interface IUIAutomationProxyFactoryMapping : IUnknown
{
[propget] HRESULT Count (
[out, retval] UINT *count );
HRESULT GetTable (
[out, retval] SAFEARRAY (IUIAutomationProxyFactoryEntry) * table );
HRESULT GetEntry (
[in] UINT index,
[out, retval] IUIAutomationProxyFactoryEntry **entry );
HRESULT SetTable (
[in] SAFEARRAY (IUIAutomationProxyFactoryEntry) factoryList );
HRESULT InsertEntries (
[in] UINT before,
[in] SAFEARRAY (IUIAutomationProxyFactoryEntry) factoryList );
HRESULT InsertEntry (
[in] UINT before,
[in] IUIAutomationProxyFactoryEntry *factory );
HRESULT RemoveEntry (
[in] UINT index );
HRESULT ClearTable ( );
HRESULT RestoreDefaultTable ( );
}
//
// IUIAutomation
//
[object, uuid(30cbe57d-d9d0-452a-ab13-7ac5ac4825ee), pointer_default(unique)]
interface IUIAutomation : IUnknown
{
// Comparisons
HRESULT CompareElements (
[in] IUIAutomationElement * el1,
[in] IUIAutomationElement * el2,
[out, retval] BOOL * areSame );
HRESULT CompareRuntimeIds (
[in] SAFEARRAY(int) runtimeId1,
[in] SAFEARRAY(int) runtimeId2,
[out, retval] BOOL * areSame);
// Automation Element fetching
HRESULT GetRootElement (
[out, retval] IUIAutomationElement ** root );
HRESULT ElementFromHandle (
[in] UIA_HWND hwnd,
[out, retval] IUIAutomationElement ** element );
HRESULT ElementFromPoint (
[in] POINT pt,
[out, retval] IUIAutomationElement ** element );
HRESULT GetFocusedElement (
[out, retval] IUIAutomationElement ** element );
HRESULT GetRootElementBuildCache (
[in] IUIAutomationCacheRequest * cacheRequest,
[out, retval] IUIAutomationElement ** root );
HRESULT ElementFromHandleBuildCache (
[in] UIA_HWND hwnd,
[in] IUIAutomationCacheRequest * cacheRequest,
[out, retval] IUIAutomationElement ** element );
HRESULT ElementFromPointBuildCache (
[in] POINT pt,
[in] IUIAutomationCacheRequest * cacheRequest,
[out, retval] IUIAutomationElement ** element );
HRESULT GetFocusedElementBuildCache (
[in] IUIAutomationCacheRequest * cacheRequest,
[out, retval] IUIAutomationElement ** element );
// Tree Walker Creation
HRESULT CreateTreeWalker (
[in] IUIAutomationCondition * pCondition,
[out, retval] IUIAutomationTreeWalker ** walker );
[propget] HRESULT ControlViewWalker (
[out, retval] IUIAutomationTreeWalker ** walker );
[propget] HRESULT ContentViewWalker (
[out, retval] IUIAutomationTreeWalker ** walker );
[propget] HRESULT RawViewWalker (
[out, retval] IUIAutomationTreeWalker ** walker );
[propget] HRESULT RawViewCondition (
[out, retval] IUIAutomationCondition ** condition );
[propget] HRESULT ControlViewCondition (
[out, retval] IUIAutomationCondition ** condition );
[propget] HRESULT ContentViewCondition (
[out, retval] IUIAutomationCondition ** condition );
// Cache Request Creation
HRESULT CreateCacheRequest (
[out, retval] IUIAutomationCacheRequest ** cacheRequest );
// Condition Creation
HRESULT CreateTrueCondition (
[out, retval] IUIAutomationCondition ** newCondition );
HRESULT CreateFalseCondition (
[out, retval] IUIAutomationCondition ** newCondition );
HRESULT CreatePropertyCondition (
[in] PROPERTYID propertyId,
[in] VARIANT value,
[out, retval] IUIAutomationCondition ** newCondition );
HRESULT CreatePropertyConditionEx (
[in] PROPERTYID propertyId,
[in] VARIANT value,
[in] enum PropertyConditionFlags flags,
[out, retval] IUIAutomationCondition ** newCondition );
HRESULT CreateAndCondition (
[in] IUIAutomationCondition * condition1,
[in] IUIAutomationCondition * condition2,
[out, retval] IUIAutomationCondition ** newCondition );
HRESULT CreateAndConditionFromArray (
[in] SAFEARRAY(IUIAutomationCondition) conditions,
[out, retval] IUIAutomationCondition ** newCondition );
HRESULT CreateAndConditionFromNativeArray (
[in, size_is(conditionCount)] IUIAutomationCondition ** conditions,
[in] int conditionCount,
[out, retval] IUIAutomationCondition ** newCondition );
HRESULT CreateOrCondition (
[in] IUIAutomationCondition * condition1,
[in] IUIAutomationCondition * condition2,
[out, retval] IUIAutomationCondition ** newCondition );
HRESULT CreateOrConditionFromArray (
[in] SAFEARRAY(IUIAutomationCondition) conditions,
[out, retval] IUIAutomationCondition ** newCondition );
HRESULT CreateOrConditionFromNativeArray (
[in, size_is(conditionCount)] IUIAutomationCondition ** conditions,
[in] int conditionCount,
[out, retval] IUIAutomationCondition ** newCondition );
HRESULT CreateNotCondition (
[in] IUIAutomationCondition * condition,
[out, retval] IUIAutomationCondition ** newCondition );
// Event Registration and Removal
HRESULT AddAutomationEventHandler (
[in] EVENTID eventId,
[in] IUIAutomationElement * element,
[in] enum TreeScope scope,
[in] IUIAutomationCacheRequest * cacheRequest,
[in] IUIAutomationEventHandler * handler );
HRESULT RemoveAutomationEventHandler (
[in] EVENTID eventId,
[in] IUIAutomationElement * element,
[in] IUIAutomationEventHandler * handler );
HRESULT AddPropertyChangedEventHandlerNativeArray (
[in] IUIAutomationElement * element,
[in] enum TreeScope scope,
[in] IUIAutomationCacheRequest * cacheRequest,
[in] IUIAutomationPropertyChangedEventHandler * handler,
[in, size_is(propertyCount)] PROPERTYID * propertyArray,
[in] int propertyCount );
HRESULT AddPropertyChangedEventHandler (
[in] IUIAutomationElement * element,
[in] enum TreeScope scope,
[in] IUIAutomationCacheRequest * cacheRequest,
[in] IUIAutomationPropertyChangedEventHandler * handler,
[in] SAFEARRAY(PROPERTYID) propertyArray );
HRESULT RemovePropertyChangedEventHandler (
[in] IUIAutomationElement * element,
[in] IUIAutomationPropertyChangedEventHandler * handler );
HRESULT AddStructureChangedEventHandler (
[in] IUIAutomationElement * element,
[in] enum TreeScope scope,
[in] IUIAutomationCacheRequest * cacheRequest,
[in] IUIAutomationStructureChangedEventHandler * handler );
HRESULT RemoveStructureChangedEventHandler (
[in] IUIAutomationElement * element,
[in] IUIAutomationStructureChangedEventHandler * handler );
HRESULT AddFocusChangedEventHandler (
[in] IUIAutomationCacheRequest * cacheRequest,
[in] IUIAutomationFocusChangedEventHandler * handler );
HRESULT RemoveFocusChangedEventHandler (
[in] IUIAutomationFocusChangedEventHandler * handler );
HRESULT RemoveAllEventHandlers ( );
// Conversion helpers
HRESULT IntNativeArrayToSafeArray (
[in, size_is(arrayCount)] int * array,
[in] int arrayCount,
[out, retval] SAFEARRAY(int) * safeArray );
HRESULT IntSafeArrayToNativeArray (
[in] SAFEARRAY(int) intArray,
[out, size_is( ,*arrayCount)] int ** array,
[out, retval] int * arrayCount );
HRESULT RectToVariant (
[in] RECT rc,
[out, retval] VARIANT * var );
HRESULT VariantToRect (
[in] VARIANT var,
[out, retval] RECT * rc );
HRESULT SafeArrayToRectNativeArray (
[in] SAFEARRAY(double) rects,
[out, size_is( ,*rectArrayCount)] RECT ** rectArray,
[out, retval] int * rectArrayCount );
// Proxy registration
HRESULT CreateProxyFactoryEntry(
[in] IUIAutomationProxyFactory *factory,
[out, retval] IUIAutomationProxyFactoryEntry **factoryEntry );
[propget] HRESULT ProxyFactoryMapping(
[out, retval] IUIAutomationProxyFactoryMapping **factoryMapping );
// Name Lookup
HRESULT GetPropertyProgrammaticName(
[in] PROPERTYID property,
[out, retval] BSTR * name );
HRESULT GetPatternProgrammaticName(
[in] PATTERNID pattern,
[out, retval] BSTR * name );
// Return potentially supported patterns. Note that object may not actually
// support the pattern when asked for it later.
HRESULT PollForPotentialSupportedPatterns(
[in] IUIAutomationElement * pElement,
[out] SAFEARRAY(int) * patternIds,
[out] SAFEARRAY(BSTR) * patternNames);
// Return potentially supported properties. Note that object may not actually
// support all properties when asked.
HRESULT PollForPotentialSupportedProperties(
[in] IUIAutomationElement * pElement,
[out] SAFEARRAY(int) * propertyIds,
[out] SAFEARRAY(BSTR) * propertyNames);
// Check whether this variant (returned from GetPropertyValue) is the NotSupported item.
HRESULT CheckNotSupported(
[in] VARIANT value,
[out, retval] BOOL * isNotSupported);
// Get the "Not Supported" object
[propget] HRESULT ReservedNotSupportedValue(
[out, retval] IUnknown **notSupportedValue);
// Get the "Mixed Attribute" object
[propget] HRESULT ReservedMixedAttributeValue(
[out, retval] IUnknown **mixedAttributeValue);
// IAccessible interop
HRESULT ElementFromIAccessible (
[in] IAccessible * accessible,
[in] int childId,
[out, retval] IUIAutomationElement ** element );
HRESULT ElementFromIAccessibleBuildCache (
[in] IAccessible * accessible,
[in] int childId,
[in] IUIAutomationCacheRequest * cacheRequest,
[out, retval] IUIAutomationElement ** element );
}
//
// CUIAutomation
//
[
uuid(ff48dba4-60ef-4201-aa87-54103eef594e),
version(1.0),
helpstring("The Central Class for UIAutomation")
]
coclass CUIAutomation
{
[default] interface IUIAutomation;
}
}