http://bugs.winehq.org/show_bug.cgi?id=6973
------- Additional Comments From focht@gmx.net 2007-22-05 13:33 ------- Created an attachment (id=6416) --> (http://bugs.winehq.org/attachment.cgi?id=6416&action=view) wine trace of installer showing custom dll registry problem
Hello,
sorry that I dont write an essay to show/prove everything in detail every time ...
Attached is trace, WINEDEBUG=+tid,+seh,+msi,+reg
Look for custom dll function: ACTION_CallDllFunction calling L"f1"
--- snip --- ... 003d:trace:msi:HANDLE_CustomType1 Calling function L"f1" from L"C:\windows\temp\msif097.tmp" 003d:trace:msi:wait_thread_handle waiting for L"IS_CheckForOld" 0036:trace:msi:DllThread custom action (36) started 0036:trace:msi:ACTION_CallDllFunction L"C:\windows\temp\msif097.tmp" L"f1" 0036:trace:msi:alloc_msihandle 0x16b9d8 -> 2 0036:trace:msi:ACTION_CallDllFunction calling L"f1" ... 0015:trace:reg:NtOpenKey (0x38,L"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall",9,0x342f50) 0015:trace:reg:NtOpenKey <- (nil) 0015:trace:seh:raise_exception code=e06d7363 flags=1 addr=0x7b840d40 0015:trace:seh:raise_exception info[0]=19930520 0015:trace:seh:raise_exception info[1]=00342edc 0015:trace:seh:raise_exception info[2]=00483600 0015:trace:seh:raise_exception eax=7b82be0d ebx=7b8ab884 ecx=00000000 edx=0047e250 esi=0047e250 edi=00342e88 0015:trace:seh:raise_exception ebp=00342e48 esp=00342de4 cs=0073 ds=007b es=007b fs=0033 gs=003b flags=00000216 0015:trace:seh:call_stack_handlers calling handler at 0x4747d4 code=e06d7363 flags=1 0015:trace:seh:__regs_RtlUnwind code=e06d7363 flags=3 0015:trace:seh:__regs_RtlUnwind calling handler at 0x7bc2f3d0 code=e06d7363 flags=3 0015:trace:seh:__regs_RtlUnwind handler at 0x7bc2f3d0 returned 1 0015:fixme:rpc:RpcRevertToSelfEx (0x5f0050): stub 0036:trace:msi:alloc_msihandle 0x1ee158 -> 3 0036:trace:msi:MSI_ProcessMessage 4000000 0036:trace:msi:MSI_ProcessMessage ((nil) 0 10 L"Invoke Function fails, Error = 0x80070002") 0036:trace:msi:MsiCloseHandle 3 0036:trace:msi:MsiCloseHandle handle 3 Destroyed 0036:trace:msi:msiobj_release object 0x1ee158 destroyed 0036:trace:msi:MsiCloseHandle 2 0036:trace:msi:MsiCloseHandle handle 2 Destroyed 0036:trace:msi:DllThread custom action (36) returned 1603 0036:trace:msi:MsiCloseAllHandles 0036:trace:msi:MsiCloseHandle 2 0036:trace:msi:MsiCloseHandle 3 003d:trace:msi:msiobj_release object 0x185750 destroyed 003d:err:msi:ITERATE_Actions Execution halted, action L"IS_CheckForOld" returned 1603
--- snip ---
It looks for "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" Due to missing key, a C++ exception is raised and gets caught by custom dll exception handler. The error is converted HRESULT 0x80070002 and then to general msi error code "1603".
Create the registry key and run setup. Voila. Install succeeds.
Are you now convinced?
Regards