diff --git a/build/Resources_CN.dll b/build/Resources_CN.dll index 6defe55..a74b0ee 100644 --- a/build/Resources_CN.dll +++ b/build/Resources_CN.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4de37cdb906c386f2ba4b7f6793d36614ad77fcc432b1a21de322f93df87522a +oid sha256:6a702163f053b41ba59f0fe20652f8f6a29ae53f4d15cdd3cce41e4a98116aca size 132096 diff --git a/build/dxwnd.dll b/build/dxwnd.dll index 729ad7e..0a37864 100644 --- a/build/dxwnd.dll +++ b/build/dxwnd.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b6a90eedd9d99a4deac23538e6b96663ef88f4d640ddf13bc9e58289bbd6ba82 +oid sha256:2101f8e9ed4cdb9fa8edbb3c3b5062faab55a7f51a1e27a2269ca0852f506f58 size 503296 diff --git a/build/dxwnd.ini b/build/dxwnd.ini index 1db23f9..2174617 100644 --- a/build/dxwnd.ini +++ b/build/dxwnd.ini @@ -1,6 +1,413 @@ +[target] +title0=Total Soccer 2000 (DirectX) +path0=D:\Games\ts2000 demo\SOCCERDX.EXE +launchpath0= +module0= +opengllib0= +ver0=1 +coord0=0 +flag0=134234784 +flagg0=-937361152 +flagh0=20 +flagi0=4456588 +flagj0=0 +tflag0=6147 +initx0=0 +inity0=0 +minx0=0 +miny0=0 +maxx0=0 +maxy0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=2 +winver0=0 +maxres0=-1 +title1=NHL 99 +path1=D:\Games\NHL_99\nhl99.exe +launchpath1= +module1= +opengllib1= +ver1=0 +coord1=0 +flag1=134234147 +flagg1=1207959824 +flagh1=20 +flagi1=138413060 +flagj1=1 +tflag1=0 +initx1=0 +inity1=0 +minx1=0 +miny1=0 +maxx1=0 +maxy1=0 +posx1=50 +posy1=50 +sizx1=800 +sizy1=600 +maxfps1=0 +initts1=0 +winver1=0 +maxres1=-1 +title2=Diablo demo MP +path2=D:\Games\Diablo Demo MP\diablo_s.exe +launchpath2= +module2= +opengllib2= +ver2=0 +coord2=0 +flag2=134217762 +flagg2=1210138624 +flagh2=20 +flagi2=138544132 +flagj2=1 +tflag2=6403 +initx2=0 +inity2=0 +minx2=0 +miny2=0 +maxx2=0 +maxy2=0 +posx2=50 +posy2=50 +sizx2=800 +sizy2=600 +maxfps2=0 +initts2=0 +winver2=0 +maxres2=-1 +title3=DUCKMAN.EXE +path3=D:\Games\duckman\DUCKMAN.EXE +launchpath3= +module3= +opengllib3= +ver3=0 +coord3=0 +flag3=134217762 +flagg3=1207959568 +flagh3=20 +flagi3=138413060 +flagj3=0 +tflag3=0 +initx3=0 +inity3=0 +minx3=0 +miny3=0 +maxx3=0 +maxy3=0 +posx3=50 +posy3=50 +sizx3=800 +sizy3=600 +maxfps3=0 +initts3=0 +winver3=0 +maxres3=-1 +title4=Rune War +path4=D:\Games\RuneWar\RUNEWAR.EXE +launchpath4= +module4= +opengllib4= +ver4=0 +coord4=0 +flag4=134218272 +flagg4=1207959552 +flagh4=20 +flagi4=134217732 +flagj4=0 +tflag4=0 +initx4=0 +inity4=0 +minx4=0 +miny4=0 +maxx4=0 +maxy4=0 +posx4=50 +posy4=50 +sizx4=800 +sizy4=600 +maxfps4=0 +initts4=0 +winver4=0 +maxres4=-1 +title5=Rapanui +path5=D:\Games\Rapanui\Rapanui.exe +launchpath5= +module5= +opengllib5= +ver5=0 +coord5=0 +flag5=134218272 +flagg5=1207959552 +flagh5=20 +flagi5=138412036 +flagj5=0 +tflag5=0 +initx5=0 +inity5=0 +minx5=0 +miny5=0 +maxx5=0 +maxy5=0 +posx5=50 +posy5=50 +sizx5=800 +sizy5=600 +maxfps5=0 +initts5=0 +winver5=0 +maxres5=-1 +title6=Recoil +path6=D:\Games\Recoil\Recoil.exe +launchpath6= +module6= +opengllib6= +ver6=0 +coord6=0 +flag6=153092256 +flagg6=136314880 +flagh6=20 +flagi6=138412036 +flagj6=0 +tflag6=6147 +initx6=0 +inity6=0 +minx6=0 +miny6=0 +maxx6=0 +maxy6=0 +posx6=50 +posy6=50 +sizx6=800 +sizy6=600 +maxfps6=0 +initts6=0 +winver6=0 +maxres6=-1 +title7=Pax Corpus +path7=D:\Games\Pax Corpus\Pax.exe +launchpath7= +module7= +opengllib7= +ver7=0 +coord7=0 +flag7=673185826 +flagg7=1277247488 +flagh7=20 +flagi7=138413068 +flagj7=0 +tflag7=6403 +initx7=0 +inity7=0 +minx7=0 +miny7=0 +maxx7=0 +maxy7=0 +posx7=50 +posy7=50 +sizx7=800 +sizy7=600 +maxfps7=0 +initts7=0 +winver7=0 +maxres7=-1 +title8=POD Gold (D3D) +path8=E:\PODD3DX.EXE +launchpath8= +module8= +opengllib8= +ver8=0 +coord8=0 +flag8=134217760 +flagg8=1744830592 +flagh8=20 +flagi8=138543108 +flagj8=0 +tflag8=0 +initx8=0 +inity8=0 +minx8=0 +miny8=0 +maxx8=0 +maxy8=0 +posx8=50 +posy8=50 +sizx8=800 +sizy8=600 +maxfps8=0 +initts8=0 +winver8=0 +maxres8=-1 +title9=Fifth Element, the +path9=D:\Games\fifthelement\PC.EXE +launchpath9= +module9= +opengllib9= +ver9=0 +coord9=0 +flag9=134217826 +flagg9=1212153984 +flagh9=4 +flagi9=136314884 +flagj9=0 +tflag9=6147 +initx9=0 +inity9=0 +minx9=0 +miny9=0 +maxx9=0 +maxy9=0 +posx9=50 +posy9=50 +sizx9=800 +sizy9=600 +maxfps9=0 +initts9=0 +winver9=0 +maxres9=-1 +title10=Outcast +path10=D:\Games\Outcast\oc\Oc3.exe +launchpath10=D:\Games\Outcast\oc\loader.exe +module10= +opengllib10= +ver10=0 +coord10=0 +flag10=153092128 +flagg10=1209008128 +flagh10=20 +flagi10=205520900 +flagj10=0 +tflag10=0 +initx10=0 +inity10=0 +minx10=0 +miny10=0 +maxx10=0 +maxy10=0 +posx10=50 +posy10=50 +sizx10=800 +sizy10=600 +maxfps10=0 +initts10=0 +winver10=0 +maxres10=-1 +title11=Wind Fantasy SP demo +path11=D:\Games\Wind Fantasy SP demo\WF_SP.exe +launchpath11= +module11= +opengllib11= +ver11=0 +coord11=0 +flag11=134217762 +flagg11=1210056704 +flagh11=20 +flagi11=138413060 +flagj11=0 +tflag11=0 +initx11=0 +inity11=0 +minx11=0 +miny11=0 +maxx11=0 +maxy11=0 +posx11=50 +posy11=50 +sizx11=800 +sizy11=600 +maxfps11=0 +initts11=0 +winver11=0 +maxres11=-1 +title12=Freedom Force vs the 3rd Reich +path12=D:\Games\Freedom Force vs the 3rd Reich\ffvt3r.exe +launchpath12= +module12= +opengllib12= +ver12=0 +coord12=0 +flag12=134218272 +flagg12=1207959552 +flagh12=20 +flagi12=138412036 +flagj12=0 +tflag12=0 +initx12=0 +inity12=0 +minx12=0 +miny12=0 +maxx12=0 +maxy12=0 +posx12=50 +posy12=50 +sizx12=800 +sizy12=600 +maxfps12=0 +initts12=0 +winver12=0 +maxres12=-1 +title13=crimson.exe +path13=D:\Games\Crimson Skies\crimson.exe +launchpath13= +module13= +opengllib13= +ver13=0 +coord13=0 +flag13=134217760 +flagg13=1207959552 +flagh13=20 +flagi13=138412036 +flagj13=0 +tflag13=6403 +initx13=0 +inity13=0 +minx13=0 +miny13=0 +maxx13=0 +maxy13=0 +posx13=50 +posy13=50 +sizx13=800 +sizy13=600 +maxfps13=0 +initts13=0 +winver13=0 +maxres13=-1 +title14=Zoo Tycoon +path14=D:\Games\Zoo Tycoon\zoo.exe +launchpath14= +module14= +opengllib14= +ver14=0 +coord14=0 +flag14=134218272 +flagg14=1207959552 +flagh14=20 +flagi14=134217732 +flagj14=0 +tflag14=0 +initx14=0 +inity14=0 +minx14=0 +miny14=0 +maxx14=0 +maxy14=0 +posx14=50 +posy14=50 +sizx14=800 +sizy14=600 +maxfps14=0 +initts14=0 +winver14=0 +maxres14=-1 [window] -sizx=320 -sizy=200 -lang=automatic -posx=50 -posy=50 +posx=1011 +posy=455 +sizx=468 +sizy=278 +lang=default + diff --git a/build/dxwnd.reg b/build/dxwnd.reg index 71b12c0..f4e852f 100644 --- a/build/dxwnd.reg +++ b/build/dxwnd.reg @@ -8,3 +8,19 @@ [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectX] "Version"="4.07.00.0704" + +# 688I Hunter Killer: nocd patch + +[HKEY_LOCAL_MACHINE\SOFTWARE\Jane's Combat Simulations] + +[HKEY_LOCAL_MACHINE\SOFTWARE\Jane's Combat Simulations\688I Hunter-Killer] + +[HKEY_LOCAL_MACHINE\SOFTWARE\Jane's Combat Simulations\688I Hunter-Killer\1.0] +"cdInstallPath"="d:\\games\\688\\" +"sfxInstallPath"="d:\\games\\688\\sfx\\sfx.agg+" +"midiInstallPath"="d:\\games\\688\\midi" +"objectsInstallPath"="d:\\games\\688\\objects" +"graphicsInstallPath"="d:\\games\\688\\graphics" +"booksInstallPath"="d:\\games\\688\\books" +"rootInstallPath"="d:\\games\\688\\" + diff --git a/build/exports/IndyCar Series.dxw b/build/exports/IndyCar Series.dxw new file mode 100644 index 0000000..0952038 --- /dev/null +++ b/build/exports/IndyCar Series.dxw @@ -0,0 +1,27 @@ +[target] +title0=IndyCar Series +path0=D:\Games\IndyCar Series\IndyCarSeries.exe +launchpath0= +module0= +opengllib0= +ver0=8 +coord0=0 +flag0=134234656 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +tflag0=0 +initx0=0 +inity0=0 +minx0=0 +miny0=0 +maxx0=0 +maxy0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 diff --git a/build/exports/Outcast.dxw b/build/exports/Outcast.dxw new file mode 100644 index 0000000..c0e8549 --- /dev/null +++ b/build/exports/Outcast.dxw @@ -0,0 +1,28 @@ +[target] +title0=Outcast +path0=D:\Games\Outcast\oc\Oc3.exe +launchpath0=D:\Games\Outcast\oc\loader.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=153092128 +flagg0=1209008128 +flagh0=20 +flagi0=205520900 +flagj0=0 +tflag0=0 +initx0=0 +inity0=0 +minx0=0 +miny0=0 +maxx0=0 +maxy0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 diff --git a/build/exports/POD Gold (D3D).dxw b/build/exports/POD Gold (D3D).dxw new file mode 100644 index 0000000..8f97301 --- /dev/null +++ b/build/exports/POD Gold (D3D).dxw @@ -0,0 +1,28 @@ +[target] +title0=POD Gold (D3D) +path0=E:\PODD3DX.EXE +launchpath0= +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134217760 +flagg0=1744830592 +flagh0=20 +flagi0=138543108 +flagj0=0 +tflag0=0 +initx0=0 +inity0=0 +minx0=0 +miny0=0 +maxx0=0 +maxy0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 diff --git a/build/exports/Pax Corpus.dxw b/build/exports/Pax Corpus.dxw new file mode 100644 index 0000000..d89239f --- /dev/null +++ b/build/exports/Pax Corpus.dxw @@ -0,0 +1,28 @@ +[target] +title0=Pax Corpus +path0=D:\Games\Pax Corpus\Pax.exe +launchpath0= +module0= +opengllib0= +ver0=0 +coord0=1 +flag0=673185826 +flagg0=1275068416 +flagh0=20 +flagi0=138412036 +flagj0=0 +tflag0=0 +initx0=0 +inity0=0 +minx0=0 +miny0=0 +maxx0=0 +maxy0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 diff --git a/build/exports/Rapanui.dxw b/build/exports/Rapanui.dxw new file mode 100644 index 0000000..9f948b8 --- /dev/null +++ b/build/exports/Rapanui.dxw @@ -0,0 +1,28 @@ +[target] +title0=Rapanui +path0=D:\Games\Rapanui\Rapanui.exe +launchpath0= +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134218272 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=0 +tflag0=0 +initx0=0 +inity0=0 +minx0=0 +miny0=0 +maxx0=0 +maxy0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 diff --git a/build/exports/Recoil.dxw b/build/exports/Recoil.dxw new file mode 100644 index 0000000..ca5b7e8 --- /dev/null +++ b/build/exports/Recoil.dxw @@ -0,0 +1,28 @@ +[target] +title0=Recoil +path0=D:\Games\Recoil\Recoil.exe +launchpath0= +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134217760 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=0 +tflag0=0 +initx0=0 +inity0=0 +minx0=0 +miny0=0 +maxx0=0 +maxy0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 diff --git a/build/exports/Rune War.dxw b/build/exports/Rune War.dxw new file mode 100644 index 0000000..19318cb --- /dev/null +++ b/build/exports/Rune War.dxw @@ -0,0 +1,28 @@ +[target] +title0=Rune War +path0=D:\Games\RuneWar\RUNEWAR.EXE +launchpath0= +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134218272 +flagg0=1207959552 +flagh0=20 +flagi0=134217732 +flagj0=0 +tflag0=0 +initx0=0 +inity0=0 +minx0=0 +miny0=0 +maxx0=0 +maxy0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 diff --git a/build/exports/Zero Zone.dxw b/build/exports/Zero Zone.dxw new file mode 100644 index 0000000..a914239 --- /dev/null +++ b/build/exports/Zero Zone.dxw @@ -0,0 +1,28 @@ +[target] +title0=Zero Zone +path0=G:\ZEROZONE.EXE +launchpath0= +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134218272 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=0 +tflag0=0 +initx0=0 +inity0=0 +minx0=0 +miny0=0 +maxx0=0 +maxy0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 diff --git a/build/exports/Zoo Tycoon.dxw b/build/exports/Zoo Tycoon.dxw new file mode 100644 index 0000000..8c5a40e --- /dev/null +++ b/build/exports/Zoo Tycoon.dxw @@ -0,0 +1,28 @@ +[target] +title0=Zoo Tycoon +path0=D:\Games\Zoo Tycoon\zoo.exe +launchpath0= +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=1207960096 +flagg0=1207959552 +flagh0=20 +flagi0=136315172 +flagj0=0 +tflag0=6403 +initx0=0 +inity0=0 +minx0=0 +miny0=0 +maxx0=0 +maxy0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 diff --git a/build/readme-relnotes.txt b/build/readme-relnotes.txt index 5f3cfaa..3d60227 100644 --- a/build/readme-relnotes.txt +++ b/build/readme-relnotes.txt @@ -579,4 +579,7 @@ cleaned up GUI project: no more japanese and localized resources, no more unrefe GUI: added Desktop status window GUI: added pixel format descriptor to DxWnd status - +v2.02.89 +fix: added SVGA 512x384 video mode. Necessary for "Outcast" loading screen. +fix: using WINNLSEnableIME call to suppress IME window. +fix: improved some logging diff --git a/dll/ddraw.cpp b/dll/ddraw.cpp index 5b8f721..512f44b 100644 --- a/dll/ddraw.cpp +++ b/dll/ddraw.cpp @@ -4037,9 +4037,10 @@ typedef struct { int h; } SupportedRes_Type; -static SupportedRes_Type SupportedSVGARes[9]= { +static SupportedRes_Type SupportedSVGARes[10]= { {320,200}, {320,240}, + {512,384}, // needed by "Outcast" loading screen {640,400}, {640,480}, {720,480}, diff --git a/dll/dxhook.cpp b/dll/dxhook.cpp index 6ebab4e..531fd07 100644 --- a/dll/dxhook.cpp +++ b/dll/dxhook.cpp @@ -1303,11 +1303,17 @@ void HookModule(HMODULE base, int dxversion) HookMSV4WLibs(base); // -- used by Aliens & Amazons demo: what for? } +#define USEWINNLSENABLE + void DisableIME() { BOOL res; HMODULE hm; hm=GetModuleHandle("User32"); + if(hm==NULL){ + OutTrace("DisableIME: GetModuleHandle(User32) ERROR err=%d\n", GetLastError()); + return; + } // here, GetProcAddress may be not hooked yet! if(!pGetProcAddress) pGetProcAddress=GetProcAddress; #ifdef USEWINNLSENABLE @@ -1322,7 +1328,8 @@ void DisableIME() #else typedef LRESULT (WINAPI *SendIMEMessage_Type)(HWND, LPARAM); SendIMEMessage_Type pSendIMEMessage; - pSendIMEMessage=(SendIMEMessage_Type)(*pGetProcAddress)(hm, "SendIMEMessage"); + //pSendIMEMessage=(SendIMEMessage_Type)(*pGetProcAddress)(hm, "SendIMEMessage"); + pSendIMEMessage=(SendIMEMessage_Type)(*pGetProcAddress)(hm, "SendIMEMessageExA"); OutTrace("DisableIME: GetProcAddress(SendIMEMessage)=%x\n", pSendIMEMessage); if(!pSendIMEMessage) return; HGLOBAL imeh; diff --git a/dll/dxwcore.cpp b/dll/dxwcore.cpp index 2bbc3dd..dde17a9 100644 --- a/dll/dxwcore.cpp +++ b/dll/dxwcore.cpp @@ -151,7 +151,7 @@ void dxwCore::DumpDesktopStatus() RECT desktop; PIXELFORMATDESCRIPTOR pfd; int iPixelFormat, iBPP; - char ColorMask[65]; // are there 64BPP cards? I bet no.... + char ColorMask[32+1]; // get the current pixel format index hDesktop = GetDesktopWindow(); @@ -165,12 +165,19 @@ void dxwCore::DumpDesktopStatus() OutTrace("DescribePixelFormat ERROR: err=%d\n", GetLastError()); return; } - memset(ColorMask, ' ', 64); // blank fill - ColorMask[64] = 0; // terminate - for (int i=pfd.cRedShift; i. #include "dxwnd.h" #include "dxwcore.hpp" -#define VERSION "2.02.88" +#define VERSION "2.02.89" #define DDTHREADLOCK 1 diff --git a/dll/dxwnd.vs2008.suo b/dll/dxwnd.vs2008.suo index 641653d..b5408ce 100644 Binary files a/dll/dxwnd.vs2008.suo and b/dll/dxwnd.vs2008.suo differ diff --git a/dll/gdi32.cpp b/dll/gdi32.cpp index 6a340ee..e71164a 100644 --- a/dll/gdi32.cpp +++ b/dll/gdi32.cpp @@ -73,7 +73,7 @@ static HookEntry_Type ScaledHooks[]={ {HOOK_IAT_CANDIDATE, "Rectangle", (FARPROC)Rectangle, (FARPROC *)&pGDIRectangle, (FARPROC)extRectangle}, {HOOK_IAT_CANDIDATE, "TextOutA", (FARPROC)TextOutA, (FARPROC *)&pGDITextOutA, (FARPROC)extTextOutA}, {HOOK_IAT_CANDIDATE, "GetClipBox", (FARPROC)NULL, (FARPROC *)&pGDIGetClipBox, (FARPROC)extGetClipBox}, - {HOOK_IAT_CANDIDATE, "GetRegionBox", (FARPROC)NULL, (FARPROC *)&pGDIGetRegionBox, (FARPROC)extGetRegionBox}, + {HOOK_IAT_CANDIDATE, "GetRgnBox", (FARPROC)NULL, (FARPROC *)&pGDIGetRgnBox, (FARPROC)extGetRgnBox}, {HOOK_IAT_CANDIDATE, "Polyline", (FARPROC)NULL, (FARPROC *)&pPolyline, (FARPROC)extPolyline}, {HOOK_IAT_CANDIDATE, "PolyBezierTo", (FARPROC)NULL, (FARPROC *)&pPolyBezierTo, (FARPROC)extPolyBezierTo}, {HOOK_IAT_CANDIDATE, "PolylineTo", (FARPROC)NULL, (FARPROC *)&pPolylineTo, (FARPROC)extPolylineTo}, @@ -1115,20 +1115,20 @@ int WINAPI extGetClipBox(HDC hdc, LPRECT lprc) return ret; } -int WINAPI extGetRegionBox(HDC hdc, LPRECT lprc) +int WINAPI extGetRgnBox(HDC hdc, LPRECT lprc) { int ret; char *sRetCodes[4]={"ERROR", "NULLREGION", "SIMPLEREGION", "COMPLEXREGION"}; - OutTraceDW("GetRegionBox: hdc=%x\n", hdc); - ret=(*pGDIGetRegionBox)(hdc, lprc); + OutTraceDW("GetRgnBox: hdc=%x\n", hdc); + ret=(*pGDIGetRgnBox)(hdc, lprc); if (dxw.IsFullScreen() && (OBJ_DC == GetObjectType(hdc)) && (ret!=ERROR)){ - OutTraceDW("GetRegionBox: scaling main win coordinates (%d,%d)-(%d,%d)\n", + OutTraceDW("GetRgnBox: scaling main win coordinates (%d,%d)-(%d,%d)\n", lprc->left, lprc->top, lprc->right, lprc->bottom); // current implementation is NOT accurate, since it always returns the whole // virtual desktop area as the current regionbox...!!! *lprc=dxw.GetScreenRect(); } - OutTraceDW("GetRegionBox: ret=%x(%s) rect=(%d,%d)-(%d,%d)\n", + OutTraceDW("GetRgnBox: ret=%x(%s) rect=(%d,%d)-(%d,%d)\n", ret, sRetCodes[ret], lprc->left, lprc->top, lprc->right, lprc->bottom); return ret; } @@ -1321,7 +1321,7 @@ int WINAPI extSetDIBitsToDevice(HDC hdc, int XDest, int YDest, DWORD dwWidth, DW OrigXDest=XDest; OrigYDest=YDest; dxw.MapClient(&XDest, &YDest, (int *)&dwWidth, (int *)&dwHeight); - OutTraceDW("SetDIBitsToDevice: fixed dest=(%d,%d)-(%d,%d)\n", XDest, YDest, dwWidth, dwHeight); + OutTraceDW("SetDIBitsToDevice: fixed dest=(%d,%d)-(%dx%d)\n", XDest, YDest, dwWidth, dwHeight); HDC hTempDc; HBITMAP hbmPic; if(!(hTempDc=CreateCompatibleDC(hdc))) diff --git a/dll/hd3d.cpp b/dll/hd3d.cpp index e471120..62ac6d3 100644 --- a/dll/hd3d.cpp +++ b/dll/hd3d.cpp @@ -1736,4 +1736,4 @@ HRESULT WINAPI extEndStateBlock9(void *lpd3dd, IDirect3DStateBlock9** ppSB) OutTrace("EndStateBlock(9): d3dd=%x\n", lpd3dd); res = (*pEndStateBlock9)(lpd3dd, ppSB); return res; -} \ No newline at end of file +} diff --git a/dll/syslibs.h b/dll/syslibs.h index c36431b..abc7cea 100644 --- a/dll/syslibs.h +++ b/dll/syslibs.h @@ -45,7 +45,7 @@ typedef HPALETTE(WINAPI *GDICreatePalette_Type)(CONST LOGPALETTE *); typedef HDWP (WINAPI *DeferWindowPos_Type)(HDWP, HWND, HWND, int, int, int, int, UINT); typedef BOOL (WINAPI *DeleteDC_Type)(HDC); typedef int (WINAPI *GetClipBox_Type)(HDC, LPRECT); -typedef int (WINAPI *GetRegionBox_Type)(HDC, LPRECT); +typedef int (WINAPI *GetRgnBox_Type)(HDC, LPRECT); typedef int (WINAPI *GetDeviceCaps_Type)(HDC, int); typedef BOOL (WINAPI *GetDeviceGammaRamp_Type)(HDC, LPVOID); typedef BOOL (WINAPI *GetSystemPaletteEntries_Type)(HDC, UINT, UINT, LPPALETTEENTRY); @@ -255,7 +255,7 @@ DXWEXTERN GDICreatePalette_Type pGDICreatePalette DXWINITIALIZED; DXWEXTERN DeferWindowPos_Type pGDIDeferWindowPos DXWINITIALIZED; DXWEXTERN DeleteDC_Type pGDIDeleteDC DXWINITIALIZED; DXWEXTERN GetClipBox_Type pGDIGetClipBox DXWINITIALIZED; -DXWEXTERN GetRegionBox_Type pGDIGetRegionBox DXWINITIALIZED; +DXWEXTERN GetRgnBox_Type pGDIGetRgnBox DXWINITIALIZED; DXWEXTERN GetDeviceCaps_Type pGDIGetDeviceCaps DXWINITIALIZED; DXWEXTERN GetDeviceGammaRamp_Type pGDIGetDeviceGammaRamp DXWINITIALIZED; DXWEXTERN GetSystemPaletteEntries_Type pGDIGetSystemPaletteEntries DXWINITIALIZED; @@ -460,7 +460,7 @@ extern HDWP WINAPI extDeferWindowPos(HDWP, HWND, HWND, int, int, int, int, UINT) extern BOOL WINAPI extGDIDeleteDC(HDC); extern BOOL WINAPI extDDDeleteDC(HDC); extern int WINAPI extGetClipBox(HDC, LPRECT); -extern int WINAPI extGetRegionBox(HDC, LPRECT); +extern int WINAPI extGetRgnBox(HDC, LPRECT); extern int WINAPI extGetDeviceCaps(HDC, int); extern BOOL WINAPI extGetDeviceGammaRamp(HDC, LPVOID); extern UINT WINAPI extGetSystemPaletteEntries(HDC, UINT, UINT, LPPALETTEENTRY); diff --git a/dll/user32.cpp b/dll/user32.cpp index ef59493..f75cad7 100644 --- a/dll/user32.cpp +++ b/dll/user32.cpp @@ -45,10 +45,10 @@ static HookEntry_Type Hooks[]={ {HOOK_IAT_CANDIDATE, "DestroyWindow", (FARPROC)NULL, (FARPROC *)&pDestroyWindow, (FARPROC)extDestroyWindow}, {HOOK_IAT_CANDIDATE, "SetSysColors", (FARPROC)NULL, (FARPROC *)&pSetSysColors, (FARPROC)extSetSysColors}, {HOOK_IAT_CANDIDATE, "SetCapture", (FARPROC)NULL, (FARPROC *)&pSetCapture, (FARPROC)extSetCapture}, - {HOOK_IAT_CANDIDATE, "SetWindowLongA", (FARPROC)SetWindowLongA, (FARPROC *)&pSetWindowLongA, (FARPROC)extSetWindowLongA}, - {HOOK_IAT_CANDIDATE, "GetWindowLongA", (FARPROC)GetWindowLongA, (FARPROC *)&pGetWindowLongA, (FARPROC)extGetWindowLongA}, - {HOOK_IAT_CANDIDATE, "SetWindowLongW", (FARPROC)SetWindowLongW, (FARPROC *)&pSetWindowLongW, (FARPROC)extSetWindowLongW}, - {HOOK_IAT_CANDIDATE, "GetWindowLongW", (FARPROC)GetWindowLongW, (FARPROC *)&pGetWindowLongW, (FARPROC)extGetWindowLongW}, + {HOOK_HOT_CANDIDATE, "SetWindowLongA", (FARPROC)SetWindowLongA, (FARPROC *)&pSetWindowLongA, (FARPROC)extSetWindowLongA}, + {HOOK_HOT_CANDIDATE, "GetWindowLongA", (FARPROC)GetWindowLongA, (FARPROC *)&pGetWindowLongA, (FARPROC)extGetWindowLongA}, + {HOOK_HOT_CANDIDATE, "SetWindowLongW", (FARPROC)SetWindowLongW, (FARPROC *)&pSetWindowLongW, (FARPROC)extSetWindowLongW}, + {HOOK_HOT_CANDIDATE, "GetWindowLongW", (FARPROC)GetWindowLongW, (FARPROC *)&pGetWindowLongW, (FARPROC)extGetWindowLongW}, //{HOOK_IAT_CANDIDATE, "GetActiveWindow", (FARPROC)NULL, (FARPROC *)&pGetActiveWindow, (FARPROC)extGetActiveWindow}, //{HOOK_IAT_CANDIDATE, "GetForegroundWindow", (FARPROC)NULL, (FARPROC *)&pGetForegroundWindow, (FARPROC)extGetForegroundWindow}, @@ -727,14 +727,12 @@ HDWP WINAPI extDeferWindowPos(HDWP hWinPosInfo, HWND hwnd, HWND hWndInsertAfter, return res; } -LRESULT WINAPI extSendMessage(SendMessage_Type pSendMessage, HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam) +LRESULT WINAPI extSendMessage(char *apiname, SendMessage_Type pSendMessage, HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam) { LRESULT ret; - OutTraceW("SendMessage: hwnd=%x WinMsg=[0x%x]%s(%x,%x)\n", - hwnd, Msg, ExplainWinMessage(Msg), wParam, lParam); + OutTraceW("%s: hwnd=%x WinMsg=[0x%x]%s(%x,%x)\n", + apiname, hwnd, Msg, ExplainWinMessage(Msg), wParam, lParam); - //if(Msg==WM_NCDESTROY) return 1; - if(dxw.dwFlags1 & MODIFYMOUSE){ switch (Msg){ case WM_MOUSEMOVE: @@ -762,25 +760,25 @@ LRESULT WINAPI extSendMessage(SendMessage_Type pSendMessage, HWND hwnd, UINT Msg curr = dxw.AddCoordinates(curr, upleft); } lParam = MAKELPARAM(curr.x, curr.y); - OutTraceC("SendMessage: hwnd=%x pos XY=(%d,%d)->(%d,%d)\n", hwnd, prev.x, prev.y, curr.x, curr.y); + OutTraceC("%s: hwnd=%x pos XY=(%d,%d)->(%d,%d)\n", apiname, hwnd, prev.x, prev.y, curr.x, curr.y); break; default: break; } } ret=(*pSendMessage)(hwnd, Msg, wParam, lParam); - OutTraceW("SendMessage: lresult=%x\n", ret); + OutTraceW("%s: lresult=%x\n", apiname, ret); return ret; } LRESULT WINAPI extSendMessageA(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam) { - return extSendMessage(pSendMessageA, hwnd, Msg, wParam, lParam); + return extSendMessage("SendMessageA", pSendMessageA, hwnd, Msg, wParam, lParam); } LRESULT WINAPI extSendMessageW(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam) { - return extSendMessage(pSendMessageW, hwnd, Msg, wParam, lParam); + return extSendMessage("SendMessageW", pSendMessageW, hwnd, Msg, wParam, lParam); } HCURSOR WINAPI extSetCursor(HCURSOR hCursor) diff --git a/build/exports/dxwnd.ini b/host/dxwnd.ini similarity index 58% rename from build/exports/dxwnd.ini rename to host/dxwnd.ini index 58551d6..3608fe7 100644 --- a/build/exports/dxwnd.ini +++ b/host/dxwnd.ini @@ -1,5 +1,5 @@ [window] -posx=1803 -posy=246 +posx=1213 +posy=261 sizx=320 sizy=200 diff --git a/host/dxwndhost - Copy.rc b/host/dxwndhost - Copy.rc new file mode 100644 index 0000000..c1659ac Binary files /dev/null and b/host/dxwndhost - Copy.rc differ diff --git a/locale/cn/Resources_Cn.ncb b/locale/cn/Resources_Cn.ncb index 1172f15..80e46ed 100644 Binary files a/locale/cn/Resources_Cn.ncb and b/locale/cn/Resources_Cn.ncb differ diff --git a/locale/cn/Resources_Cn.rc b/locale/cn/Resources_Cn.rc index b36a6a7..4f939bd 100644 Binary files a/locale/cn/Resources_Cn.rc and b/locale/cn/Resources_Cn.rc differ diff --git a/locale/cn/Resources_Cn.suo b/locale/cn/Resources_Cn.suo index cd88731..535553c 100644 Binary files a/locale/cn/Resources_Cn.suo and b/locale/cn/Resources_Cn.suo differ