1
0
mirror of https://github.com/DxWnd/DxWnd.reloaded synced 2024-12-30 09:25:35 +01:00

v2_04_09_src_fx1

Former-commit-id: 34ead633e5a81cb2e9ec4181e14a991f756bd540
This commit is contained in:
gho tik 2017-01-30 11:49:56 -05:00 committed by Refael ACkermann
parent a8a8f52868
commit 4b8141b136
37 changed files with 648 additions and 349 deletions

View File

@ -1 +0,0 @@
*.{dll,exe} filter=lfs diff=lfs merge=lfs -text

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:941f77bf133938a99ebdcbea0c35f2f33248ac7c1d4e7d5fe9d799ce470b433d
size 782336

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:941f77bf133938a99ebdcbea0c35f2f33248ac7c1d4e7d5fe9d799ce470b433d
size 782336
oid sha256:5fc4cf8ef5a8514260d213b7d89caebe950a9dcfc43e948b25bb835c57e2df28
size 782848

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:743ed4e87aa9d02d8b85936799f99eb83bab948207f13d1a98497644ddd27b20
oid sha256:0478367b7c87124f807b20c7a3f5e3c6337815e9f8d63619ae023702f0efd817
size 673792

View File

@ -0,0 +1,36 @@
[target]
title0=Dominant Species
path0=F:\Games\Dominant Species\DominantSpecies.exe
startfolder0=
launchpath0=
module0=
opengllib0=
notes0=
registry0=
ver0=0
monitorid0=-1
coord0=0
flag0=673185826
flagg0=1207959552
flagh0=20
flagi0=138412036
flagj0=4224
flagk0=65536
flagl0=0
flagm0=4194304
tflag0=0
dflag0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0
winver0=0
maxres0=0
swapeffect0=0
maxddinterface0=7
slowratio0=2
scanline0=0
initresw0=800
initresh0=600

View File

@ -0,0 +1,36 @@
[target]
title0=Hexen II (GDI)
path0=D:\Games\Hexen II - RIP\h2.exe
startfolder0=
launchpath0=
module0=
opengllib0=
notes0=
registry0=
ver0=0
monitorid0=-1
coord0=0
flag0=673185827
flagg0=1209401344
flagh0=65556
flagi0=138412036
flagj0=4224
flagk0=65536
flagl0=0
flagm0=0
tflag0=0
dflag0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0
winver0=0
maxres0=0
swapeffect0=0
maxddinterface0=7
slowratio0=2
scanline0=0
initresw0=800
initresh0=600

View File

@ -0,0 +1,36 @@
[target]
title0=Hexen II (OpenGl)
path0=D:\Games\Hexen II - RIP\glh2.exe
startfolder0=
launchpath0=
module0=
opengllib0=
notes0=
registry0=
ver0=0
monitorid0=-1
coord0=0
flag0=673185827
flagg0=1209401344
flagh0=65556
flagi0=138412036
flagj0=4224
flagk0=65536
flagl0=0
flagm0=0
tflag0=0
dflag0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0
winver0=0
maxres0=0
swapeffect0=0
maxddinterface0=7
slowratio0=2
scanline0=0
initresw0=800
initresh0=600

View File

@ -0,0 +1,36 @@
[target]
title0=Interstate 76 Nitro Pack
path0=F:\Games\Interstate 76 Nitro Pack\nitro.exe
startfolder0=
launchpath0=
module0=
opengllib0=
notes0=
registry0=
ver0=0
monitorid0=0
coord0=0
flag0=134217762
flagg0=2013265920
flagh0=20
flagi0=138412036
flagj0=4224
flagk0=65536
flagl0=0
flagm0=0
tflag0=0
dflag0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0
winver0=0
maxres0=-1
swapeffect0=0
maxddinterface0=7
slowratio0=1
scanline0=1
initresw0=0
initresh0=0

View File

@ -0,0 +1,36 @@
[target]
title0=Man TT Super Bike
path0=D:\Games\ManTT\MANXTT.EXE
startfolder0=
launchpath0=
module0=
opengllib0=
notes0=
registry0=
ver0=0
monitorid0=-1
coord0=2
flag0=673185827
flagg0=1241514008
flagh0=65556
flagi0=138444804
flagj0=1073747072
flagk0=327680
flagl0=25165824
flagm0=1024
tflag0=0
dflag0=0
posx0=150
posy0=150
sizx0=800
sizy0=600
maxfps0=0
initts0=0
winver0=0
maxres0=0
swapeffect0=0
maxddinterface0=7
slowratio0=2
scanline0=0
initresw0=640
initresh0=480

View File

@ -1,6 +1,6 @@
[target]
title0=Man TT Super Bike
path0=F:\Games\ManTTSuperBike\MANXTT.EXE
path0=D:\Games\ManTT\MANXTT.EXE
startfolder0=
launchpath0=
module0=
@ -10,14 +10,14 @@ registry0=
ver0=0
monitorid0=-1
coord0=0
flag0=673194022
flagg0=1207959552
flagh0=327700
flag0=673185827
flagg0=1241513984
flagh0=65556
flagi0=138412036
flagj0=4224
flagk0=17104896
flagl0=276824576
flagm0=0
flagk0=327680
flagl0=0
flagm0=1024
tflag0=0
dflag0=0
posx0=50

View File

@ -6,7 +6,7 @@ opengllib0=
ver0=0
coord0=0
flag0=134217762
flagg0=1207959552
flagg0=1275068416
flagh0=20
flagi0=4194308
tflag0=0
@ -26,7 +26,7 @@ launchpath0=
notes0=
registry0=
flagj0=0
flagk0=65536
flagk0=98304
flagl0=0
flagm0=0
dflag0=0
@ -34,3 +34,9 @@ winver0=0
maxres0=0
swapeffect0=0
maxddinterface0=7
startfolder0=
monitorid0=0
slowratio0=1
scanline0=1
initresw0=0
initresh0=0

View File

@ -0,0 +1,36 @@
[target]
title0=NASCAR 2000
path0=F:\Games\Nascar 2000\NASCAR 2000.exe
startfolder0=
launchpath0=
module0=
opengllib0=
notes0=
registry0=
ver0=0
monitorid0=-1
coord0=0
flag0=673202210
flagg0=1207959552
flagh0=20
flagi0=138412036
flagj0=4224
flagk0=65536
flagl0=0
flagm0=0
tflag0=0
dflag0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0
winver0=0
maxres0=0
swapeffect0=0
maxddinterface0=7
slowratio0=2
scanline0=0
initresw0=800
initresh0=600

View File

@ -0,0 +1,36 @@
[target]
title0=ShipWreckers demo
path0=F:\Games\ShipWreckers demo\SW.EXE
startfolder0=
launchpath0=
module0=
opengllib0=
notes0=
registry0=
ver0=0
monitorid0=-1
coord0=0
flag0=673185826
flagg0=1207959552
flagh0=20
flagi0=138412036
flagj0=4224
flagk0=65536
flagl0=1048576
flagm0=0
tflag0=0
dflag0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0
winver0=0
maxres0=0
swapeffect0=0
maxddinterface0=7
slowratio0=2
scanline0=0
initresw0=800
initresh0=600

View File

@ -0,0 +1,36 @@
[target]
title0=SuperBike 2000
path0=F:\Games\SBK2000\SBK2000.exe
startfolder0=
launchpath0=
module0=
opengllib0=
notes0=N.b.\nCD rom in\nHKEY_LOCAL_MACHINE/SOFTWARE/EA SPORTS/Superbike 2000/CD\nor \nHKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/EA SPORTS/Superbike 2000/CD
registry0=
ver0=0
monitorid0=-1
coord0=0
flag0=673202210
flagg0=1207959552
flagh0=20
flagi0=138412036
flagj0=4224
flagk0=65536
flagl0=524288
flagm0=1312
tflag0=0
dflag0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0
winver0=0
maxres0=0
swapeffect0=0
maxddinterface0=7
slowratio0=2
scanline0=0
initresw0=800
initresh0=600

