[PATCH] uiautomationcore: Add stub UiaNodeFromFocus function.

Vijay Kiran Kamuju infyquest at gmail.com
Thu Jun 17 05:16:52 CDT 2021


Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50576

Signed-off-by: Vijay Kiran Kamuju <infyquest at gmail.com>
---
 dlls/uiautomationcore/uia_main.c            |  8 ++++
 dlls/uiautomationcore/uiautomationcore.spec |  2 +-
 include/uiautomationcoreapi.h               | 45 +++++++++++++++++++++
 3 files changed, 54 insertions(+), 1 deletion(-)

diff --git a/dlls/uiautomationcore/uia_main.c b/dlls/uiautomationcore/uia_main.c
index 77460aa174c..49fc97748b9 100644
--- a/dlls/uiautomationcore/uia_main.c
+++ b/dlls/uiautomationcore/uia_main.c
@@ -104,3 +104,11 @@ HRESULT WINAPI UiaHostProviderFromHwnd(HWND hwnd, IRawElementProviderSimple **pr
     FIXME("(%p, %p): stub\n", hwnd, provider);
     return E_NOTIMPL;
 }
+
+HRESULT WINAPI UiaNodeFromFocus(UiaCacheRequest *request, SAFEARRAY **data, BSTR *tree)
+{
+    FIXME("(%p, %p, %p): stub\n", request, data, tree);
+
+    *tree = NULL;
+    return S_OK;
+}
diff --git a/dlls/uiautomationcore/uiautomationcore.spec b/dlls/uiautomationcore/uiautomationcore.spec
index 5da89c3451c..f3bfb500c8b 100644
--- a/dlls/uiautomationcore/uiautomationcore.spec
+++ b/dlls/uiautomationcore/uiautomationcore.spec
@@ -76,7 +76,7 @@
 #@ stub UiaIAccessibleFromProvider
 @ stdcall UiaLookupId(long ptr)
 @ stub UiaNavigate
-@ stub UiaNodeFromFocus
+@ stdcall UiaNodeFromFocus(ptr ptr ptr)
 @ stub UiaNodeFromHandle
 @ stub UiaNodeFromPoint
 @ stub UiaNodeFromProvider
diff --git a/include/uiautomationcoreapi.h b/include/uiautomationcoreapi.h
index de486710158..7eda5e5c3cd 100644
--- a/include/uiautomationcoreapi.h
+++ b/include/uiautomationcoreapi.h
@@ -39,6 +39,12 @@ DECLARE_HANDLE(HUIAPATTERNOBJECT);
 DECLARE_HANDLE(HUIATEXTRANGE);
 DECLARE_HANDLE(HUIAEVENT);
 
+enum AutomationElementMode
+{
+    AutomationElementMode_None,
+    AutomationElementMode_Full
+};
+
 enum AutomationIdentifierType
 {
     AutomationIdentifierType_Property,
@@ -52,6 +58,16 @@ enum AutomationIdentifierType
     AutomationIdentifierType_Style
 };
 
+enum ConditionType
+{
+    ConditionType_True = 0,
+    ConditionType_False = 1,
+    ConditionType_Property = 2,
+    ConditionType_And = 3,
+    ConditionType_Or = 4,
+    ConditionType_Not = 5
+};
+
 enum ProviderType
 {
     ProviderType_BaseHwnd,
@@ -59,11 +75,40 @@ enum ProviderType
     ProviderType_NonClientArea,
 };
 
+enum TreeScope
+{
+    TreeScope_None,
+    TreeScope_Element,
+    TreeScope_Children,
+    TreeScope_Descendents,
+    TreeScope_Parent,
+    TreeScope_Ancestors,
+    TreeScope_Subtree
+};
+
+typedef struct
+{
+    enum ConditionType ConditionType;
+} UiaCondition;
+
+typedef struct
+{
+    UiaCondition *pViewCondition;
+    enum TreeScope Scope;
+
+    PROPERTYID *pProperties;
+    int cProperties;
+    PATTERNID *pPatterns;
+    int cPatterns;
+    enum AutomationElementMode automationElementMode;
+} UiaCacheRequest;
+
 typedef SAFEARRAY * WINAPI UiaProviderCallback(HWND hwnd,enum ProviderType providerType);
 
 HRESULT WINAPI UiaGetReservedMixedAttributeValue(IUnknown **value);
 HRESULT WINAPI UiaGetReservedNotSupportedValue(IUnknown **value);
 int WINAPI UiaLookupId(enum AutomationIdentifierType type, const GUID *guid);
+HRESULT WINAPI UiaNodeFromFocus(UiaCacheRequest *pRequest, SAFEARRAY **ppRequestData, BSTR *ppTreeStructure);
 BOOL WINAPI UiaPatternRelease(HUIAPATTERNOBJECT hobj);
 HRESULT WINAPI UiaRaiseAutomationEvent(IRawElementProviderSimple *provider, EVENTID id);
 void WINAPI UiaRegisterProviderCallback(UiaProviderCallback *pCallback);
-- 
2.30.0




More information about the wine-devel mailing list