Signed-off-by: Connor McAdams cmcadams@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; }