View File

@ -0,0 +1,36 @@
[target]
title0=V-Rally 3
path0=F:\Games\V-Rally 3\Vrally3.exe
startfolder0=
launchpath0=
module0=
opengllib0=
notes0=
registry0=
ver0=0
monitorid0=-1
coord0=0
flag0=673185826
flagg0=1207959552
flagh0=65556
flagi0=138412036
flagj0=4224
flagk0=65536
flagl0=0
flagm0=0
tflag0=0
dflag0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0
winver0=0
maxres0=0
swapeffect0=0
maxddinterface0=7
slowratio0=2
scanline0=0
initresw0=800
initresh0=600

View File

@ -0,0 +1,36 @@
[target]
title0=Warcraft Adventures - Lord Of The Clans
path0=F:\Games\Warcraft Adventures - Lord Of The Clans\PlayWin.exe
startfolder0=
launchpath0=
module0=
opengllib0=
notes0=
registry0=
ver0=0
monitorid0=-1
coord0=0
flag0=673185826
flagg0=1207959552
flagh0=20
flagi0=134217732
flagj0=4224
flagk0=65536
flagl0=0
flagm0=0
tflag0=0
dflag0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0
winver0=0
maxres0=0
swapeffect0=0
maxddinterface0=7
slowratio0=2
scanline0=0
initresw0=800
initresh0=600

View File

@ -1,6 +1,6 @@
[target]
title0=Warhammer - Shadow of the Horned Rat
path0=D:\Games\Warhammer - Shadow of the Horned Rat\WHSHR.EXE
path0=F:\Games\Warhammer - Shadow of the Horned Rat\WHSHR.EXE
startfolder0=
launchpath0=
module0=GAMEF.DLL

View File

@ -0,0 +1,36 @@
[target]
title0=Wrestling MPire Remix
path0=F:\Games\Wrestling MPire Remix (Career)\Wrestling MPire Remix (Fullscreen).exe
startfolder0=
launchpath0=
module0=
opengllib0=
notes0=
registry0=
ver0=0
monitorid0=-1
coord0=0
flag0=673185826
flagg0=1207959552
flagh0=65556
flagi0=138412036
flagj0=4224
flagk0=65536
flagl0=268435456
flagm0=0
tflag0=0
dflag0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0
winver0=0
maxres0=0
swapeffect0=0
maxddinterface0=7
slowratio0=2
scanline0=0
initresw0=800
initresh0=600

View File

@ -1,5 +1,41 @@
[window]
posx=1235
posy=551
posx=1165
posy=618
sizx=320
sizy=200
[target]
title0=administrator
path0=administrator
startfolder0=
launchpath0=
module0=
opengllib0=
notes0=
registry0=
ver0=0
monitorid0=-1
coord0=0
flag0=673185826
flagg0=1207959552
flagh0=20
flagi0=134217732
flagj0=4224
flagk0=65536
flagl0=0
flagm0=0
tflag0=0
dflag0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0
winver0=0
maxres0=0
swapeffect0=0
maxddinterface0=7
slowratio0=2
scanline0=0
initresw0=800
initresh0=600

View File

