https://bugs.winehq.org/show_bug.cgi?id=36470
Bug ID: 36470 Summary: Inspect tool (Microsoft Active Accessibility inspector), part of Windows 7 SDK needs oleacc.dll.WindowFromAccessibleObject Product: Wine Version: 1.7.18 Hardware: x86 OS: Linux Status: NEW Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: focht@gmx.net
Hello folks,
continuation of bug 36372
Prerequisite: 'winetricks -q dotnet40 corefonts'
Windows 7 SDK (containing the MSAA/UIA tools and examples):
http://www.microsoft.com/en-us/download/details.aspx?id=8279
Windows Automation API 3.0 (provides needed 'UIAutomationCore.dll'):
https://support.microsoft.com/kb/971513
Download for Windows XP:
http://www.microsoft.com/downloads/details.aspx?FamilyId=cd55456d-9703-42a0-...
(you might need 'taskset -c 0 <installer> to work around bug 35041)
'Inspect' tool description: http://msdn.microsoft.com/en-us/library/windows/desktop/dd318521%28v=vs.85%2...
Backtrace:
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/Microsoft SDKs/Windows/v7.1/Bin
$ wine ./Inspect.exe ... Unhandled exception: unimplemented function oleacc.dll.WindowFromAccessibleObject called in 32-bit code (0x7b83ac57). Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:7b83ac57 ESP:0033db04 EBP:0033db68 EFLAGS:00000287( - -- I S - -P-C) EAX:7b826c7d EBX:7b8bb000 ECX:f69ecfc7 EDX:0033db2c ESI:0033dc48 EDI:00000000 ... Backtrace:
=>0 0x7b83ac57 RaiseException+0x8f(code=<couldn't compute location>, flags=<couldn't compute location>, nbargs=<couldn't compute location>, args=<couldn't compute location>) [/home/focht/projects/wine/wine.repo/src/dlls/kernel32/except.c:84] in kernel32 (0x0033db68)
1 0xf69ecf01 __wine_spec_unimplemented_stub+0x34(module="oleacc.dll", function="WindowFromAccessibleObject") [/home/focht/projects/wine/wine.repo/src/dlls/winecrt0/stub.c:34] in oleacc (0x0033dba0)
2 0xf69e7d1d __wine_stub_WindowFromAccessibleObject+0x28() in oleacc (0x0033dbcc) 3 0x53878d08 in uiautomationcore (+0x48d07) (0x0033dbcc) 4 0x53879396 in uiautomationcore (+0x49395) (0x0033dc1c) ... 19 0x7ebc9282 call_hook_proc+0xb2(proc=0x5384988f, id=0x4, code=0, wparam=0, lparam=0x33f3cc, prev_unicode=0x1, next_unicode=0x1) [/home/focht/projects/wine/wine.repo/src/dlls/user32/hook.c:345] in user32 (0x0033f018) 20 0x7ebc9749 call_hook+0x31f(info=0x33f13c, code=0, wparam=0, lparam=0x33f3cc) [/home/focht/projects/wine/wine.repo/src/dlls/user32/hook.c:427] in user32 (0x0033f098) 21 0x7ebc99e9 HOOK_CallHooks+0x218(id=0x4, code=0, wparam=0, lparam=0x33f3cc, unicode=0x1) [/home/focht/projects/wine/wine.repo/src/dlls/user32/hook.c:493] in user32 (0x0033f388) ... 25 0x7edef2ce manage_desktop+0x7d2(arg="") [/home/focht/projects/wine/wine.repo/src/programs/explorer/desktop.c:915] in explorer (0x0033f898) 26 0x7edf189f parse_command_line+0x177(commandline="/desktop", parameters=0x33f920) [/home/focht/projects/wine/wine.repo/src/programs/explorer/explorer.c:718] in explorer (0x0033f8c8) ...
0x7b83ac57 RaiseException+0x8f [/home/focht/projects/wine/wine.repo/src/dlls/kernel32/except.c:84] in kernel32: subl $4,%esp
84 RtlRaiseException( &record );
Modules: Module Address Debug info Name (59 modules) PE 53830000-538c8000 Export uiautomationcore ELF 7b800000-7ba60000 Dwarf kernel32<elf> -PE 7b810000-7ba60000 \ kernel32 ELF 7bc00000-7bcee000 Dwarf ntdll<elf> -PE 7bc10000-7bcee000 \ ntdll ... ELF 7edd9000-7ee00000 Dwarf explorer<elf> -PE 7ede0000-7ee00000 \ explorer ... Threads: process tid prio (all id:s are in hex) 00000008 Inspect.exe 0000002d 0 0000002c 0 0000002b 0 0000002a 0 00000029 0 00000009 0 ... 00000014 (D) C:\windows\system32\explorer.exe 00000015 0 <== ... --- snip ---
MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/dd373876%28v=vs.85%2...
The 'Inspect' tool automatically injects 'UIAutomationCore.dll' into all or selected processes on the current desktop to perform data retrieval on behalf of a client. In this case it's Wine builtin 'explorer.exe' crashing after injection succeeded.
The dll can also load UIA plugins (providers) into its host process to extract data using different techniques.
$ sha1sum winsdk_web.exe a8717ebb20a69c7efa85232bcb9899b8b07f98cf winsdk_web.exe
$ du -sh winsdk_web.exe 500K winsdk_web.exe
$ wine --version wine-1.7.18-155-gdb42703
Regards