https://bugs.winehq.org/show_bug.cgi?id=35778
Bug ID: 35778 Summary: Samsung Magician v4.0 fails to install (widl emits incorrect var type for IDispatch* defaultvalue) Product: Wine Version: 1.7.14 Hardware: x86 OS: Linux Status: NEW Severity: normal Priority: P2 Component: tools Assignee: wine-bugs@winehq.org Reporter: focht@gmx.net
Hello folks,
I split this off from bug 35390 because this looks like widl issue.
https://bugs.winehq.org/show_bug.cgi?id=35390#c7
--- quote --- So next thing to check is vartype of default value for this parameter in native typelib. If it's VT_DISPATCH|VT_BYREF, unlikely I think cause only NULL value makes sense as a default, then widl is to blame, if it's stored at VT_PTR type we need ITypeInfo code to deal with that. It's also possible that both parts are broken. --- quote ---
I downloaded native wbemdisp and registered it (regsvr32)
http://www.dlldump.com/download-dll-files_new.php/dllfiles/W/wbemdisp.dll/5....
http://filemare.com/browse/62.99.77.70/WBEMDISP.TLB
With that part the installer goes further (succeeds) and trace log reveals the defaultvalue type for IDispatch* is VT_DISPATCH (Wine's widl generates VT_PTR)
--- snip --- $ WINEDEBUG=+tid,+seh,+tlb,+wbemprox,+wbemdisp,+ole,+variant wine ./Samsung_Magician_Setup_v4.0.exe >>log.txt 2>&1 ... 002c:trace:ole:ITypeInfo_fnInvoke changing args 002c:trace:ole:dump_Variant 0x681db8->{VT_BSTR,(null)} 002c:trace:ole:dump_Variant 0x681da8->{VT_BSTR,L"root\CIMV2"} 002c:trace:ole:dump_Variant 0x681d98->{VT_BSTR,(null)} 002c:trace:ole:dump_Variant 0x681d88->{VT_BSTR,(null)} 002c:trace:variant:VariantCopy (0x1684c8->(VT_EMPTY),0x15dce0->(VT_BSTR)) 002c:trace:variant:VariantClear (0x1684c8->(VT_EMPTY)) 002c:trace:variant:VariantCopy (0x1684d8->(VT_EMPTY),0x15dcf8->(VT_BSTR)) 002c:trace:variant:VariantClear (0x1684d8->(VT_EMPTY)) 002c:trace:variant:VariantCopy (0x1684e8->(VT_EMPTY),0x15dd10->(VT_I4)) 002c:trace:variant:VariantClear (0x1684e8->(VT_EMPTY)) 002c:trace:variant:VariantCopy (0x1684f8->(VT_EMPTY),0x15dd28->(VT_DISPATCH)) 002c:trace:variant:VariantClear (0x1684f8->(VT_EMPTY)) 002c:trace:ole:DispCallFunc (0x13f358, 28, 4, 10, 9, 0x1685cc, 0x1685a8, 0x33f610 (vt=10)) 002c:trace:ole:DispCallFunc arg 0: type 8 002c:trace:ole:dump_Variant 0x681db8->{VT_BSTR,(null)} 002c:trace:ole:DispCallFunc arg 1: type 8 002c:trace:ole:dump_Variant 0x681da8->{VT_BSTR,L"root\CIMV2"} 002c:trace:ole:DispCallFunc arg 2: type 8 002c:trace:ole:dump_Variant 0x681d98->{VT_BSTR,(null)} 002c:trace:ole:DispCallFunc arg 3: type 8 002c:trace:ole:dump_Variant 0x681d88->{VT_BSTR,(null)} 002c:trace:ole:DispCallFunc arg 4: type 8 002c:trace:ole:dump_Variant 0x1684c8->{VT_BSTR,L""} 002c:trace:ole:DispCallFunc arg 5: type 8 002c:trace:ole:dump_Variant 0x1684d8->{VT_BSTR,L""} 002c:trace:ole:DispCallFunc arg 6: type 3 002c:trace:ole:dump_Variant 0x1684e8->{VT_I4,0} 002c:trace:ole:DispCallFunc arg 7: type 9 002c:trace:ole:dump_Variant 0x1684f8->{VT_DISPATCH,(nil)} 002c:trace:ole:DispCallFunc arg 8: type 16393 002c:trace:ole:dump_Variant 0x168508->{VT_DISPATCH|VT_BYREF,0x33f600} --- snip ---
Regards
https://bugs.winehq.org/show_bug.cgi?id=35778
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, Installer URL| |http://orange.micrologik.fr | |/Progs/SSD/Samsung_Magician | |_Setup_v4.0.exe
https://bugs.winehq.org/show_bug.cgi?id=35778
--- Comment #1 from Nikolay Sivov bunglehead@gmail.com --- Interesting, I'll do some testing.
http://bugs.winehq.org/show_bug.cgi?id=35778
--- Comment #2 from Nikolay Sivov bunglehead@gmail.com --- Created attachment 47788 --> http://bugs.winehq.org/attachment.cgi?id=47788 patch
Here's a fix for default value type. It allows me to actually see a stub being called:
--- fixme:wbemdisp:locator_ConnectServer 0x133750, (null), L"root\CIMV2", (null), (nil), L"", L"", 0x00000000, (nil), 0x33f840 ---
After that we'll need to actually implement wbemdisp part.
https://bugs.winehq.org/show_bug.cgi?id=35778
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |ea9e7b631832d892eeff1919c22 | |f48f1c312620d Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #3 from Anastasius Focht focht@gmx.net --- Hello folks,
this is fixed by commit http://source.winehq.org/git/wine.git/commitdiff/ea9e7b631832d892eeff1919c22...
Thanks Nikolay
--- snip --- ... 003b:trace:ole:DispCallFunc (0x13d0b8, 28, 4, 10, 9, 0x14dd74, 0x14dd50, 0x33f5c0 (vt=10)) 003b:trace:ole:DispCallFunc arg 0: type 8 003b:trace:ole:dump_Variant 0x681db8->{VT_BSTR,(null)} 003b:trace:ole:DispCallFunc arg 1: type 8 003b:trace:ole:dump_Variant 0x681da8->{VT_BSTR,L"root\CIMV2"} 003b:trace:ole:DispCallFunc arg 2: type 8 003b:trace:ole:dump_Variant 0x681d98->{VT_BSTR,(null)} 003b:trace:ole:DispCallFunc arg 3: type 8 003b:trace:ole:dump_Variant 0x681d88->{VT_BSTR,(null)} 003b:trace:ole:DispCallFunc arg 4: type 8 003b:trace:ole:dump_Variant 0x14dc70->{VT_BSTR,L""} 003b:trace:ole:DispCallFunc arg 5: type 8 003b:trace:ole:dump_Variant 0x14dc80->{VT_BSTR,L""} 003b:trace:ole:DispCallFunc arg 6: type 3 003b:trace:ole:dump_Variant 0x14dc90->{VT_I4,0} 003b:trace:ole:DispCallFunc arg 7: type 9 003b:trace:ole:dump_Variant 0x14dca0->{VT_DISPATCH,(nil)} 003b:trace:ole:DispCallFunc arg 8: type 16393 003b:trace:ole:dump_Variant 0x14dcb0->{VT_DISPATCH|VT_BYREF,0x33f5b0} 003b:fixme:wbemdisp:locator_ConnectServer 0x13d0b8, (null), L"root\CIMV2", (null), (nil), L"", L"", 0x00000000, (nil), 0x33f5b0 003b:trace:ole:DispCallFunc retval: 0x33f5c0->{VT_ERROR} 003b:trace:variant:VariantClear (0x14dc30->(VT_EMPTY)) 003b:trace:variant:VariantClear (0x14dcc0->(VT_EMPTY)) 003b:trace:variant:VariantClear (0x14dc40->(VT_EMPTY)) 003b:trace:variant:VariantClear (0x14dcd0->(VT_EMPTY)) 003b:trace:variant:VariantClear (0x14dc50->(VT_EMPTY)) 003b:trace:variant:VariantClear (0x14dce0->(VT_EMPTY)) 003b:trace:variant:VariantClear (0x14dc60->(VT_EMPTY)) 003b:trace:variant:VariantClear (0x14dcf0->(VT_EMPTY)) 003b:trace:variant:VariantClear (0x14dc70->(VT_BSTR)) 003b:trace:variant:VariantClear (0x14dd00->(VT_EMPTY)) 003b:trace:variant:VariantClear (0x14dc80->(VT_BSTR)) 003b:trace:variant:VariantClear (0x14dd10->(VT_EMPTY)) 003b:trace:variant:VariantClear (0x14dc90->(VT_I4)) 003b:trace:variant:VariantClear (0x14dd20->(VT_EMPTY)) 003b:trace:variant:VariantClear (0x14dca0->(VT_DISPATCH)) 003b:trace:variant:VariantClear (0x14dd30->(VT_EMPTY)) 003b:trace:ole:ITypeInfo_fnInvoke [retval] value: 0x14dcb0->{VT_DISPATCH|VT_BYREF,0x33f5b0} 003b:trace:variant:VariantInit (0x603210) 003b:trace:variant:VariantCopyInd (0x603210->(VT_EMPTY),0x14dcb0->(VT_DISPATCH|VT_BYREF)) 003b:trace:variant:VariantClear (0x603210->(VT_EMPTY)) 003b:trace:variant:VariantCopyInd returning 0x00000000, 0x603210->(VT_DISPATCH) 003b:trace:variant:VARIANT_ClearInd (0x14dcb0->(VT_DISPATCH|VT_BYREF)) 003b:trace:variant:VariantClear (0x14dd40->(VT_EMPTY)) 003b:warn:ole:ITypeInfo_fnInvoke invoked function failed with error 0x80004001 --- snip ---
SWbemLocator::ConnectServer() stub is bug 35076
Regards
https://bugs.winehq.org/show_bug.cgi?id=35778
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #4 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 1.7.15.
https://bugs.winehq.org/show_bug.cgi?id=35778
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://orange.micrologik.fr |https://web.archive.org/web |/Progs/SSD/Samsung_Magician |/20210201183347/https://dow |_Setup_v4.0.exe |nloadcenter.samsung.com/con | |tent/SW/201302/201302051428 | |58776/Samsung_Magician_v4.0 | |.exe