@ -1,228 +1,2 @@
OnRun idx=6 prog="F:\RhemE\RhemE\RHEM.noshim.exe" unhooked=0
setwindowshook mode
OnRun idx=6 prog="F:\RhemE\RhemE\RHEM.noshim.exe" unhooked=0
setwindowshook mode
OnRun idx=6 prog="F:\RhemE\RhemE\RHEM.noshim.exe" unhooked=0
setwindowshook mode
OnRun idx=6 prog="F:\RhemE\RhemE\RHEM.noshim.exe" unhooked=0
setwindowshook mode
OnRun idx=6 prog="F:\RhemE\RhemE\RHEM.noshim.exe" unhooked=0
setwindowshook mode
OnRun idx=6 prog="F:\RhemE\RhemE\RHEM.noshim.exe" unhooked=0
setwindowshook mode
OnRun idx=7 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
setwindowshook mode
OnRun idx=7 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
setwindowshook mode
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
setwindowshook mode
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
setwindowshook mode
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
injectsuspended mode
InjectSuspended: exe="F:\RhemE\RhemE\RHEM1(scalable).exe.noshim" dir="F:\RhemE\RhemE"
Target handle=67c
NT Header offset=E8
AddressOfEntryPoint=3D84 ImageBase=20000000
Thread start address=20003d84
wait cycle 0 eip=20003d84
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
injectsuspended mode
InjectSuspended: exe="F:\RhemE\RhemE\RHEM1(scalable).exe.noshim" dir="F:\RhemE\RhemE"
Target handle=908
NT Header offset=E8
AddressOfEntryPoint=3D84 ImageBase=20000000
Thread start address=20003d84
wait cycle 0 eip=20003d84
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
debugger mode
create process: path="F:\RhemE\RhemE"
create process: base=0x20000000 path="F:\RhemE\RhemE\RHEM1(scalable).exe"
create thread: th=0xA18 base=0x2F1000 start=0x76C68500
load dll: base=0x77BD0000 path="C:\Windows\SysWOW64\ntdll.dll"
unload dll: base=0x540000
load dll: base=0x76C40000 path="C:\Windows\SysWOW64\kernel32.dll"
unload dll: base=0x76C40000
unload dll: base=0x540000
unload dll: base=0x6A0000
load dll: base=0x76C40000 path="C:\Windows\SysWOW64\kernel32.dll"
load dll: base=0x74830000 path="C:\Windows\SysWOW64\KernelBase.dll"
load dll: base=0x6E490000 path="C:\Windows\SysWOW64\apphelp.dll"
load dll: base=0x78E50000 path="C:\Windows\AppPatch\AcLayers.dll"
load dll: base=0x773E0000 path="C:\Windows\SysWOW64\msvcrt.dll"
load dll: base=0x74C00000 path="C:\Windows\SysWOW64\user32.dll"
load dll: base=0x774A0000 path="C:\Windows\SysWOW64\win32u.dll"
load dll: base=0x75600000 path="C:\Windows\SysWOW64\gdi32.dll"
load dll: base=0x75450000 path="C:\Windows\SysWOW64\gdi32full.dll"
load dll: base=0x75850000 path="C:\Windows\SysWOW64\shell32.dll"
load dll: base=0x75800000 path="C:\Windows\SysWOW64\cfgmgr32.dll"
load dll: base=0x76DD0000 path="C:\Windows\SysWOW64\windows.storage.dll"
load dll: base=0x749E0000 path="C:\Windows\SysWOW64\combase.dll"
load dll: base=0x75630000 path="C:\Windows\SysWOW64\ucrtbase.dll"
load dll: base=0x75300000 path="C:\Windows\SysWOW64\rpcrt4.dll"
load dll: base=0x74690000 path="C:\Windows\SysWOW64\sspicli.dll"
load dll: base=0x74680000 path="C:\Windows\SysWOW64\cryptbase.dll"
load dll: base=0x76D70000 path="C:\Windows\SysWOW64\bcryptprimitives.dll"
load dll: base=0x77980000 path="C:\Windows\SysWOW64\sechost.dll"
load dll: base=0x777F0000 path="C:\Windows\SysWOW64\powrprof.dll"
load dll: base=0x779D0000 path="C:\Windows\SysWOW64\advapi32.dll"
load dll: base=0x76D20000 path="C:\Windows\SysWOW64\shlwapi.dll"
load dll: base=0x77BC0000 path="C:\Windows\SysWOW64\kernel.appcore.dll"
load dll: base=0x776F0000 path="C:\Windows\SysWOW64\SHCore.dll"
load dll: base=0x773A0000 path="C:\Windows\SysWOW64\profapi.dll"
load dll: base=0x77650000 path="C:\Windows\SysWOW64\oleaut32.dll"
load dll: base=0x74D60000 path="C:\Windows\SysWOW64\msvcp_win.dll"
load dll: base=0x74E40000 path="C:\Windows\SysWOW64\setupapi.dll"
load dll: base=0x74000000 path="C:\Windows\SysWOW64\mpr.dll"
load dll: base=0x66680000 path="C:\Windows\SysWOW64\sfc.dll"
load dll: base=0x73930000 path="C:\Windows\SysWOW64\winspool.drv"
load dll: base=0x72FA0000 path="C:\Windows\SysWOW64\bcrypt.dll"
load dll: base=0x640C0000 path="C:\Windows\SysWOW64\sfc_os.dll"
output debug: len=115 unicode=0
output debug: len=115 unicode=0
load dll: base=0x67100000 path="C:\Windows\SysWOW64\SortServer2003Compat.dll"
load dll: base=0x773B0000 path="C:\Windows\SysWOW64\imm32.dll"
exception: code=0x80000003(Breakpoint) addr=0x77C7748C first=1
exit thread: exitcode=0x0
load dll: base=0x10000000 path="C:\Users\user\AppData\Local\Temp\TempFolder.aad\proj.dll"
create thread: th=0x414 base=0x2F4000 start=0x77C067C0
create thread: th=0x670 base=0x2F7000 start=0x77C067C0
load dll: base=0x69000000 path="C:\Users\user\AppData\Local\Temp\TempFolder.aad\iml32.dll"
load dll: base=0x774C0000 path="C:\Windows\SysWOW64\comdlg32.dll"
create thread: th=0x670 base=0x2FA000 start=0x77C067C0
load dll: base=0x72DE0000 path="C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.14393.447_none_5507ded2cb4f7f4c\comctl32.dll"
load dll: base=0x75710000 path="C:\Windows\SysWOW64\ole32.dll"
load dll: base=0x68000000 path="C:\Users\user\AppData\Local\Temp\TempFolder.aad\dirapi.dll"
load dll: base=0x73050000 path="C:\Windows\SysWOW64\winmm.dll"
load dll: base=0x740F0000 path="C:\Windows\SysWOW64\version.dll"
load dll: base=0x72F70000 path="C:\Windows\SysWOW64\winmmbase.dll"
load dll: base=0x720000 path="C:\Windows\SysWOW64\winmmbase.dll"
load dll: base=0x2180000 path="C:\Windows\SysWOW64\winmmbase.dll"
unload dll: base=0x72F70000
unload dll: base=0x720000
load dll: base=0x6C670000 path="C:\Windows\SysWOW64\uxtheme.dll"
create thread: th=0x414 base=0x2FD000 start=0x78E7C3C0
load dll: base=0x77840000 path="C:\Windows\SysWOW64\msctf.dll"
load dll: base=0x92E0000 path="D:\DxWnd.develop\v2_04_07_beta\Release\dxwnd.dll"
create thread: th=0xC88 base=0x300000 start=0x73953B70
load dll: base=0x64080000 path="C:\Windows\SysWOW64\msvfw32.dll"
load dll: base=0x755B0000 path="C:\Windows\SysWOW64\wintrust.dll"
load dll: base=0x9400000 path="C:\Windows\SysWOW64\msasn1.dll"
load dll: base=0x746B0000 path="C:\Windows\SysWOW64\crypt32.dll"
load dll: base=0x64590000 path="C:\Windows\SysWOW64\avifil32.dll"
load dll: base=0x72FD0000 path="C:\Windows\SysWOW64\msacm32.dll"
exit thread: exitcode=0x1
exit thread: exitcode=0x1
exit thread: exitcode=0x1
exit thread: exitcode=0x1
exit thread: exitcode=0x1
exit process
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
setwindowshook mode
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
setwindowshook mode
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
setwindowshook mode
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
setwindowshook mode
OnRun idx=6 prog="F:\RhemE\RhemE\RHEM.noshim.exe" unhooked=0
setwindowshook mode
OnRun idx=6 prog="F:\RhemE\RhemE\RHEM.noshim.exe" unhooked=0
setwindowshook mode
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
setwindowshook mode
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
setwindowshook mode
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
setwindowshook mode
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
setwindowshook mode
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
setwindowshook mode
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
setwindowshook mode
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
setwindowshook mode
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
setwindowshook mode
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
setwindowshook mode
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
setwindowshook mode
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
injectsuspended mode
InjectSuspended: exe="F:\RhemE\RhemE\RHEM1(scalable).exe" dir="F:\RhemE\RhemE"
Target handle=888
NT Header offset=E8
AddressOfEntryPoint=3D84 ImageBase=20000000
Thread start address=20003d84
wait cycle 0 eip=20003d84
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
self elevation
injectsuspended mode
InjectSuspended: exe="F:\RhemE\RhemE\RHEM1(scalable).exe" dir="F:\RhemE\RhemE"
Target handle=828
NT Header offset=E8
AddressOfEntryPoint=3D84 ImageBase=20000000
Thread start address=20003d84
wait cycle 0 eip=20003d84
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
self elevation
injectsuspended mode
InjectSuspended: exe="F:\RhemE\RhemE\RHEM1(scalable).exe" dir="F:\RhemE\RhemE"
Target handle=a04
NT Header offset=E8
AddressOfEntryPoint=3D84 ImageBase=20000000
Thread start address=20003d84
wait cycle 0 eip=20003d84
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
self elevation
injectsuspended mode
InjectSuspended: exe="F:\RhemE\RhemE\RHEM1(scalable).exe" dir="F:\RhemE\RhemE"
Target handle=6bc
NT Header offset=E8
AddressOfEntryPoint=3D84 ImageBase=20000000
Thread start address=20003d84
wait cycle 0 eip=20003d84
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
self elevation
injectsuspended mode
InjectSuspended: exe="F:\RhemE\RhemE\RHEM1(scalable).exe" dir="F:\RhemE\RhemE"
Target handle=878
NT Header offset=E8
AddressOfEntryPoint=3D84 ImageBase=20000000
Thread start address=20003d84
wait cycle 0 eip=20003d84
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM1(scalable).exe" unhooked=0
self elevation
injectsuspended mode
InjectSuspended: exe="F:\RhemE\RhemE\RHEM1(scalable).exe" dir="F:\RhemE\RhemE"
Target handle=86c
NT Header offset=E8
AddressOfEntryPoint=3D84 ImageBase=20000000
Thread start address=20003d84
wait cycle 0 eip=20003d84
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM.noshim.exe" unhooked=0
self elevation
injectsuspended mode
InjectSuspended: exe="F:\RhemE\RhemE\RHEM.noshim.exe" dir="F:\RhemE\RhemE"
Target handle=8a0
NT Header offset=E8
AddressOfEntryPoint=3D84 ImageBase=20000000
Thread start address=20003d84
wait cycle 0 eip=20003d84
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM.noshim.exe" unhooked=0
self elevation
injectsuspended mode
InjectSuspended: exe="F:\RhemE\RhemE\RHEM.noshim.exe" dir="F:\RhemE\RhemE"
Target handle=cb0
NT Header offset=E8
AddressOfEntryPoint=3D84 ImageBase=20000000
Thread start address=20003d84
wait cycle 0 eip=20003d84
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM.noshim.exe" unhooked=0
self elevation
setwindowshook mode
OnRun idx=8 prog="F:\RhemE\RhemE\RHEM.noshim.exe" unhooked=0
self elevation
OnRun idx=28 prog="D:\Games\ManTT\MANXTT.EXE" unhooked=0
setwindowshook mode

