Connor McAdams : include: Define more provider interfaces in uiautomationcore.idl.

Alexandre Julliard julliard at winehq.org
Mon Nov 8 15:45:05 CST 2021


Module: wine
Branch: master
Commit: a077f98ee365191f073e236b8f46c236378b51f6
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=a077f98ee365191f073e236b8f46c236378b51f6

Author: Connor McAdams <cmcadams at codeweavers.com>
Date:   Sat Nov  6 15:57:20 2021 -0400

include: Define more provider interfaces in uiautomationcore.idl.

Signed-off-by: Connor McAdams <cmcadams at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 include/uiautomationcore.idl | 59 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)

diff --git a/include/uiautomationcore.idl b/include/uiautomationcore.idl
index 9ee79170e4a..170b0c76de1 100644
--- a/include/uiautomationcore.idl
+++ b/include/uiautomationcore.idl
@@ -20,6 +20,14 @@
 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,
@@ -38,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),
@@ -92,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);
+    }
 }




More information about the wine-cvs mailing list