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

v2_03_75_srcfix1

Former-commit-id: 48698f76b40e032f6da6db17c39ae96c9eb7ff66
This commit is contained in:
gho tik 2016-11-07 11:46:27 -05:00 committed by Refael ACkermann
parent 1a522bb76b
commit 2c28c3a77b
12 changed files with 110 additions and 16 deletions

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7fd28d3540f74ceab1034bff9cd6fd4059e759568c2c207393d61fe20f0367da
oid sha256:3a374cec9f980973164610e2661704aa5658ea7e19901b5e61aa72207c7624b3
size 660480

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b4833fd88b00f606494df68b4af21d27e5f419a90686cb407e0539166dea762e
size 642560
oid sha256:d041afd6e18a75dc3b7316a913318827696603e87d9f8e6a06da4da57ccdbf53
size 643072

41
build/dxwnd.ini Normal file
View File

@ -0,0 +1,41 @@
[target]
title0=Mechwarrior 3 (high res)
path0=D:\Games\Mechwarrior 3 - RIP\Mech3.exe
launchpath0=
module0=
opengllib0=
notes0=
registry0=\n[HKEY_LOCAL_MACHINE\Software]\n[HKEY_LOCAL_MACHINE\Software\MicroProse]\n[HKEY_LOCAL_MACHINE\Software\MicroProse\MechWarrior 3 EP1]\n[HKEY_LOCAL_MACHINE\Software\MicroProse\MechWarrior 3 EP1\1.0]\n"Program"="..\\"\n"Version"="1.0"\n"InstallOptions"=dword:00050707\n\n[HKEY_LOCAL_MACHINE\Software\Microsoft]\n[HKEY_LOCAL_MACHINE\Software\Microsoft\DirectPlay]\n[HKEY_LOCAL_MACHINE\Software\Microsoft\DirectPlay\Applications]\n[HKEY_LOCAL_MACHINE\Software\Microsoft\DirectPlay\Applications\MechWarrior 3 EP1]\n"Guid"="{FA96C421-18DD-11D3-95AF-0060089877F0}"\n"File"="Mech3.exe"\n"CommandLine"="\n"Path"=".\\"\n"CurrentDirectory"=".\\"\n\n[HKEY_CURRENT_USER\Software]\n[HKEY_CURRENT_USER\Software\MicroProse]\n[HKEY_CURRENT_USER\Software\MicroProse\MechWarrior 3]\n[HKEY_CURRENT_USER\Software\MicroProse\MechWarrior 3\1.0]\n"InGameVMode"=dword:0000000a
ver0=0
coord0=0
flag0=136331398
flagg0=1207959552
flagh0=9236
flagi0=1277165574
flagj0=4224
flagk0=65600
flagl0=0
flagm0=0
tflag0=0
dflag0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0
winver0=0
maxres0=-1
swapeffect0=0
maxddinterface0=7
slowratio0=1
title1=Mechwarrior 3 (high res)
module1=
opengllib1=
dflag1=0
[window]
posx=915
posy=519
sizx=320
sizy=200
exportpath=D:\DxWnd\exports.ok\

View File

@ -0,0 +1,31 @@
[target]
title0=Mechwarrior 3 (high res)
path0=D:\Games\Mechwarrior 3 - RIP\Mech3.exe
launchpath0=
module0=
opengllib0=
notes0=
registry0=\n[HKEY_LOCAL_MACHINE\Software]\n[HKEY_LOCAL_MACHINE\Software\MicroProse]\n[HKEY_LOCAL_MACHINE\Software\MicroProse\MechWarrior 3 EP1]\n[HKEY_LOCAL_MACHINE\Software\MicroProse\MechWarrior 3 EP1\1.0]\n"Program"="..\\"\n"Version"="1.0"\n"InstallOptions"=dword:00050707\n\n[HKEY_LOCAL_MACHINE\Software\Microsoft]\n[HKEY_LOCAL_MACHINE\Software\Microsoft\DirectPlay]\n[HKEY_LOCAL_MACHINE\Software\Microsoft\DirectPlay\Applications]\n[HKEY_LOCAL_MACHINE\Software\Microsoft\DirectPlay\Applications\MechWarrior 3 EP1]\n"Guid"="{FA96C421-18DD-11D3-95AF-0060089877F0}"\n"File"="Mech3.exe"\n"CommandLine"="\n"Path"=".\\"\n"CurrentDirectory"=".\\"\n\n[HKEY_CURRENT_USER\Software]\n[HKEY_CURRENT_USER\Software\MicroProse]\n[HKEY_CURRENT_USER\Software\MicroProse\MechWarrior 3]\n[HKEY_CURRENT_USER\Software\MicroProse\MechWarrior 3\1.0]\n"InGameVMode"=dword:0000000a\n
ver0=0
coord0=0
flag0=136331398
flagg0=1207959552
flagh0=9236
flagi0=1277165574
flagj0=4224
flagk0=65600
flagl0=0
flagm0=0
tflag0=0
dflag0=0
posx0=50
posy0=50
sizx0=800
sizy0=600
maxfps0=0
initts0=0
winver0=0
maxres0=-1
swapeffect0=0
maxddinterface0=7
slowratio0=1

View File

