http://bugs.winehq.org/show_bug.cgi?id=7894
dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Component|wine-binary |wine-ole Ever Confirmed| |1 Keywords| |download, regression, source
------- Additional Comments From dank@kegel.com 2007-30-03 12:50 ------- Thanks for the report. (For future reference, the ideal test program is accompanied by source code, lacks windows and buttons, and requires no interaction with the user. But your current app is good enough. Still, could you put the source in that directory, too?)
To see the interesting part, I did WINEDEBUG=+relay,+variant wine cdec.exe It showed
trace:variant:VARIANT_Coerce (0x33f9c0->(VT_EMPTY),0x00000400,0x0002,0x33f9b0->(VT_BSTR),VT_DECIMAL) trace:variant:VarParseNumFromStr (L"&H58",1024,0x00000000,0x33f4c8,0x33f4f4) 0009:Call kernel32.GetLocaleInfoW(00000400,00000051,0033f080,00000002) ret=7e96c154 0009:Ret kernel32.GetLocaleInfoW() retval=00000002 ret=7e96c154 trace:variant:VARIANT_GetLocalisedNumberChars lcid 0x400, cNegativeSymbol=45 '-' 0009:Call kernel32.GetLocaleInfoW(00000400,00000050,0033f080,00000002) ret=7e96c1a8 0009:Ret kernel32.GetLocaleInfoW() retval=00000001 ret=7e96c1a8 trace:variant:VARIANT_GetLocalisedNumberChars lcid 0x400, cPositiveSymbol=43 '+' 0009:Call kernel32.GetLocaleInfoW(00000400,0000000e,0033f080,00000002) ret=7e96c1f9 0009:Ret kernel32.GetLocaleInfoW() retval=00000002 ret=7e96c1f9 trace:variant:VARIANT_GetLocalisedNumberChars lcid 0x400, cDecimalPoint=46 '.' 0009:Call kernel32.GetLocaleInfoW(00000400,0000000f,0033f080,00000002) ret=7e96c24a 0009:Ret kernel32.GetLocaleInfoW() retval=00000002 ret=7e96c24a trace:variant:VARIANT_GetLocalisedNumberChars lcid 0x400, cDigitSeparator=44 ',' 0009:Call kernel32.GetLocaleInfoW(00000400,00000016,0033f080,00000002) ret=7e96c29b 0009:Ret kernel32.GetLocaleInfoW() retval=00000002 ret=7e96c29b trace:variant:VARIANT_GetLocalisedNumberChars lcid 0x400, cCurrencyDecimalPoint=46 '.' 0009:Call kernel32.GetLocaleInfoW(00000400,00000017,0033f080,00000002) ret=7e96c2ec 0009:Ret kernel32.GetLocaleInfoW() retval=00000002 ret=7e96c2ec trace:variant:VARIANT_GetLocalisedNumberChars lcid 0x400, cCurrencyDigitSeparator=44 ',' 0009:Call kernel32.GetLocaleInfoW(00000400,00000014,0033f080,00000004) ret=7e96c33b 0009:Ret kernel32.GetLocaleInfoW() retval=00000002 ret=7e96c33b trace:variant:VARIANT_GetLocalisedNumberChars lcid 0x400, cCurrencyLocal =36,0 '$','^@' trace:variant:VarNumFromParseNum (0x33f4c8,0x33f4f4,0x4000,0x33f4e0) trace:variant:VarNumFromParseNum Overflow: possible return types: 0x4000, value: 58
This kind of reminds me of bug 6533.
Running with native oleaut32 works around this, so it's an oleaut32 bug.