[Bug 43097] WarBR: game (WarS v5.5 p4) crashes on start, needs WMP IOleObject::GetExtent method implementation

wine-bugs at winehq.org wine-bugs at winehq.org
Mon May 29 07:21:37 CDT 2017


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

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|-unknown                    |wmp&wmvcore
            Summary|WarBR: game crashes on      |WarBR: game (WarS v5.5 p4)
                   |start                       |crashes on start, needs WMP
                   |                            |IOleObject::GetExtent
                   |                            |method implementation
                 CC|                            |focht at gmx.net

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

confirming.

Tidbit: the game is protected with TeLock v0.98b1 (works fine)

--- snip ---
$ WINEDEBUG=+tid,+seh,+relay,+wmp wine ./game.exe _warsgame >>log.txt 2>&1
...
0036:Call ole32.CoCreateInstance(00602198,00000000,00000005,004b57f8,00c1eee0)
ret=004b57a8
...
0036:Call KERNEL32.LoadLibraryExW(0033f42e
L"C:\\windows\\system32\\wmp.dll",00000000,00000008) ret=7e5f5eee
...
0036:Ret  PE DLL (proc=0x7cbfe387,module=0x7cbf0000
L"wmp.dll",reason=PROCESS_ATTACH,res=(nil)) retval=1
0036:Ret  KERNEL32.LoadLibraryExW() retval=7cbf0000 ret=7e5f5eee
...
0036:Call wmp.DllGetClassObject(0033f798,7e6d6008,0033f7a8) ret=7e5f7fee
0036:trace:wmp:DllGetClassObject (CLSID_WindowsMediaPlayer
{00000001-0000-0000-c000-000000000046} 0x33f7a8)
0036:trace:wmp:ClassFactory_QueryInterface (0x7cc0db28)->(IID_IClassFactory
0x33f7a8)
0036:trace:wmp:ClassFactory_AddRef (0x7cc0db28)
0036:Ret  wmp.DllGetClassObject() retval=00000000 ret=7e5f7fee
...
0036:trace:wmp:WMPFactory_CreateInstance ((nil)
{00000112-0000-0000-c000-000000000046} 0x33f7ac)
...
0036:trace:wmp:OleObject_QueryInterface (0x1f97d8)->(IID_IOleObject 0x33f7ac)
0036:trace:wmp:OleObject_AddRef (0x1f97d8) ref=2
0036:trace:wmp:OleObject_Release (0x1f97d8) ref=1
0036:trace:wmp:ClassFactory_Release (0x7cc0db28)
0036:Ret  ole32.CoCreateInstance() retval=00000000 ret=004b57a8
0036:trace:wmp:OleObject_GetMiscStatus (0x1f97d8)->(1 0xc1ef04)
0036:trace:wmp:OleObject_SetClientSite (0x1f97d8)->(0xc1ef2c)
0036:trace:wmp:OleObject_QueryInterface (0x1f97d8)->(IID_IPersistStreamInit
0xc1eee4)
0036:trace:wmp:OleObject_AddRef (0x1f97d8) ref=2
0036:fixme:wmp:OleObject_GetExtent (0x1f97d8)->(1 0x33f90c)
0036:Call
KERNEL32.FormatMessageA(00003200,00000000,80004001,00000000,0033f7ac,00000100,00000000)
ret=0040d13f
0036:Ret  KERNEL32.FormatMessageA() retval=00000000 ret=0040d13f
0036:Call user32.LoadStringA(00400000,0000fea9,0033f4b0,00000400) ret=0040680e
0036:Ret  user32.LoadStringA() retval=0000000e ret=0040680e
0036:Call KERNEL32.RaiseException(0eedfade,00000001,00000007,0033f8f0)
ret=004b1978
0036:trace:seh:raise_exception code=eedfade flags=1 addr=0x7b445f73 ip=7b445f73
tid=0036
0036:trace:seh:raise_exception  info[0]=004b1978
0036:trace:seh:raise_exception  info[1]=00c1f108
0036:trace:seh:raise_exception  info[2]=004b9cd8
0036:trace:seh:raise_exception  info[3]=00426b1c
0036:trace:seh:raise_exception  info[4]=f75b2000
0036:trace:seh:raise_exception  info[5]=0033f910
0036:trace:seh:raise_exception  info[6]=0033f90c
0036:trace:seh:raise_exception  eax=7b4347bd ebx=004b9cd8 ecx=0000001c
edx=0033f844 esi=0033f8f0 edi=0033f8b0
0036:trace:seh:raise_exception  ebp=0033f888 esp=0033f824 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00200216
0036:trace:seh:call_stack_handlers calling handler at 0x403d21 code=eedfade
flags=1 
...
--- snip ---

