http://bugs.winehq.org/show_bug.cgi?id=27106
Summary: EuroDEEM: Fails to start Product: Wine Version: 1.3.19 Platform: x86 URL: http://re.jrc.ec.europa.eu/energyefficiency/eurodeem/e urodeem%20version%201_0_17/IMSSA_EuroDEEM.exe OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: lukasz.wojnilowicz@gmail.com
Created an attachment (id=34548) --> (http://bugs.winehq.org/attachment.cgi?id=34548) Error messages
Steps to reproduce: 1) remove ~/.wine 2) winetricks gecko mfc42 3) install EuroDEEM 4) wine IMSSA.exe
Behaviour: See attachment.
Expected behaviour: I should be able to start application.
http://bugs.winehq.org/show_bug.cgi?id=27106
--- Comment #1 from NSLW lukasz.wojnilowicz@gmail.com 2011-05-08 12:57:03 CDT --- Created an attachment (id=34549) --> (http://bugs.winehq.org/attachment.cgi?id=34549) Terminal output on wine-1.3.19-203-gf555c2d
http://bugs.winehq.org/show_bug.cgi?id=27106
NSLW lukasz.wojnilowicz@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download
http://bugs.winehq.org/show_bug.cgi?id=27106
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #2 from Anastasius Focht focht@gmx.net 2011-05-08 14:42:57 CDT --- Hello,
you need to install MDAC 2.8 for ADO connection and Microsoft Access ODBC Driver (Jet Provider), e.g:
$ bash winetricks -q mdac28 jet40
You need additional step to add the necessary ODBC driver provider registry data (ODBCINST subkey):
$ wine odbcconf /f "c:\windows\system32\jetodbc.rsp"
(otherwise you would get the infamous "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified")
Regards
http://bugs.winehq.org/show_bug.cgi?id=27106
Louis Lenders xerox_xerox2000@yahoo.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |xerox_xerox2000@yahoo.co.uk Ever Confirmed|0 |1
--- Comment #3 from Louis Lenders xerox_xerox2000@yahoo.co.uk 2011-07-17 03:01:54 CDT --- (In reply to comment #2)
Hello,
you need to install MDAC 2.8 for ADO connection and Microsoft Access ODBC Driver (Jet Provider), e.g:
$ bash winetricks -q mdac28 jet40
You need additional step to add the necessary ODBC driver provider registry data (ODBCINST subkey):
$ wine odbcconf /f "c:\windows\system32\jetodbc.rsp"
(otherwise you would get the infamous "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified")
Regards
Still doesn't run for me after steps above. I get a "Type MisMatch" Native oleaut32 gives a "runtime error 50003"
Confirming
https://bugs.winehq.org/show_bug.cgi?id=27106
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |oleaut32 Summary|EuroDEEM: Fails to start |IMSSA EuroDEEM (VB6 app) | |fails on startup, reporting | |"Type MisMatch" error | |(VARIANT_Coerce: treat | |VT_NULL like VT_EMPTY when | |converting to VT_BSTR)
--- Comment #4 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming.
Prerequisites: 'winetricks -q mfc42 mdac28 jet40'
Additionally: 'wine odbcconf /f "c:\windows\system32\jetodbc.rsp"' (see my comment #2)
Relevant part of trace log:
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/EuroDEEM International
$ WINEDEBUG=+tid,+seh,+relay,+snoop,+ole,+variant wine ./IMSSA.exe >>log.txt 2>&1 ... 0028:CALL MSVBVM60.__vbaVarCat(0033f5cc,0033f5bc,0033f678) ret=007da24d 0028:Call oleaut32.VarCat(0033f678,0033f5bc,0033f5cc) ret=7350a374 0028:trace:variant:VarCat (0x33f678->(VT_DISPATCH),0x33f5bc->(VT_BSTR),0x33f5cc) 0028:trace:variant:VariantInit (0x33f4b8) 0028:trace:variant:VariantInit (0x33f4a8) 0028:trace:variant:VariantChangeTypeEx (0x33f4b8->(VT_EMPTY),0x33f678->(VT_DISPATCH),0x00000000,0x0000,VT_BSTR) 0028:trace:variant:VariantClear (0x33f418->(VT_EMPTY)) 0028:trace:variant:VariantClear (0x33f408->(VT_EMPTY)) 0028:trace:variant:VariantCopyInd (0x33f408->(VT_EMPTY),0x33f678->(VT_DISPATCH)) 0028:trace:variant:VariantCopy (0x33f408->(VT_EMPTY),0x33f678->(VT_DISPATCH)) 0028:trace:variant:VariantClear (0x33f408->(VT_EMPTY)) 0028:Call KERNEL32.InterlockedIncrement(012aded8) ret=1f444484 0028:Ret KERNEL32.InterlockedIncrement() retval=00000002 ret=1f444484 0028:trace:variant:VARIANT_Coerce (0x33f418->(VT_EMPTY),0x00000000,0x0000,0x33f408->(VT_DISPATCH),VT_BSTR) 0028:Call oleaut32.VariantInit(0033f0a4) ret=1f44d693 0028:trace:variant:VariantInit (0x33f0a4) 0028:Ret oleaut32.VariantInit() retval=0033f0a4 ret=1f44d693 0028:Call ole32.SetErrorInfo(00000000,00000000) ret=1f6b8a03 0028:trace:ole:SetErrorInfo (0, (nil)) 0028:Ret ole32.SetErrorInfo() retval=00000000 ret=1f6b8a03 0028:CALL MSDATL3.?IsZombie@CBaseObjZombie@@QAEHXZ() ret=1f6b8a0f 0028:RET MSDATL3.?IsZombie@CBaseObjZombie@@QAEHXZ() retval=00000000 ret=1f6b8a0f 0028:CALL MSDATL3.?GetItemOfExtBuffer@CExtBuffer@@QAGXKPAX@Z(012b112c,00000006,0033f044) ret=1f6b8a2e 0028:RET MSDATL3.?GetItemOfExtBuffer@CExtBuffer@@QAGXKPAX@Z() retval=00000004 ret=1f6b8a2e 0028:CALL MSDATL3.?GetRowBuff@CSlotListShort@@UAIPAUtagRowBuff@@K@Z() ret=1f6b8a3f 0028:RET MSDATL3.?GetRowBuff@CSlotListShort@@UAIPAUtagRowBuff@@K@Z() retval=08f800f8 ret=1f6b8a3f 0028:CALL MSDATL3.?IsValidSlot@CSlotListShort@@UAGJK@Z(012acba8,00000002) ret=1f6b8a56 0028:RET MSDATL3.?IsValidSlot@CSlotListShort@@UAGJK@Z() retval=00000000 ret=1f6b8a56 0028:Call oleaut32.VariantClear(0033f0a4) ret=1f53184f 0028:trace:variant:VariantClear (0x33f0a4->(VT_EMPTY)) 0028:Ret oleaut32.VariantClear() retval=00000000 ret=1f53184f 0028:trace:variant:VariantChangeTypeEx (0x33f298->(VT_EMPTY),0x33f2a8->(VT_NULL),0x00000000,0x0000,VT_BSTR) 0028:trace:variant:VariantClear (0x33f208->(VT_EMPTY)) 0028:trace:variant:VariantClear (0x33f1f8->(VT_EMPTY)) 0028:trace:variant:VariantCopyInd (0x33f1f8->(VT_EMPTY),0x33f2a8->(VT_NULL)) 0028:trace:variant:VariantCopy (0x33f1f8->(VT_EMPTY),0x33f2a8->(VT_NULL)) 0028:trace:variant:VariantClear (0x33f1f8->(VT_EMPTY)) 0028:trace:variant:VARIANT_Coerce (0x33f208->(VT_EMPTY),0x00000000,0x0000,0x33f1f8->(VT_NULL),VT_BSTR) 0028:trace:variant:VariantClear (0x33f208->(VT_EMPTY)) 0028:trace:variant:VariantClear (0x33f1f8->(VT_NULL)) 0028:trace:variant:VariantChangeTypeEx returning 0x80020005, 0x33f298->(VT_EMPTY) 0028:trace:variant:VariantClear (0x33f2a8->(VT_NULL)) 0028:trace:variant:VariantClear (0x33f418->(VT_EMPTY)) 0028:trace:variant:VariantClear (0x33f408->(VT_DISPATCH)) 0028:Call KERNEL32.InterlockedDecrement(012aded8) ret=1f4444b0 0028:Ret KERNEL32.InterlockedDecrement() retval=00000001 ret=1f4444b0 0028:trace:variant:VariantChangeTypeEx returning 0x80020005, 0x33f4b8->(VT_EMPTY) 0028:trace:variant:VariantClear (0x33f4b8->(VT_EMPTY)) 0028:trace:variant:VariantClear (0x33f4a8->(VT_EMPTY)) 0028:Ret oleaut32.VarCat() retval=80020005 ret=7350a374 ... 0028:Call KERNEL32.MultiByteToWideChar(00000000,00000000,00487df8 "IMSSA_Canada",ffffffff,00000000,00000000) ret=73445432 0028:Ret KERNEL32.MultiByteToWideChar() retval=0000000d ret=73445432 0028:Call oleaut32.SysAllocStringLen(00000000,0000000c) ret=7344543d 0028:trace:ole:SysAllocStringLen (null) 0028:Ret oleaut32.SysAllocStringLen() retval=010ac034 ret=7344543d 0028:Call KERNEL32.MultiByteToWideChar(00000000,00000000,00487df8 "IMSSA_Canada",ffffffff,010ac034,0000000d) ret=73445455 0028:Ret KERNEL32.MultiByteToWideChar() retval=0000000d ret=73445455 0028:Call KERNEL32.RaiseException(c000008f,00000001,00000002,0033f4e4) ret=73444b1a 0028:trace:seh:raise_exception code=c000008f flags=1 addr=0x7b83a913 ip=7b83a913 tid=0028 0028:trace:seh:raise_exception info[0]=deadcafe 0028:trace:seh:raise_exception info[1]=deadcafe 0028:trace:seh:raise_exception eax=7b826989 ebx=7b8ba000 ecx=deadcafe edx=0033f44c esi=0033f4e4 edi=0033f4b0 0028:trace:seh:raise_exception ebp=0033f488 esp=0033f424 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00200287 0028:trace:seh:call_stack_handlers calling handler at 0x40eaf6 code=c000008f flags=1 ... 0028:Call winex11.drv.SetWindowText(0001008c,010ac6e0 L"Error initializing program: Type mismatch") ret=7ec9f739 --- snip ---
Debugger session:
--- snip --- Wine-dbg>b *0x0076303B
(3rd time hit)
Wine-dbg>bt Backtrace: =>0 0x7e7ec285 VARIANT_Coerce+0x231(pd=0x33f248, lcid=0, wFlags=0, ps=0x33f238, vt=0x8) [/home/focht/projects/wine/wine-git/dlls/oleaut32/variant.c:98] in oleaut32 (0x0033f1d8) 1 0x7e7f03fc VariantChangeTypeEx+0x347(pvargDest=<couldn't compute location>, pvargSrc=<couldn't compute location>, lcid=<couldn't compute location>, wFlags=0, vt=0x8) [/home/focht/projects/wine/wine-git/dlls/oleaut32/variant.c:1047] in oleaut32 (0x0033f288) 2 0x7e7fe3dd VARIANT_FromDisp+0xea(pdispIn=0x108ded0, lcid=0, pOut=0x33f460, vt=0x8, dwFlags=0) [/home/focht/projects/wine/wine-git/dlls/oleaut32/vartype.c:132] in oleaut32 (0x0033f328) 3 0x7e808955 VarBstrFromDisp+0x30(pdispIn=0x108ded0, lcid=0, dwFlags=0, pbstrOut=0x33f460) [/home/focht/projects/wine/wine-git/dlls/oleaut32/vartype.c:7061] in oleaut32 (0x0033f358) 4 0x7e7ee76f VARIANT_Coerce+0x271a(pd=0x33f458, lcid=0, wFlags=0, ps=0x33f448, vt=0x8) [/home/focht/projects/wine/wine-git/dlls/oleaut32/variant.c:436] in oleaut32 (0x0033f3e8) 5 0x7e7f03fc VariantChangeTypeEx+0x347(pvargDest=<couldn't compute location>, pvargSrc=<couldn't compute location>, lcid=<couldn't compute location>, wFlags=0, vt=0x8) [/home/focht/projects/wine/wine-git/dlls/oleaut32/variant.c:1047] in oleaut32 (0x0033f498) 6 0x7e7f4de5 VarCat+0x585(left=<couldn't compute location>, right=<couldn't compute location>, out=<couldn't compute location>) [/home/focht/projects/wine/wine-git/dlls/oleaut32/variant.c:2647] in oleaut32 (0x0033f538) 7 0x7350a374 in msvbvm60 (+0xea373) (0x0033f584) 8 0x007da24d in imssa (+0x3da24c) (0x0033f600) 9 0x00763040 in imssa (+0x36303f) (0x0033f6ac) 10 0x00762aa6 in imssa (+0x362aa5) (0x0033f744) 11 0x00766966 in imssa (+0x366965) (0x0033f79c) --- snip ---
__vbaVarCat: left=VT_DISPATCH, right=VT_BSTR
IDispatch_Invoke() succeeds and returns VT_NULL type for default 'value' property (see MSDATL3 calls which happen during IDispatch invoke).
The problem is the conversion to VT_BSTR.
VARIANT_FromDisp() -> VariantChangeTypeEx() -> VARIANT_Coerce()
Wine doesn't handle the case VT_NULL -> VT_BSTR properly, leading to conversion failure (DISP_E_TYPEMISMATCH).
Source: http://source.winehq.org/git/wine.git/blob/8306518424a24a19c9c88d87f98fd3ac0...
--- snip --- 82 static inline HRESULT VARIANT_Coerce(VARIANTARG* pd, LCID lcid, USHORT wFlags, 83 VARIANTARG* ps, VARTYPE vt) 84 { 85 HRESULT res = DISP_E_TYPEMISMATCH; 86 VARTYPE vtFrom = V_TYPE(ps); 87 DWORD dwFlags = 0; ... 134 switch (vt) 135 { ... 413 case VT_BSTR: 414 switch (vtFrom) 415 { 416 case VT_EMPTY: 417 V_BSTR(pd) = SysAllocStringLen(NULL, 0); 418 return V_BSTR(pd) ? S_OK : E_OUTOFMEMORY; ... 437 } 438 break; ... --- snip ---
I changed the code to treat VT_NULL like VT_EMPTY, creating empty bstr and it helped the application to run. Database selection works and forms can be filled (includes database queries).
$ sha1sum IMSSA_EuroDEEM.exe 75d3cc6aac0c2673d537c026789ba012f61ca8a3 IMSSA_EuroDEEM.exe
$ du -sh IMSSA_EuroDEEM.exe 25M IMSSA_EuroDEEM.exe
$ wine --version wine-1.7.10-343-g770d09d
Regards
https://bugs.winehq.org/show_bug.cgi?id=27106
--- Comment #5 from Nikolay Sivov bunglehead@gmail.com --- Nice, I'll add some test.
https://bugs.winehq.org/show_bug.cgi?id=27106
--- Comment #6 from Nikolay Sivov bunglehead@gmail.com --- (In reply to comment #4)
__vbaVarCat: left=VT_DISPATCH, right=VT_BSTR
IDispatch_Invoke() succeeds and returns VT_NULL type for default 'value' property (see MSDATL3 calls which happen during IDispatch invoke).
The problem is the conversion to VT_BSTR.
VARIANT_FromDisp() -> VariantChangeTypeEx() -> VARIANT_Coerce()
Wine doesn't handle the case VT_NULL -> VT_BSTR properly, leading to conversion failure (DISP_E_TYPEMISMATCH).
Apparently we have some tests for that, and it should actually fail as it does now. It seems to me that a problem is in VARIANT_FromDisp(), vartype.c has a comment about some complication to test it.
https://bugs.winehq.org/show_bug.cgi?id=27106
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |leslie_alistair@hotmail.com
--- Comment #7 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- Created attachment 57883 --> https://bugs.winehq.org/attachment.cgi?id=57883 Testcase patch
Ok, This test is the wrong file but after investigating the issue I couldn't be bother to move it. Posting here so it doesn't get lost.
It appears be as simple as VarCat doesn't handle the VT_NULL conversion. This simple test fails on WINE but passes on windows.
https://bugs.winehq.org/show_bug.cgi?id=27106
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |testcase
https://bugs.winehq.org/show_bug.cgi?id=27106
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Fixed by SHA1| |538e46adea88a3d6bdadd7f762e | |b620cd11cbeef Status|NEW |RESOLVED
--- Comment #8 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- Fixed by http://source.winehq.org/git/wine.git/?a=commit;h=538e46adea88a3d6bdadd7f762...
https://bugs.winehq.org/show_bug.cgi?id=27106
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #9 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 2.11.
https://bugs.winehq.org/show_bug.cgi?id=27106
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |2.0.x
https://bugs.winehq.org/show_bug.cgi?id=27106
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|2.0.x |---
--- Comment #10 from Michael Stefaniuc mstefani@winehq.org --- Removing the 2.0.x milestone from bugs included in 2.0.5.