[Bug 8539] VMXBuider 0.8 (VB6 app) fails to create new VM, reporting "Run-time error '-2147417848 (80010108)': Automation error"

wine-bugs at winehq.org wine-bugs at winehq.org
Wed Jan 1 16:17:24 CST 2014


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

Anastasius Focht <focht at 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 at 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 at 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

-- 
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