The game/app isn't very picky about returned values, it's generic
Borland/Delphi framework code used for handling of embedded OLE/ActiveX
(container/client site).

If 'dwDrawAspect' parameter is ignored (test?) you can use this one:

https://source.winehq.org/git/wine.git/commitdiff/3d1627f673f453e95550f66c9dff2fd9555bbd8a
("shdocvw: Added SetExtent and GetExtent implementation.")

For more sensible implementation this one:

https://source.winehq.org/git/wine.git/commitdiff/03b06fb76ba4204df5c20fda8955da09e16ec095
("msscript: Implement GetExtent().")

ProtectionID scan:

--- snip ---
-=[ ProtectionID v0.6.8.5 DECEMBER]=-
(c) 2003-2017 CDKiLLER & TippeX
Build 24/12/16-13:09:21
Ready...
Scanning -> Z:\home\focht\Downloads\WARS GAME\game.exe
File Type : 32-Bit Exe (Subsystem : Win GUI / 2), Size : 1729536 (01A6400h)
Byte(s) | Machine: 0x14C (I386)
Compilation TimeStamp : 0x2A425E19 -> Fri 19th Jun 1992 22:22:17 (GMT)
[TimeStamp] 0x2A425E19 -> Fri 19th Jun 1992 22:22:17 (GMT) | PE Header | - |
Offset: 0x00000108 | VA: 0x00400108 | -
[File Heuristics] -> Flag #1 : 00000000000001001000000000110001 (0x00048031)
[Entrypoint Section Entropy] : 7.41 (section #7) "        " | Size : 0x2E00
(11776) byte(s)
[DllCharacteristics] -> Flag : (0x0000) -> NONE
[SectionCount] 8 (0x8) | ImageSize 0x512000 (5316608) byte(s)
[ModuleReport] [IAT] Modules -> kernel32.dll | user32.dll
[!] TeLock v0.98b1 wrapped !
[CompilerDetect] -> Borland Delphi (unknown version) - 60% probability
- Scan Took : 0.405 Second(s) [000000195h (405) tick(s)] [506 of 580 scan(s)
done]

Scanning -> Z:\home\focht\Downloads\WARS GAME\WarS.exe
File Type : 32-Bit Exe (Subsystem : Win GUI / 2), Size : 852480 (0D0200h)
Byte(s) | Machine: 0x14C (I386)
Compilation TimeStamp : 0x2A425E19 -> Fri 19th Jun 1992 22:22:17 (GMT)
[TimeStamp] 0x2A425E19 -> Fri 19th Jun 1992 22:22:17 (GMT) | PE Header | - |
Offset: 0x00000108 | VA: 0x00400108 | -
[File Heuristics] -> Flag #1 : 00000000000001001000000000100000 (0x00048020)
[Entrypoint Section Entropy] : 6.56 (section #0) "CODE    " | Size : 0x8DF18
(581400) byte(s)
[DllCharacteristics] -> Flag : (0x0000) -> NONE
[SectionCount] 8 (0x8) | ImageSize 0xD5000 (872448) byte(s)
[ModuleReport] [IAT] Modules -> kernel32.dll | user32.dll | advapi32.dll |
oleaut32.dll | kernel32.dll | advapi32.dll | kernel32.dll | version.dll |
gdi32.dll | user32.dll | kernel32.dll | oleaut32.dll | ole32.dll | oleaut32.dll
| comctl32.dll | shell32.dll | wininet.dll
[CompilerDetect] -> Borland Delphi 7
[!] File appears to have no protection or is using an unknown protection
- Scan Took : 0.377 Second(s) [000000179h (377) tick(s)] [506 of 580 scan(s)
done]
--- snip ---

$ sha1sum WarS_Completo.rar 
2acbd5951447838ffc48ced306e61dea35050d1b  WarS_Completo.rar

$ du -sh WarS_Completo.rar 
13M    WarS_Completo.rar

$ wine --version
wine-2.9

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