http://bugs.winehq.org/show_bug.cgi?id=25228
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net Component|-unknown |kernel32 Summary|Powerpoint 2007 will not |Office 2007 apps (word, |start if Windows version is |excel, powerpoint) refuse |set to Vista or later |to start when previous | |unclean shutdown was | |detected and Winver is set | |>= Vista (missing | |Application Recovery and | |Restart API stubs)
--- Comment #9 from Anastasius Focht focht@gmx.net 2011-05-20 16:32:40 CDT --- Hello,
the problem is the ARR (Application Recovery and Restart) which was introduced with Vista.
MSDN: http://msdn.microsoft.com/en-us/library/cc948909.aspx
--- snip --- 0021:Call KERNEL32.WerRegisterFile(3352b088 L"C:\users\focht\Temp\2377.od",00000002,00000003) ret=32be11b7 0021:fixme:wer:WerRegisterFile (L"C:\users\focht\Temp\2377.od", 2, 3) stub! 0021:Ret KERNEL32.WerRegisterFile() retval=80004001 ret=32be11b7 0021:trace:seh:raise_exception code=c0000005 flags=0 addr=(nil) ip=00000000 tid=0021 0021:trace:seh:raise_exception info[0]=00000000 0021:trace:seh:raise_exception info[1]=00000000 0021:trace:seh:raise_exception eax=3348bbf0 ebx=00000000 ecx=00000001 edx=334ff168 esi=3352b088 edi=0032fda6 0021:trace:seh:raise_exception ebp=0032f808 esp=0032f294 cs=0073 ds=007b es=007b fs=0033 gs=003b flags=00210202 0021:trace:seh:call_vectored_handlers calling handler at 0x200777aa code=c0000005 flags=0 0021:trace:seh:call_vectored_handlers handler at 0x200777aa returned 0 0021:trace:seh:call_stack_handlers calling handler at 0x30001df4 code=c0000005 flags=0 --- snip ---
The NULL ptr dereference is because Wine doesn't export some stub symbols.
A bit earlier:
--- snip --- ... 0021:Call KERNEL32.GetProcAddress(7b810000,32a88630 "RegisterApplicationRecoveryCallback") ret=326133f3 0021:Ret KERNEL32.GetProcAddress() retval=00000000 ret=326133f3 0021:Call KERNEL32.GetProcAddress(7b810000,32a88610 "ApplicationRecoveryInProgress") ret=326133f3 0021:Ret KERNEL32.GetProcAddress() retval=00000000 ret=326133f3 0021:Call KERNEL32.GetProcAddress(7b810000,32a885f4 "ApplicationRecoveryFinished") ret=326133f3 0021:Ret KERNEL32.GetProcAddress() retval=00000000 ret=326133f3 0021:Call KERNEL32.GetProcAddress(7b810000,32a885d8 "RegisterApplicationRestart") ret=326133f3 0021:Ret KERNEL32.GetProcAddress() retval=7b823f90 ret=326133f3 ... --- snip ---
Wine already provides kernel32.RegisterApplicationRestart but completely misses out the rest of ARR. Although only RegisterApplicationRecoveryCallback() is called (the NULL deref), the other two should be stubbed too.
With these stubs in place, Office 2007 Word, Excel, PowerPoint start successfully (with option to run in recovery or normal mode when previous unclean shutdown was detected).
Regards