http://bugs.winehq.org/show_bug.cgi?id=8094
Summary: exception due to unimplemented shell32.dll!OpenAs_RunDLL(A/W) Product: Wine Version: 0.9.35. Platform: PC URL: http://www.ghisler.com OS/Version: All Status: UNCONFIRMED Severity: normal Priority: P2 Component: wine-shell32 AssignedTo: wine-bugs@winehq.org ReportedBy: focht@gmx.net
Hello,
double click of unassociated file item in "total commander" (file manager) produces exception due to unimplemented shell32 function.
--- snip --- fixme:exec:SHELL_execute flags ignored: 0x00000500 trace:seh:raise_exception code=80000100 flags=1 addr=0x7b840750 trace:seh:raise_exception info[0]=657a0e80 trace:seh:raise_exception info[1]=657a1218 wine: Call from 0x7b840750 to unimplemented function shell32.dll.OpenAs_RunDLLW, aborting trace:seh:call_stack_handlers calling handler at 0x7b82bf28 code=80000100 flags=1 wine: Unimplemented function shell32.dll.OpenAs_RunDLLW called at address 0x7b840750 (thread 0023), starting debugger... trace:seh:start_debugger Starting debugger "winedbg --auto 34 48" trace:seh:call_stack_handlers handler at 0x7b82bf28 returned 1 --- snip ---
Resolution: add stub impl
--- snip include/shell32.spec --- @ stdcall OpenAs_RunDLL(long long str long) OpenAs_RunDLLA @ stdcall OpenAs_RunDLLA(long long str long) @ stdcall OpenAs_RunDLLW(long long wstr long) --- snip include/shell32.spec ---
--- snip some_shell32_c_file --- void WINAPI OpenAs_RunDLLA( HWND hWnd, HINSTANCE hInst, LPCSTR lpszCmdLine, int nCmdShow) { FIXME("(%p, %p, %s, %d)\n", hWnd, hInst, debugstr_a(lpszCmdLine), nCmdShow); }
void WINAPI OpenAs_RunDLLW( HWND hWnd, HINSTANCE hInst, LPCWSTR lpszCmdLine, int nCmdShow) { FIXME("(%p, %p, %s, %d)\n", hWnd, hInst, debugstr_w(lpszCmdLine), nCmdShow); } --- snip some_shell32_c_file ---
Quick fix. Any real implementation "Open as" requires more work like shell32/dialogs.c/RunFileDlg() with dialog/template, selection of apps, creation of registry associations, recent documents history, execution etc.
Result:
--- snip --- fixme:exec:SHELL_execute flags ignored: 0x00000500 fixme:shell:OpenAs_RunDLLW (0x30038, 0x602a0000, L"Z:\mnt\privdata\docs\blah.pdf", 1) --- snip ---
Regards