Piotr Caban : oleacc: Add Window_OleWindow_GetWindow implementation.
Alexandre Julliard
julliard at winehq.org
Mon Sep 20 16:26:20 CDT 2021
Module: wine
Branch: master
Commit: 3e3a2be891fb583f2f1e298033c2a3da31af659e
URL: https://source.winehq.org/git/wine.git/?a=commit;h=3e3a2be891fb583f2f1e298033c2a3da31af659e
Author: Piotr Caban <piotr at codeweavers.com>
Date: Mon Sep 20 18:03:36 2021 +0200
oleacc: Add Window_OleWindow_GetWindow implementation.
Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Connor McAdams <cmcadams at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/oleacc/tests/main.c | 12 ++++++------
dlls/oleacc/window.c | 12 +++++++++---
2 files changed, 15 insertions(+), 9 deletions(-)
diff --git a/dlls/oleacc/tests/main.c b/dlls/oleacc/tests/main.c
index 180113b29f9..7d1c376bc25 100644
--- a/dlls/oleacc/tests/main.c
+++ b/dlls/oleacc/tests/main.c
@@ -1039,8 +1039,8 @@ static void test_default_client_accessible_object(void)
hr = IDispatch_QueryInterface(V_DISPATCH(&v), &IID_IOleWindow, (void**)&ow);
ok(hr == S_OK, "got %x\n", hr);
hr = IOleWindow_GetWindow(ow, &hwnd2);
- todo_wine ok(hr == S_OK, "got %x\n", hr);
- todo_wine ok(btn == hwnd2, "hwnd2 = %p, expected %p\n", hwnd2, btn);
+ ok(hr == S_OK, "got %x\n", hr);
+ ok(btn == hwnd2, "hwnd2 = %p, expected %p\n", hwnd2, btn);
IOleWindow_Release(ow);
hr = IDispatch_QueryInterface(V_DISPATCH(&v), &IID_IAccessible, (void**)&win);
@@ -1064,8 +1064,8 @@ static void test_default_client_accessible_object(void)
hr = IDispatch_QueryInterface(V_DISPATCH(&v), &IID_IOleWindow, (void**)&ow);
ok(hr == S_OK, "got %x\n", hr);
hr = IOleWindow_GetWindow(ow, &hwnd2);
- todo_wine ok(hr == S_OK, "got %x\n", hr);
- todo_wine ok(chld == hwnd2, "hwnd2 = %p, expected %p\n", hwnd2, chld);
+ ok(hr == S_OK, "got %x\n", hr);
+ ok(chld == hwnd2, "hwnd2 = %p, expected %p\n", hwnd2, chld);
IOleWindow_Release(ow);
hr = IDispatch_QueryInterface(V_DISPATCH(&v), &IID_IAccessible, (void**)&win);
@@ -1088,8 +1088,8 @@ static void test_default_client_accessible_object(void)
hr = IDispatch_QueryInterface(V_DISPATCH(&v), &IID_IOleWindow, (void**)&ow);
ok(hr == S_OK, "got %x\n", hr);
hr = IOleWindow_GetWindow(ow, &hwnd2);
- todo_wine ok(hr == S_OK, "got %x\n", hr);
- todo_wine ok(chld2 == hwnd2, "hwnd2 = %p, expected %p\n", hwnd2, chld2);
+ ok(hr == S_OK, "got %x\n", hr);
+ ok(chld2 == hwnd2, "hwnd2 = %p, expected %p\n", hwnd2, chld2);
IOleWindow_Release(ow);
hr = IDispatch_QueryInterface(V_DISPATCH(&v), &IID_IAccessible, (void**)&win);
diff --git a/dlls/oleacc/window.c b/dlls/oleacc/window.c
index 5957d49ef1f..387ed4bc9f7 100644
--- a/dlls/oleacc/window.c
+++ b/dlls/oleacc/window.c
@@ -31,6 +31,8 @@ typedef struct {
IEnumVARIANT IEnumVARIANT_iface;
LONG ref;
+
+ HWND hwnd;
} Window;
static inline Window* impl_from_Window(IAccessible *iface)
@@ -327,11 +329,14 @@ static ULONG WINAPI Window_OleWindow_Release(IOleWindow *iface)
return IAccessible_Release(&This->IAccessible_iface);
}
-static HRESULT WINAPI Window_OleWindow_GetWindow(IOleWindow *iface, HWND *phwnd)
+static HRESULT WINAPI Window_OleWindow_GetWindow(IOleWindow *iface, HWND *hwnd)
{
Window *This = impl_from_Window_OleWindow(iface);
- FIXME("(%p)->(%p)\n", This, phwnd);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%p)\n", This, hwnd);
+
+ *hwnd = This->hwnd;
+ return S_OK;
}
static HRESULT WINAPI Window_OleWindow_ContextSensitiveHelp(IOleWindow *iface, BOOL fEnterMode)
@@ -427,6 +432,7 @@ HRESULT create_window_object(HWND hwnd, const IID *iid, void **obj)
window->IOleWindow_iface.lpVtbl = &WindowOleWindowVtbl;
window->IEnumVARIANT_iface.lpVtbl = &WindowEnumVARIANTVtbl;
window->ref = 1;
+ window->hwnd = hwnd;
hres = IAccessible_QueryInterface(&window->IAccessible_iface, iid, obj);
IAccessible_Release(&window->IAccessible_iface);
More information about the wine-cvs
mailing list