[PATCH 4/4] uiautomationcore: Add UiaRaiseAutomationPropertyChangedEvent stub.

Mohamad Al-Jaf mohamadaljaf at gmail.com
Mon Nov 29 01:35:26 CST 2021


Enable Microsoft Edge to run in Windows 10 mode.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51437
Signed-off-by: Mohamad Al-Jaf <mohamadaljaf at gmail.com>
---
Note: I'm not sure how Alex Henrie managed to install it in
Windows 10 mode because I get the error:

"Failed to cache the downloaded installer. Error: 0x800b0109.".

In any case, using the offline installer allows it to install
in Windows 10 mode, but still requires the function
UiaRaiseAutomationPropertyChangedEvent to run.

Also, according to MSDN, the VARIANT parameter is not a pointer,
but Wine 32-bit fails to compile if it's not set.
Likewise, for the FIXME channel, if debugstr_variant is used,
Wine 64-bit compiles but 32-bit fails to compile due to the same error:

"undefined reference to `UiaRaiseAutomationPropertyChangedEvent at 16'
collect2: error: ld returned 1 exit status".

I have no idea why this is happening.
---
 dlls/uiautomationcore/uia_main.c            | 9 +++++++++
 dlls/uiautomationcore/uiautomationcore.spec | 2 +-
 include/uiautomationcoreapi.h               | 1 +
 3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/dlls/uiautomationcore/uia_main.c b/dlls/uiautomationcore/uia_main.c
index 44fd42742d9..f2d9d05a999 100644
--- a/dlls/uiautomationcore/uia_main.c
+++ b/dlls/uiautomationcore/uia_main.c
@@ -324,6 +324,15 @@ HRESULT WINAPI UiaRaiseAutomationEvent(IRawElementProviderSimple *provider, EVEN
     return S_OK;
 }
 
+/***********************************************************************
+ *          UiaRaiseAutomationPropertyChangedEvent (uiautomationcore.@)
+ */
+HRESULT WINAPI UiaRaiseAutomationPropertyChangedEvent(IRawElementProviderSimple *provider, PROPERTYID id, VARIANT *oldValue, VARIANT *newValue)
+{
+    FIXME("(%p, %d, %p, %p): stub\n", provider, id, oldValue, newValue);
+    return S_OK;
+}
+
 void WINAPI UiaRegisterProviderCallback(UiaProviderCallback *callback)
 {
     FIXME("(%p): stub\n", callback);
diff --git a/dlls/uiautomationcore/uiautomationcore.spec b/dlls/uiautomationcore/uiautomationcore.spec
index 656641c4bad..a5ab714f718 100644
--- a/dlls/uiautomationcore/uiautomationcore.spec
+++ b/dlls/uiautomationcore/uiautomationcore.spec
@@ -86,7 +86,7 @@
 #@ stub UiaProviderFromIAccessible
 @ stub UiaRaiseAsyncContentLoadedEvent
 @ stdcall UiaRaiseAutomationEvent(ptr long)
-@ stub UiaRaiseAutomationPropertyChangedEvent
+@ stdcall UiaRaiseAutomationPropertyChangedEvent(ptr long ptr ptr)
 #@ stub UiaRaiseChangesEvent
 #@ stub UiaRaiseNotificationEvent
 @ stub UiaRaiseStructureChangedEvent
diff --git a/include/uiautomationcoreapi.h b/include/uiautomationcoreapi.h
index de486710158..21b6a355fac 100644
--- a/include/uiautomationcoreapi.h
+++ b/include/uiautomationcoreapi.h
@@ -66,6 +66,7 @@ HRESULT WINAPI UiaGetReservedNotSupportedValue(IUnknown **value);
 int WINAPI UiaLookupId(enum AutomationIdentifierType type, const GUID *guid);
 BOOL WINAPI UiaPatternRelease(HUIAPATTERNOBJECT hobj);
 HRESULT WINAPI UiaRaiseAutomationEvent(IRawElementProviderSimple *provider, EVENTID id);
+HRESULT WINAPI UiaRaiseAutomationPropertyChangedEvent(IRawElementProviderSimple *provider, PROPERTYID id, VARIANT *oldValue, VARIANT *newValue);
 void WINAPI UiaRegisterProviderCallback(UiaProviderCallback *pCallback);
 LRESULT WINAPI UiaReturnRawElementProvider(HWND hwnd, WPARAM wParam, LPARAM lParam, IRawElementProviderSimple *elprov);
 BOOL WINAPI UiaTextRangeRelease(HUIATEXTRANGE hobj);
-- 
2.34.1




More information about the wine-devel mailing list