Piotr Caban : oleacc: Add AccessibleObjectFromWindow implementation.
Alexandre Julliard
julliard at winehq.org
Mon Apr 28 13:27:00 CDT 2014
Module: wine
Branch: master
Commit: 817222558d3e3dd09aba1f348f24eda22a32190b
URL: http://source.winehq.org/git/wine.git/?a=commit;h=817222558d3e3dd09aba1f348f24eda22a32190b
Author: Piotr Caban <piotr at codeweavers.com>
Date: Mon Apr 28 17:30:31 2014 +0200
oleacc: Add AccessibleObjectFromWindow implementation.
---
dlls/oleacc/main.c | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/dlls/oleacc/main.c b/dlls/oleacc/main.c
index 5a7afd90..c1e2bf8 100644
--- a/dlls/oleacc/main.c
+++ b/dlls/oleacc/main.c
@@ -217,9 +217,24 @@ HRESULT WINAPI AccessibleObjectFromPoint( POINT ptScreen, IAccessible** ppacc, V
HRESULT WINAPI AccessibleObjectFromWindow( HWND hwnd, DWORD dwObjectID,
REFIID riid, void** ppvObject )
{
- FIXME("%p %d %s %p\n", hwnd, dwObjectID,
+ TRACE("%p %d %s %p\n", hwnd, dwObjectID,
debugstr_guid( riid ), ppvObject );
- return E_NOTIMPL;
+
+ if(!ppvObject)
+ return E_INVALIDARG;
+ *ppvObject = NULL;
+
+ if(IsWindow(hwnd)) {
+ LRESULT lres;
+
+ lres = SendMessageW(hwnd, WM_GETOBJECT, 0xffffffff, dwObjectID);
+ if(FAILED(lres))
+ return lres;
+ else if(lres)
+ return ObjectFromLresult(lres, riid, 0, ppvObject);
+ }
+
+ return CreateStdAccessibleObject(hwnd, dwObjectID, riid, ppvObject);
}
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason,
More information about the wine-cvs
mailing list