[Bug 28605] BurnPlot (VB6 app) fails to start (needs wshom.ocx WshShell3_GetIDsOfNames implementation)

wine-bugs at winehq.org wine-bugs at winehq.org
Tue Dec 20 09:36:48 CST 2011


http://bugs.winehq.org/show_bug.cgi?id=28605

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |focht at gmx.net
          Component|oleaut32                    |-unknown
            Summary|BurnPlot fails to start     |BurnPlot (VB6 app) fails to
                   |                            |start (needs wshom.ocx
                   |                            |WshShell3_GetIDsOfNames
                   |                            |implementation)

--- Comment #2 from Anastasius Focht <focht at gmx.net> 2011-12-20 09:36:48 CST ---
Hello,

confirming, it seems "WshShell3_GetIDsOfNames" stub is the culprit here.

That WSH stuff is late bound in VB6 app.
The app/VB6 runtime needs GetIDsOfNames() to find the dispid that represents
the function.
Once the ID is known, invoke can be called.

Prerequisite:

clean WINEPREFIX
'winetricks -q vbrun60'

WINEDEBUG=+tid,+seh,+relay,+snoop,+variant,+ole

--- snip ---
0024:CALL MSVBVM60.rtcCreateObject2(<unknown, check return>) ret=00413907
0024:Call ole32.CLSIDFromProgID(00407040 L"WScript.Shell",0032f800)
ret=660d965e 
...
0024:Call KERNEL32.LoadLibraryExW(0032f3c2
L"C:\\windows\\system32\\wshom.ocx",00000000,00000008) ret=6839ce76
...
0024:Ret  KERNEL32.LoadLibraryExW() retval=51a90000 ret=6839ce76
...
0024:trace:ole:apartment_getclassobject added new loaded dll
L"C:\\windows\\system32\\wshom.ocx"
0024:trace:ole:apartment_getclassobject calling DllGetClassObject 0x51aa063c
0024:Call wshom.ocx.DllGetClassObject(0032f800,6847e42c,0032f6bc) ret=6839ec12
0024:Ret  wshom.ocx.DllGetClassObject() retval=00000000 ret=6839ec12
...
0024:Ret  ole32.CoCreateInstance() retval=00000000 ret=660d9684
...
0024:fixme:wshom:WshShell3_QueryInterface Unknown iface
{7fd52380-4e07-101b-ae2d-08002b2ec713}
0024:fixme:wshom:WshShell3_QueryInterface Unknown iface
{37d84f60-42cb-11ce-8135-00aa004bb851}
0024:RET  MSVBVM60.rtcCreateObject2(0032f870,00407040,00000000) retval=0032f870
ret=00413907
0024:CALL MSVBVM60.__vbaObjVar(<unknown, check return>) ret=00413911
0024:RET  MSVBVM60.__vbaObjVar(0032f870) retval=51aa6a04 ret=00413911
0024:CALL MSVBVM60.__vbaObjSetAddref(0032f884,51aa6a04) ret=0041391e
0024:RET  MSVBVM60.__vbaObjSetAddref() retval=51aa6a04 ret=0041391e
0024:CALL MSVBVM60.__vbaFreeVar() ret=00413929
0024:RET  MSVBVM60.__vbaFreeVar() retval=00000002 ret=00413929
0024:CALL MSVBVM60.__vbaObjIs(<unknown, check return>) ret=00413934
0024:RET  MSVBVM60.__vbaObjIs(51aa6a04,00000000) retval=00000000 ret=00413934
0024:CALL
MSVBVM60.__vbaLateMemCallLd(0032f870,51aa6a04,00407070,00000001,00000008,0032f868,00407060,00020020)
ret=0041396e
0024:fixme:wshom:WshShell3_GetIDsOfNames
({00000000-0000-0000-0000-000000000000} 0x32f80c 1 1033 0x32f810) 
...
0024:Call KERNEL32.MultiByteToWideChar(00000000,00000000,00404b0c
"DVDGraph",ffffffff,0014c48c,00000009) ret=660da0db
0024:Ret  KERNEL32.MultiByteToWideChar() retval=00000009 ret=660da0db
0024:Call KERNEL32.RaiseException(c000008f,00000001,00000002,0032f788)
ret=660d0956
0024:trace:seh:raise_exception code=c000008f flags=1 addr=0x7b838b5b
ip=7b838b5b tid=0024
0024:trace:seh:raise_exception  info[0]=deadcafe
0024:trace:seh:raise_exception  info[1]=deadcafe
0024:trace:seh:raise_exception  eax=7b826171 ebx=7b8a97a8 ecx=deadcafe
edx=0032f6a4 esi=0032f788 edi=0032f700
0024:trace:seh:raise_exception  ebp=0032f6e8 esp=0032f684 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00000203
0024:trace:seh:call_vectored_handlers calling handler at 0x68aece0e
code=c000008f flags=1
0024:trace:seh:call_vectored_handlers handler at 0x68aece0e returned 0
0024:trace:seh:call_stack_handlers calling handler at 0x401576 code=c000008f
flags=1
0024:CALL MSVBVM60.__vbaExceptHandler(<unknown, check return>) ret=7bc7ac85
0024:Call KERNEL32.IsBadReadPtr(00401528,00000004) ret=660e3cfd
0024:Ret  KERNEL32.IsBadReadPtr() retval=00000000 ret=660e3cfd
0024:RET  MSVBVM60.__vbaExceptHandler() retval=00000001 ret=7bc7ac85 
...
--- snip ---

The other problem is most likely related to special folders collection (app
tries to find "Desktop" object in returned IWshCollection).
That belongs to a separate bug.

$ sha1sum BurnPlot.exe 
2f7c60de78ccf59409a365396e1d17cde5cae2ae  BurnPlot.exe

$ wine --version
wine-1.3.35-43-gd9d4a06

Regards

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list