[Bug 9095] DM Genie 2.x fails on startup with 'ITypeInfo_fnInvoke failed to convert param 1 to VT_VARIANT|VT_ARRAY|VT_BYREF from VT_I2|VT_BYREF'

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Mar 16 13:10:26 CDT 2014


https://bugs.winehq.org/show_bug.cgi?id=9095

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |focht at gmx.net
            Summary|ITypeInfo_fnInvoke failed   |DM Genie 2.x fails on
                   |to convert param 1 to       |startup with
                   |VT_VARIANT|VT_ARRAY|VT_BYRE |'ITypeInfo_fnInvoke failed
                   |F from VT_I2|VT_BYREF       |to convert param 1 to
                   |                            |VT_VARIANT|VT_ARRAY|VT_BYRE
                   |                            |F from VT_I2|VT_BYREF'

--- Comment #9 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

confirming, still present.

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/DM Genie

$ WINEDEBUG=+tid,+seh,+loaddll,+process,+vbscript,+ole,+variant wine
./DMGenie.exe >>log.txt 2>&1
...
0023:trace:vbscript:VBScriptParse_ParseScriptText (0x43e1c70)->(L"Public Sub
SkillBonus(FinalCheck)\r\nn = func.GetSkillNum(\"SWIM\")\r\nif n > 0 then\r\n  
 cr.SkillTotal(n) = cr.SkillTotal(n) + FinalCheck\r\nend if\r\n\r\n'if
cRace.PCRace then\r\n'n = func.GetSkillNum(\"JUMP\")\r\n'if n > 0 then\r\n'   
sp = cr.Speed\r\n'    modifier_to_jump = 0\r\n'    if sp <= "... (null) (nil)
(null) 0 1 2 (nil) 0x33e3ec)
0023:trace:ole:SysAllocStringLen L"func"
0023:trace:ole:SysAllocStringLen L"GetSkillNum"
0023:trace:ole:SysAllocStringLen L"n"
0023:trace:ole:SysAllocStringLen L"n"
0023:warn:vbscript:compile_call_statement converting call expr to assign expr
0023:trace:ole:SysAllocStringLen L"cr"
0023:trace:ole:SysAllocStringLen L"n"
0023:trace:ole:SysAllocStringLen L"cr"
0023:trace:ole:SysAllocStringLen L"SkillTotal"
0023:trace:ole:SysAllocStringLen L"FinalCheck"
0023:trace:ole:SysAllocStringLen L"n"
0023:trace:ole:SysAllocStringLen L"SkillTotal"
0023:trace:vbscript:ScriptDisp_AddRef (0x43e7858) ref=2
0023:trace:vbscript:interp_ret 
0023:trace:variant:VariantClear (0x33e2a0->(VT_EMPTY))
0023:trace:vbscript:ScriptDisp_Release (0x43e7858) ref=1
0023:trace:ole:DispCallFunc retval: 0x33e580->{VT_ERROR}
0023:trace:variant:VariantClear (0x44631b0->(VT_EMPTY))
0023:trace:variant:VariantClear (0x44631c0->(VT_EMPTY))
0023:trace:ole:ITypeInfo_fnInvoke -- 0x00000000
0023:trace:ole:ITypeInfo_fnRelease (0x4408cd0)->(1)
0023:trace:ole:ITypeInfo_fnAddRef (0x4408cd0)->ref is 2
0023:trace:ole:SetErrorInfo (0, (nil))
0023:trace:ole:ITypeInfo_fnInvoke
(0x4408cd0)(0x43e1b88,id=2003,flags=0x00000001,0x33e9f0,(nil),0x33e9d0,0x33ea00)
0023:trace:ole:dump_DispParms args=2 named args=0
0023:trace:ole:dump_DispParms args:
0023:trace:ole:dump_Variant 0x33ea34->{VT_I2|VT_BYREF,0x4439b5e}
0023:trace:ole:dump_Variant 0x33ea44->{VT_BSTR,L"SkillBonus"}
0023:trace:ole:ITypeInfo_fnInvoke invoking:
L"Run"(3)
    parm0: L"ProcedureName"
    parm1: L"Parameters"
    parm2: L"pvarResult"
memid is 000007d3
Param 0:
        tdesc.vartype 8 (VT_BSTR)
        u.paramdesc.wParamFlags PARAMFLAG_FIN
        u.paramdesc.lpex (nil)
Param 1:
        tdesc.vartype 26 (ptr to safearray of VT_VARIANT)
        u.paramdesc.wParamFlags PARAMFLAG_FIN
        u.paramdesc.lpex (nil)
Param 2:
        tdesc.vartype 26 (ptr to VT_VARIANT)
        u.paramdesc.wParamFlags PARAMFLAG_FOUT PARAMFLAG_FRETVAL
        u.paramdesc.lpex (nil)
    funckind: 1 (pure virtual)
    invkind: 1 (func)
    callconv: 4 (stdcall)
    oVft: 116
    cParamsOpt: -1
    wFlags: 0
    elemdescFunc (return value type):
        tdesc.vartype 25 (VT_HRESULT)
        u.paramdesc.wParamFlags PARAMFLAGS_NONE
        u.paramdesc.lpex (nil)
    helpstring: L"Call a procedure defined in the global module"
    entry: (null)
0023:trace:ole:ITypeInfo_fnInvoke changing args
0023:trace:ole:dump_Variant 0x33ea44->{VT_BSTR,L"SkillBonus"}
0023:trace:ole:dump_Variant 0x33ea34->{VT_I2|VT_BYREF,0x4439b5e}
0023:trace:variant:VariantChangeTypeEx
(0x4390cf8->(VT_I2|VT_BYREF),0x33ea34->(VT_I2|VT_BYREF),0x00000400,0x0000,VT_VARIANT|VT_ARRAY|VT_BYREF)
0023:trace:variant:VariantClear (0x33e538->(VT_EMPTY))
0023:trace:variant:VariantClear (0x33e528->(VT_EMPTY))
0023:trace:variant:VariantCopyInd
(0x33e528->(VT_EMPTY),0x33ea34->(VT_I2|VT_BYREF))
0023:trace:variant:VariantClear (0x33e528->(VT_EMPTY))
0023:trace:variant:VariantCopyInd returning 0x00000000, 0x33e528->(VT_I2)
0023:trace:variant:VariantClear (0x33e538->(VT_EMPTY))
0023:trace:variant:VariantClear (0x33e528->(VT_I2))
0023:trace:variant:VariantChangeTypeEx returning 0x80020005,
0x4390cf8->(VT_I2|VT_BYREF)
0023:err:ole:ITypeInfo_fnInvoke failed to convert param 1 to
VT_VARIANT|VT_ARRAY|VT_BYREF from VT_I2|VT_BYREF
0023:trace:ole:ITypeInfo_fnInvoke -- 0x80020005
0023:trace:ole:ITypeInfo_fnRelease (0x4408cd0)->(1)
0023:trace:ole:SysAllocStringLen (null)
0023:trace:seh:raise_exception code=c000008f flags=1 addr=0x7b83ab23
ip=7b83ab23 tid=0023
0023:trace:seh:raise_exception  info[0]=deadcafe
0023:trace:seh:raise_exception  info[1]=deadcafe
0023:trace:seh:raise_exception  eax=7b826b89 ebx=7b8bb000 ecx=deadcafe
edx=0033e8d4 esi=0012b080 edi=0012b080
0023:trace:seh:raise_exception  ebp=0033e918 esp=0033e8b4 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00000283 
...
0023:trace:variant:VarBstrCat L"Error 13: 'Type mismatch'.\r\nRaised while
calculating all skill bonuses. Check the Scripting function Skill
Bonus.\r\n\r\nPress Ignore to continue.\r\nIf you press Abort, the program will
end and you will lose any unsaved data.\r\nIf this error occurs again, try
reinstalling DM Genie.\r\n" 
--- snip ---

VBScript code:

--- snip ---
Public Sub SkillBonus(FinalCheck)
n = func.GetSkillNum("SWIM")
if n > 0 then
    cr.SkillTotal(n) = cr.SkillTotal(n) + FinalCheck
end if

'if cRace.PCRace then
'n = func.GetSkillNum("JUMP")
'if n > 0 then
'    sp = cr.Speed
'    modifier_to_jump = 0
'    if sp <= 20 then
'        modifier_to_jump = int((30-sp)/10) * -6
'    elseif sp >= 40 then
'        modifier_to_jump = int((sp-30)/10) * +4
'    end if
'    cr.SkillTotal(n) = cr.SkillTotal(n) + modifier_to_jump
'end if
'end if

End Sub
--- snip ---

$ sha1sum DMGenie_Setup.exe 
a637a4e98fa09b9311f8cd78be6c9e7ff8bdbd2e  DMGenie_Setup.exe

$ du -sh DMGenie_Setup.exe 
8.0M    DMGenie_Setup.exe

$ wine --version
wine-1.7.14-126-g2bb1059

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