diff --git a/mingw-w64-headers/include/fontsub.h b/mingw-w64-headers/include/fontsub.h new file mode 100644 index 000000000..aa83f034f --- /dev/null +++ b/mingw-w64-headers/include/fontsub.h @@ -0,0 +1,64 @@ +/* + * Copyright 2016 Nikolay Sivov for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef __WINE_FONTSUB_H +#define __WINE_FONTSUB_H + +#ifdef __cplusplus +extern "C" { +#endif + +typedef void *(__cdecl *CFP_ALLOCPROC)(size_t); +typedef void *(__cdecl *CFP_REALLOCPROC)(void *, size_t); +typedef void (__cdecl *CFP_FREEPROC)(void *); + +#define TTFCFP_SUBSET 0 +#define TTFCFP_SUBSET1 1 +#define TTFCFP_DELTA 2 + +#define TTFCFP_UNICODE_PLATFORMID 0 +#define TTFCFP_APPLE_PLATFORMID 1 +#define TTFCFP_ISO_PLATFORMID 2 +#define TTFCFP_MS_PLATFORMID 3 + +#define TTFCFP_STD_MAC_CHAR_SET 0 +#define TTFCFP_SYMBOL_CHAR_SET 0 +#define TTFCFP_UNICODE_CHAR_SET 1 +#define TTFCFP_DONT_CARE 0xffff + +#define TTFCFP_LANG_KEEP_ALL 0 + +#define TTFCFP_FLAGS_SUBSET 0x0001 +#define TTFCFP_FLAGS_COMPRESS 0x0002 +#define TTFCFP_FLAGS_TTC 0x0004 +#define TTFCFP_FLAGS_GLYPHLIST 0x0008 + +#define ERR_GENERIC 1000 +#define ERR_MEM 1005 + +ULONG __cdecl CreateFontPackage(const unsigned char *src, const ULONG src_len, unsigned char **dest, + ULONG *dest_len, ULONG *written, const unsigned short flags, const unsigned short face_index, + const unsigned short format, const unsigned short lang, const unsigned short platform, + const unsigned short encoding, const unsigned short *keep_list, const unsigned short keep_len, + CFP_ALLOCPROC allocproc, CFP_REALLOCPROC reallocproc, CFP_FREEPROC freeproc, void *reserved); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/mingw-w64-headers/include/uiautomationclient.h b/mingw-w64-headers/include/uiautomationclient.h index b98118749..bd626de60 100644 --- a/mingw-w64-headers/include/uiautomationclient.h +++ b/mingw-w64-headers/include/uiautomationclient.h @@ -31,6 +31,74 @@ extern "C" { DEFINE_GUID(LIBID_UIAutomationClient, 0x944de083, 0x8fb8, 0x45cf, 0xbc,0xb7, 0xc4,0x77,0xac,0xb2,0xf8,0x97); +#define UIA_InvokePatternId (10000) + +#define UIA_SelectionPatternId (10001) + +#define UIA_ValuePatternId (10002) + +#define UIA_RangeValuePatternId (10003) + +#define UIA_ScrollPatternId (10004) + +#define UIA_ExpandCollapsePatternId (10005) + +#define UIA_GridPatternId (10006) + +#define UIA_GridItemPatternId (10007) + +#define UIA_MultipleViewPatternId (10008) + +#define UIA_WindowPatternId (10009) + +#define UIA_SelectionItemPatternId (10010) + +#define UIA_DockPatternId (10011) + +#define UIA_TablePatternId (10012) + +#define UIA_TableItemPatternId (10013) + +#define UIA_TextPatternId (10014) + +#define UIA_TogglePatternId (10015) + +#define UIA_TransformPatternId (10016) + +#define UIA_ScrollItemPatternId (10017) + +#define UIA_LegacyIAccessiblePatternId (10018) + +#define UIA_ItemContainerPatternId (10019) + +#define UIA_VirtualizedItemPatternId (10020) + +#define UIA_SynchronizedInputPatternId (10021) + +#define UIA_ObjectModelPatternId (10022) + +#define UIA_AnnotationPatternId (10023) + +#define UIA_TextPattern2Id (10024) + +#define UIA_StylesPatternId (10025) + +#define UIA_SpreadsheetPatternId (10026) + +#define UIA_SpreadsheetItemPatternId (10027) + +#define UIA_TransformPattern2Id (10028) + +#define UIA_TextChildPatternId (10029) + +#define UIA_DragPatternId (10030) + +#define UIA_DropTargetPatternId (10031) + +#define UIA_TextEditPatternId (10032) + +#define UIA_CustomNavigationPatternId (10033) + #define UIA_RuntimeIdPropertyId (30000) #define UIA_BoundingRectanglePropertyId (30001) @@ -253,6 +321,134 @@ DEFINE_GUID(LIBID_UIAutomationClient, 0x944de083, 0x8fb8, 0x45cf, 0xbc,0xb7, 0xc #define UIA_IsSynchronizedInputPatternAvailablePropertyId (30110) +#define UIA_OptimizeForVisualContentPropertyId (30111) + +#define UIA_IsObjectModelPatternAvailablePropertyId (30112) + +#define UIA_AnnotationAnnotationTypeIdPropertyId (30113) + +#define UIA_AnnotationAnnotationTypeNamePropertyId (30114) + +#define UIA_AnnotationAuthorPropertyId (30115) + +#define UIA_AnnotationDateTimePropertyId (30116) + +#define UIA_AnnotationTargetPropertyId (30117) + +#define UIA_IsAnnotationPatternAvailablePropertyId (30118) + +#define UIA_IsTextPattern2AvailablePropertyId (30119) + +#define UIA_StylesStyleIdPropertyId (30120) + +#define UIA_StylesStyleNamePropertyId (30121) + +#define UIA_StylesFillColorPropertyId (30122) + +#define UIA_StylesFillPatternStylePropertyId (30123) + +#define UIA_StylesShapePropertyId (30124) + +#define UIA_StylesFillPatternColorPropertyId (30125) + +#define UIA_StylesExtendedPropertiesPropertyId (30126) + +#define UIA_IsStylesPatternAvailablePropertyId (30127) + +#define UIA_IsSpreadsheetPatternAvailablePropertyId (30128) + +#define UIA_SpreadsheetItemFormulaPropertyId (30129) + +#define UIA_SpreadsheetItemAnnotationObjectsPropertyId (30130) + +#define UIA_SpreadsheetItemAnnotationTypesPropertyId (30131) + +#define UIA_IsSpreadsheetItemPatternAvailablePropertyId (30132) + +#define UIA_Transform2CanZoomPropertyId (30133) + +#define UIA_IsTransformPattern2AvailablePropertyId (30134) + +#define UIA_LiveSettingPropertyId (30135) + +#define UIA_IsTextChildPatternAvailablePropertyId (30136) + +#define UIA_IsDragPatternAvailablePropertyId (30137) + +#define UIA_DragIsGrabbedPropertyId (30138) + +#define UIA_DragDropEffectPropertyId (30139) + +#define UIA_DragDropEffectsPropertyId (30140) + +#define UIA_IsDropTargetPatternAvailablePropertyId (30141) + +#define UIA_DropTargetDropTargetEffectPropertyId (30142) + +#define UIA_DropTargetDropTargetEffectsPropertyId (30143) + +#define UIA_DragGrabbedItemsPropertyId (30144) + +#define UIA_Transform2ZoomLevelPropertyId (30145) + +#define UIA_Transform2ZoomMinimumPropertyId (30146) + +#define UIA_Transform2ZoomMaximumPropertyId (30147) + +#define UIA_FlowsFromPropertyId (30148) + +#define UIA_IsTextEditPatternAvailablePropertyId (30149) + +#define UIA_IsPeripheralPropertyId (30150) + +#define UIA_IsCustomNavigationPatternAvailablePropertyId (30151) + +#define UIA_PositionInSetPropertyId (30152) + +#define UIA_SizeOfSetPropertyId (30153) + +#define UIA_LevelPropertyId (30154) + +#define UIA_AnnotationTypesPropertyId (30155) + +#define UIA_AnnotationObjectsPropertyId (30156) + +#define UIA_LandmarkTypePropertyId (30157) + +#define UIA_LocalizedLandmarkTypePropertyId (30158) + +#define UIA_FullDescriptionPropertyId (30159) + +#define UIA_FillColorPropertyId (30160) + +#define UIA_OutlineColorPropertyId (30161) + +#define UIA_FillTypePropertyId (30162) + +#define UIA_VisualEffectsPropertyId (30163) + +#define UIA_OutlineThicknessPropertyId (30164) + +#define UIA_CenterPointPropertyId (30165) + +#define UIA_RotationPropertyId (30166) + +#define UIA_SizePropertyId (30167) + +#define UIA_IsSelectionPattern2AvailablePropertyId (30168) + +#define UIA_Selection2FirstSelectedItemPropertyId (30169) + +#define UIA_Selection2LastSelectedItemPropertyId (30170) + +#define UIA_Selection2CurrentSelectedItemPropertyId (30171) + +#define UIA_Selection2ItemCountPropertyId (30172) + +#define UIA_HeadingLevelPropertyId (30173) + +#define UIA_IsDialogPropertyId (30174) + #endif /* __UIAutomationClient_LIBRARY_DEFINED__ */ /* Begin additional prototypes for all interfaces */ diff --git a/mingw-w64-headers/include/uiautomationclient.idl b/mingw-w64-headers/include/uiautomationclient.idl index ca768ba6d..917d3456e 100644 --- a/mingw-w64-headers/include/uiautomationclient.idl +++ b/mingw-w64-headers/include/uiautomationclient.idl @@ -27,6 +27,49 @@ import "uiautomationcore.idl"; library UIAutomationClient { importlib ("stdole2.tlb"); + /* FIXME: Uncomment when properly supported in widl + [dllname("")] + 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; + const long UIA_ObjectModelPatternId = 10022; + const long UIA_AnnotationPatternId = 10023; + const long UIA_TextPattern2Id = 10024; + const long UIA_StylesPatternId = 10025; + const long UIA_SpreadsheetPatternId = 10026; + const long UIA_SpreadsheetItemPatternId = 10027; + const long UIA_TransformPattern2Id = 10028; + const long UIA_TextChildPatternId = 10029; + const long UIA_DragPatternId = 10030; + const long UIA_DropTargetPatternId = 10031; + const long UIA_TextEditPatternId = 10032; + const long UIA_CustomNavigationPatternId = 10033; + /* + } + */ + /* FIXME: Uncomment when properly supported in widl [dllname("")] module UIA_PropertyIds @@ -143,6 +186,70 @@ library UIAutomationClient { const long UIA_IsItemContainerPatternAvailablePropertyId = 30108; const long UIA_IsVirtualizedItemPatternAvailablePropertyId = 30109; const long UIA_IsSynchronizedInputPatternAvailablePropertyId = 30110; + const long UIA_OptimizeForVisualContentPropertyId = 30111; + const long UIA_IsObjectModelPatternAvailablePropertyId = 30112; + const long UIA_AnnotationAnnotationTypeIdPropertyId = 30113; + const long UIA_AnnotationAnnotationTypeNamePropertyId = 30114; + const long UIA_AnnotationAuthorPropertyId = 30115; + const long UIA_AnnotationDateTimePropertyId = 30116; + const long UIA_AnnotationTargetPropertyId = 30117; + const long UIA_IsAnnotationPatternAvailablePropertyId = 30118; + const long UIA_IsTextPattern2AvailablePropertyId = 30119; + const long UIA_StylesStyleIdPropertyId = 30120; + const long UIA_StylesStyleNamePropertyId = 30121; + const long UIA_StylesFillColorPropertyId = 30122; + const long UIA_StylesFillPatternStylePropertyId = 30123; + const long UIA_StylesShapePropertyId = 30124; + const long UIA_StylesFillPatternColorPropertyId = 30125; + const long UIA_StylesExtendedPropertiesPropertyId = 30126; + const long UIA_IsStylesPatternAvailablePropertyId = 30127; + const long UIA_IsSpreadsheetPatternAvailablePropertyId = 30128; + const long UIA_SpreadsheetItemFormulaPropertyId = 30129; + const long UIA_SpreadsheetItemAnnotationObjectsPropertyId = 30130; + const long UIA_SpreadsheetItemAnnotationTypesPropertyId = 30131; + const long UIA_IsSpreadsheetItemPatternAvailablePropertyId = 30132; + const long UIA_Transform2CanZoomPropertyId = 30133; + const long UIA_IsTransformPattern2AvailablePropertyId = 30134; + const long UIA_LiveSettingPropertyId = 30135; + const long UIA_IsTextChildPatternAvailablePropertyId = 30136; + const long UIA_IsDragPatternAvailablePropertyId = 30137; + const long UIA_DragIsGrabbedPropertyId = 30138; + const long UIA_DragDropEffectPropertyId = 30139; + const long UIA_DragDropEffectsPropertyId = 30140; + const long UIA_IsDropTargetPatternAvailablePropertyId = 30141; + const long UIA_DropTargetDropTargetEffectPropertyId = 30142; + const long UIA_DropTargetDropTargetEffectsPropertyId = 30143; + const long UIA_DragGrabbedItemsPropertyId = 30144; + const long UIA_Transform2ZoomLevelPropertyId = 30145; + const long UIA_Transform2ZoomMinimumPropertyId = 30146; + const long UIA_Transform2ZoomMaximumPropertyId = 30147; + const long UIA_FlowsFromPropertyId = 30148; + const long UIA_IsTextEditPatternAvailablePropertyId = 30149; + const long UIA_IsPeripheralPropertyId = 30150; + const long UIA_IsCustomNavigationPatternAvailablePropertyId = 30151; + const long UIA_PositionInSetPropertyId = 30152; + const long UIA_SizeOfSetPropertyId = 30153; + const long UIA_LevelPropertyId = 30154; + const long UIA_AnnotationTypesPropertyId = 30155; + const long UIA_AnnotationObjectsPropertyId = 30156; + const long UIA_LandmarkTypePropertyId = 30157; + const long UIA_LocalizedLandmarkTypePropertyId = 30158; + const long UIA_FullDescriptionPropertyId = 30159; + const long UIA_FillColorPropertyId = 30160; + const long UIA_OutlineColorPropertyId = 30161; + const long UIA_FillTypePropertyId = 30162; + const long UIA_VisualEffectsPropertyId = 30163; + const long UIA_OutlineThicknessPropertyId = 30164; + const long UIA_CenterPointPropertyId = 30165; + const long UIA_RotationPropertyId = 30166; + const long UIA_SizePropertyId = 30167; + const long UIA_IsSelectionPattern2AvailablePropertyId = 30168; + const long UIA_Selection2FirstSelectedItemPropertyId = 30169; + const long UIA_Selection2LastSelectedItemPropertyId = 30170; + const long UIA_Selection2CurrentSelectedItemPropertyId = 30171; + const long UIA_Selection2ItemCountPropertyId = 30172; + const long UIA_HeadingLevelPropertyId = 30173; + const long UIA_IsDialogPropertyId = 30174; /* } */ diff --git a/mingw-w64-headers/include/uiautomationcore.h b/mingw-w64-headers/include/uiautomationcore.h index 36d2f262a..dccdade4f 100644 --- a/mingw-w64-headers/include/uiautomationcore.h +++ b/mingw-w64-headers/include/uiautomationcore.h @@ -34,6 +34,22 @@ interface IAccessibleEx; #endif /* __cplusplus */ #endif +#ifndef __IRawElementProviderFragment_FWD_DEFINED__ +#define __IRawElementProviderFragment_FWD_DEFINED__ +typedef interface IRawElementProviderFragment IRawElementProviderFragment; +#ifdef __cplusplus +interface IRawElementProviderFragment; +#endif /* __cplusplus */ +#endif + +#ifndef __IRawElementProviderFragmentRoot_FWD_DEFINED__ +#define __IRawElementProviderFragmentRoot_FWD_DEFINED__ +typedef interface IRawElementProviderFragmentRoot IRawElementProviderFragmentRoot; +#ifdef __cplusplus +interface IRawElementProviderFragmentRoot; +#endif /* __cplusplus */ +#endif + /* Headers for imported files */ #include @@ -43,19 +59,35 @@ interface IAccessibleEx; extern "C" { #endif +enum NavigateDirection { + NavigateDirection_Parent = 0x0, + NavigateDirection_NextSibling = 0x1, + NavigateDirection_PreviousSibling = 0x2, + NavigateDirection_FirstChild = 0x3, + NavigateDirection_LastChild = 0x4 +}; enum ProviderOptions { ProviderOptions_ClientSideProvider = 0x1, ProviderOptions_ServerSideProvider = 0x2, ProviderOptions_NonClientAreaProvider = 0x4, ProviderOptions_OverrideProvider = 0x8, ProviderOptions_ProviderOwnsSetFocus = 0x10, - ProviderOptions_UseComThreading = 0x20 + ProviderOptions_UseComThreading = 0x20, + ProviderOptions_RefuseNonClientSupport = 0x40, + ProviderOptions_HasNativeIAccessible = 0x80, + ProviderOptions_UseClientCoordinates = 0x100 }; typedef int PROPERTYID; typedef int PATTERNID; typedef int EVENTID; typedef int TEXTATTRIBUTEID; typedef int CONTROLTYPEID; +struct UiaRect { + double left; + double top; + double width; + double height; +}; #ifndef __UIA_LIBRARY_DEFINED__ #define __UIA_LIBRARY_DEFINED__ @@ -291,6 +323,239 @@ static FORCEINLINE HRESULT IAccessibleEx_ConvertReturnedElement(IAccessibleEx* T #endif /* __IAccessibleEx_INTERFACE_DEFINED__ */ +#ifndef __IRawElementProviderFragmentRoot_FWD_DEFINED__ +#define __IRawElementProviderFragmentRoot_FWD_DEFINED__ +typedef interface IRawElementProviderFragmentRoot IRawElementProviderFragmentRoot; +#ifdef __cplusplus +interface IRawElementProviderFragmentRoot; +#endif /* __cplusplus */ +#endif + +/***************************************************************************** + * IRawElementProviderFragment interface + */ +#ifndef __IRawElementProviderFragment_INTERFACE_DEFINED__ +#define __IRawElementProviderFragment_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IRawElementProviderFragment, 0xf7063da8, 0x8359, 0x439c, 0x92,0x97, 0xbb,0xc5,0x29,0x9a,0x7d,0x87); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("f7063da8-8359-439c-9297-bbc5299a7d87") +IRawElementProviderFragment : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Navigate( + enum NavigateDirection direction, + IRawElementProviderFragment **pRetVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRuntimeId( + SAFEARRAY **pRetVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE get_BoundingRectangle( + struct UiaRect *pRetVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetEmbeddedFragmentRoots( + SAFEARRAY **pRetVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFocus( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE get_FragmentRoot( + IRawElementProviderFragmentRoot **pRetVal) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IRawElementProviderFragment, 0xf7063da8, 0x8359, 0x439c, 0x92,0x97, 0xbb,0xc5,0x29,0x9a,0x7d,0x87) +#endif +#else +typedef struct IRawElementProviderFragmentVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IRawElementProviderFragment *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IRawElementProviderFragment *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IRawElementProviderFragment *This); + + /*** IRawElementProviderFragment methods ***/ + HRESULT (STDMETHODCALLTYPE *Navigate)( + IRawElementProviderFragment *This, + enum NavigateDirection direction, + IRawElementProviderFragment **pRetVal); + + HRESULT (STDMETHODCALLTYPE *GetRuntimeId)( + IRawElementProviderFragment *This, + SAFEARRAY **pRetVal); + + HRESULT (STDMETHODCALLTYPE *get_BoundingRectangle)( + IRawElementProviderFragment *This, + struct UiaRect *pRetVal); + + HRESULT (STDMETHODCALLTYPE *GetEmbeddedFragmentRoots)( + IRawElementProviderFragment *This, + SAFEARRAY **pRetVal); + + HRESULT (STDMETHODCALLTYPE *SetFocus)( + IRawElementProviderFragment *This); + + HRESULT (STDMETHODCALLTYPE *get_FragmentRoot)( + IRawElementProviderFragment *This, + IRawElementProviderFragmentRoot **pRetVal); + + END_INTERFACE +} IRawElementProviderFragmentVtbl; + +interface IRawElementProviderFragment { + CONST_VTBL IRawElementProviderFragmentVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IRawElementProviderFragment_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IRawElementProviderFragment_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IRawElementProviderFragment_Release(This) (This)->lpVtbl->Release(This) +/*** IRawElementProviderFragment methods ***/ +#define IRawElementProviderFragment_Navigate(This,direction,pRetVal) (This)->lpVtbl->Navigate(This,direction,pRetVal) +#define IRawElementProviderFragment_GetRuntimeId(This,pRetVal) (This)->lpVtbl->GetRuntimeId(This,pRetVal) +#define IRawElementProviderFragment_get_BoundingRectangle(This,pRetVal) (This)->lpVtbl->get_BoundingRectangle(This,pRetVal) +#define IRawElementProviderFragment_GetEmbeddedFragmentRoots(This,pRetVal) (This)->lpVtbl->GetEmbeddedFragmentRoots(This,pRetVal) +#define IRawElementProviderFragment_SetFocus(This) (This)->lpVtbl->SetFocus(This) +#define IRawElementProviderFragment_get_FragmentRoot(This,pRetVal) (This)->lpVtbl->get_FragmentRoot(This,pRetVal) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IRawElementProviderFragment_QueryInterface(IRawElementProviderFragment* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IRawElementProviderFragment_AddRef(IRawElementProviderFragment* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IRawElementProviderFragment_Release(IRawElementProviderFragment* This) { + return This->lpVtbl->Release(This); +} +/*** IRawElementProviderFragment methods ***/ +static FORCEINLINE HRESULT IRawElementProviderFragment_Navigate(IRawElementProviderFragment* This,enum NavigateDirection direction,IRawElementProviderFragment **pRetVal) { + return This->lpVtbl->Navigate(This,direction,pRetVal); +} +static FORCEINLINE HRESULT IRawElementProviderFragment_GetRuntimeId(IRawElementProviderFragment* This,SAFEARRAY **pRetVal) { + return This->lpVtbl->GetRuntimeId(This,pRetVal); +} +static FORCEINLINE HRESULT IRawElementProviderFragment_get_BoundingRectangle(IRawElementProviderFragment* This,struct UiaRect *pRetVal) { + return This->lpVtbl->get_BoundingRectangle(This,pRetVal); +} +static FORCEINLINE HRESULT IRawElementProviderFragment_GetEmbeddedFragmentRoots(IRawElementProviderFragment* This,SAFEARRAY **pRetVal) { + return This->lpVtbl->GetEmbeddedFragmentRoots(This,pRetVal); +} +static FORCEINLINE HRESULT IRawElementProviderFragment_SetFocus(IRawElementProviderFragment* This) { + return This->lpVtbl->SetFocus(This); +} +static FORCEINLINE HRESULT IRawElementProviderFragment_get_FragmentRoot(IRawElementProviderFragment* This,IRawElementProviderFragmentRoot **pRetVal) { + return This->lpVtbl->get_FragmentRoot(This,pRetVal); +} +#endif +#endif + +#endif + + +#endif /* __IRawElementProviderFragment_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IRawElementProviderFragmentRoot interface + */ +#ifndef __IRawElementProviderFragmentRoot_INTERFACE_DEFINED__ +#define __IRawElementProviderFragmentRoot_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IRawElementProviderFragmentRoot, 0x620ce2a5, 0xab8f, 0x40a9, 0x86,0xcb, 0xde,0x3c,0x75,0x59,0x9b,0x58); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("620ce2a5-ab8f-40a9-86cb-de3c75599b58") +IRawElementProviderFragmentRoot : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE ElementProviderFromPoint( + double x, + double y, + IRawElementProviderFragment **pRetVal) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFocus( + IRawElementProviderFragment **pRetVal) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IRawElementProviderFragmentRoot, 0x620ce2a5, 0xab8f, 0x40a9, 0x86,0xcb, 0xde,0x3c,0x75,0x59,0x9b,0x58) +#endif +#else +typedef struct IRawElementProviderFragmentRootVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IRawElementProviderFragmentRoot *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IRawElementProviderFragmentRoot *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IRawElementProviderFragmentRoot *This); + + /*** IRawElementProviderFragmentRoot methods ***/ + HRESULT (STDMETHODCALLTYPE *ElementProviderFromPoint)( + IRawElementProviderFragmentRoot *This, + double x, + double y, + IRawElementProviderFragment **pRetVal); + + HRESULT (STDMETHODCALLTYPE *GetFocus)( + IRawElementProviderFragmentRoot *This, + IRawElementProviderFragment **pRetVal); + + END_INTERFACE +} IRawElementProviderFragmentRootVtbl; + +interface IRawElementProviderFragmentRoot { + CONST_VTBL IRawElementProviderFragmentRootVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IRawElementProviderFragmentRoot_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IRawElementProviderFragmentRoot_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IRawElementProviderFragmentRoot_Release(This) (This)->lpVtbl->Release(This) +/*** IRawElementProviderFragmentRoot methods ***/ +#define IRawElementProviderFragmentRoot_ElementProviderFromPoint(This,x,y,pRetVal) (This)->lpVtbl->ElementProviderFromPoint(This,x,y,pRetVal) +#define IRawElementProviderFragmentRoot_GetFocus(This,pRetVal) (This)->lpVtbl->GetFocus(This,pRetVal) +#else +/*** IUnknown methods ***/ +static FORCEINLINE HRESULT IRawElementProviderFragmentRoot_QueryInterface(IRawElementProviderFragmentRoot* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static FORCEINLINE ULONG IRawElementProviderFragmentRoot_AddRef(IRawElementProviderFragmentRoot* This) { + return This->lpVtbl->AddRef(This); +} +static FORCEINLINE ULONG IRawElementProviderFragmentRoot_Release(IRawElementProviderFragmentRoot* This) { + return This->lpVtbl->Release(This); +} +/*** IRawElementProviderFragmentRoot methods ***/ +static FORCEINLINE HRESULT IRawElementProviderFragmentRoot_ElementProviderFromPoint(IRawElementProviderFragmentRoot* This,double x,double y,IRawElementProviderFragment **pRetVal) { + return This->lpVtbl->ElementProviderFromPoint(This,x,y,pRetVal); +} +static FORCEINLINE HRESULT IRawElementProviderFragmentRoot_GetFocus(IRawElementProviderFragmentRoot* This,IRawElementProviderFragment **pRetVal) { + return This->lpVtbl->GetFocus(This,pRetVal); +} +#endif +#endif + +#endif + + +#endif /* __IRawElementProviderFragmentRoot_INTERFACE_DEFINED__ */ + #endif /* __UIA_LIBRARY_DEFINED__ */ /* Begin additional prototypes for all interfaces */ diff --git a/mingw-w64-headers/include/uiautomationcore.idl b/mingw-w64-headers/include/uiautomationcore.idl index 3ae6dac4b..170b0c76d 100644 --- a/mingw-w64-headers/include/uiautomationcore.idl +++ b/mingw-w64-headers/include/uiautomationcore.idl @@ -20,13 +20,24 @@ import "oaidl.idl"; import "oleacc.idl"; +enum NavigateDirection { + NavigateDirection_Parent = 0x0000, + NavigateDirection_NextSibling = 0x0001, + NavigateDirection_PreviousSibling = 0x0002, + NavigateDirection_FirstChild = 0x0003, + NavigateDirection_LastChild = 0x0004, +}; + enum ProviderOptions { ProviderOptions_ClientSideProvider = 0x0001, ProviderOptions_ServerSideProvider = 0x0002, ProviderOptions_NonClientAreaProvider = 0x0004, ProviderOptions_OverrideProvider = 0x0008, ProviderOptions_ProviderOwnsSetFocus = 0x0010, - ProviderOptions_UseComThreading = 0x0020 + ProviderOptions_UseComThreading = 0x0020, + ProviderOptions_RefuseNonClientSupport = 0x0040, + ProviderOptions_HasNativeIAccessible = 0x0080, + ProviderOptions_UseClientCoordinates = 0x0100, }; typedef int PROPERTYID; @@ -35,6 +46,13 @@ typedef int EVENTID; typedef int TEXTATTRIBUTEID; typedef int CONTROLTYPEID; +struct UiaRect { + double left; + double top; + double width; + double height; +}; + [ version(1.0), uuid(930299ce-9965-4dec-b0f4-a54848d4b667), @@ -48,7 +66,8 @@ library UIA [ object, uuid(d6dd68d1-86fd-4332-8666-9abedea2d24c), - pointer_default(unique) + pointer_default(unique), + oleautomation ] interface IRawElementProviderSimple : IUnknown { @@ -88,4 +107,48 @@ library UIA [in] IRawElementProviderSimple *pIn, [out] IAccessibleEx **ppRetValOut); } + + interface IRawElementProviderFragmentRoot; + + [ + object, + uuid(f7063da8-8359-439c-9297-bbc5299a7d87), + pointer_default(unique), + oleautomation + ] + interface IRawElementProviderFragment : IUnknown + { + HRESULT Navigate( + [in] enum NavigateDirection direction, + [out, retval] IRawElementProviderFragment **pRetVal); + + HRESULT GetRuntimeId([out, retval] SAFEARRAY(int) *pRetVal); + HRESULT get_BoundingRectangle([out, retval] struct UiaRect *pRetVal); + /* + * FIXME: Current versions of Windows SDK use + * SAFEARRAY(IRawElementProviderFragmentRoot *) instead of + * SAFEARRAY(VARIANT). The new type is currently unsupported + * in widl, we should switch to it when it is. + */ + HRESULT GetEmbeddedFragmentRoots([out, retval] SAFEARRAY(VARIANT) *pRetVal); + HRESULT SetFocus(); + + [propget] HRESULT FragmentRoot([out, retval] IRawElementProviderFragmentRoot **pRetVal); + } + + [ + object, + uuid(620ce2a5-ab8f-40a9-86cb-de3c75599b58), + pointer_default(unique), + oleautomation + ] + interface IRawElementProviderFragmentRoot : IUnknown + { + HRESULT ElementProviderFromPoint( + [in] double x, + [in] double y, + [out, retval] IRawElementProviderFragment **pRetVal); + + HRESULT GetFocus([out, retval] IRawElementProviderFragment **pRetVal); + } }