mirror of
https://github.com/DxWnd/DxWnd.reloaded
synced 2024-12-30 09:25:35 +01:00
v2_04_18_src
Former-commit-id: a236d8102f7cf07342c20cc701e08f30e8f4f142
This commit is contained in:
parent
de4d2e231d
commit
db2398ce2e
@ -279,6 +279,8 @@
|
||||
#define ZBUFFERHARDCLEAN 0x08000000 // Clean ZBUFFER the hard way (memset 0xFF on whole surface buffer ....)
|
||||
#define LOADLIBRARYERR 0x10000000 // When LoadLibrary* fail for missing file returns ... instead of ....
|
||||
#define SHAREDDCHYBRID 0x20000000 // Hybrid mode for shared dc GDI emulation - blits both on ddraw surface and window surface
|
||||
#define FIXADJUSTWINRECT 0x40000000 // Hybrid mode for shared dc GDI emulation - blits both on ddraw surface and window surface
|
||||
#define HOOKDLGWIN 0x80000000 // Hook dialog WindowProc
|
||||
|
||||
// 9th flags DWORD dxw.dwFlags9:
|
||||
// 10th flags DWORD dxw.dwFlags10:
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:66c9cb4107758dceb3b65f8f4c1422c950197c50f039e41ff421489b1e5128ac
|
||||
size 794112
|
||||
oid sha256:bc9cd4434c5e1cc62759f1f396ddf04187cadd462517a54e81b74f3c57e61ba9
|
||||
size 797184
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f46151918909f2ce7b12958e32290a0173cd6e56e3471c371f4f3db4d9eecc67
|
||||
oid sha256:ac09abd75ae8f05f413982233724599a86ba349074cf526bea61ad724e15062e
|
||||
size 707584
|
||||
|
153
build/dxwnd.ini
Normal file
153
build/dxwnd.ini
Normal file
@ -0,0 +1,153 @@
|
||||
[target]
|
||||
maxres147=0
|
||||
swapeffect147=0
|
||||
maxddinterface147=7
|
||||
slowratio147=1
|
||||
scanline147=1
|
||||
initresw147=0
|
||||
initresh147=0
|
||||
title148=State of War Warmonger
|
||||
path148=D:\Games\State of War Warmonger\State of War - Warmonger.exe
|
||||
startfolder148=
|
||||
launchpath148=
|
||||
module148=
|
||||
opengllib148=
|
||||
notes148=
|
||||
registry148=
|
||||
ver148=0
|
||||
monitorid148=0
|
||||
coord148=0
|
||||
flag148=134234210
|
||||
flagg148=134217728
|
||||
flagh148=532
|
||||
flagi148=4
|
||||
flagj148=0
|
||||
flagk148=0
|
||||
flagl148=0
|
||||
flagm148=0
|
||||
tflag148=0
|
||||
dflag148=0
|
||||
posx148=50
|
||||
posy148=50
|
||||
sizx148=800
|
||||
sizy148=600
|
||||
maxfps148=0
|
||||
initts148=0
|
||||
winver148=0
|
||||
maxres148=-1
|
||||
swapeffect148=0
|
||||
maxddinterface148=7
|
||||
slowratio148=1
|
||||
scanline148=1
|
||||
initresw148=0
|
||||
initresh148=0
|
||||
title149=STCC Swedish TouringCar Championship
|
||||
path149=D:\Games\STCC\STCC.exe
|
||||
startfolder149=
|
||||
launchpath149=
|
||||
module149=
|
||||
opengllib149=
|
||||
notes149=Still slow and choppy in emulation mode
|
||||
registry149=
|
||||
ver149=0
|
||||
monitorid149=0
|
||||
coord149=0
|
||||
flag149=136314914
|
||||
flagg149=1207959552
|
||||
flagh149=20
|
||||
flagi149=138412036
|
||||
flagj149=4256
|
||||
flagk149=0
|
||||
flagl149=0
|
||||
flagm149=0
|
||||
tflag149=0
|
||||
dflag149=0
|
||||
posx149=50
|
||||
posy149=50
|
||||
sizx149=800
|
||||
sizy149=600
|
||||
maxfps149=0
|
||||
initts149=0
|
||||
winver149=0
|
||||
maxres149=-1
|
||||
swapeffect149=0
|
||||
maxddinterface149=7
|
||||
slowratio149=1
|
||||
scanline149=1
|
||||
initresw149=0
|
||||
initresh149=0
|
||||
title150=Steel Saviour demo (T-Zwei)
|
||||
path150=D:\Games\T-Zwei\TZwei.exe
|
||||
startfolder150=
|
||||
launchpath150=
|
||||
module150=
|
||||
opengllib150=
|
||||
notes150=
|
||||
registry150=
|
||||
ver150=8
|
||||
monitorid150=0
|
||||
coord150=0
|
||||
flag150=136314914
|
||||
flagg150=1744961536
|
||||
flagh150=20
|
||||
flagi150=138412036
|
||||
flagj150=4224
|
||||
flagk150=65536
|
||||
flagl150=0
|
||||
flagm150=0
|
||||
tflag150=0
|
||||
dflag150=0
|
||||
posx150=50
|
||||
posy150=50
|
||||
sizx150=800
|
||||
sizy150=600
|
||||
maxfps150=0
|
||||
initts150=0
|
||||
winver150=0
|
||||
maxres150=-1
|
||||
swapeffect150=0
|
||||
maxddinterface150=7
|
||||
slowratio150=2
|
||||
scanline150=1
|
||||
initresw150=0
|
||||
initresh150=0
|
||||
title151=Steel Saviour
|
||||
path151=D:\Games\Steel Saviour\SteelSaviour.exe
|
||||
startfolder151=
|
||||
launchpath151=
|
||||
module151=
|
||||
opengllib151=
|
||||
notes151=
|
||||
registry151=
|
||||
ver151=8
|
||||
monitorid151=0
|
||||
coord151=0
|
||||
flag151=136314922
|
||||
flagg151=1744961536
|
||||
flagh151=20
|
||||
flagi151=138412036
|
||||
flagj151=4224
|
||||
flagk151=65536
|
||||
flagl151=0
|
||||
flagm151=0
|
||||
tflag151=0
|
||||
dflag151=0
|
||||
posx151=50
|
||||
posy151=50
|
||||
sizx151=800
|
||||
sizy151=600
|
||||
maxfps151=0
|
||||
initts151=0
|
||||
winver151=0
|
||||
maxres151=-1
|
||||
swapeffect151=0
|
||||
maxddinterface151=7
|
||||
slowratio151=2
|
||||
scanline151=1
|
||||
initresw151=0
|
||||
initresh151=0
|
||||
[window]
|
||||
posx=1045
|
||||
posy=520
|
||||
sizx=320
|
||||
sizy=200
|
7
build/dxwnd.reg
Normal file
7
build/dxwnd.reg
Normal file
@ -0,0 +1,7 @@
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Metropolis]
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Metropolis\RoboRumble]
|
||||
"Directory"=".\\"
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
[target]
|
||||
title0=Imperialism
|
||||
path0=G:\Games\Imperialism\Imperialism.exe
|
||||
path0=D:\Games\Imperialism\Imperialism.exe
|
||||
startfolder0=
|
||||
launchpath0=
|
||||
module0=
|
||||
@ -9,13 +9,13 @@ notes0=
|
||||
registry0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=1746935843
|
||||
flag0=681582627
|
||||
flagg0=1209008128
|
||||
flagh0=20
|
||||
flagi0=4194308
|
||||
flagj0=128
|
||||
flagk0=0
|
||||
flagl0=0
|
||||
flagl0=268435456
|
||||
flagm0=0
|
||||
tflag0=0
|
||||
dflag0=0
|
||||
@ -30,3 +30,7 @@ maxres0=-1
|
||||
swapeffect0=0
|
||||
maxddinterface0=7
|
||||
slowratio0=1
|
||||
monitorid0=0
|
||||
scanline0=1
|
||||
initresw0=0
|
||||
initresh0=0
|
||||
|
@ -8,7 +8,7 @@ notes0=
|
||||
registry0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=136314914
|
||||
flag0=673185826
|
||||
flagg0=1207959552
|
||||
flagh0=20
|
||||
flagi0=138412036
|
||||
@ -29,3 +29,8 @@ maxres0=-1
|
||||
swapeffect0=0
|
||||
maxddinterface0=7
|
||||
slowratio0=2
|
||||
startfolder0=
|
||||
monitorid0=0
|
||||
scanline0=1
|
||||
initresw0=0
|
||||
initresh0=0
|
||||
|
@ -8,12 +8,12 @@ notes0=
|
||||
registry0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=136314914
|
||||
flag0=673185858
|
||||
flagg0=1207959552
|
||||
flagh0=20
|
||||
flagi0=138412036
|
||||
flagj0=4224
|
||||
flagk0=327680
|
||||
flagi0=205520900
|
||||
flagj0=4232
|
||||
flagk0=65536
|
||||
tflag0=0
|
||||
initx0=0
|
||||
inity0=0
|
||||
@ -28,5 +28,15 @@ sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
||||
winver0=0
|
||||
maxres0=-1
|
||||
maxres0=0
|
||||
swapeffect0=0
|
||||
startfolder0=
|
||||
monitorid0=-1
|
||||
flagl0=0
|
||||
flagm0=0
|
||||
dflag0=0
|
||||
maxddinterface0=7
|
||||
slowratio0=2
|
||||
scanline0=0
|
||||
initresw0=800
|
||||
initresh0=600
|
||||
|
36
build/exports/Puzzle Agent Nelson Tethers.dxw
Normal file
36
build/exports/Puzzle Agent Nelson Tethers.dxw
Normal file
@ -0,0 +1,36 @@
|
||||
[target]
|
||||
title0=Puzzle Agent Nelson Tethers
|
||||
path0=D:\Games\Puzzle Agent\Grickle101.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=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
|
@ -7,9 +7,9 @@ opengllib0=
|
||||
notes0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=136331298
|
||||
flagg0=1207959552
|
||||
flagh0=20
|
||||
flag0=673202210
|
||||
flagg0=1208221696
|
||||
flagh0=8212
|
||||
flagi0=138412036
|
||||
flagj0=4224
|
||||
flagk0=0
|
||||
@ -29,3 +29,14 @@ initts0=0
|
||||
winver0=0
|
||||
maxres0=-1
|
||||
swapeffect0=0
|
||||
startfolder0=
|
||||
registry0=
|
||||
monitorid0=0
|
||||
flagl0=0
|
||||
flagm0=5
|
||||
dflag0=0
|
||||
maxddinterface0=7
|
||||
slowratio0=1
|
||||
scanline0=1
|
||||
initresw0=0
|
||||
initresh0=0
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3ed113b19339a8f63d6ae25dfb0ed2e78b90369c80c3ddf16e507230f34a15da
|
||||
oid sha256:02734351a074f0841d7950dcffa899ef9ea8244adc091c75420ce35084a8c493
|
||||
size 54784
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6ef0610692cc6fdcc6f1b8260e118c5974cd93e9fb41dd5070e1e30fb40956d3
|
||||
oid sha256:b0e7df7744771bac778ed41fc7ba6d7b521dfe25c3f0bf1adb88189574baa310
|
||||
size 55808
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:eb3a493b93714ec278186cdf8e71228e843b8681df6278f5da5cedb419f70e14
|
||||
size 56320
|
||||
oid sha256:ed62dc9fb4d6b5674588125c6988fdb3755b00185bc556f1d6a852522a28a078
|
||||
size 56832
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:036a87972d467d27ac66fbb0b52bccfb1f41d9a6e0ac949a94e013520c086e14
|
||||
oid sha256:c12a59ded76bb5b7d05fca391a31662eca1e884629e11c8816a299088f6346d1
|
||||
size 55808
|
||||
|
@ -1571,3 +1571,8 @@ fix: check on ZBUFFER capability attribution in case the capsdb holds a wrong ca
|
||||
add: "Fix LoadLibrary error" flag (LOADLIBRARYERR) to return ERROR_DLL_NOT_FOUND instead of ERROR_MOD_NOT_FOUND error code. Fixes "Nightmare Creatures".
|
||||
add: "Hybrid" flag for "Shared ddraw & GDI DC" mode - reduces "Star Treck: Armada" problems.
|
||||
|
||||
v2.04.18
|
||||
add: "Fix AdjustWindowRect" flag (FIXADJUSTWINDOWRECT) to selectively turn the AdjustWindowRect coordinate patching. The flag must be checked for "Man TT Super Bike" and unckecked for "Imperialism II".
|
||||
add: "Hook child WindowProc" and "Hook dialog WindowProc" flags for better control over these risky operations.
|
||||
fix: bad GetParent hook: caused crash when checking "Hook child WindowProc" flag.
|
||||
fix: improvements in "Hybrid" emulation mode
|
@ -275,6 +275,16 @@ HRESULT WINAPI extAddOverlayDirtyRect2(LPDIRECTDRAWSURFACE, LPRECT);
|
||||
HRESULT WINAPI extAddOverlayDirtyRect3(LPDIRECTDRAWSURFACE, LPRECT);
|
||||
HRESULT WINAPI extAddOverlayDirtyRect4(LPDIRECTDRAWSURFACE, LPRECT);
|
||||
HRESULT WINAPI extAddOverlayDirtyRect7(LPDIRECTDRAWSURFACE, LPRECT);
|
||||
HRESULT WINAPI extGetOverlayPosition1(LPDIRECTDRAWSURFACE, LPLONG, LPLONG);
|
||||
HRESULT WINAPI extGetOverlayPosition2(LPDIRECTDRAWSURFACE, LPLONG, LPLONG);
|
||||
HRESULT WINAPI extGetOverlayPosition3(LPDIRECTDRAWSURFACE, LPLONG, LPLONG);
|
||||
HRESULT WINAPI extGetOverlayPosition4(LPDIRECTDRAWSURFACE, LPLONG, LPLONG);
|
||||
HRESULT WINAPI extGetOverlayPosition7(LPDIRECTDRAWSURFACE, LPLONG, LPLONG);
|
||||
HRESULT WINAPI extSetOverlayPosition1(LPDIRECTDRAWSURFACE, LONG, LONG);
|
||||
HRESULT WINAPI extSetOverlayPosition2(LPDIRECTDRAWSURFACE, LONG, LONG);
|
||||
HRESULT WINAPI extSetOverlayPosition3(LPDIRECTDRAWSURFACE, LONG, LONG);
|
||||
HRESULT WINAPI extSetOverlayPosition4(LPDIRECTDRAWSURFACE, LONG, LONG);
|
||||
HRESULT WINAPI extSetOverlayPosition7(LPDIRECTDRAWSURFACE, LONG, LONG);
|
||||
|
||||
extern HRESULT WINAPI extCreateSurface(int, CreateSurface_Type, LPDIRECTDRAW, DDSURFACEDESC2 *, LPDIRECTDRAWSURFACE *, void *);
|
||||
HRESULT WINAPI extSetSurfaceDesc3(LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, DWORD);
|
||||
@ -370,7 +380,8 @@ GetClipper_Type pGetClipper;
|
||||
GetColorKey_Type pGetColorKey1, pGetColorKey2, pGetColorKey3, pGetColorKey4, pGetColorKey7;
|
||||
GetDC_Type pGetDC1, pGetDC2, pGetDC3, pGetDC4, pGetDC7;
|
||||
GetFlipStatus_Type pGetFlipStatus;
|
||||
GetOverlayPosition_Type pGetOverlayPosition;
|
||||
GetOverlayPosition_Type pGetOverlayPosition1, pGetOverlayPosition2, pGetOverlayPosition3, pGetOverlayPosition4, pGetOverlayPosition7;
|
||||
SetOverlayPosition_Type pSetOverlayPosition1, pSetOverlayPosition2, pSetOverlayPosition3, pSetOverlayPosition4, pSetOverlayPosition7;
|
||||
GetPalette_Type pGetPalette1, pGetPalette2, pGetPalette3, pGetPalette4, pGetPalette7;
|
||||
GetPixelFormat_Type pGetPixelFormat1, pGetPixelFormat2, pGetPixelFormat3, pGetPixelFormat4, pGetPixelFormat7;
|
||||
GetSurfaceDesc_Type pGetSurfaceDesc1, pGetSurfaceDesc2, pGetSurfaceDesc3;
|
||||
@ -1380,12 +1391,14 @@ void HookDDSurface(LPDIRECTDRAWSURFACE *lplpdds, int dxversion, BOOL isPrim)
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 56), extGetCaps1S, (void **)&pGetCaps1S, "GetCaps(S1)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 64), extGetColorKey1, (void **)&pGetColorKey1, "GetColorKey(S1)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 68), extGetDC1, (void **)&pGetDC1, "GetDC(S1)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 76), extGetOverlayPosition1, (void **)&pGetOverlayPosition1, "GetOverlayPosition(S1)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 80), extGetPalette1, (void **)&pGetPalette1, "GetPalette(S1)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 84), extGetPixelFormat1, (void **)&pGetPixelFormat1, "GetPixelFormat(S1)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 88), extGetSurfaceDesc1, (void **)&pGetSurfaceDesc1, "GetSurfaceDesc(S1)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 100), bEmu ? extLock1 : extLockDir1, (void **)&pLock1, "Lock(S1)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 128), bEmu ? extUnlock1 : extUnlockDir1, (void **)&pUnlock1, "Unlock(S1)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 104), extReleaseDC1, (void **)&pReleaseDC1, "ReleaseDC(S1)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 120), extSetOverlayPosition1, (void **)&pSetOverlayPosition1, "SetOverlayPosition(S1)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 124), extSetPalette1, (void **)&pSetPalette1, "SetPalette(S1)");
|
||||
break;
|
||||
case 2:
|
||||
@ -1403,12 +1416,14 @@ void HookDDSurface(LPDIRECTDRAWSURFACE *lplpdds, int dxversion, BOOL isPrim)
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 56), extGetCaps2S, (void **)&pGetCaps2S, "GetCaps(S2)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 64), extGetColorKey2, (void **)&pGetColorKey2, "GetColorKey(S2)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 68), extGetDC2, (void **)&pGetDC2, "GetDC(S2)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 76), extGetOverlayPosition2, (void **)&pGetOverlayPosition2, "GetOverlayPosition(S2)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 80), extGetPalette2, (void **)&pGetPalette2, "GetPalette(S2)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 84), extGetPixelFormat2, (void **)&pGetPixelFormat2, "GetPixelFormat(S2)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 88), extGetSurfaceDesc2, (void **)&pGetSurfaceDesc2, "GetSurfaceDesc(S2)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 100), bEmu ? extLock2 : extLockDir2, (void **)&pLock2, "Lock(S2)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 128), bEmu ? extUnlock2 : extUnlockDir2, (void **)&pUnlock2, "Unlock(S2)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 104), extReleaseDC2, (void **)&pReleaseDC2, "ReleaseDC(S2)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 120), extSetOverlayPosition2, (void **)&pSetOverlayPosition2, "SetOverlayPosition(S2)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 124), extSetPalette2, (void **)&pSetPalette2, "SetPalette(S2)");
|
||||
break;
|
||||
case 3:
|
||||
@ -1426,12 +1441,14 @@ void HookDDSurface(LPDIRECTDRAWSURFACE *lplpdds, int dxversion, BOOL isPrim)
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 56), extGetCaps3S, (void **)&pGetCaps3S, "GetCaps(S3)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 64), extGetColorKey3, (void **)&pGetColorKey3, "GetColorKey(S3)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 68), extGetDC3, (void **)&pGetDC3, "GetDC(S3)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 76), extGetOverlayPosition3, (void **)&pGetOverlayPosition3, "GetOverlayPosition(S3)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 80), extGetPalette3, (void **)&pGetPalette3, "GetPalette(S3)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 84), extGetPixelFormat3, (void **)&pGetPixelFormat3, "GetPixelFormat(S3)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 88), extGetSurfaceDesc3, (void **)&pGetSurfaceDesc3, "GetSurfaceDesc(S3)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 100), bEmu ? extLock3 : extLockDir3, (void **)&pLock3, "Lock(S3)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 128), bEmu ? extUnlock3 : extUnlockDir3, (void **)&pUnlock3, "Unlock(S3)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 104), extReleaseDC3, (void **)&pReleaseDC3, "ReleaseDC(S3)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 120), extSetOverlayPosition3, (void **)&pSetOverlayPosition3, "SetOverlayPosition(S3)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 124), extSetPalette3, (void **)&pSetPalette3, "SetPalette(S3)");
|
||||
// added in interface version 3
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 156), extSetSurfaceDesc3, (void **)&pSetSurfaceDesc3, "SetSurfaceDesc(S3)");
|
||||
@ -1451,12 +1468,14 @@ void HookDDSurface(LPDIRECTDRAWSURFACE *lplpdds, int dxversion, BOOL isPrim)
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 56), extGetCaps4S, (void **)&pGetCaps4S, "GetCaps(S4)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 64), extGetColorKey4, (void **)&pGetColorKey4, "GetColorKey(S4)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 68), extGetDC4, (void **)&pGetDC4, "GetDC(S4)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 76), extGetOverlayPosition4, (void **)&pGetOverlayPosition4, "GetOverlayPosition(S4)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 80), extGetPalette4, (void **)&pGetPalette4, "GetPalette(S4)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 84), extGetPixelFormat4, (void **)&pGetPixelFormat4, "GetPixelFormat(S4)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 88), extGetSurfaceDesc4, (void **)&pGetSurfaceDesc4, "GetSurfaceDesc(S4)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 100), bEmu ? extLock4 : extLockDir4, (void **)&pLock4, "Lock(S4)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 128), bEmu ? extUnlock4 : extUnlockDir4, (void **)&pUnlock4, "Unlock(S4)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 104), extReleaseDC4, (void **)&pReleaseDC4, "ReleaseDC(S4)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 120), extSetOverlayPosition4, (void **)&pSetOverlayPosition4, "SetOverlayPosition(S4)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 124), extSetPalette4, (void **)&pSetPalette4, "SetPalette(S4)");
|
||||
// added in interface version 3
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 156), extSetSurfaceDesc4, (void **)&pSetSurfaceDesc4, "SetSurfaceDesc(S4)");
|
||||
@ -1476,12 +1495,14 @@ void HookDDSurface(LPDIRECTDRAWSURFACE *lplpdds, int dxversion, BOOL isPrim)
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 56), extGetCaps7S, (void **)&pGetCaps7S, "GetCaps(S7)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 64), extGetColorKey7, (void **)&pGetColorKey7, "GetColorKey(S7)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 68), extGetDC7, (void **)&pGetDC7, "GetDC(S7)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 76), extGetOverlayPosition7, (void **)&pGetOverlayPosition7, "GetOverlayPosition(S7)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 80), extGetPalette7, (void **)&pGetPalette7, "GetPalette(S7)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 84), extGetPixelFormat7, (void **)&pGetPixelFormat7, "GetPixelFormat(S7)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 88), extGetSurfaceDesc7, (void **)&pGetSurfaceDesc7, "GetSurfaceDesc(S7)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 100), bEmu ? extLock7 : extLockDir7, (void **)&pLock7, "Lock(S7)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 128), bEmu ? extUnlock7 : extUnlockDir7, (void **)&pUnlock7, "Unlock(S7)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 104), extReleaseDC7, (void **)&pReleaseDC7, "ReleaseDC(S7)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 120), extSetOverlayPosition7, (void **)&pSetOverlayPosition7, "SetOverlayPosition(S7)");
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 124), extSetPalette7, (void **)&pSetPalette7, "SetPalette(S7)");
|
||||
// added in interface version 3
|
||||
SetHook((void *)(**(DWORD **)lplpdds + 156), extSetSurfaceDesc7, (void **)&pSetSurfaceDesc7, "SetSurfaceDesc(S7)");
|
||||
@ -4120,7 +4141,7 @@ HRESULT WINAPI extReleaseDC(int dxversion, ReleaseDC_Type pReleaseDC, LPDIRECTDR
|
||||
IsPrim=dxwss.IsAPrimarySurface(lpdds);
|
||||
OutTraceDDRAW("ReleaseDC: lpdss=%x%s hdc=%x\n",lpdds, IsPrim?"(PRIM)":"", hdc);
|
||||
res=(*pReleaseDC)(lpdds, hdc);
|
||||
if((IsPrim) && (dxw.dwFlags1 & EMULATESURFACE)) {\
|
||||
if((IsPrim) && (dxw.dwFlags1 & EMULATESURFACE)) {
|
||||
Blt_Type pBlt;
|
||||
GetGDISurface_Type pGetGDISurface;
|
||||
// v2.04.09: for IDirectDraw methods use iBakBufferVersion instead of dxversion ...
|
||||
@ -5525,3 +5546,49 @@ HRESULT WINAPI extDuplicateSurface4(LPDIRECTDRAW lpdd, LPDIRECTDRAWSURFACE4 lpdd
|
||||
{ return extDuplicateSurface(4, (DuplicateSurface_Type)pDuplicateSurface4, lpdd, (LPDIRECTDRAWSURFACE)lpddssrc, (LPDIRECTDRAWSURFACE *)lpddsdest); }
|
||||
HRESULT WINAPI extDuplicateSurface7(LPDIRECTDRAW lpdd, LPDIRECTDRAWSURFACE7 lpddssrc, LPDIRECTDRAWSURFACE7 FAR *lpddsdest)
|
||||
{ return extDuplicateSurface(7, (DuplicateSurface_Type)pDuplicateSurface7, lpdd, (LPDIRECTDRAWSURFACE)lpddssrc, (LPDIRECTDRAWSURFACE *)lpddsdest); }
|
||||
|
||||
static HRESULT WINAPI extSetOverlayPosition(int dxversion, SetOverlayPosition_Type pSetOverlayPosition, LPDIRECTDRAWSURFACE lpdds, LONG lX, LONG lY)
|
||||
{
|
||||
HRESULT res;
|
||||
OutTrace("SetOverlayPosition(%d): lpdds=%x pos=(%ld,%ld)\n", dxversion, lpdds, lX, lY);
|
||||
res = (*pSetOverlayPosition)(lpdds, lX, lY);
|
||||
if(res)
|
||||
OutTraceE("SetOverlayPosition: ERROR res=%x(%s)\n", res, ExplainDDError(res));
|
||||
return res;
|
||||
}
|
||||
|
||||
HRESULT WINAPI extSetOverlayPosition1(LPDIRECTDRAWSURFACE lpdds, LONG lX, LONG lY)
|
||||
{ return extSetOverlayPosition(1, pSetOverlayPosition1, lpdds, lX, lY); }
|
||||
HRESULT WINAPI extSetOverlayPosition2(LPDIRECTDRAWSURFACE lpdds, LONG lX, LONG lY)
|
||||
{ return extSetOverlayPosition(2, pSetOverlayPosition2, lpdds, lX, lY); }
|
||||
HRESULT WINAPI extSetOverlayPosition3(LPDIRECTDRAWSURFACE lpdds, LONG lX, LONG lY)
|
||||
{ return extSetOverlayPosition(3, pSetOverlayPosition3, lpdds, lX, lY); }
|
||||
HRESULT WINAPI extSetOverlayPosition4(LPDIRECTDRAWSURFACE lpdds, LONG lX, LONG lY)
|
||||
{ return extSetOverlayPosition(4, pSetOverlayPosition4, lpdds, lX, lY); }
|
||||
HRESULT WINAPI extSetOverlayPosition7(LPDIRECTDRAWSURFACE lpdds, LONG lX, LONG lY)
|
||||
{ return extSetOverlayPosition(7, pSetOverlayPosition7, lpdds, lX, lY); }
|
||||
|
||||
static HRESULT WINAPI extGetOverlayPosition(int dxversion, GetOverlayPosition_Type pGetOverlayPosition, LPDIRECTDRAWSURFACE lpdds, LPLONG lX, LPLONG lY)
|
||||
{
|
||||
HRESULT res;
|
||||
OutTrace("GetOverlayPosition(%d): lpdds=%x\n", dxversion, lpdds);
|
||||
res = (*pGetOverlayPosition)(lpdds, lX, lY);
|
||||
if(res)
|
||||
OutTraceE("GetOverlayPosition: ERROR res=%x(%s)\n", res, ExplainDDError(res));
|
||||
else{
|
||||
OutTraceDW("GetOverlayPosition: pos=(%ld,%ld)\n", *lX, *lY);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
HRESULT WINAPI extGetOverlayPosition1(LPDIRECTDRAWSURFACE lpdds, LPLONG lX, LPLONG lY)
|
||||
{ return extGetOverlayPosition(1, pGetOverlayPosition1, lpdds, lX, lY); }
|
||||
HRESULT WINAPI extGetOverlayPosition2(LPDIRECTDRAWSURFACE lpdds, LPLONG lX, LPLONG lY)
|
||||
{ return extGetOverlayPosition(2, pGetOverlayPosition2, lpdds, lX, lY); }
|
||||
HRESULT WINAPI extGetOverlayPosition3(LPDIRECTDRAWSURFACE lpdds, LPLONG lX, LPLONG lY)
|
||||
{ return extGetOverlayPosition(3, pGetOverlayPosition3, lpdds, lX, lY); }
|
||||
HRESULT WINAPI extGetOverlayPosition4(LPDIRECTDRAWSURFACE lpdds, LPLONG lX, LPLONG lY)
|
||||
{ return extGetOverlayPosition(4, pGetOverlayPosition4, lpdds, lX, lY); }
|
||||
HRESULT WINAPI extGetOverlayPosition7(LPDIRECTDRAWSURFACE lpdds, LPLONG lX, LPLONG lY)
|
||||
{ return extGetOverlayPosition(7, pGetOverlayPosition7, lpdds, lX, lY); }
|
||||
|
||||
|
@ -27,7 +27,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#include "TlHelp32.h"
|
||||
|
||||
#define VERSION "2.04.17"
|
||||
#define VERSION "2.04.18"
|
||||
|
||||
#define DDTHREADLOCK 1
|
||||
|
||||
@ -365,7 +365,7 @@ static char *FlagNames[9][32] ={{
|
||||
"MARKWING32", "DYNAMICZCLEAN", "MARKGDI32", "DUMPDIBSECTION",
|
||||
"DUMPDEVCONTEXT", "QUALITYFONTS", "ALLOWSYSMEMON3DDEV", "CLIPMENU",
|
||||
"BACKGROUNDPRIORITY", "OFFSCREENZBUFFER", "VIRTUALHEAP", "ZBUFFERHARDCLEAN",
|
||||
"LOADLIBRARYERR", "SHAREDDCHYBRID", "", "",
|
||||
"LOADLIBRARYERR", "SHAREDDCHYBRID", "FIXADJUSTWINRECT", "HOOKDLGWIN",
|
||||
},{
|
||||
// TFlags
|
||||
"OUTTRACE", "OUTDDRAWTRACE", "OUTWINMESSAGES", "OUTCURSORTRACE",
|
||||
|
Binary file not shown.
@ -980,6 +980,7 @@ BOOL WINAPI extGDIBitBlt(HDC hdcDest, int nXDest, int nYDest, int nWidth, int nH
|
||||
case 1: // memory to screen
|
||||
case 3: // screen to screen
|
||||
dxw.HandleFPS(); // handle refresh delays
|
||||
sdc.SetOrigin(nXSrc, nYSrc);
|
||||
sdc.GetPrimaryDC(hdcDest, hdcSrc);
|
||||
res=(*pGDIBitBlt)(sdc.GetHdc(), nXDest, nYDest, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, dwRop);
|
||||
sdc.PutPrimaryDC(hdcDest, TRUE, nXDest, nYDest, nWidth, nHeight);
|
||||
@ -987,7 +988,7 @@ BOOL WINAPI extGDIBitBlt(HDC hdcDest, int nXDest, int nYDest, int nWidth, int nH
|
||||
case 2: // screen to memory
|
||||
sdc.GetPrimaryDC(hdcSrc);
|
||||
res=(*pGDIBitBlt)(hdcDest, nXDest, nYDest, nWidth, nHeight, sdc.GetHdc(), nXSrc, nYSrc, dwRop);
|
||||
sdc.PutPrimaryDC(hdcSrc, FALSE);
|
||||
sdc.PutPrimaryDC(hdcSrc, TRUE, nXDest, nYDest, nWidth, nHeight);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@ -1098,13 +1099,14 @@ BOOL WINAPI extGDIStretchBlt(HDC hdcDest, int nXDest, int nYDest, int nWidth, in
|
||||
case 1: // memory to screen
|
||||
case 3: // screen to screen
|
||||
sdc.GetPrimaryDC(hdcDest, hdcSrc);
|
||||
sdc.SetOrigin(nXSrc, nYSrc);
|
||||
res=(*pGDIStretchBlt)(sdc.GetHdc(), nXDest, nYDest, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, nWSrc, nHSrc, dwRop);
|
||||
sdc.PutPrimaryDC(hdcDest, TRUE, nXDest, nYDest, nWidth, nHeight);
|
||||
break;
|
||||
case 2: // screen to memory using virtual screen
|
||||
sdc.GetPrimaryDC(hdcSrc);
|
||||
res=(*pGDIStretchBlt)(hdcDest, nXDest, nYDest, nWidth, nHeight, sdc.GetHdc(), nXSrc, nYSrc, nWSrc, nHSrc, dwRop);
|
||||
sdc.PutPrimaryDC(hdcSrc, FALSE, nXSrc, nYSrc, nWSrc, nHSrc);
|
||||
sdc.PutPrimaryDC(hdcSrc, TRUE, nXSrc, nYSrc, nWSrc, nHSrc);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@ -1685,10 +1685,14 @@ BOOL WINAPI extHeapDestroy(HANDLE hHeap)
|
||||
|
||||
#else
|
||||
|
||||
#define HEAPTRACE FALSE
|
||||
|
||||
LPVOID WINAPI extHeapAlloc(HANDLE hHeap, DWORD dwFlags, SIZE_T dwBytes)
|
||||
{
|
||||
LPVOID ret;
|
||||
OutTraceB("HeapAlloc: heap=%x flags=%x bytes=%d\n", hHeap, dwFlags, dwBytes);
|
||||
if(HEAPTRACE) return (*pHeapAlloc)(hHeap, dwFlags, dwBytes);
|
||||
|
||||
ret = malloc(dwBytes);
|
||||
if(ret){
|
||||
if(ret > VHeapMax) VHeapMax = ret;
|
||||
@ -1702,6 +1706,8 @@ LPVOID WINAPI extHeapReAlloc(HANDLE hHeap, DWORD dwFlags, LPVOID lpMem, SIZE_T d
|
||||
{
|
||||
LPVOID ret;
|
||||
OutTraceB("HeapReAlloc: heap=%x flags=%x mem=%x bytes=%d\n", hHeap, dwFlags, lpMem, dwBytes);
|
||||
if(HEAPTRACE) return (*pHeapReAlloc)(hHeap, dwFlags, lpMem, dwBytes);
|
||||
|
||||
ret = realloc(lpMem, dwBytes);
|
||||
if(ret){
|
||||
if(ret > VHeapMax) VHeapMax = ret;
|
||||
@ -1715,6 +1721,8 @@ BOOL WINAPI extHeapFree(HANDLE hHeap, DWORD dwFlags, LPVOID lpMem)
|
||||
{
|
||||
BOOL ret;
|
||||
OutTraceB("HeapFree: heap=%x flags=%x mem=%x\n", hHeap, dwFlags, lpMem);
|
||||
if(HEAPTRACE) return (*pHeapFree)(hHeap, dwFlags, lpMem);
|
||||
|
||||
if((lpMem >= VHeapMin) && (lpMem <= VHeapMax)){
|
||||
free(lpMem);
|
||||
ret = TRUE;
|
||||
@ -1731,6 +1739,8 @@ BOOL WINAPI extHeapValidate(HANDLE hHeap, DWORD dwFlags, LPVOID lpMem)
|
||||
{
|
||||
BOOL ret;
|
||||
OutTraceB("HeapValidate: heap=%x flags=%x mem=%x\n", hHeap, dwFlags, lpMem);
|
||||
if(HEAPTRACE) return (*pHeapValidate)(hHeap, dwFlags, lpMem);
|
||||
|
||||
if((lpMem >= VHeapMin) && (lpMem <= VHeapMax)){
|
||||
ret = TRUE;
|
||||
OutTraceB("HeapValidate: (virtual) ret=%x\n", ret);
|
||||
@ -1746,6 +1756,8 @@ SIZE_T WINAPI extHeapCompact(HANDLE hHeap, DWORD dwFlags)
|
||||
{
|
||||
SIZE_T ret;
|
||||
OutTraceB("HeapCompact: heap=%x flags=%x\n", hHeap, dwFlags);
|
||||
if(HEAPTRACE) return (*pHeapCompact)(hHeap, dwFlags);
|
||||
|
||||
if(((DWORD)hHeap >= 0xDEADBEEF) && ((DWORD)hHeap < 0xDEADBEEF + iProg)){
|
||||
ret = 100000; // just a number ....
|
||||
OutTraceB("HeapCompact: (virtual) ret=%d\n", ret);
|
||||
@ -1761,6 +1773,8 @@ HANDLE WINAPI extHeapCreate(DWORD flOptions, SIZE_T dwInitialSize, SIZE_T dwMaxi
|
||||
{
|
||||
HANDLE ret;
|
||||
OutTraceB("HeapCreate: flags=%x size(init-max)=(%d-%d)\n", flOptions, dwInitialSize, dwMaximumSize);
|
||||
if(HEAPTRACE) return (*pHeapCreate)(flOptions, dwInitialSize, dwMaximumSize);
|
||||
|
||||
ret = (HANDLE)(0xDEADBEEF + iProg++);
|
||||
OutTraceB("HeapCreate: (virtual) ret=%X\n", ret);
|
||||
return ret;
|
||||
@ -1769,6 +1783,8 @@ HANDLE WINAPI extHeapCreate(DWORD flOptions, SIZE_T dwInitialSize, SIZE_T dwMaxi
|
||||
HANDLE WINAPI extGetProcessHeap(void)
|
||||
{
|
||||
OutTraceB("GetProcessHeap: (virtual) ret=0xDEADBEEF\n");
|
||||
if(HEAPTRACE) return (*pGetProcessHeap)();
|
||||
|
||||
return (HANDLE)0xDEADBEEF;
|
||||
}
|
||||
|
||||
@ -1776,6 +1792,8 @@ BOOL WINAPI extHeapDestroy(HANDLE hHeap)
|
||||
{
|
||||
BOOL ret;
|
||||
OutTraceB("HeapDestroy: heap=%x\n", hHeap);
|
||||
if(HEAPTRACE) return (*pHeapDestroy)(hHeap);
|
||||
|
||||
if(((DWORD)hHeap >= 0xDEADBEEF) && ((DWORD)hHeap < 0xDEADBEEF + iProg))
|
||||
ret = TRUE;
|
||||
else
|
||||
|
@ -205,6 +205,12 @@ HDC dxwSDC::GetPrimaryDC(HDC hdc, HDC hdcsrc)
|
||||
return VirtualHDC;
|
||||
}
|
||||
|
||||
void dxwSDC::SetOrigin(int x, int y)
|
||||
{
|
||||
HybridX = x;
|
||||
HybridY = y;
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------------+
|
||||
| |
|
||||
| GetHdc: returns the DC to write for the GDI call |
|
||||
@ -273,10 +279,10 @@ BOOL dxwSDC::PutPrimaryDC(HDC hdc, BOOL UpdateScreen, int XDest, int YDest, int
|
||||
dxw.MapClient(&nXDest, &nYDest, &nWDest, &nHDest);
|
||||
res=(*pGDIStretchBlt)(
|
||||
CurrentHDC, nXDest, nYDest, nWDest, nHDest,
|
||||
CurrentHDCSrc, XDest, YDest, nDestWidth, nDestHeight, SRCCOPY);
|
||||
CurrentHDCSrc, HybridX, HybridY, nDestWidth, nDestHeight, SRCCOPY);
|
||||
if(!res) OutTraceE("dxwSDC::PutPrimaryDC: StretchBlt ERROR err=%d\n", GetLastError());
|
||||
//res=(*pGDIReleaseDC)(WindowFromDC(CurrentHDC), CurrentHDC);
|
||||
//if(!res) OutTraceE("dxwSDC::PutPrimaryDC: ReleaseDC ERROR err=%d\n", GetLastError());
|
||||
//RECT rect = {nXDest, nYDest, nXDest+nWDest, nYDest+nHDest};
|
||||
//res = (*pFrameRect)(CurrentHDC, &rect, 0);
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -24,6 +24,7 @@ public: // methods
|
||||
HDC GetHdc(void);
|
||||
BOOL PutPrimaryDC(HDC, BOOL, int, int, int, int);
|
||||
BOOL PutPrimaryDC(HDC, BOOL);
|
||||
void SetOrigin(int, int);
|
||||
|
||||
private:
|
||||
void copyDcAttributes(HDC, HDC, POINT);
|
||||
@ -51,6 +52,8 @@ private:
|
||||
POINT origin;
|
||||
HWND rootWnd;
|
||||
};
|
||||
int HybridX;
|
||||
int HybridY;
|
||||
|
||||
};
|
||||
|
||||
|
@ -88,7 +88,6 @@ static HookEntryEx_Type Hooks[]={
|
||||
|
||||
#ifdef GALAPAGOSTEST
|
||||
// test for Galapagos
|
||||
{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},
|
||||
{HOOK_HOT_CANDIDATE, 0, "IsWindow", (FARPROC)IsWindow, (FARPROC *)&pIsWindow, (FARPROC)extIsWindow},
|
||||
@ -143,6 +142,7 @@ static HookEntryEx_Type Hooks[]={
|
||||
{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_HOT_CANDIDATE, 0, "GetForegroundWindow", (FARPROC)GetForegroundWindow, (FARPROC *)&pGetForegroundWindow, (FARPROC)extGetForegroundWindow},
|
||||
|
||||
{HOOK_IAT_CANDIDATE, 0, 0, NULL, 0, 0} // terminator
|
||||
};
|
||||
@ -163,7 +163,7 @@ static HookEntryEx_Type RemapHooks[]={
|
||||
static HookEntryEx_Type SyscallHooks[]={
|
||||
{HOOK_IAT_CANDIDATE, 0, "FrameRect", (FARPROC)FrameRect, (FARPROC *)&pFrameRect, (FARPROC)extFrameRect},
|
||||
// commented ot, dangerous: see comments
|
||||
//{HOOK_IAT_CANDIDATE, 0, "GetParent", (FARPROC)GetParent, (FARPROC *)&pGetParent, (FARPROC)extGetParent},
|
||||
{HOOK_IAT_CANDIDATE, 0, "GetParent", (FARPROC)GetParent, (FARPROC *)&pGetParent, (FARPROC)extGetParent},
|
||||
{HOOK_HOT_CANDIDATE, 0, "InvalidateRgn", (FARPROC)InvalidateRgn, (FARPROC *)&pInvalidateRgn, (FARPROC)extInvalidateRgn},
|
||||
{HOOK_IAT_CANDIDATE, 0, "TabbedTextOutA", (FARPROC)TabbedTextOutA, (FARPROC *)&pTabbedTextOutA, (FARPROC)extTabbedTextOutA},
|
||||
{HOOK_IAT_CANDIDATE, 0, "TabbedTextOutW", (FARPROC)TabbedTextOutW, (FARPROC *)&pTabbedTextOutW, (FARPROC)extTabbedTextOutW},
|
||||
@ -843,7 +843,7 @@ LONG WINAPI extSetWindowLong(HWND hwnd, int nIndex, LONG dwNewLong, SetWindowLon
|
||||
}
|
||||
|
||||
// hook extDlgWindowProc to dialog win ....
|
||||
if((WinStyle & DWL_DLGPROC) && (dxw.dwFlags1 & HOOKCHILDWIN)){
|
||||
if((WinStyle & DWL_DLGPROC) && (dxw.dwFlags8 & HOOKDLGWIN)){
|
||||
if(OldProc==extDialogWindowProc) OldProc=dxwws.GetProc(hwnd);
|
||||
dxwws.PutProc(hwnd, (WNDPROC)dwNewLong);
|
||||
res=(LONG)OldProc;
|
||||
@ -2541,15 +2541,13 @@ HWND WINAPI extCreateDialogIndirectParam(HINSTANCE hInstance, LPCDLGTEMPLATE lpT
|
||||
hInstance,
|
||||
lpTemplate->style, lpTemplate->dwExtendedStyle, lpTemplate->cdit, lpTemplate->x, lpTemplate->y, lpTemplate->cx, lpTemplate->cy,
|
||||
hWndParent, lpDialogFunc, lParamInit);
|
||||
if(dxw.IsFullScreen() && hWndParent==NULL) hWndParent=dxw.GethWnd();
|
||||
// v2.03.98: commented out the temporary return to windowed mode to make Red Alert 2 dialog work again!
|
||||
//InMainWinCreation++;
|
||||
|
||||
if(dxw.IsFullScreen() && dxw.IsRealDesktop(hWndParent)) hWndParent=dxw.GethWnd();
|
||||
|
||||
RetHWND=(*pCreateDialogIndirectParam)(hInstance, lpTemplate, hWndParent, lpDialogFunc, lParamInit);
|
||||
//InMainWinCreation--;
|
||||
|
||||
// v2.02.73: redirect lpDialogFunc only when it is nor NULL
|
||||
if( lpDialogFunc &&
|
||||
!(dxw.dwFlags6 & NOWINDOWHOOKS)){ // v2.03.41 - debug option
|
||||
// v2.02.73: redirect lpDialogFunc only when it is nor NULL: fix for "LEGO Stunt Rally"
|
||||
if(lpDialogFunc && (dxw.dwFlags8 & HOOKDLGWIN)){ // v2.03.41 - debug option
|
||||
dxwws.PutProc(RetHWND, (WNDPROC)lpDialogFunc);
|
||||
if(!(*pSetWindowLong)(RetHWND, DWL_DLGPROC, (LONG)extDialogWindowProc))
|
||||
OutTraceE("SetWindowLong: ERROR err=%d at %d\n", GetLastError(), __LINE__);
|
||||
@ -2564,14 +2562,14 @@ HWND WINAPI extCreateDialogParam(HINSTANCE hInstance, LPCTSTR lpTemplateName, HW
|
||||
HWND RetHWND;
|
||||
OutTraceDW("CreateDialogParam: hInstance=%x lpTemplateName=%s hWndParent=%x lpDialogFunc=%x lParamInit=%x\n",
|
||||
hInstance, sTemplateName(lpTemplateName), hWndParent, lpDialogFunc, lParamInit);
|
||||
if(hWndParent==NULL) hWndParent=dxw.GethWnd();
|
||||
//InMainWinCreation++;
|
||||
|
||||
if(dxw.IsFullScreen() && dxw.IsRealDesktop(hWndParent)) hWndParent=dxw.GethWnd();
|
||||
|
||||
RetHWND=(*pCreateDialogParam)(hInstance, lpTemplateName, hWndParent, lpDialogFunc, lParamInit);
|
||||
//InMainWinCreation--;
|
||||
|
||||
// v2.02.73: redirect lpDialogFunc only when it is nor NULL: fix for "LEGO Stunt Rally"
|
||||
if( lpDialogFunc &&
|
||||
!(dxw.dwFlags6 & NOWINDOWHOOKS)){ // v2.03.41 - debug option
|
||||
// v2.04.18: HOOKDLGWIN (not to be checked to fix "PBA Bowling 2")
|
||||
if(lpDialogFunc && (dxw.dwFlags8 & HOOKDLGWIN)){ // v2.03.41 - debug option
|
||||
dxwws.PutProc(RetHWND, (WNDPROC)lpDialogFunc);
|
||||
if(!(*pSetWindowLong)(RetHWND, DWL_DLGPROC, (LONG)extDialogWindowProc))
|
||||
OutTraceE("SetWindowLong: ERROR err=%d at %d\n", GetLastError(), __LINE__);
|
||||
@ -3179,14 +3177,18 @@ BOOL WINAPI extGetWindowPlacement(HWND hwnd, WINDOWPLACEMENT *lpwndpl)
|
||||
lpwndpl->ptMaxPosition.x, lpwndpl->ptMaxPosition.y,
|
||||
lpwndpl->rcNormalPosition.left, lpwndpl->rcNormalPosition.top, lpwndpl->rcNormalPosition.right, lpwndpl->rcNormalPosition.bottom);
|
||||
|
||||
switch (lpwndpl->showCmd){
|
||||
case SW_SHOW:
|
||||
if (dxw.IsFullScreen()){
|
||||
lpwndpl->showCmd = SW_MAXIMIZE;
|
||||
OutTraceDW("GetWindowPlacement: forcing SW_MAXIMIZE state\n");
|
||||
}
|
||||
break;
|
||||
if (ret && dxw.Windowize && dxw.IsFullScreen()){
|
||||
lpwndpl->showCmd = SW_SHOWNORMAL;
|
||||
lpwndpl->ptMinPosition.x = -1; lpwndpl->ptMinPosition.y = -1;
|
||||
lpwndpl->ptMaxPosition.x = -1; lpwndpl->ptMaxPosition.y = -1;
|
||||
OutTrace("GetWindowPlacement: FIXED showCmd=%x MinPosition=(%d,%d) MaxPosition=(%d,%d) NormalPosition=(%d,%d)-(%d,%d)\n",
|
||||
lpwndpl->showCmd,
|
||||
lpwndpl->ptMinPosition.x, lpwndpl->ptMinPosition.y,
|
||||
lpwndpl->ptMaxPosition.x, lpwndpl->ptMaxPosition.y,
|
||||
lpwndpl->rcNormalPosition.left, lpwndpl->rcNormalPosition.top,
|
||||
lpwndpl->rcNormalPosition.right, lpwndpl->rcNormalPosition.bottom);
|
||||
}
|
||||
|
||||
if(!ret) OutTraceE("GetWindowPlacement: ERROR er=%d\n", GetLastError());
|
||||
return ret;
|
||||
}
|
||||
@ -3245,7 +3247,7 @@ HWND WINAPI extGetForegroundWindow(void)
|
||||
{
|
||||
HWND ret;
|
||||
ret=(*pGetForegroundWindow)();
|
||||
if(dxw.Windowize && dxw.IsFullScreen()) {
|
||||
if((dxw.dwFlags8 & WININSULATION) && dxw.Windowize && dxw.IsFullScreen()) {
|
||||
OutTraceDW("GetForegroundWindow: ret=%x->%x\n", ret, dxw.GethWnd());
|
||||
return dxw.GethWnd();
|
||||
}
|
||||
@ -3454,6 +3456,7 @@ BOOL extGetMonitorInfo(HMONITOR hMonitor, LPMONITORINFO lpmi, GetMonitorInfo_Typ
|
||||
BOOL res;
|
||||
OutTraceDW("GetMonitorInfo: hMonitor=%x mi=MONITORINFO%s\n", hMonitor, lpmi->cbSize==sizeof(MONITORINFO)?"":"EX");
|
||||
res=(*pGetMonitorInfo)(hMonitor, lpmi);
|
||||
|
||||
//v2.03.15 - must fix the coordinates also in case of error: that may depend on the windowed mode.
|
||||
if(dxw.Windowize){
|
||||
OutTraceDW("GetMonitorInfo: FIX Work=(%d,%d)-(%d,%d) Monitor=(%d,%d)-(%d,%d) -> (%d,%d)-(%d,%d)\n",
|
||||
@ -3462,10 +3465,17 @@ BOOL extGetMonitorInfo(HMONITOR hMonitor, LPMONITORINFO lpmi, GetMonitorInfo_Typ
|
||||
0, 0, dxw.GetScreenWidth(), dxw.GetScreenHeight());
|
||||
lpmi->rcWork = dxw.GetScreenRect();
|
||||
lpmi->rcMonitor = dxw.GetScreenRect();
|
||||
res=TRUE;
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
|
||||
if(res) {
|
||||
OutTraceDW("GetMonitorInfo: Work=(%d,%d)-(%d,%d) Monitor=(%d,%d)-(%d,%d)\n",
|
||||
lpmi->rcWork.left, lpmi->rcWork.top, lpmi->rcWork.right, lpmi->rcWork.bottom,
|
||||
lpmi->rcMonitor.left, lpmi->rcMonitor.top, lpmi->rcMonitor.right, lpmi->rcMonitor.bottom);
|
||||
}
|
||||
else {
|
||||
OutTraceE("GetMonitorInfo: ERROR err=%d\n", GetLastError());
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
@ -3857,6 +3867,12 @@ HWND WINAPI extGetParent(HWND hWnd)
|
||||
|
||||
return ret;
|
||||
}
|
||||
#else
|
||||
// just proxy, but the pGetParent pointer must stay initialized
|
||||
// P.s.so far, GetParent wrapping is useless, could be eliminated, but
|
||||
// replacing *pGetParent with unhooked GetParent invokations.
|
||||
HWND WINAPI extGetParent(HWND hWnd)
|
||||
{ return (*pGetParent)(hWnd); }
|
||||
#endif
|
||||
|
||||
BOOL WINAPI extInvalidateRgn(HWND hWnd, HRGN hRgn, BOOL bErase)
|
||||
@ -4154,8 +4170,7 @@ BOOL WINAPI extAdjustWindowRect(LPRECT lpRect, DWORD dwStyle, BOOL bMenu)
|
||||
lpRect->left, lpRect->top, lpRect->right, lpRect->bottom,
|
||||
dwStyle, ExplainStyle(dwStyle), bMenu);
|
||||
|
||||
//if(dxw.dwFlags2 & FORCEWINRESIZE)
|
||||
if(dxw.Windowize) RedirectCoordinates(lpRect);
|
||||
if(dxw.Windowize && (dxw.dwFlags8 & FIXADJUSTWINRECT)) RedirectCoordinates(lpRect);
|
||||
|
||||
ret = pAdjustWindowRect(lpRect, dwStyle, bMenu);
|
||||
|
||||
@ -4176,8 +4191,7 @@ BOOL WINAPI extAdjustWindowRectEx(LPRECT lpRect, DWORD dwStyle, BOOL bMenu, DWOR
|
||||
lpRect->left, lpRect->top, lpRect->right, lpRect->bottom,
|
||||
dwStyle, ExplainStyle(dwStyle), bMenu, dwExStyle, ExplainExStyle(dwExStyle));
|
||||
|
||||
//if(dxw.dwFlags2 & FORCEWINRESIZE)
|
||||
if(dxw.Windowize) RedirectCoordinates(lpRect);
|
||||
if(dxw.Windowize && (dxw.dwFlags8 & FIXADJUSTWINRECT)) RedirectCoordinates(lpRect);
|
||||
|
||||
ret = pAdjustWindowRectEx(lpRect, dwStyle, bMenu, dwExStyle);
|
||||
|
||||
|
@ -19,6 +19,9 @@
|
||||
|
||||
BOOL IsWithinMCICall = FALSE;
|
||||
|
||||
typedef MMRESULT (WINAPI *timeGetDevCaps_Type)(LPTIMECAPS, UINT);
|
||||
timeGetDevCaps_Type ptimeGetDevCaps = NULL;
|
||||
MMRESULT WINAPI exttimeGetDevCaps(LPTIMECAPS, UINT);
|
||||
typedef MCIDEVICEID (WINAPI *mciGetDeviceIDA_Type)(LPCTSTR);
|
||||
mciGetDeviceIDA_Type pmciGetDeviceIDA = NULL;
|
||||
MCIDEVICEID WINAPI extmciGetDeviceIDA(LPCTSTR);
|
||||
@ -52,6 +55,13 @@ UINT WINAPI extwaveOutGetNumDevs(void);
|
||||
typedef UINT (WINAPI *mixerGetNumDevs_Type)(void);
|
||||
mixerGetNumDevs_Type pmixerGetNumDevs;
|
||||
UINT WINAPI extmixerGetNumDevs(void);
|
||||
typedef UINT (WINAPI *timeBeginPeriod_Type)(UINT);
|
||||
timeBeginPeriod_Type ptimeBeginPeriod;
|
||||
UINT WINAPI exttimeBeginPeriod(UINT);
|
||||
typedef UINT (WINAPI *timeEndPeriod_Type)(UINT);
|
||||
timeEndPeriod_Type ptimeEndPeriod;
|
||||
UINT WINAPI exttimeEndPeriod(UINT);
|
||||
|
||||
|
||||
static HookEntryEx_Type Hooks[]={
|
||||
{HOOK_IAT_CANDIDATE, 0, "mciSendCommandA", NULL, (FARPROC *)&pmciSendCommandA, (FARPROC)extmciSendCommandA},
|
||||
@ -66,6 +76,9 @@ static HookEntryEx_Type TimeHooks[]={
|
||||
{HOOK_HOT_CANDIDATE, 0, "timeGetTime", NULL, (FARPROC *)&ptimeGetTime, (FARPROC)exttimeGetTime},
|
||||
{HOOK_HOT_CANDIDATE, 0, "timeKillEvent", NULL, (FARPROC *)&ptimeKillEvent, (FARPROC)exttimeKillEvent},
|
||||
{HOOK_HOT_CANDIDATE, 0, "timeSetEvent", NULL, (FARPROC *)&ptimeSetEvent, (FARPROC)exttimeSetEvent},
|
||||
{HOOK_HOT_CANDIDATE, 0, "timeGetDevCaps", NULL, (FARPROC *)&ptimeGetDevCaps, (FARPROC)exttimeGetDevCaps},
|
||||
{HOOK_HOT_CANDIDATE, 0, "timeBeginPeriod", NULL, (FARPROC *)&ptimeBeginPeriod, (FARPROC)exttimeBeginPeriod},
|
||||
{HOOK_HOT_CANDIDATE, 0, "timeEndPeriod", NULL, (FARPROC *)&ptimeEndPeriod, (FARPROC)exttimeEndPeriod},
|
||||
{HOOK_IAT_CANDIDATE, 0, 0, NULL, 0, 0} // terminator
|
||||
};
|
||||
|
||||
@ -118,6 +131,19 @@ FARPROC Remap_WinMM_ProcAddress(LPCSTR proc, HMODULE hModule)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
MMRESULT WINAPI exttimeGetDevCaps(LPTIMECAPS ptc, UINT cbtc)
|
||||
{
|
||||
MMRESULT res;
|
||||
res = (*ptimeGetDevCaps)(ptc, cbtc);
|
||||
if(res) {
|
||||
OutTraceE("timeGetDevCaps ERROR: res=%x err=%d\n", res, GetLastError());
|
||||
}
|
||||
else {
|
||||
OutTraceDW("timeGetDevCaps: period min=%d max=%d\n", ptc->wPeriodMin, ptc->wPeriodMax);
|
||||
}
|
||||
return MMSYSERR_NOERROR;
|
||||
}
|
||||
|
||||
DWORD WINAPI exttimeGetTime(void)
|
||||
{
|
||||
DWORD ret;
|
||||
@ -149,6 +175,24 @@ MMRESULT WINAPI exttimeKillEvent(UINT uTimerID)
|
||||
return res;
|
||||
}
|
||||
|
||||
MMRESULT WINAPI exttimeBeginPeriod(UINT uPeriod)
|
||||
{
|
||||
MMRESULT res;
|
||||
OutTraceDW("timeBeginPeriod: period=%d\n", uPeriod);
|
||||
res=(*ptimeBeginPeriod)(uPeriod);
|
||||
OutTraceDW("timeBeginPeriod: ret=%x\n", res);
|
||||
return res;
|
||||
}
|
||||
|
||||
MMRESULT WINAPI exttimeEndPeriod(UINT uPeriod)
|
||||
{
|
||||
MMRESULT res;
|
||||
OutTraceDW("timeEndPeriod: period=%d\n", uPeriod);
|
||||
res=(*ptimeEndPeriod)(uPeriod);
|
||||
OutTraceDW("timeEndPeriod: ret=%x\n", res);
|
||||
return res;
|
||||
}
|
||||
|
||||
/* MCI_DGV_PUT_FRAME
|
||||
|
||||
The rectangle defined for MCI_DGV_RECT applies to the frame rectangle.
|
||||
@ -199,6 +243,26 @@ static char *sDeviceType(DWORD dt)
|
||||
return s;
|
||||
}
|
||||
|
||||
static char *sTimeFormat(DWORD tf)
|
||||
{
|
||||
char *s;
|
||||
switch(tf){
|
||||
case MCI_FORMAT_MILLISECONDS: s="MILLISECONDS"; break;
|
||||
case MCI_FORMAT_HMS: s="HMS"; break;
|
||||
case MCI_FORMAT_MSF: s="MSF"; break;
|
||||
case MCI_FORMAT_FRAMES: s="FRAMES"; break;
|
||||
case MCI_FORMAT_SMPTE_24: s="SMPTE_24"; break;
|
||||
case MCI_FORMAT_SMPTE_25: s="SMPTE_25"; break;
|
||||
case MCI_FORMAT_SMPTE_30: s="SMPTE_30"; break;
|
||||
case MCI_FORMAT_SMPTE_30DROP: s="SMPTE_30DROP"; break;
|
||||
case MCI_FORMAT_BYTES: s="BYTES"; break;
|
||||
case MCI_FORMAT_SAMPLES: s="SAMPLES"; break;
|
||||
case MCI_FORMAT_TMSF: s="TMSF"; break;
|
||||
default: s="unknown"; break;
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
static void DumpMciMessage(char *label, BOOL isAnsi, UINT uMsg, DWORD_PTR fdwCommand, DWORD_PTR dwParam)
|
||||
{
|
||||
char *api="mciSendCommand";
|
||||
@ -271,6 +335,13 @@ static void DumpMciMessage(char *label, BOOL isAnsi, UINT uMsg, DWORD_PTR fdwCom
|
||||
api, label, lpSysInfo->dwCallback, lpSysInfo->dwRetSize, lpSysInfo->dwNumber, lpSysInfo->wDeviceType, sDeviceType(lpSysInfo->wDeviceType));
|
||||
}
|
||||
break;
|
||||
case MCI_SET:
|
||||
{
|
||||
LPMCI_SET_PARMS lpSetInfo = (LPMCI_SET_PARMS)dwParam;
|
||||
OutTrace("%s%s: MCI_SET cb=%x audio=%x timeformat=%x(%s)\n",
|
||||
api, label, lpSetInfo->dwCallback, lpSetInfo->dwAudio, lpSetInfo->dwTimeFormat, sTimeFormat(lpSetInfo->dwTimeFormat));
|
||||
}
|
||||
break;
|
||||
default:
|
||||
{
|
||||
LPMCI_GENERIC_PARMS lpGeneric = (LPMCI_GENERIC_PARMS)dwParam;
|
||||
@ -287,9 +358,9 @@ MCIERROR WINAPI extmciSendCommand(BOOL isAnsi, mciSendCommand_Type pmciSendComma
|
||||
{
|
||||
RECT saverect;
|
||||
MCIERROR ret;
|
||||
MCI_ANIM_RECT_PARMS *pr;
|
||||
MCI_OVLY_WINDOW_PARMSA *pw;
|
||||
MCI_OPEN_PARMSA *po;
|
||||
LPMCI_ANIM_RECT_PARMS pr;
|
||||
LPMCI_OVLY_WINDOW_PARMSA pw;
|
||||
LPMCI_OPEN_PARMSA po;
|
||||
|
||||
OutTraceDW("mciSendCommand%c: IDDevice=%x msg=%x(%s) Command=%x(%s)\n",
|
||||
isAnsi ? 'A' : 'W',
|
||||
@ -302,11 +373,11 @@ MCIERROR WINAPI extmciSendCommand(BOOL isAnsi, mciSendCommand_Type pmciSendComma
|
||||
if(dxw.dwFlags6 & BYPASSMCI){
|
||||
//MCI_OPEN_PARMS *op;
|
||||
MCI_STATUS_PARMS *sp;
|
||||
ret = 0;
|
||||
switch(uMsg){
|
||||
case MCI_OPEN:
|
||||
po = (MCI_OPEN_PARMSA *)dwParam;
|
||||
po->wDeviceID = 1;
|
||||
ret = 0;
|
||||
break;
|
||||
case MCI_STATUS:
|
||||
if(fdwCommand & MCI_STATUS_ITEM){
|
||||
@ -330,10 +401,8 @@ MCIERROR WINAPI extmciSendCommand(BOOL isAnsi, mciSendCommand_Type pmciSendComma
|
||||
break;
|
||||
}
|
||||
}
|
||||
ret = 0;
|
||||
break;
|
||||
default:
|
||||
ret = 0;
|
||||
break;
|
||||
}
|
||||
if(IsDebug) DumpMciMessage("<<", isAnsi, uMsg, fdwCommand, dwParam);
|
||||
|
@ -53,8 +53,8 @@ LRESULT CALLBACK extDialogWindowProc(HWND hwnd, UINT message, WPARAM wparam, LPA
|
||||
// optimization: don't invalidate too often!
|
||||
// 200mSec seems a good compromise.
|
||||
if (tn-t > 200) {
|
||||
(*pInvalidateRect)(hwnd, NULL, TRUE);
|
||||
t=tn;
|
||||
(*pInvalidateRect)(hwnd, NULL, TRUE);
|
||||
}
|
||||
|
||||
pWindowProc=dxwws.GetProc(hwnd);
|
||||
@ -679,7 +679,6 @@ LRESULT CALLBACK extWindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lp
|
||||
// v2.02.36: use CallWindowProc that handles WinProc handles
|
||||
ret=(*pCallWindowProcA)(pWindowProc, hwnd, message, wparam, lparam);
|
||||
|
||||
|
||||
switch(message){
|
||||
case WM_SIZE:
|
||||
//case WM_WINDOWPOSCHANGED: - no good!!!!
|
||||
|
@ -51,6 +51,7 @@ void CTabCompat::DoDataExchange(CDataExchange* pDX)
|
||||
DDX_Check(pDX, IDC_FIXGLOBALUNLOCK, cTarget->m_FixGlobalUnlock);
|
||||
DDX_Check(pDX, IDC_FIXFREELIBRARY, cTarget->m_FixFreeLibrary);
|
||||
DDX_Check(pDX, IDC_LOADLIBRARYERR, cTarget->m_LoadLibraryErr);
|
||||
DDX_Check(pDX, IDC_FIXADJUSTWINRECT, cTarget->m_FixAdjustWinRect);
|
||||
DDX_Check(pDX, IDC_PRETENDVISIBLE, cTarget->m_PretendVisible);
|
||||
DDX_Check(pDX, IDC_WININSULATION, cTarget->m_WinInsulation);
|
||||
|
||||
|
@ -39,6 +39,7 @@ void CTabHook::DoDataExchange(CDataExchange* pDX)
|
||||
DDX_Check(pDX, IDC_HOOKNOUPDATE, cTarget->m_HookNoUpdate);
|
||||
DDX_Check(pDX, IDC_SEQUENCEDIAT, cTarget->m_SequencedIAT);
|
||||
DDX_Check(pDX, IDC_HOOKCHILDWIN, cTarget->m_HookChildWin);
|
||||
DDX_Check(pDX, IDC_HOOKDLGWIN, cTarget->m_HookDlgWin);
|
||||
|
||||
// Kernel32
|
||||
DDX_Radio(pDX, IDC_SONDEFAULT, cTarget->m_SonProcessMode);
|
||||
|
@ -90,6 +90,7 @@ CTargetDlg::CTargetDlg(CWnd* pParent /*=NULL*/)
|
||||
m_FixGlobalUnlock = FALSE;
|
||||
m_FixFreeLibrary = FALSE;
|
||||
m_LoadLibraryErr = FALSE;
|
||||
m_FixAdjustWinRect = FALSE;
|
||||
m_NoPixelFormat = FALSE;
|
||||
m_NoAlphaChannel = FALSE;
|
||||
m_FixRefCounter = TRUE; // default true !!
|
||||
@ -201,6 +202,7 @@ CTargetDlg::CTargetDlg(CWnd* pParent /*=NULL*/)
|
||||
m_FixD3DFrame = FALSE;
|
||||
m_NoWindowMove = FALSE;
|
||||
m_HookChildWin = FALSE;
|
||||
m_HookDlgWin = FALSE;
|
||||
m_MessageProc = FALSE;
|
||||
m_FixMouseHook = FALSE;
|
||||
m_FixNCHITTEST = FALSE;
|
||||
|
@ -151,6 +151,7 @@ public:
|
||||
BOOL m_FixD3DFrame;
|
||||
BOOL m_NoWindowMove;
|
||||
BOOL m_HookChildWin;
|
||||
BOOL m_HookDlgWin;
|
||||
BOOL m_MessageProc;
|
||||
BOOL m_FixMouseHook;
|
||||
BOOL m_FixNCHITTEST;
|
||||
@ -253,6 +254,7 @@ public:
|
||||
BOOL m_FixGlobalUnlock;
|
||||
BOOL m_FixFreeLibrary;
|
||||
BOOL m_LoadLibraryErr;
|
||||
BOOL m_FixAdjustWinRect;
|
||||
BOOL m_NoPixelFormat;
|
||||
BOOL m_NoAlphaChannel;
|
||||
BOOL m_FixRefCounter;
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -428,6 +428,7 @@ void SetTargetFromDlg(TARGETMAP *t, CTargetDlg *dlg)
|
||||
if(dlg->m_FixGlobalUnlock) t->flags7 |= FIXGLOBALUNLOCK;
|
||||
if(dlg->m_FixFreeLibrary) t->flags7 |= FIXFREELIBRARY;
|
||||
if(dlg->m_LoadLibraryErr) t->flags8 |= LOADLIBRARYERR;
|
||||
if(dlg->m_FixAdjustWinRect) t->flags8 |= FIXADJUSTWINRECT;
|
||||
if(dlg->m_NoPixelFormat) t->flags3 |= NOPIXELFORMAT;
|
||||
if(dlg->m_NoAlphaChannel) t->flags4 |= NOALPHACHANNEL;
|
||||
if(dlg->m_FixRefCounter) t->flags4 |= FIXREFCOUNTER;
|
||||
@ -489,6 +490,7 @@ void SetTargetFromDlg(TARGETMAP *t, CTargetDlg *dlg)
|
||||
if(dlg->m_FixD3DFrame) t->flags3 |= FIXD3DFRAME;
|
||||
if(dlg->m_NoWindowMove) t->flags3 |= NOWINDOWMOVE;
|
||||
if(dlg->m_HookChildWin) t->flags |= HOOKCHILDWIN;
|
||||
if(dlg->m_HookDlgWin) t->flags8 |= HOOKDLGWIN;
|
||||
if(dlg->m_MessageProc) t->flags |= MESSAGEPROC;
|
||||
if(dlg->m_FixMouseHook) t->flags8 |= FIXMOUSEHOOK;
|
||||
if(dlg->m_FixNCHITTEST) t->flags2 |= FIXNCHITTEST;
|
||||
@ -740,6 +742,7 @@ static void SetDlgFromTarget(TARGETMAP *t, CTargetDlg *dlg)
|
||||
dlg->m_FixGlobalUnlock = t->flags7 & FIXGLOBALUNLOCK ? 1 : 0;
|
||||
dlg->m_FixFreeLibrary = t->flags7 & FIXFREELIBRARY ? 1 : 0;
|
||||
dlg->m_LoadLibraryErr = t->flags8 & LOADLIBRARYERR ? 1 : 0;
|
||||
dlg->m_FixAdjustWinRect = t->flags8 & FIXADJUSTWINRECT ? 1 : 0;
|
||||
dlg->m_NoPixelFormat = t->flags3 & NOPIXELFORMAT ? 1 : 0;
|
||||
dlg->m_NoAlphaChannel = t->flags4 & NOALPHACHANNEL ? 1 : 0;
|
||||
dlg->m_FixRefCounter = t->flags4 & FIXREFCOUNTER ? 1 : 0;
|
||||
@ -823,6 +826,7 @@ static void SetDlgFromTarget(TARGETMAP *t, CTargetDlg *dlg)
|
||||
dlg->m_FixD3DFrame = t->flags3 & FIXD3DFRAME ? 1 : 0;
|
||||
dlg->m_NoWindowMove = t->flags3 & NOWINDOWMOVE ? 1 : 0;
|
||||
dlg->m_HookChildWin = t->flags & HOOKCHILDWIN ? 1 : 0;
|
||||
dlg->m_HookDlgWin = t->flags8 & HOOKDLGWIN ? 1 : 0;
|
||||
dlg->m_MessageProc = t->flags & MESSAGEPROC ? 1 : 0;
|
||||
dlg->m_FixMouseHook = t->flags8 & FIXMOUSEHOOK ? 1 : 0;
|
||||
dlg->m_FixNCHITTEST = t->flags2 & FIXNCHITTEST ? 1 : 0;
|
||||
|
BIN
host/host.aps
BIN
host/host.aps
Binary file not shown.
BIN
host/resource
BIN
host/resource
Binary file not shown.
BIN
proxy/d3d8.suo
BIN
proxy/d3d8.suo
Binary file not shown.
BIN
proxy/d3d9.suo
BIN
proxy/d3d9.suo
Binary file not shown.
BIN
proxy/ddraw.suo
BIN
proxy/ddraw.suo
Binary file not shown.
BIN
proxy/wing32.suo
BIN
proxy/wing32.suo
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user