https://bugs.winehq.org/show_bug.cgi?id=8780
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://www.futurepinball.co |https://web.archive.org/web |m/download.html |/20110917035535/http://memb | |ers.iinet.net.au/~cleathley | |/downloads/FuturePinballSet | |up_v1.9.1.20101231.exe
--- Comment #30 from Anastasius Focht focht@gmx.net --- Hello folks,
adding some stable links via Internet Archive:
https://web.archive.org/web/20060503144222/http://www.futurepinball.com/down...
https://web.archive.org/web/20110917035535/http://members.iinet.net.au/~clea...
https://web.archive.org/web/20190821173927/http://download.microsoft.com/dow...
Test with Future Pinball -> 'File' -> 'Table Launcher' (select on demo)
Prerequisite: 'winetricks -q wsh57' (native VBScript)
--- snip --- $ pwd /home/focht/.wine/drive_c/Games/Future Pinball
$ WINEDEBUG=+seh,+relay,+ole,+variant wine ./Future\ Pinball.exe >>log.txt 2>&1 ... 0063:Call oleaut32.LoadRegTypeLib(0053fa14,00000001,00000000,00000400,0032edb0) ret=0a485ba2 ... 0063:trace:ole:LoadTypeLib (L"C:\Games\Future Pinball\Future Pinball.exe",0032EDB0) 0063:trace:ole:LoadTypeLibEx (L"C:\Games\Future Pinball\Future Pinball.exe",0,0032EDB0) ... 0063:trace:ole:TLB_ReadTypeLib cache hit 0063:trace:ole:ITypeLib2_fnAddRef (039EF2E0) ref=2 0063:trace:ole:LoadTypeLibEx returns 00000000 ... 0063:trace:ole:LoadRegTypeLib (IID: {fb22a459-4ad0-4cb3-b959-15158f7139f5}) load SUCCESS (039EF2E0) 0063:Ret oleaut32.LoadRegTypeLib() retval=00000000 ret=0a485ba2 0063:Call oleaut32.CreateTypeLib(00000001,0a47c3d4 L"ConstDeb.tlb",0032ed54) ret=0a494b6e ... 0063:fixme:ole:CreateTypeLib (1,L"ConstDeb.tlb",0032ED54), stub! 0063:Ret oleaut32.CreateTypeLib() retval=80004005 ret=0a494b6e ... <lots of ITypeInfo_fnInvoke/DispCallFunc calls> ... 0063:Call oleaut32.SysAllocStringLen(03899b5c L"Microsoft VBScript runtime error",00000020) ret=0a469d47 ... 0063:Call oleaut32.SysStringLen(030fbd34 L"Variable is undefined: 'deNone'") ret=0a469d55 --- snip ---
With Wine-Staging 5.0 it crashes.
--- snip --- ... 0009:Call oleaut32.CreateTypeLib(00000001,09b8c3d4 L"ConstDeb.tlb",0032ed44) ret=09ba4b6e ... 0009:fixme:ole:CreateTypeLib (1, L"ConstDeb.tlb", 0032ED44): forwarding to CreateTypeLib2 ... 0009:trace:ole:CreateTypeLib2 (1,L"ConstDeb.tlb",0032ECC8) ... 0009:trace:ole:ITypeLib2_fnQueryInterface (0313A0E0)->(IID: {0002040f-0000-0000-c000-000000000046}) 0009:trace:ole:ITypeLib2_fnAddRef (0313A0E0) ref=2 0009:trace:ole:ITypeLib2_fnRelease (0313A0E0) ref=1 0009:trace:ole:ITypeLib2_fnQueryInterface (0313A0E0)->(IID: {00020406-0000-0000-c000-000000000046}) 0009:trace:ole:ITypeLib2_fnAddRef (0313A0E0) ref=2 0009:trace:ole:ITypeLib2_fnRelease (0313A0E0) ref=1 0009:Ret oleaut32.CreateTypeLib() retval=00000000 ret=09ba4b6e 0009:Call oleaut32.SafeArrayCreate(0000000c,00000001,0032ed28) ret=09ba4b8c 0009:trace:variant:SafeArrayCreate (VT_VARIANT,1,0032ED28) 0009:trace:variant:SafeArrayAllocDescriptorEx (VT_VARIANT,1,0032EC98) 0009:trace:variant:SafeArrayAllocDescriptor (1,0032EC98) ... 0009:trace:variant:SafeArrayAllocDescriptor (1): 24 bytes allocated for descriptor. 0009:trace:variant:SafeArrayAllocData (039836B0) ... 0009:trace:variant:SafeArrayAllocData 16 bytes allocated for data at 03138498 (1 objects). 0009:Ret oleaut32.SafeArrayCreate() retval=039836b0 ret=09ba4b8c ... 0009:trace:ole:ITypeLib2_fnGetTypeInfoCount (03985FD0)->count is 193 0009:trace:ole:ITypeLib2_fnGetTypeInfoType (03985FD0, 0, 0032ECF0) 0009:trace:ole:ITypeLib2_fnGetTypeInfoType (03985FD0, 1, 0032ECF0) 0009:trace:ole:ITypeLib2_fnGetTypeInfoType (03985FD0, 2, 0032ECF0) ... 0009:trace:ole:ITypeLib2_fnGetTypeInfoType (03985FD0, 190, 0032ECF0) 0009:trace:ole:ITypeLib2_fnGetTypeInfoType (03985FD0, 191, 0032ECF0) 0009:trace:ole:ITypeLib2_fnGetTypeInfoType (03985FD0, 192, 0032ECF0) ... 0009:trace:ole:ITypeInfo_fnGetDocumentation (0397FAD8) memid 1073741840 Name(0032EC88) DocString(00000000) HelpContext(00000000) HelpFile(00000000) ... 0009:trace:ole:SysAllocStringLen L"ServiceKey" 0009:Call msvcrt.memcpy(039f1fb4,0398641c,00000014) ret=029c6259 0009:Ret msvcrt.memcpy() retval=039f1fb4 ret=029c6259 0009:Call oleaut32.SysAllocString(039f1fb4 L"ServiceKey") ret=09ba44ac ... 0009:trace:ole:SysAllocStringLen L"ServiceKey" ... 0009:Call oleaut32.SysFreeString(039f1fb4 L"ServiceKey") ret=09ba46cf 0009:Call ntdll.RtlSizeHeap(00110000,00000000,039f1fb0) ret=0219a3a6 0009:Ret ntdll.RtlSizeHeap() retval=00000020 ret=0219a3a6 0009:Ret oleaut32.SysFreeString() retval=00000000 ret=09ba46cf 0009:Call msvcrt.??2@YAPAXI@Z(00000038) ret=09ba4710 0009:Call ntdll.RtlAllocateHeap(02f20000,00000000,00000038) ret=7e59edb8 0009:Ret ntdll.RtlAllocateHeap() retval=02f3c428 ret=7e59edb8 0009:Ret msvcrt.??2@YAPAXI@Z() retval=02f3c428 ret=09ba4710 0009:Call ntdll.RtlInitializeCriticalSection(02f3c444) ret=09b6b7a4 0009:Ret ntdll.RtlInitializeCriticalSection() retval=00000000 ret=09b6b7a4 0009:trace:seh:raise_exception code=c0000005 flags=0 addr=0x9ba4747 ip=09ba4747 tid=0009 0009:trace:seh:raise_exception info[0]=00000000 0009:trace:seh:raise_exception info[1]=00000000 0009:trace:seh:raise_exception eax=02f3c2f0 ebx=0397fad8 ecx=09b6b7b6 edx=7ffdf000 esi=02f3c428 edi=00000000 0009:trace:seh:raise_exception ebp=0032eca8 esp=0032ec74 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00010246 ... --- snip ---
The staging patch doesn't look correct:
https://github.com/wine-staging/wine-staging/blob/master/patches/oleaut32-Cr...
--- snip --- +HRESULT WINAPI CreateTypeLib(SYSKIND syskind, LPCOLESTR file, ICreateTypeLib **ctlib) +{ + ICreateTypeLib2 *typelib2; + HRESULT hres; + + FIXME("(%d, %s, %p): forwarding to CreateTypeLib2\n", syskind, debugstr_w(file), ctlib); + + hres = CreateTypeLib2(syskind, file, &typelib2); + if(SUCCEEDED(hres)) + { + hres = ICreateTypeLib2_QueryInterface(typelib2, &IID_ICreateTypeLib, (void **)&ctlib); + ICreateTypeLib2_Release(typelib2); + } + + return hres; } --- snip ---
'ctlib' is an "out parameter" pointer. Since it's already pointer-to-pointer it would be incorrect to take the address. Change 'ICreateTypeLib2_QueryInterface( ..., (void **)&ctlib)' to 'ICreateTypeLib2_QueryInterface( .., (void **)ctlib)'
$ wine --version wine-5.0-144-g9a9a1821a3
Regards