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:
parent
a8a8f52868
commit
4b8141b136
1
Release/.gitattributes
vendored
1
Release/.gitattributes
vendored
@ -1 +0,0 @@
|
|||||||
*.{dll,exe} filter=lfs diff=lfs merge=lfs -text
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:941f77bf133938a99ebdcbea0c35f2f33248ac7c1d4e7d5fe9d799ce470b433d
|
|
||||||
size 782336
|
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:941f77bf133938a99ebdcbea0c35f2f33248ac7c1d4e7d5fe9d799ce470b433d
|
oid sha256:5fc4cf8ef5a8514260d213b7d89caebe950a9dcfc43e948b25bb835c57e2df28
|
||||||
size 782336
|
size 782848
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:743ed4e87aa9d02d8b85936799f99eb83bab948207f13d1a98497644ddd27b20
|
oid sha256:0478367b7c87124f807b20c7a3f5e3c6337815e9f8d63619ae023702f0efd817
|
||||||
size 673792
|
size 673792
|
||||||
|
36
build/exports/Dominant Species.dxw
Normal file
36
build/exports/Dominant Species.dxw
Normal 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
|
36
build/exports/Hexen II (GDI).dxw
Normal file
36
build/exports/Hexen II (GDI).dxw
Normal 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
|
36
build/exports/Hexen II (OpenGl).dxw
Normal file
36
build/exports/Hexen II (OpenGl).dxw
Normal 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
|
36
build/exports/Interstate 76 Nitro Pack.dxw
Normal file
36
build/exports/Interstate 76 Nitro Pack.dxw
Normal 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
|
36
build/exports/Man TT Super Bike (fake fullscreen).dxw
Normal file
36
build/exports/Man TT Super Bike (fake fullscreen).dxw
Normal 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
|
@ -1,6 +1,6 @@
|
|||||||
[target]
|
[target]
|
||||||
title0=Man TT Super Bike
|
title0=Man TT Super Bike
|
||||||
path0=F:\Games\ManTTSuperBike\MANXTT.EXE
|
path0=D:\Games\ManTT\MANXTT.EXE
|
||||||
startfolder0=
|
startfolder0=
|
||||||
launchpath0=
|
launchpath0=
|
||||||
module0=
|
module0=
|
||||||
@ -10,14 +10,14 @@ registry0=
|
|||||||
ver0=0
|
ver0=0
|
||||||
monitorid0=-1
|
monitorid0=-1
|
||||||
coord0=0
|
coord0=0
|
||||||
flag0=673194022
|
flag0=673185827
|
||||||
flagg0=1207959552
|
flagg0=1241513984
|
||||||
flagh0=327700
|
flagh0=65556
|
||||||
flagi0=138412036
|
flagi0=138412036
|
||||||
flagj0=4224
|
flagj0=4224
|
||||||
flagk0=17104896
|
flagk0=327680
|
||||||
flagl0=276824576
|
flagl0=0
|
||||||
flagm0=0
|
flagm0=1024
|
||||||
tflag0=0
|
tflag0=0
|
||||||
dflag0=0
|
dflag0=0
|
||||||
posx0=50
|
posx0=50
|
||||||
|
@ -6,7 +6,7 @@ opengllib0=
|
|||||||
ver0=0
|
ver0=0
|
||||||
coord0=0
|
coord0=0
|
||||||
flag0=134217762
|
flag0=134217762
|
||||||
flagg0=1207959552
|
flagg0=1275068416
|
||||||
flagh0=20
|
flagh0=20
|
||||||
flagi0=4194308
|
flagi0=4194308
|
||||||
tflag0=0
|
tflag0=0
|
||||||
@ -26,7 +26,7 @@ launchpath0=
|
|||||||
notes0=
|
notes0=
|
||||||
registry0=
|
registry0=
|
||||||
flagj0=0
|
flagj0=0
|
||||||
flagk0=65536
|
flagk0=98304
|
||||||
flagl0=0
|
flagl0=0
|
||||||
flagm0=0
|
flagm0=0
|
||||||
dflag0=0
|
dflag0=0
|
||||||
@ -34,3 +34,9 @@ winver0=0
|
|||||||
maxres0=0
|
maxres0=0
|
||||||
swapeffect0=0
|
swapeffect0=0
|
||||||
maxddinterface0=7
|
maxddinterface0=7
|
||||||
|
startfolder0=
|
||||||
|
monitorid0=0
|
||||||
|
slowratio0=1
|
||||||
|
scanline0=1
|
||||||
|
initresw0=0
|
||||||
|
initresh0=0
|
||||||
|
36
build/exports/NASCAR 2000.dxw
Normal file
36
build/exports/NASCAR 2000.dxw
Normal 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
|
36
build/exports/ShipWreckers demo.dxw
Normal file
36
build/exports/ShipWreckers demo.dxw
Normal 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
|
36
build/exports/SuperBike 2000.dxw
Normal file
36
build/exports/SuperBike 2000.dxw
Normal 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
|
36
build/exports/V-Rally 3.dxw
Normal file
36
build/exports/V-Rally 3.dxw
Normal 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
|
36
build/exports/Warcraft Adventures - Lord Of The Clans.dxw
Normal file
36
build/exports/Warcraft Adventures - Lord Of The Clans.dxw
Normal 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
|
@ -1,6 +1,6 @@
|
|||||||
[target]
|
[target]
|
||||||
title0=Warhammer - Shadow of the Horned Rat
|
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=
|
startfolder0=
|
||||||
launchpath0=
|
launchpath0=
|
||||||
module0=GAMEF.DLL
|
module0=GAMEF.DLL
|
||||||
|
36
build/exports/Wrestling MPire Remix.dxw
Normal file
36
build/exports/Wrestling MPire Remix.dxw
Normal 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
|
@ -1,5 +1,41 @@
|
|||||||
[window]
|
[window]
|
||||||
posx=1235
|
posx=1165
|
||||||
posy=551
|
posy=618
|
||||||
sizx=320
|
sizx=320
|
||||||
sizy=200
|
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
|
||||||
|
@ -1,228 +1,2 @@
|
|||||||
OnRun idx=6 prog="F:\RhemE\RhemE\RHEM.noshim.exe" unhooked=0
|
OnRun idx=28 prog="D:\Games\ManTT\MANXTT.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
|
|
||||||
setwindowshook mode
|
setwindowshook mode
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
|
|
||||||
[HKEY_LOCAL_MACHINE\SOFTWARE]
|
[HKEY_LOCAL_MACHINE\SOFTWARE]
|
||||||
|
|
||||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Mindscape]
|
[HKEY_LOCAL_MACHINE\SOFTWARE\Mindscape]
|
||||||
|
|
||||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Mindscape\WarHammerFB]
|
[HKEY_LOCAL_MACHINE\SOFTWARE\Mindscape\WarHammerFB]
|
||||||
;"Options"="1,1,1,1,1,2,1,1" // digital audio on
|
;"Options"="3,1,1,2,1,1,0,0" // High Quality, digital audio off
|
||||||
"Options"="1,1,1,1,1,2,0,0" // digital audio off
|
"Options"="3,1,1,2,1,1,1,1" // High Quality, digital audio on
|
||||||
;"Options"="0,0,0,0,0,0,0,0" //all off
|
|
||||||
|
|
||||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Mindscape\WarHammerFB\InstallDir]
|
[HKEY_LOCAL_MACHINE\SOFTWARE\Mindscape\WarHammerFB\InstallDir]
|
||||||
@="\{path}"
|
@="\{path}"
|
||||||
|
@ -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 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: ddraw surface capability regression for zbuffer: fixes "Toca Touring Car" in SW mode
|
||||||
fix: in fx1, bug crashing app when querying unknown interfaces!
|
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 ...
|
||||||
|
@ -352,14 +352,7 @@ static HRESULT BuildPrimaryFullscreen(LPDIRECTDRAW lpdd, CreateSurface_Type pCre
|
|||||||
if (res==DDERR_PRIMARYSURFACEALREADYEXISTS){
|
if (res==DDERR_PRIMARYSURFACEALREADYEXISTS){
|
||||||
LPDIRECTDRAWSURFACE lpPrim;
|
LPDIRECTDRAWSURFACE lpPrim;
|
||||||
GetGDISurface_Type pGetGDISurface;
|
GetGDISurface_Type pGetGDISurface;
|
||||||
switch(dxversion){
|
pGetGDISurface = pGetGDISurfaceMethod(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;
|
|
||||||
}
|
|
||||||
OutTraceE("BuildPrimaryFullscreen: CreateSurface DDERR_PRIMARYSURFACEALREADYEXISTS workaround\n");
|
OutTraceE("BuildPrimaryFullscreen: CreateSurface DDERR_PRIMARYSURFACEALREADYEXISTS workaround\n");
|
||||||
(*pGetGDISurface)(lpPrimaryDD, &lpPrim);
|
(*pGetGDISurface)(lpPrimaryDD, &lpPrim);
|
||||||
while ((*pReleaseSMethod(dxversion))(lpPrim));
|
while ((*pReleaseSMethod(dxversion))(lpPrim));
|
||||||
@ -411,14 +404,7 @@ static HRESULT BuildPrimaryDir(LPDIRECTDRAW lpdd, CreateSurface_Type pCreateSurf
|
|||||||
if (res==DDERR_PRIMARYSURFACEALREADYEXISTS){
|
if (res==DDERR_PRIMARYSURFACEALREADYEXISTS){
|
||||||
LPDIRECTDRAWSURFACE lpPrim;
|
LPDIRECTDRAWSURFACE lpPrim;
|
||||||
GetGDISurface_Type pGetGDISurface;
|
GetGDISurface_Type pGetGDISurface;
|
||||||
switch(dxversion){
|
pGetGDISurface = pGetGDISurfaceMethod(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;
|
|
||||||
}
|
|
||||||
OutTraceE("BuildPrimaryDir: CreateSurface DDERR_PRIMARYSURFACEALREADYEXISTS workaround\n");
|
OutTraceE("BuildPrimaryDir: CreateSurface DDERR_PRIMARYSURFACEALREADYEXISTS workaround\n");
|
||||||
(*pGetGDISurface)(lpPrimaryDD, &lpPrim);
|
(*pGetGDISurface)(lpPrimaryDD, &lpPrim);
|
||||||
while ((*pReleaseSMethod(dxversion))(lpPrim));
|
while ((*pReleaseSMethod(dxversion))(lpPrim));
|
||||||
@ -668,14 +654,7 @@ static HRESULT BuildBackBufferDir(LPDIRECTDRAW lpdd, CreateSurface_Type pCreateS
|
|||||||
LPDIRECTDRAWSURFACE lpPrim;
|
LPDIRECTDRAWSURFACE lpPrim;
|
||||||
DDSURFACEDESC2 prim;
|
DDSURFACEDESC2 prim;
|
||||||
GetGDISurface_Type pGetGDISurface;
|
GetGDISurface_Type pGetGDISurface;
|
||||||
switch(dxversion){
|
pGetGDISurface = pGetGDISurfaceMethod(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)(lpPrimaryDD, &lpPrim);
|
(*pGetGDISurface)(lpPrimaryDD, &lpPrim);
|
||||||
memset(&prim, 0, sizeof(DDSURFACEDESC2));
|
memset(&prim, 0, sizeof(DDSURFACEDESC2));
|
||||||
prim.dwSize = (dxversion >= 4) ? sizeof(DDSURFACEDESC2) : sizeof(DDSURFACEDESC);
|
prim.dwSize = (dxversion >= 4) ? sizeof(DDSURFACEDESC2) : sizeof(DDSURFACEDESC);
|
||||||
@ -1007,13 +986,20 @@ HRESULT WINAPI extCreateSurface(int dxversion, CreateSurface_Type pCreateSurface
|
|||||||
if(res) return res;
|
if(res) return res;
|
||||||
lpDDSPrim = *lplpdds;
|
lpDDSPrim = *lplpdds;
|
||||||
dxwss.PushPrimarySurface(lpDDSPrim, dxversion);
|
dxwss.PushPrimarySurface(lpDDSPrim, dxversion);
|
||||||
|
dxwcdb.PushCaps(*lplpdds, lpddsd->ddsCaps.dwCaps);
|
||||||
RegisterPixelFormat(dxversion, lpDDSPrim);
|
RegisterPixelFormat(dxversion, lpDDSPrim);
|
||||||
|
|
||||||
if (BBCount){
|
if (BBCount){
|
||||||
|
DWORD dwCaps;
|
||||||
// build emulated backbuffer surface
|
// build emulated backbuffer surface
|
||||||
res=AttachBackBuffer(lpdd, pCreateSurface, lpddsd, dxversion, &lpDDSBack, NULL);
|
res=AttachBackBuffer(lpdd, pCreateSurface, lpddsd, dxversion, &lpDDSBack, NULL);
|
||||||
if(res) return res;
|
if(res) return res;
|
||||||
dxwss.PushBackBufferSurface(lpDDSBack, dxversion);
|
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){
|
if(IsTraceDDRAW){
|
||||||
|
@ -956,6 +956,20 @@ SetClipper_Type pSetClipperMethod(int dxversion)
|
|||||||
return pSetClipper;
|
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 pBltMethod()
|
||||||
{
|
{
|
||||||
Blt_Type pBlt;
|
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
|
if((lpddsd->dwFlags & DDSD_CAPS) && (lpddsd->ddsCaps.dwCaps & DDSCAPS_ZBUFFER)) { // z-buffer surface - set to memory
|
||||||
lpddsd->ddsCaps.dwCaps = DDSCAPS_ZBUFFER;
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2456,6 +2470,29 @@ HRESULT WINAPI extGetAttachedSurface(int dxversion, GetAttachedSurface_Type pGet
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
OutTraceDDRAW("GetAttachedSurface(%d): attached=%x\n", dxversion, *lplpddas);
|
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;
|
return res;
|
||||||
@ -2860,13 +2897,7 @@ HRESULT WINAPI ColorConversionEmulated(int dxversion, LPDIRECTDRAWSURFACE lpdds,
|
|||||||
HRESULT res;
|
HRESULT res;
|
||||||
Blt_Type pBlt;
|
Blt_Type pBlt;
|
||||||
RECT srcrect, destrect;
|
RECT srcrect, destrect;
|
||||||
switch(dxversion){
|
pBlt = pGetBltMethod(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;
|
|
||||||
}
|
|
||||||
// v2.04.01.fx6: copy emurect since pEmuBlt will alter values!
|
// v2.04.01.fx6: copy emurect since pEmuBlt will alter values!
|
||||||
srcrect=destrect=emurect;
|
srcrect=destrect=emurect;
|
||||||
res=(*pEmuBlt)(dxversion, pBlt, lpDDSEmu_Back, &destrect, lpdds, &srcrect, DDBLT_WAIT, 0);
|
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));
|
lpdds, IsPrim?"(PRIM)":"", lpddssrc, dwflags, ExplainFlipFlags(dwflags));
|
||||||
|
|
||||||
Blt_Type pBlt;
|
Blt_Type pBlt;
|
||||||
switch (dxversion){
|
pBlt = pGetBltMethod(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;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!IsPrim){
|
if (!IsPrim){
|
||||||
if(lpddssrc){
|
if(lpddssrc){
|
||||||
@ -3028,7 +3053,8 @@ HRESULT WINAPI extFlip(int dxversion, Flip_Type pFlip, LPDIRECTDRAWSURFACE lpdds
|
|||||||
ddsd.dwHeight = dxw.GetScreenHeight();
|
ddsd.dwHeight = dxw.GetScreenHeight();
|
||||||
ddsd.dwWidth = dxw.GetScreenWidth();
|
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) {
|
if(res2) {
|
||||||
OutTraceE("CreateSurface: ERROR %x(%s) at %d\n", res2, ExplainDDError(res2), __LINE__);
|
OutTraceE("CreateSurface: ERROR %x(%s) at %d\n", res2, ExplainDDError(res2), __LINE__);
|
||||||
OutTraceE("Size=%d lpPrimaryDD=%x lpDDSBack=%x %s\n",
|
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);
|
PushLockedRect(lpdds, lprect);
|
||||||
|
|
||||||
switch(dxversion){
|
// v2.04.09: for IDirectDraw methods use iBakBufferVersion instead of dxversion ...
|
||||||
case 1: pBlt=pBlt1; pGetGDISurface=pGetGDISurface1; break;
|
pBlt = pGetBltMethod(dxversion);
|
||||||
case 2: pBlt=pBlt2; pGetGDISurface=pGetGDISurface2; break;
|
pGetGDISurface = pGetGDISurfaceMethod(iBakBufferVersion);
|
||||||
case 3: pBlt=pBlt3; pGetGDISurface=pGetGDISurface3; break;
|
|
||||||
case 4: pBlt=pBlt4; pGetGDISurface=pGetGDISurface4; break;
|
|
||||||
case 7: pBlt=pBlt7; pGetGDISurface=pGetGDISurface7; break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// V2.02.43: Empire Earth does some test Lock operations apparently before the primary surface is created
|
// V2.02.43: Empire Earth does some test Lock operations apparently before the primary surface is created
|
||||||
if(lpPrimaryDD){
|
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);
|
OutTrace("Unlock(%d): lpdds=%x%s %s\n", dxversion, lpdds, (IsPrim ? "(PRIM)": (IsBack ? "(BACK)" : "")), sRect);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(dxversion){
|
pBlt = pGetBltMethod(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;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch(dxversion){
|
switch(dxversion){
|
||||||
case 4:
|
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);
|
OutTrace("Unlock(%d): lpdds=%x%s %s\n", dxversion, lpdds, (IsPrim ? "(PRIM)": (IsBack ? "(BACK)" : "")), sRect);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(dxversion){
|
// v2.04.09: for IDirectDraw methods use iBakBufferVersion instead of dxversion ...
|
||||||
default:
|
pBlt = pGetBltMethod(dxversion);
|
||||||
case 1: pGetGDISurface = pGetGDISurface1; pBlt = pBlt1; break;
|
pGetGDISurface = pGetGDISurfaceMethod(iBakBufferVersion);
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(dxw.dwFlags1 & LOCKEDSURFACE){
|
if(dxw.dwFlags1 & LOCKEDSURFACE){
|
||||||
(*pGetGDISurface)(lpPrimaryDD, &lpDDSPrim);
|
(*pGetGDISurface)(lpPrimaryDD, &lpDDSPrim);
|
||||||
@ -3986,14 +3997,9 @@ HRESULT WINAPI extReleaseDC(int dxversion, ReleaseDC_Type pReleaseDC, LPDIRECTDR
|
|||||||
if((IsPrim) && (dxw.dwFlags1 & EMULATESURFACE)) {\
|
if((IsPrim) && (dxw.dwFlags1 & EMULATESURFACE)) {\
|
||||||
Blt_Type pBlt;
|
Blt_Type pBlt;
|
||||||
GetGDISurface_Type pGetGDISurface;
|
GetGDISurface_Type pGetGDISurface;
|
||||||
switch(dxversion){
|
// v2.04.09: for IDirectDraw methods use iBakBufferVersion instead of dxversion ...
|
||||||
default:
|
pBlt = pGetBltMethod(dxversion);
|
||||||
case 1: pGetGDISurface = pGetGDISurface1; pBlt = pBlt1; break;
|
pGetGDISurface = pGetGDISurfaceMethod(iBakBufferVersion);
|
||||||
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;
|
|
||||||
}
|
|
||||||
sBlt(dxversion, pBlt, "ReleaseDC", lpdds, NULL, lpdds, NULL, 0, NULL, FALSE);
|
sBlt(dxversion, pBlt, "ReleaseDC", lpdds, NULL, lpdds, NULL, 0, NULL, FALSE);
|
||||||
}
|
}
|
||||||
if (res) OutTraceE("ReleaseDC: ERROR res=%x(%s)\n", res, ExplainDDError(res));
|
if (res) OutTraceE("ReleaseDC: ERROR res=%x(%s)\n", res, ExplainDDError(res));
|
||||||
|
@ -421,6 +421,7 @@ void dxwCore::CalculateWindowPos(HWND hwnd, DWORD width, DWORD height, LPWINDOWP
|
|||||||
break;
|
break;
|
||||||
case DXW_SET_COORDINATES:
|
case DXW_SET_COORDINATES:
|
||||||
default:
|
default:
|
||||||
|
// set size
|
||||||
if(bAutoScale){
|
if(bAutoScale){
|
||||||
MaxX = GetScreenWidth();
|
MaxX = GetScreenWidth();
|
||||||
MaxY = GetScreenHeight();
|
MaxY = GetScreenHeight();
|
||||||
@ -443,6 +444,11 @@ void dxwCore::CalculateWindowPos(HWND hwnd, DWORD width, DWORD height, LPWINDOWP
|
|||||||
MaxY = height;
|
MaxY = height;
|
||||||
if(dxw.dwFlags4 & BILINEAR2XFILTER) MaxY <<= 1; // double
|
if(dxw.dwFlags4 & BILINEAR2XFILTER) MaxY <<= 1; // double
|
||||||
}
|
}
|
||||||
|
// set pos
|
||||||
|
if(dxw.dwFlags7 & ANCHORED){
|
||||||
|
iPosX = iPos0X;
|
||||||
|
iPosY = iPos0Y;
|
||||||
|
}
|
||||||
rect.left = iPosX;
|
rect.left = iPosX;
|
||||||
rect.top = iPosY; //v2.02.09
|
rect.top = iPosY; //v2.02.09
|
||||||
rect.right = iPosX + MaxX;
|
rect.right = iPosX + MaxX;
|
||||||
@ -459,7 +465,7 @@ void dxwCore::CalculateWindowPos(HWND hwnd, DWORD width, DWORD height, LPWINDOWP
|
|||||||
dwExStyle=(*pGetWindowLong)(hwnd, GWL_EXSTYLE);
|
dwExStyle=(*pGetWindowLong)(hwnd, GWL_EXSTYLE);
|
||||||
// BEWARE: from MSDN - If the window is a child window, the return value is undefined.
|
// BEWARE: from MSDN - If the window is a child window, the return value is undefined.
|
||||||
hMenu = (dwStyle & WS_CHILD) ? NULL : GetMenu(hwnd);
|
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){};
|
// if (hMenu) __try {CloseHandle(hMenu);} __except(EXCEPTION_EXECUTE_HANDLER){};
|
||||||
switch(dxw.Coordinates){
|
switch(dxw.Coordinates){
|
||||||
case DXW_DESKTOP_WORKAREA:
|
case DXW_DESKTOP_WORKAREA:
|
||||||
|
@ -8,8 +8,12 @@
|
|||||||
#include "dxwnd.h"
|
#include "dxwnd.h"
|
||||||
#include "dxwcore.hpp"
|
#include "dxwcore.hpp"
|
||||||
|
|
||||||
//#define DXW_SURFACE_STACK_TRACING
|
#if 0
|
||||||
//#define OutTraceSDB OutTrace
|
// uncomment (#if 1) to activate caps db tracing
|
||||||
|
#define DXW_SURFACE_STACK_TRACING
|
||||||
|
#define OutTraceSDB OutTrace
|
||||||
|
#include "dxhelper.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
dxwCapsDB::dxwCapsDB()
|
dxwCapsDB::dxwCapsDB()
|
||||||
{
|
{
|
||||||
@ -25,7 +29,7 @@ void dxwCapsDB::PushCaps(LPDIRECTDRAWSURFACE ps, DWORD dwCaps)
|
|||||||
int i;
|
int i;
|
||||||
CapsDB_Type *e;
|
CapsDB_Type *e;
|
||||||
#ifdef DXW_SURFACE_STACK_TRACING
|
#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
|
#endif
|
||||||
for (i=0;i<DDSQLEN;i++) {
|
for (i=0;i<DDSQLEN;i++) {
|
||||||
e=&CapsDB[i];
|
e=&CapsDB[i];
|
||||||
@ -49,11 +53,11 @@ DWORD dxwCapsDB::GetCaps(LPDIRECTDRAWSURFACE ps)
|
|||||||
if (CapsDB[i].lpdds==0) return 0;
|
if (CapsDB[i].lpdds==0) return 0;
|
||||||
if (CapsDB[i].lpdds==ps) break;
|
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){
|
if (CapsDB[i].lpdds==ps){
|
||||||
#ifdef DXW_SURFACE_STACK_TRACING
|
#ifdef DXW_SURFACE_STACK_TRACING
|
||||||
OutTraceSDB(">>> CAPSDB GETCAPS: i=%d lpdds=%x caps=%x(%s)\n",
|
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
|
#endif
|
||||||
return CapsDB[i].dwCaps;
|
return CapsDB[i].dwCaps;
|
||||||
}
|
}
|
||||||
|
@ -131,8 +131,8 @@ void dxwCore::InitTarget(TARGETMAP *target)
|
|||||||
}
|
}
|
||||||
iSiz0X = iSizX = target->sizx;
|
iSiz0X = iSizX = target->sizx;
|
||||||
iSiz0Y = iSizY = target->sizy;
|
iSiz0Y = iSizY = target->sizy;
|
||||||
iPosX = target->posx;
|
iPos0X = iPosX = target->posx;
|
||||||
iPosY = target->posy;
|
iPos0Y = iPosY = target->posy;
|
||||||
iMaxW = target->resw;
|
iMaxW = target->resw;
|
||||||
iMaxH = target->resh;
|
iMaxH = target->resh;
|
||||||
// Aspect Ratio from window size, or traditional 4:3 by default
|
// Aspect Ratio from window size, or traditional 4:3 by default
|
||||||
@ -1161,6 +1161,7 @@ DWORD dxwCore::FixWinExStyle(DWORD dwExStyle)
|
|||||||
dwExStyle = 0;
|
dwExStyle = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return dwExStyle;
|
return dwExStyle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -187,6 +187,8 @@ public: // simple data variables
|
|||||||
long iPosY;
|
long iPosY;
|
||||||
long iSizX;
|
long iSizX;
|
||||||
long iSizY;
|
long iSizY;
|
||||||
|
long iPos0X;
|
||||||
|
long iPos0Y;
|
||||||
long iSiz0X;
|
long iSiz0X;
|
||||||
long iSiz0Y;
|
long iSiz0Y;
|
||||||
long iMaxW;
|
long iMaxW;
|
||||||
|
@ -27,7 +27,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#include "TlHelp32.h"
|
#include "TlHelp32.h"
|
||||||
|
|
||||||
#define VERSION "2.04.08.fx1"
|
#define VERSION "2.04.09.fx1"
|
||||||
|
|
||||||
#define DDTHREADLOCK 1
|
#define DDTHREADLOCK 1
|
||||||
|
|
||||||
|
Binary file not shown.
@ -41,6 +41,7 @@ HRESULT WINAPI extQueryInterfaceDX(int dxversion, QueryInterface_Type pQueryInte
|
|||||||
BOOL IsBack;
|
BOOL IsBack;
|
||||||
int iObjectType;
|
int iObjectType;
|
||||||
int iObjectVersion;
|
int iObjectVersion;
|
||||||
|
DWORD dwCaps;
|
||||||
extern LPDIRECTDRAWSURFACE lpDDSEmu_Prim;
|
extern LPDIRECTDRAWSURFACE lpDDSEmu_Prim;
|
||||||
|
|
||||||
IsPrim=dxwss.IsAPrimarySurface((LPDIRECTDRAWSURFACE)lpdds);
|
IsPrim=dxwss.IsAPrimarySurface((LPDIRECTDRAWSURFACE)lpdds);
|
||||||
@ -177,10 +178,9 @@ HRESULT WINAPI extQueryInterfaceDX(int dxversion, QueryInterface_Type pQueryInte
|
|||||||
}
|
}
|
||||||
|
|
||||||
// added trace
|
// added trace
|
||||||
OutTraceDW("QueryInterface: lpdds=%x%s REFIID=%x obp=%x obj=%s version=%d ret=0\n",
|
OutTraceDW("QueryInterface: lpdds=%x REFIID=%x obp=%x obj=%s version=%d ret=0\n",
|
||||||
lpdds, IsPrim?"(PRIM)":"", riid.Data1, *obp, sLabel, iObjectVersion);
|
lpdds, riid.Data1, *obp, sLabel, iObjectVersion);
|
||||||
|
|
||||||
// --------- here .....
|
|
||||||
switch(iObjectType){
|
switch(iObjectType){
|
||||||
// simulate unavailable interfaces (useful?)
|
// simulate unavailable interfaces (useful?)
|
||||||
case TYPE_OBJECT_DIRECTDRAW:
|
case TYPE_OBJECT_DIRECTDRAW:
|
||||||
@ -195,15 +195,18 @@ HRESULT WINAPI extQueryInterfaceDX(int dxversion, QueryInterface_Type pQueryInte
|
|||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
if(IsBack) dxwss.PushBackBufferSurface((LPDIRECTDRAWSURFACE)*obp, iObjectVersion);
|
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?
|
// v2.02.13: seems that hooking inconditionally gives troubles. What is the proper safe hook condition?
|
||||||
HookDDSurface((LPDIRECTDRAWSURFACE *)obp, dxw.dwDDVersion, FALSE);
|
HookDDSurface((LPDIRECTDRAWSURFACE *)obp, dxw.dwDDVersion, FALSE);
|
||||||
}
|
}
|
||||||
DWORD dwCaps;
|
dwCaps = dxwcdb.GetCaps((LPDIRECTDRAWSURFACE)lpdds);
|
||||||
if (dwCaps = dxwcdb.GetCaps((LPDIRECTDRAWSURFACE)lpdds)) {
|
if (dwCaps) {
|
||||||
OutTrace("QueryInterface(S): PASS caps=%x lpdds=%x->%x\n", dwCaps, lpdds, *obp);
|
OutTraceDW("QueryInterface(S): PASS lpdds=%x->%x caps=%x(%s)\n", lpdds, *obp, dwCaps, ExplainDDSCaps(dwCaps));
|
||||||
dxwcdb.PushCaps(*(LPDIRECTDRAWSURFACE *)obp,dwCaps);
|
dxwcdb.PushCaps(*(LPDIRECTDRAWSURFACE *)obp, dwCaps);
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
OutTraceDW("QueryInterface(S): NO CAPS\n");
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case TYPE_OBJECT_DIRECT3D:
|
case TYPE_OBJECT_DIRECT3D:
|
||||||
HookDirect3DSession((LPDIRECTDRAW *)obp, iObjectVersion);
|
HookDirect3DSession((LPDIRECTDRAW *)obp, iObjectVersion);
|
||||||
|
@ -299,6 +299,8 @@ typedef HBITMAP (WINAPI *LoadBitmapA_Type)(HINSTANCE, LPCSTR);
|
|||||||
typedef BOOL (WINAPI *EnumWindows_Type)(WNDENUMPROC, LPARAM);
|
typedef BOOL (WINAPI *EnumWindows_Type)(WNDENUMPROC, LPARAM);
|
||||||
typedef BOOL (WINAPI *GetMessage_Type)(LPMSG, HWND, UINT, UINT);
|
typedef BOOL (WINAPI *GetMessage_Type)(LPMSG, HWND, UINT, UINT);
|
||||||
typedef BOOL (WINAPI *PostMessage_Type)(HWND, UINT, WPARAM, LPARAM);
|
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:
|
// Winmm.dll:
|
||||||
typedef MCIERROR(WINAPI *mciSendCommand_Type)(MCIDEVICEID, UINT, DWORD_PTR, DWORD_PTR);
|
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 EnumWindows_Type pEnumWindows DXWINITIALIZED;
|
||||||
DXWEXTERN GetMessage_Type pGetMessageA, pGetMessageW DXWINITIALIZED;
|
DXWEXTERN GetMessage_Type pGetMessageA, pGetMessageW DXWINITIALIZED;
|
||||||
DXWEXTERN PostMessage_Type pPostMessageA, pPostMessageW DXWINITIALIZED;
|
DXWEXTERN PostMessage_Type pPostMessageA, pPostMessageW DXWINITIALIZED;
|
||||||
|
DXWEXTERN AdjustWindowRect_Type pAdjustWindowRect DXWINITIALIZED;
|
||||||
|
DXWEXTERN AdjustWindowRectEx_Type pAdjustWindowRectEx DXWINITIALIZED;
|
||||||
|
|
||||||
// Winmm.dll:
|
// Winmm.dll:
|
||||||
DXWEXTERN mciSendCommand_Type pmciSendCommandA DXWINITIALIZED;
|
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 extGetMessageW(LPMSG, HWND, UINT, UINT);
|
||||||
extern BOOL WINAPI extPostMessageA(HWND, UINT, WPARAM, LPARAM);
|
extern BOOL WINAPI extPostMessageA(HWND, UINT, WPARAM, LPARAM);
|
||||||
extern BOOL WINAPI extPostMessageW(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:
|
// Winmm.dll:
|
||||||
extern MCIERROR WINAPI extmciSendCommandA(MCIDEVICEID, UINT, DWORD_PTR, DWORD_PTR);
|
extern MCIERROR WINAPI extmciSendCommandA(MCIDEVICEID, UINT, DWORD_PTR, DWORD_PTR);
|
||||||
|
@ -85,7 +85,6 @@ static HookEntryEx_Type Hooks[]={
|
|||||||
|
|
||||||
#ifdef GALAPAGOSTEST
|
#ifdef GALAPAGOSTEST
|
||||||
// test for Galapagos
|
// 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, "GetForegroundWindow", (FARPROC)GetForegroundWindow, (FARPROC *)&pGetForegroundWindow, (FARPROC)extGetForegroundWindow},
|
||||||
{HOOK_HOT_CANDIDATE, 0, "GetFocus", (FARPROC)GetFocus, (FARPROC *)&pGetFocus, (FARPROC)extGetFocus},
|
{HOOK_HOT_CANDIDATE, 0, "GetFocus", (FARPROC)GetFocus, (FARPROC *)&pGetFocus, (FARPROC)extGetFocus},
|
||||||
{HOOK_HOT_CANDIDATE, 0, "SetFocus", (FARPROC)SetFocus, (FARPROC *)&pSetFocus, (FARPROC)extSetFocus},
|
{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, "LoadBitmapA", (FARPROC)NULL, (FARPROC *)&pLoadBitmapA, (FARPROC)extLoadBitmapA},
|
||||||
|
|
||||||
{HOOK_IAT_CANDIDATE, 0, "EnumWindows", (FARPROC)NULL, (FARPROC *)&pEnumWindows, (FARPROC)extEnumWindows},
|
{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
|
{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);
|
dwStyle=(*pGetWindowLong)(hwnd, GWL_STYLE);
|
||||||
dwExStyle=(*pGetWindowLong)(hwnd, GWL_EXSTYLE);
|
dwExStyle=(*pGetWindowLong)(hwnd, GWL_EXSTYLE);
|
||||||
hMenu = (dwStyle & WS_CHILD) ? NULL : GetMenu(hwnd);
|
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){};
|
if (hMenu && (hMenu != (HMENU)-1)) __try {CloseHandle(hMenu);} __except(EXCEPTION_EXECUTE_HANDLER){};
|
||||||
BorderX= full.right - full.left - client.right;
|
BorderX= full.right - full.left - client.right;
|
||||||
BorderY= full.bottom - full.top - client.bottom;
|
BorderY= full.bottom - full.top - client.bottom;
|
||||||
@ -516,7 +518,7 @@ void dxwFixWindowPos(char *ApiName, HWND hwnd, LPARAM lParam)
|
|||||||
dwStyle=(*pGetWindowLong)(hwnd, GWL_STYLE);
|
dwStyle=(*pGetWindowLong)(hwnd, GWL_STYLE);
|
||||||
dwExStyle=(*pGetWindowLong)(hwnd, GWL_EXSTYLE);
|
dwExStyle=(*pGetWindowLong)(hwnd, GWL_EXSTYLE);
|
||||||
hMenu = (dwStyle & WS_CHILD) ? NULL : GetMenu(hwnd);
|
hMenu = (dwStyle & WS_CHILD) ? NULL : GetMenu(hwnd);
|
||||||
AdjustWindowRectEx(&wrect, dwStyle, (hMenu!=NULL), dwExStyle);
|
(*pAdjustWindowRectEx)(&wrect, dwStyle, (hMenu!=NULL), dwExStyle);
|
||||||
minx = wrect.right - wrect.left;
|
minx = wrect.right - wrect.left;
|
||||||
miny = wrect.bottom - wrect.top;
|
miny = wrect.bottom - wrect.top;
|
||||||
if(wp->cx < minx) wp->cx = minx;
|
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);
|
dwExStyle=(*pGetWindowLong)(hwnd, GWL_EXSTYLE);
|
||||||
// BEWARE: from MSDN - If the window is a child window, the return value is undefined.
|
// BEWARE: from MSDN - If the window is a child window, the return value is undefined.
|
||||||
hMenu = (dwCurStyle & WS_CHILD) ? NULL : GetMenu(hwnd);
|
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){};
|
if (hMenu && (hMenu != (HMENU)-1)) __try {CloseHandle(hMenu);} __except(EXCEPTION_EXECUTE_HANDLER){};
|
||||||
cx=rect.right; cy=rect.bottom;
|
cx=rect.right; cy=rect.bottom;
|
||||||
OutTraceDW("SetWindowPos: main form hwnd=%x fixed size=(%d,%d)\n", hwnd, cx, cy);
|
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);
|
ret=(*pUpdateWindow)(hwnd);
|
||||||
if(!ret) OutTraceE("UpdateWindow: ERROR er=%d\n", GetLastError());
|
if(!ret) OutTraceE("UpdateWindow: ERROR err=%d\n", GetLastError());
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3203,7 +3205,8 @@ HWND WINAPI extGetActiveWindow(void)
|
|||||||
{
|
{
|
||||||
HWND ret;
|
HWND ret;
|
||||||
ret=(*pGetActiveWindow)();
|
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());
|
OutTraceDW("GetActiveWindow: ret=%x->%x\n", ret, dxw.GethWnd());
|
||||||
return dxw.GethWnd();
|
return dxw.GethWnd();
|
||||||
}
|
}
|
||||||
@ -4072,7 +4075,7 @@ INT_PTR WINAPI extDialogBoxIndirectParamA(HINSTANCE hInstance, LPCDLGTEMPLATE hD
|
|||||||
{
|
{
|
||||||
//INT_PTR ret;
|
//INT_PTR ret;
|
||||||
// MessageBox(0, "DialogBoxIndirectParamA", "step", 0);
|
// 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);
|
hInstance, hDialogTemplate->x, hDialogTemplate->y, hDialogTemplate->cx, hDialogTemplate->cy, hWndParent, lpDialogFunc, dwInitParam);
|
||||||
return (*pDialogBoxIndirectParamA)(hInstance, hDialogTemplate, 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 WINAPI extLoadBitmapA(HINSTANCE hInstance, LPCSTR lpBitmapName)
|
||||||
{
|
{
|
||||||
HBITMAP ret;
|
HBITMAP ret;
|
||||||
OutTrace("LoadBitmapA: hinst=%x name=%s\n", hInstance, lpBitmapName);
|
OutTraceDW("LoadBitmapA: hinst=%x name=%s\n", hInstance, lpBitmapName);
|
||||||
ret = (*pLoadBitmapA)(hInstance, lpBitmapName);
|
ret = (*pLoadBitmapA)(hInstance, lpBitmapName);
|
||||||
if(ret){
|
if(ret){
|
||||||
OutTrace("LoadBitmapA: hbitmap=%x\n", ret);
|
OutTraceDW("LoadBitmapA: hbitmap=%x\n", ret);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
OutTrace("LoadBitmapA: ERROR err=%d\n", GetLastError());
|
OutTraceE("LoadBitmapA: ERROR err=%d\n", GetLastError());
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL WINAPI extEnumWindows(WNDENUMPROC lpEnumFunc, LPARAM lParam)
|
BOOL WINAPI extEnumWindows(WNDENUMPROC lpEnumFunc, LPARAM lParam)
|
||||||
{
|
{
|
||||||
OutTrace("EnumerateWindows\n");
|
OutTraceDW("EnumerateWindows\n");
|
||||||
if(dxw.dwFlags8 & WININSULATION){
|
if(dxw.dwFlags8 & WININSULATION){
|
||||||
OutTrace("EnumerateWindows: BYPASS\n");
|
OutTraceDW("EnumerateWindows: BYPASS\n");
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
return (*pEnumWindows)(lpEnumFunc, lParam);
|
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:
|
// To do:
|
||||||
// GrayStringA
|
// GrayStringA
|
||||||
// GrayStringW
|
// GrayStringW
|
@ -303,7 +303,9 @@ LRESULT CALLBACK extWindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lp
|
|||||||
break;
|
break;
|
||||||
case WM_NCCALCSIZE:
|
case WM_NCCALCSIZE:
|
||||||
case WM_NCPAINT:
|
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);
|
OutTraceDW("WindowProc: %s wparam=%x\n", ExplainWinMessage(message), wparam);
|
||||||
return (*pDefWindowProcA)(hwnd, message, wparam, lparam);
|
return (*pDefWindowProcA)(hwnd, message, wparam, lparam);
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user