http://bugs.winehq.org/show_bug.cgi?id=14617
Summary: 3rd party treeview stopped working Product: Wine Version: 1.1.1 Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: brendan.dowds@sciencesoft.com CC: julliard@winehq.org
Hello all,
I am a developer for a software company trying to get our software to work on WINE. Unfortunately the third party treeview control we rely heavily on fails to work properly. Namely in that we can not drag items from the treeview.
A small test program (TV_Test.exe), written in VB6, is attached to demostrate this behaviour. Upon clicking on a node the program performs a HitTest to determine what type of node it is and its subsequent behaviour (expand/collapse, allowing dragging, etc.)
To duplicate place the attached folder in the 'Program Files' folder (or where you please) and run the exe, through WINE obviously. Add a node (or several) via the button then click on a node. The message box should then tell you if the test has been passed or not. A successful test should also change to be a couple of right pointing arrows, and the direction of the arrow in the treeview node (if it was the lowest branch level). A failed test reports an error ("Error: Error in loading DLL (No.48) In ClickedNode") in the message box.
Now, this is where I know I'm breaking the rules. But this test program and our main program (which I hope to at to the Apps Database today) both need wine tricks to have been run, specifically vcrun6, for redistribution reasons. However, I've already emailled Dan Kegel and he believes this may not be necessary. I digress.
The test program always failed without winetricks vcrun6, but after it (and before the bad revision) it worked. (Strictly you do not need to run the full vcrun6, you need to remove the msvcrt, oleaut32 and olepro32.dlls from the drive_c/windows/sysem32/ folder and run the vcredist.exe through WINE.)
A colleague looked into this problem in more detail hoping to solve it ourselves (how wrong we were) and we believe that although we use winetricks, in this case it actually helps expose a bug rather than the bug being something intrinsic in what we use winetricks for i.e. replace built-in dlls with native ones.
So in summary, running the test program without vcrun6 has always failed, with vcrun6 it used to work but now doesn't.
Some more relevant information (I hope): - I pulled down the latest git repository this morning (SHA1 ID: 2f445e4e4a74bda3034d993226f05073e777eb85) and tested it, the bug is still there (wine-1.1.1-339-g2f445e4). - I'm running FC6 - gcc version is 4.1.2 - command to run the program is '"wine C:\Program Files\Treeview Test\TV_Test.exe"', assuming the folder is located in 'Program Files' - A git-bisect showed the first bad revision to be between 0.9.37 and 0.9.38 (SHA1 ID:2f445e4e4a74bda3034d993226f05073e777eb85) - Further investigation found that by commenting out just two lines the program worked. And still works in the lastest version. The two lines are in load_library of /dlls/kernel32/module.c and are shown in the attached file (load_library_EDITTED.txt) - The git log for the bad revision is attached. - My intention was to also attach the output of WINEDEBUG but with the below command: $ WINEDEBUG=+relay wine "C:\windows\Program Files\Treeview Test\TV_Test.exe" I get: WINEDEBUG=+relay: Command not found.
Look forward to hearing anything and many thanks.
http://bugs.winehq.org/show_bug.cgi?id=14617
Brendan Dowds brendan.dowds@sciencesoft.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dank@kegel.com
http://bugs.winehq.org/show_bug.cgi?id=14617
--- Comment #1 from Brendan Dowds brendan.dowds@sciencesoft.com 2008-07-24 06:21:48 --- Created an attachment (id=15017) --> (http://bugs.winehq.org/attachment.cgi?id=15017) git log for bad revision
http://bugs.winehq.org/show_bug.cgi?id=14617
--- Comment #2 from Brendan Dowds brendan.dowds@sciencesoft.com 2008-07-24 06:23:05 --- Created an attachment (id=15018) --> (http://bugs.winehq.org/attachment.cgi?id=15018) Editted module which works
http://bugs.winehq.org/show_bug.cgi?id=14617
--- Comment #3 from Brendan Dowds brendan.dowds@sciencesoft.com 2008-07-24 07:36:11 --- Sorry, I couldn't attach the test program folder as it was too large. It is now on my companies ftp site, which will requires a user name and password. For these please contact me at brendan.dowds@sciencesoft.com
http://bugs.winehq.org/show_bug.cgi?id=14617
Brendan Dowds brendan.dowds@sciencesoft.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #15018|0 |1 is obsolete| |
--- Comment #4 from Brendan Dowds brendan.dowds@sciencesoft.com 2008-07-24 08:08:52 --- Created an attachment (id=15019) --> (http://bugs.winehq.org/attachment.cgi?id=15019) diff report of old and new dlls/kernel32/module.c
Changed the way I showed the two line change by a diff instead of a text file for the new version.
Thanks Dan.
http://bugs.winehq.org/show_bug.cgi?id=14617
--- Comment #5 from Brendan Dowds brendan.dowds@sciencesoft.com 2008-07-28 11:09:28 --- Created an attachment (id=15140) --> (http://bugs.winehq.org/attachment.cgi?id=15140) Test/demo program
Small change to how to get the test program. It is now contained in the attached archive, so you no longer have to go to the ftp site.
I took out the unnecessary files and added a script that uses winetricks to get the required runtime libraries.
http://bugs.winehq.org/show_bug.cgi?id=14617
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords| |download
--- Comment #6 from Austin English austinenglish@gmail.com 2009-01-28 00:01:53 --- Still present in git.
http://bugs.winehq.org/show_bug.cgi?id=14617
--- Comment #7 from Andrew Nguyen arethusa26@gmail.com 2009-08-11 06:12:03 --- I still see the problem in wine-1.1.27-40-g0c862de. It looks like an ole32 problem to me, since when I click on the listview, I see:
fixme:ole:TLB_ReadTypeLib Header type magic 0x00405a4d not supported. err:ole:TLB_ReadTypeLib Loading of typelib L"olepro32.dll" failed with error 0 err:ole:userdefined_to_variantvt Could not get typeinfo of hreftype 31 for VT_USERDEFINED, hr = 0x80029c4a
Installing dcom98 with winetricks lets the test binary succeed. Incidentally, reverting the bad commit in Git has no effect on test success, and applying the patch after fixing it up just causes the application to break.
http://bugs.winehq.org/show_bug.cgi?id=14617
Ken Sharp kennybobs@o2.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |ole32
http://bugs.winehq.org/show_bug.cgi?id=14617
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |00cpxxx@gmail.com
--- Comment #8 from Bruno Jesus 00cpxxx@gmail.com 2012-03-26 20:33:47 CDT --- Still the same as last comment in wine 1.5.
http://bugs.winehq.org/show_bug.cgi?id=14617
--- Comment #9 from Nikolay Sivov bunglehead@gmail.com --- This is probably just a matter of adding a typelib to olepro32.dll. I'll take a look.
http://bugs.winehq.org/show_bug.cgi?id=14617
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|ole32 |oleaut32
https://bugs.winehq.org/show_bug.cgi?id=14617
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |ajg02@elfringham.co.uk
--- Comment #10 from Nikolay Sivov bunglehead@gmail.com --- *** Bug 25802 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=14617
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|3rd party treeview stopped |VB ActiveX component |working |depends ob StdType typelib | |from olepro32.dll which is | |missing
https://bugs.winehq.org/show_bug.cgi?id=14617
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|VB ActiveX component |VB ActiveX component |depends ob StdType typelib |depends on StdType typelib |from olepro32.dll which is |from olepro32.dll which is |missing |missing
https://bugs.winehq.org/show_bug.cgi?id=14617
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |https://daneasoft.s3.amazon | |aws.com/demo/dpm_demo0518.e | |xe CC| |focht@gmx.net Summary|VB ActiveX component |Multiple Visual Basic 5/6 |depends on StdType typelib |applications using ActiveX |from olepro32.dll which is |components depend on |missing |Standard OLE Types Typelib | |which is missing from | |'olepro32.dll'
--- Comment #11 from Anastasius Focht focht@gmx.net --- Hello folks,
also encountered with 'Danea Pro Manager' v5 (VB5 app).
Download: https://daneasoft.s3.amazonaws.com/demo/dpm_demo0518.exe
Prerequisite: 'winetricks -q mfc42'
--- snip --- err:module:import_dll Library MFC42.DLL (which is needed by L"C:\windows\system32\Vcfi32.ocx") not found --- snip ---
Relevant part of trace log:
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/DaneaProManager5
$ WINEDEBUG=+tid,+seh,+relay,+variant,+ole wine ./dpm5.exe >>log.txt 2>&1 ... 0023:Ret window proc 0xf04480e (hwnd=0x100ee,msg=LB_SETTOPINDEX,wp=00000016,lp=00000000) retval=00000000 0023:Ret window proc 0x7e9d7a81 (hwnd=0x100ec,msg=CB_SETCURSEL,wp=00000016,lp=00000000) retval=00000016 0023:Ret user32.CallWindowProcA() retval=00000016 ret=0f01c887 ... 0023:trace:ole:ITypeInfo_fnInvoke (0x19e8e30)(0xd155f0,id=-512,flags=0x00000003,0x33f6c4,0x33f748,0x33f6a0,0x33f6c0) 0023:trace:ole:dump_DispParms args=0 named args=0 0023:trace:ole:ITypeInfo2_fnGetVarIndexOfMemId 0x19e8e30 -512 0x33f2f0 0023:trace:ole:ITypeInfo2_fnGetTypeKind (0x19e8e30) type 0x3 0023:trace:ole:ITypeInfo_fnAddRef (0x1a58348)->ref is 1 0023:trace:ole:ITypeLib2_fnAddRef (0x210330) ref=4 0023:trace:ole:ITypeInfo_fnGetRefTypeInfo (0x19e8e30) hreftype 0x0c80 loaded SUCCESS (0x1a58348) 0023:trace:ole:ITypeInfo_fnInvoke (0x1a58348)(0xd155f0,id=-512,flags=0x00000003,0x33f6c4,0x33f748,0x33f6a0,0x33f6c0) 0023:trace:ole:dump_DispParms args=0 named args=0 0023:trace:ole:ITypeInfo2_fnGetVarIndexOfMemId 0x1a58348 -512 0x33eff0 0023:trace:ole:ITypeInfo2_fnGetTypeKind (0x1a58348) type 0x4 0023:trace:ole:ITypeInfo_fnAddRef (0x1a35b90)->ref is 1 0023:trace:ole:ITypeLib2_fnAddRef (0x210330) ref=5 0023:trace:ole:ITypeInfo_fnGetRefTypeInfo (0x1a58348) hreftype 0x0bb8 loaded SUCCESS (0x1a35b90) 0023:trace:ole:ITypeInfo_fnInvoke (0x1a35b90)(0xd155f0,id=-512,flags=0x00000003,0x33f6c4,0x33f748,0x33f6a0,0x33f6c0) 0023:trace:ole:dump_DispParms args=0 named args=0 0023:trace:ole:ITypeInfo_fnInvoke invoking: L"Font"(1) parm0: L"pFont" memid is fffffe00 Param 0: tdesc.vartype 26 (ptr to ptr to VT_USERDEFINED ref = 19) u.paramdesc.wParamFlags PARAMFLAG_FOUT PARAMFLAG_FRETVAL u.paramdesc.lpex (nil) funckind: 1 (pure virtual) invkind: 2 (property get) callconv: 4 (stdcall) oVft: 76 cParamsOpt: 0 wFlags: 0 elemdescFunc (return value type): tdesc.vartype 25 (VT_HRESULT) u.paramdesc.wParamFlags PARAMFLAGS_NONE u.paramdesc.lpex (nil) helpstring: L"Gets/sets the properties of the Font object." entry: invalid ... 0023:trace:ole:ITypeInfo_fnGetRefTypeInfo typeinfo in imported typelib that isn't already loaded ... 0023:Call KERNEL32.EnumResourceNamesW(00000000,7e823f4a L"TYPELIB",7e77eb71,0033eab8) ret=7e77f17d 0023:Ret KERNEL32.EnumResourceNamesW() retval=00000000 ret=7e77f17d 0023:Call KERNEL32.FindActCtxSectionGuid(00000000,00000000,00000006,0021a0e0,0033e758) ret=7e76af6a 0023:Ret KERNEL32.FindActCtxSectionGuid() retval=00000000 ret=7e76af6a ... 0023:Call advapi32.RegOpenKeyExW(80000000,0033e66c L"Typelib\{BEF6E001-A874-101A-8BBA-00AA00300CAB}",00000000,00020019,0033e654) ret=7e76a9cb 0023:Ret advapi32.RegOpenKeyExW() retval=00000002 ret=7e76a9cb ... 0023:Call KERNEL32.CreateFileW(0033e7ce L"C:\windows\system32\olepro32.dll",80000000,00000000,00000000,00000003,00000080,00000000) ret=7e772376 0023:Ret KERNEL32.CreateFileW() retval=00000120 ret=7e772376 ... 0023:Call KERNEL32.LoadLibraryExW(0033e7ce L"C:\windows\system32\olepro32.dll",00000000,0000000b) ret=7e7714c0 0023:Ret KERNEL32.LoadLibraryExW() retval=7e300000 ret=7e7714c0 0023:Call KERNEL32.FindResourceW(7e300000,00000001,7e823a22 L"TYPELIB") ret=7e7714fb 0023:Ret KERNEL32.FindResourceW() retval=00000000 ret=7e7714fb 0023:trace:ole:TLB_PEFile_Open No TYPELIB resource found 0023:Call KERNEL32.FreeLibrary(7e300000) ret=7e771415 0023:Ret KERNEL32.FreeLibrary() retval=00000001 ret=7e771415 ... 0023:trace:ole:LoadTypeLibEx returns 80029c4a 0023:trace:ole:ITypeInfo_fnGetRefTypeInfo (0x1a35b90) hreftype 0x0019 loaded FAILURE ((nil)) 0023:err:ole:userdefined_to_variantvt Could not get typeinfo of hreftype 19 for VT_USERDEFINED, hr = 0x80029c4a 0023:err:ole:typedescvt_to_variantvt cannot convert type 26 into variant VT ... 0023:trace:ole:ITypeInfo_fnInvoke -- 0x80020008 0023:trace:ole:ITypeInfo_fnRelease (0x1a35b90)->(0) 0023:trace:ole:ITypeLib2_fnRelease (0x210330) ref=4 0023:trace:ole:ITypeInfo_fnRelease (0x1a58348)->(0) 0023:trace:ole:ITypeLib2_fnRelease (0x210330) ref=3 0023:trace:ole:ITypeInfo_fnRelease (0x19e8e30)->(1) ... 0023:Call KERNEL32.RaiseException(c000008f,00000001,00000002,0033f604) ret=0f004248 0023:trace:seh:raise_exception code=c000008f flags=1 addr=0x7b83b30f ip=7b83b30f tid=0023 0023:trace:seh:raise_exception info[0]=deadcafe 0023:trace:seh:raise_exception info[1]=deadcafe 0023:trace:seh:raise_exception eax=7b826f95 ebx=7b8bf000 ecx=deadcafe edx=0033f564 esi=0033f604 edi=0033f5d0 0023:trace:seh:raise_exception ebp=0033f5a8 esp=0033f544 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00000283 0023:trace:seh:call_stack_handlers calling handler at 0x40c316 code=c000008f flags=1 ... 0023:Call ole32.CreateErrorInfo(0033f004) ret=0f05b8ca 0023:Ret ole32.CreateErrorInfo() retval=00000000 ret=0f05b8ca ... 0023:trace:ole:ICreateErrorInfoImpl_SetDescription (0x1a382b0): L"Variable uses an Automation type not supported in Visual Basic" ... 0023:Call KERNEL32.RaiseException(c000008f,00000001,00000002,0033f700) ret=0f004248 0023:trace:seh:raise_exception code=c000008f flags=1 addr=0x7b83b30f ip=7b83b30f tid=0023 0023:trace:seh:raise_exception info[0]=deadcafe 0023:trace:seh:raise_exception info[1]=deadcafe 0023:trace:seh:raise_exception eax=7b826f95 ebx=7b8bf000 ecx=deadcafe edx=0033f654 esi=0033f700 edi=0033f6c0 0023:trace:seh:raise_exception ebp=0033f698 esp=0033f634 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00000283 0023:trace:seh:call_stack_handlers calling handler at 0x40c316 code=c000008f flags=1 ... 0023:Call user32.MessageBoxIndirectA(0033f544) ret=0f0aee19 ... 0023:Call winex11.drv.SetWindowText(00030224,019b5138 L"Si \00e8 verificato un errore durante l'elaborazione. \r\rCodice errore: 458\rDescrizione: Variable uses an Automation type not supported in Visual Basic\rProcedura: modMain!bApriDB") ret=7e950809 ... --- snip ---
Visual Basic project file, showing TLB reference:
--- snip --- Reference=*\G{BEF6E001-A874-101A-8BBA-00AA00300CAB}#2.0#0#C:\WINDOWS\system32\olepro32.dll#Standard OLE Types --- snip ---
Various VB apps suffer from it and this is easy to fix.
$ sha1sum dpm_demo0518.exe eae94c1de60252f9514f46ef3f17ca59c7e78a5c dpm_demo0518.exe
$ du -sh dpm_demo0518.exe 6.3M dpm_demo0518.exe
$ wine --version wine-1.7.33-146-g102d893
Regards
https://bugs.winehq.org/show_bug.cgi?id=14617
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |leslie_alistair@hotmail.com
--- Comment #12 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- Created attachment 53134 --> https://bugs.winehq.org/attachment.cgi?id=53134 Add typelib resourece to oleproc32
https://bugs.winehq.org/show_bug.cgi?id=14617
--- Comment #13 from Nikolay Sivov bunglehead@gmail.com --- It has to be in SLTG format, same story as with stdole32.tlb.
https://bugs.winehq.org/show_bug.cgi?id=14617
--- Comment #14 from Dmitry Timoshkov dmitry@baikal.ru --- (In reply to Nikolay Sivov from comment #13)
It has to be in SLTG format, same story as with stdole32.tlb.
That doesn't prevent stdole32.tlb from being generated in MSFT format.
(In reply to Alistair Leslie-Hughes from comment #12)
Created attachment 53134 [details] Add typelib resourece to oleproc32
Looks good to me, except the commented out coclass statement which needs to be fixed before submission. Also some of the types are duplicated with stdole32.tlb, probably just do importlib("stdole32.tlb") instead?
https://bugs.winehq.org/show_bug.cgi?id=14617
--- Comment #15 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- (In reply to Dmitry Timoshkov from comment #14)
Looks good to me, except the commented out coclass statement which needs to be fixed before submission. Also some of the types are duplicated with stdole32.tlb, probably just do importlib("stdole32.tlb") instead?
We cant just import the library since these types need to be part of the "library StdType". I'll see if I can remove more of the duplicate values shortly.
More to the point, Does it work for you?
https://bugs.winehq.org/show_bug.cgi?id=14617
--- Comment #16 from Dmitry Timoshkov dmitry@baikal.ru --- (In reply to Alistair Leslie-Hughes from comment #15)
More to the point, Does it work for you?
Yes it does. The application from the bug 12688 executes a lot further with olepro32 typelib, it still fails later due to a VariantChangeTypeEx failure, but that's a different problem.
https://bugs.winehq.org/show_bug.cgi?id=14617
super_man@post.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |super_man@post.com
https://bugs.winehq.org/show_bug.cgi?id=14617
Jeff D. Hanson jhansonxi@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jhansonxi@gmail.com
--- Comment #17 from Jeff D. Hanson jhansonxi@gmail.com --- A major function (Circuit Design>Everything S-Parameters) of AppCAD, a freeware RF circuit design tool, seems to have this bug:
err:ole:CoGetClassObject class {00000000-0000-0000-0000-000000000000} not registered err:ole:CoGetClassObject no class object {00000000-0000-0000-0000-000000000000} could be created for context 0x1 err:ole:userdefined_to_variantvt Could not get typeinfo of hreftype 25 for VT_USERDEFINED, hr = 0x80029c4a err:ole:userdefined_to_variantvt Could not get typeinfo of hreftype
It uses VB6.
https://bugs.winehq.org/show_bug.cgi?id=14617
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch
https://bugs.winehq.org/show_bug.cgi?id=14617
--- Comment #18 from Dan Kegel dank@kegel.com --- This AppCAD? http://www.hp.woodshot.com/ Which version? Multiple versions seem to be offered there.
https://bugs.winehq.org/show_bug.cgi?id=14617
--- Comment #19 from Jeff D. Hanson jhansonxi@gmail.com --- (In reply to Dan Kegel from comment #18)
This AppCAD? http://www.hp.woodshot.com/ Which version? Multiple versions seem to be offered there.
As per the linked AppDB entries it affect both 3.x and 4.x series (currently 3.0.2 and 4.0.0 as per the test reports). The "classic" version at the bottom of the page is a DOS app which I didn't test.
https://bugs.winehq.org/show_bug.cgi?id=14617
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |STAGED CC| |erich.e.hoover@wine-staging | |.com, michael@fds-team.de, | |sebastian@fds-team.de Staged patchset| |https://github.com/wine-com | |pholio/wine-staging/tree/ma | |ster/patches/olepro32-Typel | |ib
https://bugs.winehq.org/show_bug.cgi?id=14617
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |25aa26e81537f904f0c2c3df7bb | |edc3d70128616 Status|STAGED |RESOLVED Resolution|--- |FIXED
--- Comment #20 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- Fixed by http://source.winehq.org/git/wine.git/?a=commit;h=25aa26e81537f904f0c2c3df7b...
https://bugs.winehq.org/show_bug.cgi?id=14617
Michael Stefaniuc mstefani@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mstefani@redhat.com Target Milestone|--- |1.8.x
https://bugs.winehq.org/show_bug.cgi?id=14617
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #21 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 1.9.3.
https://bugs.winehq.org/show_bug.cgi?id=14617
Michael Stefaniuc mstefani@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|1.8.x |---
--- Comment #22 from Michael Stefaniuc mstefani@redhat.com --- Removing 1.8.x milestone from bugs included in 1.8.2.