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.