@ -1148,11 +1148,14 @@ fix: logging of dwFOURCC field text value
fix: Injection routine: avoid closing a few handles that should not be closed, simplified logic.
add: GUI global configuration panel
v2.03.75
v2.03.75/fix1
fix: handling of restore previous screen mode when a primary fullscreen window is terminated. Fixes "Dethkarz" initialization error after 8BPP intro movie termination.
fix: SystemParameterInfo for SPI_SETSCREENSAVERRUNNING does not return an error
fix: added default pixel format specification to backbuffer: improves the possibility of ZBUFFER attach
fix: recovery of DDERR_SURFACELOST error on primary surface in PrimaryStretchBlt routine.
fix: possible palette handle leakage
fix: DC leakage caused by CreateCompatibleDC. Fix "Mechwarrior 3" repeated play sessions.
add: GUI drag & drop of game executables
add: GUI drag & drop of game executables
fix: RegQueryValueEx bad retcode when Data ptr is NULL
fix: recovered support for Windows XP
fix: fake registry did not read last registry line! Fixed.

View File

@ -160,6 +160,7 @@ static FILE *OpenFakeRegistry()
strcpy(p, "dxwnd.reg");
freg = fopen(sSourcePath,"w");
fwrite(FileBuf, 1, strlen(FileBuf), freg);
fputs("\n", freg);
fclose(freg);
free(FileBuf);
}
@ -256,7 +257,7 @@ static DWORD GetKeyValue(
char RegBuf[MAX_PATH+1];
DWORD cbData=0;
OutTrace("GetKeyValue: ValueName=%s", lpValueName);
//OutTrace("GetKeyValue: ValueName=%s\n", lpValueName);
fgets(RegBuf, 256, regf);
pData=&RegBuf[strlen(lpValueName)+3];
lpb = lpData;
@ -294,6 +295,8 @@ static DWORD GetKeyValue(
else
res=ERROR_MORE_DATA;
}
else
res=ERROR_SUCCESS; // data not needed
if (lpcbData) *lpcbData=sizeof(DWORD);
OutTraceR("%s: type=REG_DWORD cbData=%x Data=0x%x\n",
ApiName, lpcbData ? *lpcbData : 0, val);
@ -448,11 +451,20 @@ LONG WINAPI extRegQueryValueEx(
}
regf=OpenFakeRegistry();
if(regf==NULL) return ERROR_FILE_NOT_FOUND;
if(regf==NULL) {
OutTraceR("RegQueryValueEx: error in OpenFakeRegistry err=%s\n", GetLastError());
return ERROR_FILE_NOT_FOUND;
}
res = SeekFakeKey(regf, hKey);
if(res != ERROR_SUCCESS) return res;
if(res != ERROR_SUCCESS) {
OutTraceR("RegQueryValueEx: error in SeekFakeKey res=%x hKey=%x\n", res, hKey);
return res;
}
res = SeekValueName(regf, lpValueName);
if(res != ERROR_SUCCESS) return res;
if(res != ERROR_SUCCESS) {
OutTraceR("RegQueryValueEx: error in SeekValueName res=%x ValueName=%s\n", res, lpValueName);
return res;
}
res = GetKeyValue(regf, "RegQueryValueEx", lpValueName, lpType, lpData, lpcbData);
if(IsTraceR) LogKeyValue("RegQueryValueEx", res, lpType, lpData, lpcbData);
fclose(regf);

View File

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

Binary file not shown.

View File

@ -177,9 +177,6 @@ BOOL CTabProgram::OnInitDialog()
CStatic *IconBox;
IFormat *m_pRelIntegerFormat = new(RelIntegerFormat);
//ChangeWindowMessageFilter(WM_DROPFILES, MSGFLT_ADD);
//ChangeWindowMessageFilter(WM_COPYDATA, MSGFLT_ADD);
//ChangeWindowMessageFilter(0x0049, MSGFLT_ADD);
DragAcceptFiles();
CDragEdit *pEditFile;
pEditFile = (CDragEdit *)this->GetDlgItem(IDC_FILE);

Binary file not shown.

Binary file not shown.

View File

@ -1154,11 +1154,19 @@ void CDxwndhostView::OnInitialUpdate()
LV_COLUMN listcol;
LV_ITEM listitem;
int i;
typedef BOOL (WINAPI *ChangeWindowMessageFilter_Type)(UINT, DWORD);
ChangeWindowMessageFilter_Type pChangeWindowMessageFilter;
DragAcceptFiles();
ChangeWindowMessageFilter(WM_DROPFILES, MSGFLT_ADD);
ChangeWindowMessageFilter(WM_COPYDATA, MSGFLT_ADD);
ChangeWindowMessageFilter(0x0049, MSGFLT_ADD);
// the ChangeWindowMessageFilter is not available, nor necessary, on XP
HMODULE hUser32;
hUser32 = GetModuleHandle("user32.dll");
pChangeWindowMessageFilter = (ChangeWindowMessageFilter_Type)GetProcAddress(hUser32, "ChangeWindowMessageFilter");
if(pChangeWindowMessageFilter){
(*pChangeWindowMessageFilter)(WM_DROPFILES, MSGFLT_ADD);
(*pChangeWindowMessageFilter)(WM_COPYDATA, MSGFLT_ADD);
(*pChangeWindowMessageFilter)(0x0049, MSGFLT_ADD);
}
// Create 256 color image lists
HIMAGELIST hList = ImageList_Create(32,32, ILC_COLOR8 |ILC_MASK , 4, 1);
@ -1595,6 +1603,7 @@ void CDxwndhostView::OnSetRegistry()
}
fwrite(Registry, strlen(Registry), 1, regfp);
fputs("\n", regfp);
fclose(regfp);
}
@ -2641,6 +2650,7 @@ void CDxwndhostView::OnRun()
regfp=fopen("dxwnd.reg", "w");
if(regfp==NULL)MessageBox("Error writing virtual registry file", "Error", MB_ICONERROR|MB_OK);
fwrite(Registry, strlen(Registry), 1, regfp);
fputs("\n", regfp);
fclose(regfp);
}