[PATCH 2/3] uiautomationcore: Implement UiaGetReservedMixedAttributeValue.

Connor McAdams cmcadams at codeweavers.com
Wed Oct 27 14:55:16 CDT 2021


Signed-off-by: Connor McAdams <cmcadams at codeweavers.com>
---
 dlls/uiautomationcore/uia_main.c | 50 ++++++++++++++++++++++++++++++--
 1 file changed, 48 insertions(+), 2 deletions(-)

diff --git a/dlls/uiautomationcore/uia_main.c b/dlls/uiautomationcore/uia_main.c
index e51a4b4d555..0294357c28a 100644
--- a/dlls/uiautomationcore/uia_main.c
+++ b/dlls/uiautomationcore/uia_main.c
@@ -209,6 +209,47 @@ static const IUnknownVtbl uia_reserved_ns_vtbl = {
 
 static IUnknown uia_reserved_ns_iface = {&uia_reserved_ns_vtbl};
 
+/*
+ * UiaReservedMixedAttribute object.
+ */
+static HRESULT WINAPI uia_reserved_ma_QueryInterface(IUnknown *iface,
+        REFIID riid, void **ppv)
+{
+    *ppv = NULL;
+    if (IsEqualIID(riid, &IID_IUnknown))
+        *ppv = iface;
+    else if (IsEqualIID(riid, &IID_IMarshal))
+    {
+        IMarshal *ftm;
+
+        if (FAILED(uia_reserved_val_create_ftm(iface, &ftm)))
+            return E_NOINTERFACE;
+        *ppv = ftm;
+    }
+    else
+        return E_NOINTERFACE;
+
+    return S_OK;
+}
+
+static ULONG WINAPI uia_reserved_ma_AddRef(IUnknown *iface)
+{
+    return 1;
+}
+
+static ULONG WINAPI uia_reserved_ma_Release(IUnknown *iface)
+{
+    return 1;
+}
+
+static const IUnknownVtbl uia_reserved_ma_vtbl = {
+    uia_reserved_ma_QueryInterface,
+    uia_reserved_ma_AddRef,
+    uia_reserved_ma_Release,
+};
+
+static IUnknown uia_reserved_ma_iface = {&uia_reserved_ma_vtbl};
+
 /***********************************************************************
  *          UiaClientsAreListening (uiautomationcore.@)
  */
@@ -223,8 +264,13 @@ BOOL WINAPI UiaClientsAreListening(void)
  */
 HRESULT WINAPI UiaGetReservedMixedAttributeValue(IUnknown **value)
 {
-    FIXME("(%p) stub!\n", value);
-    *value = NULL;
+    TRACE("(%p)\n", value);
+
+    if (!value)
+        return E_INVALIDARG;
+
+    *value = &uia_reserved_ma_iface;
+
     return S_OK;
 }
 
-- 
2.25.1




More information about the wine-devel mailing list