View File

@ -1,11 +1,11 @@
[HKEY_LOCAL_MACHINE\SOFTWARE]
[HKEY_LOCAL_MACHINE\SOFTWARE\Mindscape]
[HKEY_LOCAL_MACHINE\SOFTWARE\Mindscape\WarHammerFB]
;"Options"="1,1,1,1,1,2,1,1" // digital audio on
"Options"="1,1,1,1,1,2,0,0" // digital audio off
;"Options"="0,0,0,0,0,0,0,0" //all off
;"Options"="3,1,1,2,1,1,0,0" // High Quality, digital audio off
"Options"="3,1,1,2,1,1,1,1" // High Quality, digital audio on
[HKEY_LOCAL_MACHINE\SOFTWARE\Mindscape\WarHammerFB\InstallDir]
@="\{path}"

View File

@ -1486,3 +1486,11 @@ fix: ddraw surface capability regression for emulated backbuffer: fixes "Dominan
fix: ddraw surface capability regression for direct primary/backbuffer: should fix "Tomb raider 3" in HW mode
fix: ddraw surface capability regression for zbuffer: fixes "Toca Touring Car" in SW mode
fix: in fx1, bug crashing app when querying unknown interfaces!
v2.04.09
add: hook USER32 AdjustWindowRect/Ex calls: fix window position problems for "Man TT Superbike"
add: hook for USER32 GetActiveWindow() tracing.
fix: version hooking for IDIrectDraw methods called by IDIrectDrawSurface methods: fixes many crashes on ddraw games
fix: capability registration passed in IDIrectDrawSurface::QueryInterface() calls: fixes settings for ZBUFFER surfaces
fix: capsdb logging (developer's use only)
fix: handling of WM_NCCALCSIZE & WM_NCPAINT messages in winproc hooker to align behaviour to comment. To be tested ...

View File

@ -352,14 +352,7 @@ static HRESULT BuildPrimaryFullscreen(LPDIRECTDRAW lpdd, CreateSurface_Type pCre
if (res==DDERR_PRIMARYSURFACEALREADYEXISTS){
LPDIRECTDRAWSURFACE lpPrim;
GetGDISurface_Type pGetGDISurface;
switch(dxversion){
default:
case 1: pGetGDISurface = pGetGDISurface1; break;
case 2: pGetGDISurface = pGetGDISurface2; break;
case 3: pGetGDISurface = pGetGDISurface3; break;
case 4: pGetGDISurface = pGetGDISurface4; break;
case 7: pGetGDISurface = pGetGDISurface7; break;
}
pGetGDISurface = pGetGDISurfaceMethod(dxversion);
OutTraceE("BuildPrimaryFullscreen: CreateSurface DDERR_PRIMARYSURFACEALREADYEXISTS workaround\n");
(*pGetGDISurface)(lpPrimaryDD, &lpPrim);
while ((*pReleaseSMethod(dxversion))(lpPrim));
@ -411,14 +404,7 @@ static HRESULT BuildPrimaryDir(LPDIRECTDRAW lpdd, CreateSurface_Type pCreateSurf
if (res==DDERR_PRIMARYSURFACEALREADYEXISTS){
LPDIRECTDRAWSURFACE lpPrim;
GetGDISurface_Type pGetGDISurface;
switch(dxversion){
default:
case 1: pGetGDISurface = pGetGDISurface1; break;
case 2: pGetGDISurface = pGetGDISurface2; break;
case 3: pGetGDISurface = pGetGDISurface3; break;
case 4: pGetGDISurface = pGetGDISurface4; break;
case 7: pGetGDISurface = pGetGDISurface7; break;
}
pGetGDISurface = pGetGDISurfaceMethod(dxversion);
OutTraceE("BuildPrimaryDir: CreateSurface DDERR_PRIMARYSURFACEALREADYEXISTS workaround\n");
(*pGetGDISurface)(lpPrimaryDD, &lpPrim);
while ((*pReleaseSMethod(dxversion))(lpPrim));
@ -668,14 +654,7 @@ static HRESULT BuildBackBufferDir(LPDIRECTDRAW lpdd, CreateSurface_Type pCreateS
LPDIRECTDRAWSURFACE lpPrim;
DDSURFACEDESC2 prim;
GetGDISurface_Type pGetGDISurface;
switch(dxversion){
default:
case 1: pGetGDISurface = pGetGDISurface1; break;
case 2: pGetGDISurface = pGetGDISurface2; break;
case 3: pGetGDISurface = pGetGDISurface3; break;
case 4: pGetGDISurface = pGetGDISurface4; break;
case 7: pGetGDISurface = pGetGDISurface7; break;
}
pGetGDISurface = pGetGDISurfaceMethod(dxversion);
(*pGetGDISurface)(lpPrimaryDD, &lpPrim);
memset(&prim, 0, sizeof(DDSURFACEDESC2));
prim.dwSize = (dxversion >= 4) ? sizeof(DDSURFACEDESC2) : sizeof(DDSURFACEDESC);
@ -1007,13 +986,20 @@ HRESULT WINAPI extCreateSurface(int dxversion, CreateSurface_Type pCreateSurface
if(res) return res;
lpDDSPrim = *lplpdds;
dxwss.PushPrimarySurface(lpDDSPrim, dxversion);
dxwcdb.PushCaps(*lplpdds, lpddsd->ddsCaps.dwCaps);
RegisterPixelFormat(dxversion, lpDDSPrim);
if (BBCount){
DWORD dwCaps;
// build emulated backbuffer surface
res=AttachBackBuffer(lpdd, pCreateSurface, lpddsd, dxversion, &lpDDSBack, NULL);
if(res) return res;
dxwss.PushBackBufferSurface(lpDDSBack, dxversion);
// here we try to guess what sort of capabilities would expose a built-in backbuffer surface
dwCaps = lpddsd->ddsCaps.dwCaps;
dwCaps &= ~DDSCAPS_PRIMARYSURFACE;
dwCaps |= (DDSCAPS_BACKBUFFER|DDSCAPS_VIDEOMEMORY);
dxwcdb.PushCaps(lpDDSBack, dwCaps);
}
if(IsTraceDDRAW){

View File

@ -956,6 +956,20 @@ SetClipper_Type pSetClipperMethod(int dxversion)
return pSetClipper;
}
Blt_Type pGetBltMethod(int dxversion)
{
Blt_Type pBlt;
switch(dxversion){
case 1: pBlt=pBlt1; break;
case 2: pBlt=pBlt2; break;
case 3: pBlt=pBlt3; break;
case 4: pBlt=pBlt4; break;
case 7: pBlt=pBlt7; break;
}
CHECKPTR(pBlt, "Blt");
return pBlt;
}
Blt_Type pBltMethod()
{
Blt_Type pBlt;
@ -2307,7 +2321,7 @@ void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion)
if((lpddsd->dwFlags & DDSD_CAPS) && (lpddsd->ddsCaps.dwCaps & DDSCAPS_ZBUFFER)) { // z-buffer surface - set to memory
lpddsd->ddsCaps.dwCaps = DDSCAPS_ZBUFFER;
if(dxw.dwFlags8 & ALLOWSYSMEMON3DDEV) lpddsd->ddsCaps.dwCaps = DDSCAPS_SYSTEMMEMORY|DDSCAPS_ZBUFFER;
if (dxw.dwFlags8 & ALLOWSYSMEMON3DDEV) lpddsd->ddsCaps.dwCaps = DDSCAPS_SYSTEMMEMORY|DDSCAPS_ZBUFFER;
return;
}
@ -2456,6 +2470,29 @@ HRESULT WINAPI extGetAttachedSurface(int dxversion, GetAttachedSurface_Type pGet
}
else {
OutTraceDDRAW("GetAttachedSurface(%d): attached=%x\n", dxversion, *lplpddas);
if(lpddsc->dwCaps & DDSCAPS_ZBUFFER){
char *sMode;
// Martian Gothic and others: if the ZBUFFER is unknown, then you must register virtual capabilities
// compatible with those of the original surface!
DWORD dwCaps;
lpDDZBuffer = *lplpddas;
dwCaps = dxwcdb.GetCaps(*lplpddas);
if(!dwCaps){
dwCaps = dxwcdb.GetCaps(lpdds);
if(dwCaps){
dwCaps &= ~(DDSCAPS_PRIMARYSURFACE|DDSCAPS_FLIP|DDSCAPS_BACKBUFFER|DDSCAPS_3DDEVICE|DDSCAPS_COMPLEX);
dwCaps |= DDSCAPS_ZBUFFER;
//if(dwCaps & DDSCAPS_VIDEOMEMORY) dwCaps|=DDSCAPS_LOCALVIDMEM;
dxwcdb.PushCaps(*lplpddas, dwCaps);
sMode = "derived";
}
else sMode = "unknown";
}
else sMode = "known";
OutTraceDW("GetAttachedSurface(%d): ZBUFFER caps=%x(%s) (%s)\n", dxversion, dwCaps, ExplainDDSCaps(dwCaps), sMode);
}
}
return res;
@ -2860,13 +2897,7 @@ HRESULT WINAPI ColorConversionEmulated(int dxversion, LPDIRECTDRAWSURFACE lpdds,
HRESULT res;
Blt_Type pBlt;
RECT srcrect, destrect;
switch(dxversion){
case 1: pBlt=pBlt1; break;
case 2: pBlt=pBlt2; break;
case 3: pBlt=pBlt3; break;
case 4: pBlt=pBlt4; break;
case 7: pBlt=pBlt7; break;
}
pBlt = pGetBltMethod(dxversion);
// v2.04.01.fx6: copy emurect since pEmuBlt will alter values!
srcrect=destrect=emurect;
res=(*pEmuBlt)(dxversion, pBlt, lpDDSEmu_Back, &destrect, lpdds, &srcrect, DDBLT_WAIT, 0);
@ -2944,13 +2975,7 @@ HRESULT WINAPI extFlip(int dxversion, Flip_Type pFlip, LPDIRECTDRAWSURFACE lpdds
lpdds, IsPrim?"(PRIM)":"", lpddssrc, dwflags, ExplainFlipFlags(dwflags));
Blt_Type pBlt;
switch (dxversion){
case 1: pBlt = pBlt1; break;
case 2: pBlt = pBlt2; break;
case 3: pBlt = pBlt3; break;
case 4: pBlt = pBlt4; break;
case 7: pBlt = pBlt7; break;
}
pBlt = pGetBltMethod(dxversion);
if (!IsPrim){
if(lpddssrc){
@ -3028,7 +3053,8 @@ HRESULT WINAPI extFlip(int dxversion, Flip_Type pFlip, LPDIRECTDRAWSURFACE lpdds
ddsd.dwHeight = dxw.GetScreenHeight();
ddsd.dwWidth = dxw.GetScreenWidth();
}
res2=(*pCreateSurfaceMethod(dxversion))(lpPrimaryDD, &ddsd, &lpddsTmp, NULL);
// v2.04.09 fix: dxversion replaced with iBakBufferVersion - fixes "Gruntz" crash
res2=(*pCreateSurfaceMethod(iBakBufferVersion))(lpPrimaryDD, &ddsd, &lpddsTmp, NULL);
if(res2) {
OutTraceE("CreateSurface: ERROR %x(%s) at %d\n", res2, ExplainDDError(res2), __LINE__);
OutTraceE("Size=%d lpPrimaryDD=%x lpDDSBack=%x %s\n",
@ -3589,13 +3615,9 @@ static HRESULT WINAPI extLockDir(int dxversion, Lock_Type pLock, LPDIRECTDRAWSUR
PushLockedRect(lpdds, lprect);
switch(dxversion){
case 1: pBlt=pBlt1; pGetGDISurface=pGetGDISurface1; break;
case 2: pBlt=pBlt2; pGetGDISurface=pGetGDISurface2; break;
case 3: pBlt=pBlt3; pGetGDISurface=pGetGDISurface3; break;
case 4: pBlt=pBlt4; pGetGDISurface=pGetGDISurface4; break;
case 7: pBlt=pBlt7; pGetGDISurface=pGetGDISurface7; break;
}
// v2.04.09: for IDirectDraw methods use iBakBufferVersion instead of dxversion ...
pBlt = pGetBltMethod(dxversion);
pGetGDISurface = pGetGDISurfaceMethod(iBakBufferVersion);
// V2.02.43: Empire Earth does some test Lock operations apparently before the primary surface is created
if(lpPrimaryDD){
@ -3718,13 +3740,7 @@ static HRESULT WINAPI extUnlock(int dxversion, Unlock4_Type pUnlock, LPDIRECTDRA
OutTrace("Unlock(%d): lpdds=%x%s %s\n", dxversion, lpdds, (IsPrim ? "(PRIM)": (IsBack ? "(BACK)" : "")), sRect);
}
switch(dxversion){
case 1: pBlt=pBlt1; break;
case 2: pBlt=pBlt2; break;
case 3: pBlt=pBlt3; break;
case 4: pBlt=pBlt4; break;
case 7: pBlt=pBlt7; break;
}
pBlt = pGetBltMethod(dxversion);
switch(dxversion){
case 4:
@ -3861,14 +3877,9 @@ static HRESULT WINAPI extUnlockDir(int dxversion, Unlock4_Type pUnlock, LPDIRECT
OutTrace("Unlock(%d): lpdds=%x%s %s\n", dxversion, lpdds, (IsPrim ? "(PRIM)": (IsBack ? "(BACK)" : "")), sRect);
}
switch(dxversion){
default:
case 1: pGetGDISurface = pGetGDISurface1; pBlt = pBlt1; break;
case 2: pGetGDISurface = pGetGDISurface2; pBlt = pBlt2; break;
case 3: pGetGDISurface = pGetGDISurface3; pBlt = pBlt3; break;
case 4: pGetGDISurface = pGetGDISurface4; pBlt = pBlt4; break;
case 7: pGetGDISurface = pGetGDISurface7; pBlt = pBlt7; break;
}
// v2.04.09: for IDirectDraw methods use iBakBufferVersion instead of dxversion ...
pBlt = pGetBltMethod(dxversion);
pGetGDISurface = pGetGDISurfaceMethod(iBakBufferVersion);
if(dxw.dwFlags1 & LOCKEDSURFACE){
(*pGetGDISurface)(lpPrimaryDD, &lpDDSPrim);
@ -3986,14 +3997,9 @@ HRESULT WINAPI extReleaseDC(int dxversion, ReleaseDC_Type pReleaseDC, LPDIRECTDR
if((IsPrim) && (dxw.dwFlags1 & EMULATESURFACE)) {\
Blt_Type pBlt;
GetGDISurface_Type pGetGDISurface;
switch(dxversion){
default:
case 1: pGetGDISurface = pGetGDISurface1; pBlt = pBlt1; break;
case 2: pGetGDISurface = pGetGDISurface2; pBlt = pBlt2; break;
case 3: pGetGDISurface = pGetGDISurface3; pBlt = pBlt3; break;
case 4: pGetGDISurface = pGetGDISurface4; pBlt = pBlt4; break;
case 7: pGetGDISurface = pGetGDISurface7; pBlt = pBlt7; break;
}
// v2.04.09: for IDirectDraw methods use iBakBufferVersion instead of dxversion ...
pBlt = pGetBltMethod(dxversion);
pGetGDISurface = pGetGDISurfaceMethod(iBakBufferVersion);
sBlt(dxversion, pBlt, "ReleaseDC", lpdds, NULL, lpdds, NULL, 0, NULL, FALSE);
}
if (res) OutTraceE("ReleaseDC: ERROR res=%x(%s)\n", res, ExplainDDError(res));

View File

@ -421,6 +421,7 @@ void dxwCore::CalculateWindowPos(HWND hwnd, DWORD width, DWORD height, LPWINDOWP
break;
case DXW_SET_COORDINATES:
default:
// set size
if(bAutoScale){
MaxX = GetScreenWidth();
MaxY = GetScreenHeight();
@ -443,6 +444,11 @@ void dxwCore::CalculateWindowPos(HWND hwnd, DWORD width, DWORD height, LPWINDOWP
MaxY = height;
if(dxw.dwFlags4 & BILINEAR2XFILTER) MaxY <<= 1; // double
}
// set pos
if(dxw.dwFlags7 & ANCHORED){
iPosX = iPos0X;
iPosY = iPos0Y;
}
rect.left = iPosX;
rect.top = iPosY; //v2.02.09
rect.right = iPosX + MaxX;
@ -459,7 +465,7 @@ void dxwCore::CalculateWindowPos(HWND hwnd, DWORD width, DWORD height, LPWINDOWP
dwExStyle=(*pGetWindowLong)(hwnd, GWL_EXSTYLE);
// BEWARE: from MSDN - If the window is a child window, the return value is undefined.
hMenu = (dwStyle & WS_CHILD) ? NULL : GetMenu(hwnd);
AdjustWindowRectEx(&rect, dwStyle, (hMenu!=NULL), dwExStyle);
(*pAdjustWindowRectEx)(&rect, dwStyle, (hMenu!=NULL), dwExStyle);
// if (hMenu) __try {CloseHandle(hMenu);} __except(EXCEPTION_EXECUTE_HANDLER){};
switch(dxw.Coordinates){
case DXW_DESKTOP_WORKAREA:

View File

@ -8,8 +8,12 @@
#include "dxwnd.h"
#include "dxwcore.hpp"
//#define DXW_SURFACE_STACK_TRACING
//#define OutTraceSDB OutTrace
#if 0
// uncomment (#if 1) to activate caps db tracing
#define DXW_SURFACE_STACK_TRACING
#define OutTraceSDB OutTrace
#include "dxhelper.h"
#endif
dxwCapsDB::dxwCapsDB()
{
@ -25,7 +29,7 @@ void dxwCapsDB::PushCaps(LPDIRECTDRAWSURFACE ps, DWORD dwCaps)
int i;
CapsDB_Type *e;
#ifdef DXW_SURFACE_STACK_TRACING
OutTraceSDB(">>> CAPSDB MARK: lpdds=%x%s caps=%x(%s)\n", ps, dwCaps, ExplainDDCaps(dwCaps));
OutTraceSDB(">>> CAPSDB MARK: lpdds=%x caps=%x(%s)\n", ps, dwCaps, ExplainDDSCaps(dwCaps));
#endif
for (i=0;i<DDSQLEN;i++) {
e=&CapsDB[i];
@ -49,11 +53,11 @@ DWORD dxwCapsDB::GetCaps(LPDIRECTDRAWSURFACE ps)
if (CapsDB[i].lpdds==0) return 0;
if (CapsDB[i].lpdds==ps) break;
}
// if found, delete it by left-copying each entry until end of array
// if found, return the caps
if (CapsDB[i].lpdds==ps){
#ifdef DXW_SURFACE_STACK_TRACING
OutTraceSDB(">>> CAPSDB GETCAPS: i=%d lpdds=%x caps=%x(%s)\n",
i, ps, CapsDB[i].dwCaps, ExplainDDCaps(CapsDB[i].dwCaps));
i, ps, CapsDB[i].dwCaps, ExplainDDSCaps(CapsDB[i].dwCaps));
#endif
return CapsDB[i].dwCaps;
}

View File

@ -131,8 +131,8 @@ void dxwCore::InitTarget(TARGETMAP *target)
}
iSiz0X = iSizX = target->sizx;
iSiz0Y = iSizY = target->sizy;
iPosX = target->posx;
iPosY = target->posy;
iPos0X = iPosX = target->posx;
iPos0Y = iPosY = target->posy;
iMaxW = target->resw;
iMaxH = target->resh;
// Aspect Ratio from window size, or traditional 4:3 by default
@ -1161,6 +1161,7 @@ DWORD dxwCore::FixWinExStyle(DWORD dwExStyle)
dwExStyle = 0;
break;
}
return dwExStyle;
}

View File

@ -187,6 +187,8 @@ public: // simple data variables
long iPosY;
long iSizX;
long iSizY;
long iPos0X;
long iPos0Y;
long iSiz0X;
long iSiz0Y;
long iMaxW;

View File

@ -27,7 +27,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "TlHelp32.h"
#define VERSION "2.04.08.fx1"
#define VERSION "2.04.09.fx1"
#define DDTHREADLOCK 1

Binary file not shown.

View File

@ -41,6 +41,7 @@ HRESULT WINAPI extQueryInterfaceDX(int dxversion, QueryInterface_Type pQueryInte
BOOL IsBack;
int iObjectType;
int iObjectVersion;
DWORD dwCaps;
extern LPDIRECTDRAWSURFACE lpDDSEmu_Prim;
IsPrim=dxwss.IsAPrimarySurface((LPDIRECTDRAWSURFACE)lpdds);
@ -177,10 +178,9 @@ HRESULT WINAPI extQueryInterfaceDX(int dxversion, QueryInterface_Type pQueryInte
}
// added trace
OutTraceDW("QueryInterface: lpdds=%x%s REFIID=%x obp=%x obj=%s version=%d ret=0\n",
lpdds, IsPrim?"(PRIM)":"", riid.Data1, *obp, sLabel, iObjectVersion);
OutTraceDW("QueryInterface: lpdds=%x REFIID=%x obp=%x obj=%s version=%d ret=0\n",
lpdds, riid.Data1, *obp, sLabel, iObjectVersion);
// --------- here .....
switch(iObjectType){
// simulate unavailable interfaces (useful?)
case TYPE_OBJECT_DIRECTDRAW:
@ -195,15 +195,18 @@ HRESULT WINAPI extQueryInterfaceDX(int dxversion, QueryInterface_Type pQueryInte
}
else{
if(IsBack) dxwss.PushBackBufferSurface((LPDIRECTDRAWSURFACE)*obp, iObjectVersion);
else dxwss.PopSurface((LPDIRECTDRAWSURFACE)*obp);
else dxwss.PopSurface((LPDIRECTDRAWSURFACE)*obp); // no primary, no backbuffer, then pop.
// v2.02.13: seems that hooking inconditionally gives troubles. What is the proper safe hook condition?
HookDDSurface((LPDIRECTDRAWSURFACE *)obp, dxw.dwDDVersion, FALSE);
}
DWORD dwCaps;
if (dwCaps = dxwcdb.GetCaps((LPDIRECTDRAWSURFACE)lpdds)) {
OutTrace("QueryInterface(S): PASS caps=%x lpdds=%x->%x\n", dwCaps, lpdds, *obp);
dxwcdb.PushCaps(*(LPDIRECTDRAWSURFACE *)obp,dwCaps);
dwCaps = dxwcdb.GetCaps((LPDIRECTDRAWSURFACE)lpdds);
if (dwCaps) {
OutTraceDW("QueryInterface(S): PASS lpdds=%x->%x caps=%x(%s)\n", lpdds, *obp, dwCaps, ExplainDDSCaps(dwCaps));
dxwcdb.PushCaps(*(LPDIRECTDRAWSURFACE *)obp, dwCaps);
}
else {
OutTraceDW("QueryInterface(S): NO CAPS\n");
}
break;
case TYPE_OBJECT_DIRECT3D:
HookDirect3DSession((LPDIRECTDRAW *)obp, iObjectVersion);

View File

@ -299,6 +299,8 @@ typedef HBITMAP (WINAPI *LoadBitmapA_Type)(HINSTANCE, LPCSTR);
typedef BOOL (WINAPI *EnumWindows_Type)(WNDENUMPROC, LPARAM);
typedef BOOL (WINAPI *GetMessage_Type)(LPMSG, HWND, UINT, UINT);
typedef BOOL (WINAPI *PostMessage_Type)(HWND, UINT, WPARAM, LPARAM);
typedef BOOL (WINAPI *AdjustWindowRect_Type)(LPRECT, DWORD, BOOL);
typedef BOOL (WINAPI *AdjustWindowRectEx_Type)(LPRECT, DWORD, BOOL, DWORD);
// Winmm.dll:
typedef MCIERROR(WINAPI *mciSendCommand_Type)(MCIDEVICEID, UINT, DWORD_PTR, DWORD_PTR);
@ -620,6 +622,8 @@ DXWEXTERN LoadBitmapA_Type pLoadBitmapA DXWINITIALIZED;
DXWEXTERN EnumWindows_Type pEnumWindows DXWINITIALIZED;
DXWEXTERN GetMessage_Type pGetMessageA, pGetMessageW DXWINITIALIZED;
DXWEXTERN PostMessage_Type pPostMessageA, pPostMessageW DXWINITIALIZED;
DXWEXTERN AdjustWindowRect_Type pAdjustWindowRect DXWINITIALIZED;
DXWEXTERN AdjustWindowRectEx_Type pAdjustWindowRectEx DXWINITIALIZED;
// Winmm.dll:
DXWEXTERN mciSendCommand_Type pmciSendCommandA DXWINITIALIZED;
@ -930,6 +934,8 @@ extern BOOL WINAPI extGetMessageA(LPMSG, HWND, UINT, UINT);
extern BOOL WINAPI extGetMessageW(LPMSG, HWND, UINT, UINT);
extern BOOL WINAPI extPostMessageA(HWND, UINT, WPARAM, LPARAM);
extern BOOL WINAPI extPostMessageW(HWND, UINT, WPARAM, LPARAM);
extern BOOL WINAPI extAdjustWindowRect(LPRECT, DWORD, BOOL);
extern BOOL WINAPI extAdjustWindowRectEx(LPRECT, DWORD, BOOL, DWORD);
// Winmm.dll:
extern MCIERROR WINAPI extmciSendCommandA(MCIDEVICEID, UINT, DWORD_PTR, DWORD_PTR);

View File

@ -85,7 +85,6 @@ static HookEntryEx_Type Hooks[]={
#ifdef GALAPAGOSTEST
// test for Galapagos
{HOOK_HOT_CANDIDATE, 0, "GetActiveWindow", (FARPROC)NULL, (FARPROC *)&pGetActiveWindow, (FARPROC)extGetActiveWindow},
{HOOK_HOT_CANDIDATE, 0, "GetForegroundWindow", (FARPROC)GetForegroundWindow, (FARPROC *)&pGetForegroundWindow, (FARPROC)extGetForegroundWindow},
{HOOK_HOT_CANDIDATE, 0, "GetFocus", (FARPROC)GetFocus, (FARPROC *)&pGetFocus, (FARPROC)extGetFocus},
{HOOK_HOT_CANDIDATE, 0, "SetFocus", (FARPROC)SetFocus, (FARPROC *)&pSetFocus, (FARPROC)extSetFocus},
@ -138,6 +137,9 @@ static HookEntryEx_Type Hooks[]={
//{HOOK_IAT_CANDIDATE, 0, "LoadBitmapA", (FARPROC)NULL, (FARPROC *)&pLoadBitmapA, (FARPROC)extLoadBitmapA},
{HOOK_IAT_CANDIDATE, 0, "EnumWindows", (FARPROC)NULL, (FARPROC *)&pEnumWindows, (FARPROC)extEnumWindows},
{HOOK_IAT_CANDIDATE, 0, "AdjustWindowRect", (FARPROC)NULL, (FARPROC *)&pAdjustWindowRect, (FARPROC)extAdjustWindowRect},
{HOOK_IAT_CANDIDATE, 0, "AdjustWindowRectEx", (FARPROC)AdjustWindowRectEx, (FARPROC *)&pAdjustWindowRectEx, (FARPROC)extAdjustWindowRectEx},
{HOOK_HOT_CANDIDATE, 0, "GetActiveWindow", (FARPROC)NULL, (FARPROC *)&pGetActiveWindow, (FARPROC)extGetActiveWindow},
{HOOK_IAT_CANDIDATE, 0, 0, NULL, 0, 0} // terminator
};
@ -476,7 +478,7 @@ void dxwFixWindowPos(char *ApiName, HWND hwnd, LPARAM lParam)
dwStyle=(*pGetWindowLong)(hwnd, GWL_STYLE);
dwExStyle=(*pGetWindowLong)(hwnd, GWL_EXSTYLE);
hMenu = (dwStyle & WS_CHILD) ? NULL : GetMenu(hwnd);
AdjustWindowRectEx(&full, dwStyle, (hMenu!=NULL), dwExStyle);
(*pAdjustWindowRectEx)(&full, dwStyle, (hMenu!=NULL), dwExStyle);
if (hMenu && (hMenu != (HMENU)-1)) __try {CloseHandle(hMenu);} __except(EXCEPTION_EXECUTE_HANDLER){};
BorderX= full.right - full.left - client.right;
BorderY= full.bottom - full.top - client.bottom;
@ -516,7 +518,7 @@ void dxwFixWindowPos(char *ApiName, HWND hwnd, LPARAM lParam)
dwStyle=(*pGetWindowLong)(hwnd, GWL_STYLE);
dwExStyle=(*pGetWindowLong)(hwnd, GWL_EXSTYLE);
hMenu = (dwStyle & WS_CHILD) ? NULL : GetMenu(hwnd);
AdjustWindowRectEx(&wrect, dwStyle, (hMenu!=NULL), dwExStyle);
(*pAdjustWindowRectEx)(&wrect, dwStyle, (hMenu!=NULL), dwExStyle);
minx = wrect.right - wrect.left;
miny = wrect.bottom - wrect.top;
if(wp->cx < minx) wp->cx = minx;
@ -940,7 +942,7 @@ BOOL WINAPI extSetWindowPos(HWND hwnd, HWND hWndInsertAfter, int X, int Y, int c
dwExStyle=(*pGetWindowLong)(hwnd, GWL_EXSTYLE);
// BEWARE: from MSDN - If the window is a child window, the return value is undefined.
hMenu = (dwCurStyle & WS_CHILD) ? NULL : GetMenu(hwnd);
AdjustWindowRectEx(&rect, dwCurStyle, (hMenu!=NULL), dwExStyle);
(*pAdjustWindowRectEx)(&rect, dwCurStyle, (hMenu!=NULL), dwExStyle);
if (hMenu && (hMenu != (HMENU)-1)) __try {CloseHandle(hMenu);} __except(EXCEPTION_EXECUTE_HANDLER){};
cx=rect.right; cy=rect.bottom;
OutTraceDW("SetWindowPos: main form hwnd=%x fixed size=(%d,%d)\n", hwnd, cx, cy);
@ -3084,7 +3086,7 @@ BOOL WINAPI extUpdateWindow(HWND hwnd)
}
ret=(*pUpdateWindow)(hwnd);
if(!ret) OutTraceE("UpdateWindow: ERROR er=%d\n", GetLastError());
if(!ret) OutTraceE("UpdateWindow: ERROR err=%d\n", GetLastError());
return ret;
}
@ -3203,7 +3205,8 @@ HWND WINAPI extGetActiveWindow(void)
{
HWND ret;
ret=(*pGetActiveWindow)();
if(dxw.Windowize && dxw.IsFullScreen()) {
OutTraceDW("GetActiveWindow: ret=%x\n", ret);
if((dxw.dwFlags8 & WININSULATION) && dxw.Windowize && dxw.IsFullScreen()) {
OutTraceDW("GetActiveWindow: ret=%x->%x\n", ret, dxw.GethWnd());
return dxw.GethWnd();
}
@ -4072,7 +4075,7 @@ INT_PTR WINAPI extDialogBoxIndirectParamA(HINSTANCE hInstance, LPCDLGTEMPLATE hD
{
//INT_PTR ret;
// MessageBox(0, "DialogBoxIndirectParamA", "step", 0);
OutTrace("DialogBoxIndirectParamA: hInstance=%x pos=(%d,%d) size=(%dx%d) hWndParent=%x, lpDialogFunc=%x dwInitParam=%x\n",
OutTraceDW("DialogBoxIndirectParamA: hInstance=%x pos=(%d,%d) size=(%dx%d) hWndParent=%x, lpDialogFunc=%x dwInitParam=%x\n",
hInstance, hDialogTemplate->x, hDialogTemplate->y, hDialogTemplate->cx, hDialogTemplate->cy, hWndParent, lpDialogFunc, dwInitParam);
return (*pDialogBoxIndirectParamA)(hInstance, hDialogTemplate, hWndParent, lpDialogFunc, dwInitParam);
}
@ -4080,27 +4083,91 @@ INT_PTR WINAPI extDialogBoxIndirectParamA(HINSTANCE hInstance, LPCDLGTEMPLATE hD
HBITMAP WINAPI extLoadBitmapA(HINSTANCE hInstance, LPCSTR lpBitmapName)
{
HBITMAP ret;
OutTrace("LoadBitmapA: hinst=%x name=%s\n", hInstance, lpBitmapName);
OutTraceDW("LoadBitmapA: hinst=%x name=%s\n", hInstance, lpBitmapName);
ret = (*pLoadBitmapA)(hInstance, lpBitmapName);
if(ret){
OutTrace("LoadBitmapA: hbitmap=%x\n", ret);
OutTraceDW("LoadBitmapA: hbitmap=%x\n", ret);
}
else{
OutTrace("LoadBitmapA: ERROR err=%d\n", GetLastError());
OutTraceE("LoadBitmapA: ERROR err=%d\n", GetLastError());
}
return ret;
}
BOOL WINAPI extEnumWindows(WNDENUMPROC lpEnumFunc, LPARAM lParam)
{
OutTrace("EnumerateWindows\n");
OutTraceDW("EnumerateWindows\n");
if(dxw.dwFlags8 & WININSULATION){
OutTrace("EnumerateWindows: BYPASS\n");
OutTraceDW("EnumerateWindows: BYPASS\n");
return TRUE;
}
return (*pEnumWindows)(lpEnumFunc, lParam);
}
static void RedirectCoordinates(LPRECT lpRect)
{
BOOL IsBiggerThanWin;
BOOL IsBiggerThanScreen;
long w, h;
// try to determine if the coordinates could belong to a fullscreen main win
w = lpRect->right - lpRect->left;
h = lpRect->bottom - lpRect->top;
IsBiggerThanWin = (w >= dxw.iSizX) && (h >= dxw.iSizY);
IsBiggerThanScreen = (w >= (long)dxw.GetScreenWidth()) && (h >= (long)dxw.GetScreenHeight());
if(IsBiggerThanWin || IsBiggerThanScreen){
WINDOWPOS wp;
dxw.CalculateWindowPos(NULL, dxw.GetScreenWidth(), dxw.GetScreenHeight(), &wp);
lpRect->left = wp.x;
lpRect->right = wp.x + wp.cx;
lpRect->top = wp.y;
lpRect->bottom = wp.y + wp.cy;
OutTraceDW("AdjustWindowRect: FIX rect=(%d,%d)-(%d,%d)\n",
lpRect->left, lpRect->top, lpRect->right, lpRect->bottom);
}
}
BOOL WINAPI extAdjustWindowRect(LPRECT lpRect, DWORD dwStyle, BOOL bMenu)
{
BOOL ret;
OutTraceDW("AdjustWindowRect: IN rect=(%d,%d)-(%d,%d) style=%x(%s) menu=%x\n",
lpRect->left, lpRect->top, lpRect->right, lpRect->bottom,
dwStyle, ExplainStyle(dwStyle), bMenu);
if(dxw.dwFlags1 & LOCKWINPOS) RedirectCoordinates(lpRect);
ret = pAdjustWindowRect(lpRect, dwStyle, bMenu);
if(ret){
OutTraceDW("AdjustWindowRect: OUT rect=(%d,%d)-(%d,%d)\n",
lpRect->left, lpRect->top, lpRect->right, lpRect->bottom);
}
else{
OutTraceE("AdjustWindowRect ERROR: err=%d\n", GetLastError());
}
return ret;
}
BOOL WINAPI extAdjustWindowRectEx(LPRECT lpRect, DWORD dwStyle, BOOL bMenu, DWORD dwExStyle)
{
BOOL ret;
OutTraceDW("AdjustWindowRectEx: IN rect=(%d,%d)-(%d,%d) style=%x(%s) menu=%x exstyle=%x(%s)\n",
lpRect->left, lpRect->top, lpRect->right, lpRect->bottom,
dwStyle, ExplainStyle(dwStyle), bMenu, dwExStyle, ExplainExStyle(dwExStyle));
if(dxw.dwFlags1 & LOCKWINPOS) RedirectCoordinates(lpRect);
ret = pAdjustWindowRectEx(lpRect, dwStyle, bMenu, dwExStyle);
if(ret){
OutTraceDW("AdjustWindowRectEx: OUT rect=(%d,%d)-(%d,%d)\n",
lpRect->left, lpRect->top, lpRect->right, lpRect->bottom);
}
else{
OutTraceE("AdjustWindowRectEx ERROR: err=%d\n", GetLastError());
}
return ret;
}
// To do:
// GrayStringA
// GrayStringW

View File

@ -303,7 +303,9 @@ LRESULT CALLBACK extWindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lp
break;
case WM_NCCALCSIZE:
case WM_NCPAINT:
if((dxw.dwFlags1 & LOCKWINPOS) && (hwnd == dxw.GethWnd()) && dxw.IsFullScreen()){ // v2.02.30: don't alter child and other windows....
// v2.02.30: don't alter child and other windows....
// v2.04.09: comment inconsistent with code. Added '!' to if expression ....
if(!((dxw.dwFlags1 & LOCKWINPOS) && (hwnd == dxw.GethWnd()) && dxw.IsFullScreen())){
OutTraceDW("WindowProc: %s wparam=%x\n", ExplainWinMessage(message), wparam);
return (*pDefWindowProcA)(hwnd, message, wparam, lparam);
}

Binary file not shown.

Binary file not shown.

Binary file not shown.