http://bugs.winehq.org/show_bug.cgi?id=8539
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL|http://petruska.stardock.ne |http://uni-smr.ac.ru/archiv |t/Software/VMware.html |e/vm/VMWare/utils/ CC| |focht@gmx.net Summary|VMXBuider crash |VMXBuider 0.8 (VB6 app) | |fails to create new VM, | |reporting "Run-time error | |'-2147417848 (80010108)': | |Automation error"
--- Comment #17 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming, still present.
prerequisite: 'winetricks -q vb6run comctl32ocx tabctl32'
The app complains about missing 'MSCOMCT2.OCX' (Microsoft Windows Common Controls-2 6.0) on startup.
http://support.microsoft.com/kb/297381
Download: http://activex.microsoft.com/controls/vb6/mscomct2.cab
Maybe this could be added to winetricks.
Trace log:
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/RDPSoftware/VMware/VMX Builder
$ WINEDEBUG=+tid,+seh,+relay,+snoop,+ole,+variant wine ./VMXBuilder.exe
log.txt 2>&1
... 0025:CALL MSVBVM60.__vbaAryRecCopy(<unknown, check return>) ret=48754a9c 0025:Call oleaut32.SafeArrayCopy(01b85044,01b84fd0) ret=66103c0e 0025:trace:variant:SafeArrayCopy (0x1b85044,0x1b84fd0) 0025:trace:variant:SafeArrayGetVartype (0x1b85044,0x33e102) 0025:trace:variant:SafeArrayAllocDescriptorEx (36->VT_RECORD,2,0x1b84fd0) 0025:trace:variant:SafeArrayAllocDescriptor (2,0x1b84fd0) 0025:Call ntdll.RtlAllocateHeap(00110000,00000008,00000030) ret=7e7b19ac 0025:Ret ntdll.RtlAllocateHeap() retval=01ba3ed0 ret=7e7b19ac 0025:trace:variant:SafeArrayAllocDescriptor (2): 32 bytes allocated for descriptor. 0025:Call ntdll.RtlAllocateHeap(00110000,00000008,000001a0) ret=7e7b19ac 0025:Ret ntdll.RtlAllocateHeap() retval=01ba3f08 ret=7e7b19ac 0025:trace:variant:SafeArrayGetRecordInfo (0x1b85044,0x33e0a4) 0025:trace:ole:IRecordInfoImpl_AddRef (0x1b839a8) -> 14 0025:trace:variant:SafeArraySetRecordInfo (0x1ba3ee0,0x1b839a8) 0025:trace:ole:IRecordInfoImpl_AddRef (0x1b839a8) -> 15 0025:trace:ole:IRecordInfoImpl_Release (0x1b839a8) -> 14 0025:Ret oleaut32.SafeArrayCopy() retval=00000000 ret=66103c0e 0025:RET MSVBVM60.__vbaAryRecCopy(4872ce2c,01b84fd0,0033e1ac) retval=00000000 ret=48754a9c ... 0025:CALL MSVBVM60.__vbaAryRecCopy(4872ce2c,01b84fd0,0033e1ac) ret=48754a9c 0025:Call oleaut32.SysFreeString(00000000) ret=6600e1a9 0025:Ret oleaut32.SysFreeString() retval=0033e130 ret=6600e1a9 0025:Call oleaut32.SysFreeString(00000000) ret=6600e1ae 0025:Ret oleaut32.SysFreeString() retval=0033e130 ret=6600e1ae 0025:Call oleaut32.SysFreeString(00000000) ret=6600e1b3 0025:Ret oleaut32.SysFreeString() retval=0033e130 ret=6600e1b3 0025:Call KERNEL32.MultiByteToWideChar(00000000,00000000,4872b434 "VirtualMachineComps",ffffffff,00000000,00000000) ret=660da0b1 0025:Ret KERNEL32.MultiByteToWideChar() retval=00000014 ret=660da0b1 0025:Call oleaut32.SysAllocStringLen(00000000,00000013) ret=660da0bc 0025:trace:ole:SysAllocStringLen (null) 0025:Ret oleaut32.SysAllocStringLen() retval=01b95764 ret=660da0bc 0025:Call KERNEL32.MultiByteToWideChar(00000000,00000000,4872b434 "VirtualMachineComps",ffffffff,01b95764,00000014) ret=660da0db 0025:Ret KERNEL32.MultiByteToWideChar() retval=00000014 ret=660da0db 0025:Call KERNEL32.RaiseException(c000008f,00000001,00000002,0033e154) ret=660d0956 0025:trace:seh:raise_exception code=c000008f flags=1 addr=0x7b83a89f ip=7b83a89f tid=0025 0025:trace:seh:raise_exception info[0]=deadcafe 0025:trace:seh:raise_exception info[1]=deadcafe 0025:trace:seh:raise_exception eax=7b826921 ebx=7b8ba000 ecx=deadcafe edx=0033e0b4 esi=0033e154 edi=0033e120 0025:trace:seh:raise_exception ebp=0033e0f8 esp=0033e094 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00200283 0025:trace:seh:call_stack_handlers calling handler at 0x48723286 code=c000008f flags=1 0025:CALL MSVBVM60.__vbaExceptHandler(<unknown, check return>) ret=7bc864f1 ... 0025:Call winex11.drv.SetWindowText(00020324,00215058 L"Run-time error '-2147417848 (80010108)':\n\nAutomation error") ret=7ec9f739 0025:Ret winex11.drv.SetWindowText() retval=00000000 ret=7ec9f739 ... --- snip ---
The exception is thrown from VB6 runtime on __vbaAryRecCopy entry, it doesn't expect psa->fFeatures = 0x32 (FADF_RECORD | FADF_FIXEDSIZE | FADF_STATIC).
There is a test for psa->fFeatures flags: if any of (FADF_FIXEDSIZE | FADF_EMBEDDED | FADF_STATIC | FADF_AUTO) set (0x17) -> throw. The FADF_RECORD type is ok (expected).
Maybe native 'sanitizes' some feature flags during first __vbaAryRecCopy from target safearray hence the second time when the safe array is now passed as source array these flags are not present (the app VB code doesn't touch them in between both __vbaAryRecCopy calls).
The caller is 'VMComps.dll' which consists of VB6 compiled native code (called from main VB6 VMXBuilder.exe).
$ sha1sum VMXBuilderSetup.exe f86ac9a2cc7070e200dce0aac0d7c2bd1e8f4543 VMXBuilderSetup.exe
$ du -sh VMXBuilderSetup.exe 520K VMXBuilderSetup.exe
$ wine --version wine-1.7.9-286-g8f53710
Regards