From f401ae8f911f41badeba5378edf9d19c02bfe406 Mon Sep 17 00:00:00 2001 From: gho tik Date: Wed, 13 Aug 2014 12:39:40 -0400 Subject: [PATCH] v2_02_89_src Former-commit-id: 7fc85c0a44e12e762e774aee21c6da5636b5095e --- build/Resources_CN.dll | 2 +- build/dxwnd.dll | 2 +- build/dxwnd.ini | 417 +++++++++++++++++++++++++++++- build/dxwnd.reg | 16 ++ build/exports/IndyCar Series.dxw | 27 ++ build/exports/Outcast.dxw | 28 ++ build/exports/POD Gold (D3D).dxw | 28 ++ build/exports/Pax Corpus.dxw | 28 ++ build/exports/Rapanui.dxw | 28 ++ build/exports/Recoil.dxw | 28 ++ build/exports/Rune War.dxw | 28 ++ build/exports/Zero Zone.dxw | 28 ++ build/exports/Zoo Tycoon.dxw | 28 ++ build/readme-relnotes.txt | 5 +- dll/ddraw.cpp | 3 +- dll/dxhook.cpp | 9 +- dll/dxwcore.cpp | 21 +- dll/dxwnd.cpp | 2 +- dll/dxwnd.vs2008.suo | Bin 259584 -> 259584 bytes dll/gdi32.cpp | 14 +- dll/hd3d.cpp | 2 +- dll/syslibs.h | 6 +- dll/user32.cpp | 24 +- {build/exports => host}/dxwnd.ini | 4 +- host/dxwndhost - Copy.rc | Bin 0 -> 85754 bytes locale/cn/Resources_Cn.ncb | Bin 35840 -> 27648 bytes locale/cn/Resources_Cn.rc | Bin 80182 -> 80156 bytes locale/cn/Resources_Cn.suo | Bin 7680 -> 7680 bytes 28 files changed, 734 insertions(+), 44 deletions(-) create mode 100644 build/exports/IndyCar Series.dxw create mode 100644 build/exports/Outcast.dxw create mode 100644 build/exports/POD Gold (D3D).dxw create mode 100644 build/exports/Pax Corpus.dxw create mode 100644 build/exports/Rapanui.dxw create mode 100644 build/exports/Recoil.dxw create mode 100644 build/exports/Rune War.dxw create mode 100644 build/exports/Zero Zone.dxw create mode 100644 build/exports/Zoo Tycoon.dxw rename {build/exports => host}/dxwnd.ini (58%) create mode 100644 host/dxwndhost - Copy.rc 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 641653df840d365dde476b07078a7e93cc7e456a..b5408ce0a8e701c6239938e81efed9c50f143b06 100644 GIT binary patch delta 10099 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 Y7#rIlEJPSHhYE`jmgu=Y+NMAKAF9z6f&c&j delta 7455 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 mWoMiJ3|Qy*qnCWX+KQleft, 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 0000000000000000000000000000000000000000..c1659ac3e8821b5dbb062edde4413d9ed51c03e9 GIT binary patch literal 85754 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 literal 0 HcmV?d00001 diff --git a/locale/cn/Resources_Cn.ncb b/locale/cn/Resources_Cn.ncb index 1172f159d7ae6f69da7aa277dff053a87d34d7ac..80e46edf0d9b589c64416bb08282eecfd74a5b57 100644 GIT binary patch delta 413 zcmZpe!PIbrae@Y~Gy?-e1rURP@Mb}o)6C2d7(Q$kWO>g#S%HO*Q3A#k;9&$R0pkbN z3Y&Q(q!<}3H>*qj15%SS_!TF+^D6)aGNfm)Ov+(V?R9+}3{rgL`|mj_Ka$;g=fv2Z z;+by;vIhjf1_AB6&OAwkMU(|7VgVM15X?Y|6)5|hnUQU?pvr&dNeVKIT$^PTeux9@ z5VOz%+3jfgfYI49zPKnkCMQ2RF()-9IWNXK#VW?7B0Mi8rpzebz$o4VT>%47K}tnA zl7h+Wd88)SS<3?bv7SeK@@8v6&32Fjpr8uMHU;u|foxTv(?PEH2eR2GItnkc;Q)GA z0+)v;%kWGBn|zp;9jJ>Hh>L)jdvkqmD-){>klDAH)8jicqtIr?lK}ElM)66Uu4F8UAX5{$8%yQsA!w)b^W{RF6=PY@7uj$CeZc|bF(#b<$heu8M-rPifZ@GnvxvtV=0WWhmPsOzm;`!| ol$dN~f+Qba7N9<9AOr2qf` diff --git a/locale/cn/Resources_Cn.rc b/locale/cn/Resources_Cn.rc index b36a6a7e0ad23913fb36246e4a4107e369915425..4f939bd58bbed2955bad4d9866f185304c5846c4 100644 GIT binary patch delta 31 ncmdn?iDk|wmJKtG39#m+OnX81jLlB@CNa94jdT E0HEa$VgLXD diff --git a/locale/cn/Resources_Cn.suo b/locale/cn/Resources_Cn.suo index cd88731ff75b385cc75aba53662e90c0ef24b743..535553cc9d012e83135bce36c5c95fb537b7af3e 100644 GIT binary patch delta 141 zcmZp$X|UOl!@{=Vkh#XQZIg>wu5qw1FfjZFg2@+IR33z!)#CO?po-^{`3 zz{tUYq+oLi*Lh}MMv!_QB;m;=d>42?f}ALV{QkU*EI<)1B+<=Z`2CqCALcgPTq5)d MVvptK1!4*809-IX_5c6?