diff --git a/Include/dxwnd.h b/Include/dxwnd.h
index 2ef095a..111d80d 100644
--- a/Include/dxwnd.h
+++ b/Include/dxwnd.h
@@ -347,6 +347,7 @@ char *hexdump(unsigned char *, int);
LRESULT CALLBACK extWindowProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK extChildWindowProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK extDialogWindowProc(HWND, UINT, WPARAM, LPARAM);
+LRESULT CALLBACK dw_Hider_Message_Handler(HWND, UINT, WPARAM, LPARAM);
// defines below to condition debug message handling
diff --git a/build/dxwnd.dll b/build/dxwnd.dll
index 56518ae..7fd1a23 100644
--- a/build/dxwnd.dll
+++ b/build/dxwnd.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:1c0a0bc5af69c9bca35060d300910d4ec21d43d16136375c612d412aee68c925
-size 688128
+oid sha256:316eb7122e88fb04f315feae566f9dd25795711486906c18921c705267ead3ea
+size 688640
diff --git a/build/dxwnd.exe b/build/dxwnd.exe
index 7b2a23c..c7a426d 100644
--- a/build/dxwnd.exe
+++ b/build/dxwnd.exe
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:3d33e2d7ebb3bdfa9da636b6ab7630829f3aacb7b02fd0e07d8cbdba99d9ecae
+oid sha256:a8ac20985704c056d733ed339eed0f3da3467d780f238d3717fb855f5d8dec20
size 662016
diff --git a/build/exports/AeroStyle.dxw b/build/exports/AeroStyle.dxw
index 211933a..c681f1c 100644
--- a/build/exports/AeroStyle.dxw
+++ b/build/exports/AeroStyle.dxw
@@ -9,7 +9,7 @@ notes0=
registry0=
ver0=0
coord0=0
-flag0=136314914
+flag0=136314886
flagg0=1207959552
flagh0=20
flagi0=138412036
@@ -30,3 +30,6 @@ maxres0=-1
swapeffect0=0
maxddinterface0=7
slowratio0=2
+monitorid0=-1
+initresw0=800
+initresh0=600
diff --git a/build/exports/Chicken Invaders 2.dxw b/build/exports/Chicken Invaders 2.dxw
new file mode 100644
index 0000000..6fbfac1
--- /dev/null
+++ b/build/exports/Chicken Invaders 2.dxw
@@ -0,0 +1,35 @@
+[target]
+title0=Chicken Invaders 2
+path0=F:\Games\Chicken Invaders 2\ChickenInvaders2.exe
+startfolder0=
+launchpath0=
+module0=
+opengllib0=
+notes0=
+registry0=
+ver0=0
+monitorid0=-1
+coord0=0
+flag0=136314914
+flagg0=1207959552
+flagh0=20
+flagi0=138412036
+flagj0=4224
+flagk0=65536
+flagl0=65536
+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=2
+initresw0=800
+initresh0=600
diff --git a/build/exports/Daytona USA Deluxe.dxw b/build/exports/Daytona USA Deluxe.dxw
new file mode 100644
index 0000000..5c4be2e
--- /dev/null
+++ b/build/exports/Daytona USA Deluxe.dxw
@@ -0,0 +1,35 @@
+[target]
+title0=Daytona USA Deluxe
+path0=F:\Games\Daytona USA Deluxe\DAYTONA USA Deluxe.exe
+startfolder0=
+launchpath0=
+module0=
+opengllib0=
+notes0=
+registry0=
+ver0=0
+monitorid0=-1
+coord0=0
+flag0=136314914
+flagg0=1207959552
+flagh0=20
+flagi0=134217732
+flagj0=4224
+flagk0=65536
+flagl0=0
+flagm0=0
+tflag0=0
+dflag0=0
+posx0=50
+posy0=50
+sizx0=800
+sizy0=600
+maxfps0=0
+initts0=0
+winver0=0
+maxres0=-1
+swapeffect0=0
+maxddinterface0=7
+slowratio0=2
+initresw0=800
+initresh0=600
diff --git a/build/exports/Galapagos.dxw b/build/exports/Galapagos.dxw
index 8dcfe0e..c508058 100644
--- a/build/exports/Galapagos.dxw
+++ b/build/exports/Galapagos.dxw
@@ -1,27 +1,27 @@
[target]
title0=Galapagos
-path0=D:\Games\Galapagos\GALA.EXE
+path0=F:\Games\Galapagos\GALA.EXE
startfolder0=
launchpath0=
module0=
opengllib0=
-notes0=Needs single thread affinity to avoid concurrency crashes.\nBetter add also message pump to avoid process kill by OS while moving the mouse\nNeeds SmackW32 hooking and fix loop flag to be able to show the company logo initial movie
+notes0=
registry0=
ver0=0
-monitorid0=0
+monitorid0=-1
coord0=0
-flag0=-1464811354
-flagg0=1209008128
-flagh0=532
+flag0=137379894
+flagg0=1207959552
+flagh0=33300
flagi0=138412036
-flagj0=201326720
-flagk0=65536
-flagl0=67108880
+flagj0=469766272
+flagk0=67584
+flagl0=25231376
flagm0=0
tflag0=0
dflag0=0
-posx0=50
-posy0=50
+posx0=150
+posy0=150
sizx0=800
sizy0=600
maxfps0=0
@@ -30,6 +30,6 @@ winver0=0
maxres0=-1
swapeffect0=0
maxddinterface0=7
-slowratio0=1
-initresw0=0
-initresh0=0
+slowratio0=2
+initresw0=640
+initresh0=480
diff --git a/build/exports/Jeff Wayne's - The War of the Worlds.dxw b/build/exports/Jeff Wayne's - The War of the Worlds.dxw
new file mode 100644
index 0000000..20d1955
--- /dev/null
+++ b/build/exports/Jeff Wayne's - The War of the Worlds.dxw
@@ -0,0 +1,33 @@
+[target]
+title0=Jeff Wayne's - The War of the Worlds
+path0=F:\Games\Jeff Wayne's - The War of the Worlds\Wow.exe
+startfolder0=
+launchpath0=
+module0=
+opengllib0=
+notes0=
+registry0=
+ver0=0
+monitorid0=-1
+coord0=0
+flag0=681574434
+flagg0=1207959552
+flagh0=20
+flagi0=-2009071612
+flagj0=4224
+flagk0=65536
+flagl0=0
+flagm0=0
+tflag0=0
+dflag0=0
+posx0=50
+posy0=50
+sizx0=800
+sizy0=600
+maxfps0=0
+initts0=0
+winver0=0
+maxres0=-1
+swapeffect0=0
+maxddinterface0=7
+slowratio0=2
diff --git a/build/exports/O.D.T. Escape Or Die Trying (SW 640X480).dxw b/build/exports/O.D.T. Escape Or Die Trying (SW 640X480).dxw
new file mode 100644
index 0000000..ff22c8e
--- /dev/null
+++ b/build/exports/O.D.T. Escape Or Die Trying (SW 640X480).dxw
@@ -0,0 +1,35 @@
+[target]
+title0=O.D.T. Escape Or Die Trying (SW 640X480)
+path0=F:\Games\ODT\ODT.exe
+startfolder0=
+launchpath0=F:\Games\ODT\ODT.exe 640 480 FALSE DISPLAY (SW)
+module0=
+opengllib0=
+notes0=
+registry0=
+ver0=0
+monitorid0=0
+coord0=0
+flag0=134217826
+flagg0=1207959552
+flagh0=20
+flagi0=138412036
+flagj0=128
+flagk0=0
+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
+initresw0=0
+initresh0=0
diff --git a/build/exports/O.D.T. Escape Or Die Trying (HW 640X480).dxw b/build/exports/O.D.T. Escape Or Die Trying (HW 640X480).dxw
new file mode 100644
index 0000000..7b3e5e4
--- /dev/null
+++ b/build/exports/O.D.T. Escape Or Die Trying (HW 640X480).dxw
@@ -0,0 +1,35 @@
+[target]
+title0=O.D.T. Escape Or Die Trying (HW 640X480)
+path0=F:\Games\ODT\ODT.exe
+startfolder0=
+launchpath0=F:\Games\ODT\ODT.exe 640 480 TRUE DISPLAY (HW)
+module0=
+opengllib0=
+notes0=
+registry0=”&G
+ver0=0
+monitorid0=0
+coord0=0
+flag0=134217826
+flagg0=1207959552
+flagh0=20
+flagi0=138412036
+flagj0=128
+flagk0=0
+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
+initresw0=0
+initresh0=0
diff --git a/build/exports/V-Rally 2 Expert Edition.dxw b/build/exports/V-Rally 2 Expert Edition.dxw
new file mode 100644
index 0000000..fcedcd2
--- /dev/null
+++ b/build/exports/V-Rally 2 Expert Edition.dxw
@@ -0,0 +1,35 @@
+[target]
+title0=V-Rally 2 Expert Edition
+path0=F:\Games\V-Rally 2 Expert Edition\V-Rally2 Expert Edition\Vrally2.exe
+startfolder0=
+launchpath0=
+module0=
+opengllib0=
+notes0=Note: the game detects Alt-tabs and terminates. \nThen the "do not notify on task switch" is mandatory, but also minimizing is not supported.
+registry0=
+ver0=0
+monitorid0=-1
+coord0=0
+flag0=136314931
+flagg0=1207959808
+flagh0=20
+flagi0=138412036
+flagj0=4224
+flagk0=65536
+flagl0=1048576
+flagm0=0
+tflag0=0
+dflag0=0
+posx0=50
+posy0=50
+sizx0=800
+sizy0=600
+maxfps0=0
+initts0=0
+winver0=0
+maxres0=-1
+swapeffect0=0
+maxddinterface0=7
+slowratio0=2
+initresw0=800
+initresh0=600
diff --git a/build/exports/dxwnd.log b/build/exports/dxwnd.log
index bc2604d..b258931 100644
--- a/build/exports/dxwnd.log
+++ b/build/exports/dxwnd.log
@@ -1,19 +1,6 @@
-OnRun idx=3 prog="D:\Games\Barbie Riding Club\Program\Barbie Riding Club.exe"
+OnRun idx=0 prog="G:\Games\Nascar Racing 3\NASCAR Racing 3.exe"
setwindowshook mode
-OnRun idx=3 prog="D:\Games\Barbie Riding Club\Program\Barbie Riding Club.exe"
+OnRun idx=0 prog="G:\Games\Nascar Racing 3\NASCAR Racing 3.exe"
setwindowshook mode
-OnRun idx=5 prog="D:\Games\The Creed\Creed.exe"
-export virtual registry
-setwindowshook mode
-OnRun idx=4 prog="D:\Games\The Creed (SW DEMO)\DemoCreed.exe"
-setwindowshook mode
-OnRun idx=4 prog="D:\Games\The Creed (SW DEMO)\DemoCreed.exe"
-setwindowshook mode
-OnRun idx=5 prog="D:\Games\The Creed ( HW DEMO)\DemoCreed.exe"
-setwindowshook mode
-OnRun idx=4 prog="D:\Games\The Creed (SW DEMO)\DemoCreed.exe"
-setwindowshook mode
-OnRun idx=5 prog="D:\Games\The Creed ( HW DEMO)\DemoCreed.exe"
-setwindowshook mode
-OnRun idx=5 prog="D:\Games\The Creed ( HW DEMO)\DemoCreed.exe"
+OnRun idx=0 prog="G:\Games\Nascar Racing 3\NASCAR Racing 3.exe"
setwindowshook mode
diff --git a/build/readme-relnotes.txt b/build/readme-relnotes.txt
index 76b2900..5da1d5f 100644
--- a/build/readme-relnotes.txt
+++ b/build/readme-relnotes.txt
@@ -1293,9 +1293,12 @@ fix: manages the possibility or ValidateRect receiving a NULL RECT pointer - fix
add: auto-blit mode in SmakW32 frame loop - shows "Galapagos" company logo intro movie
fix: force stop blitting on window minimize event - fixes "Galapagos" and many others ....
-v2.03.91.fx1-4:
+v2.03.91.fx1-5:
fix: eliminated LOC causing bad window sizing
fix: better desktop hider management
fix: DC emulation object leakage - fixes "Yu No" leakage
fix: USER32 EndPaint DC leakage - fixes "Yu No" leakage
fix: window position problems
+fix: GUI auto hide mode enabled and disabled without need of GUI restart
+fix: ddraw surface stack policy. Recovers "Warhammer 40K Rites of War" after v2.03.83 fix.
+add: /q quiet mode, no message dialogs on screen
\ No newline at end of file
diff --git a/dll/dwhide.cpp b/dll/dwhide.cpp
index f187564..4975291 100644
--- a/dll/dwhide.cpp
+++ b/dll/dwhide.cpp
@@ -6,6 +6,8 @@
#include "syslibs.h"
#include "dxhelper.h"
+//#define FOUR_WINDOWS_STRIPED_HIDER
+
/****************************************************************************
* Function Name : gShowHideTaskBar() *
* Parameters : BOOL bHide (flag to toggle Show/Hide of Taskbar) *
@@ -53,9 +55,10 @@ void gShowHideTaskBar(BOOL bHide /*=FALSE*/)
static bool quit = false;
static HWND wHider=0;
+static RECT wDesktop;
#ifdef FOUR_WINDOWS_STRIPED_HIDER
-static LRESULT CALLBACK Hider_Message_Handler(HWND hwnd, UINT umsg, WPARAM wparam, LPARAM lparam)
+LRESULT CALLBACK dw_Hider_Message_Handler(HWND hwnd, UINT umsg, WPARAM wparam, LPARAM lparam)
{
switch(umsg)
{
@@ -70,8 +73,12 @@ static LRESULT CALLBACK Hider_Message_Handler(HWND hwnd, UINT umsg, WPARAM wpara
return (*pDefWindowProcA)(hwnd, umsg, wparam, lparam);
}
#else
-static LRESULT CALLBACK Hider_Message_Handler(HWND hwnd, UINT umsg, WPARAM wparam, LPARAM lparam)
+LRESULT CALLBACK dw_Hider_Message_Handler(HWND hwnd, UINT umsg, WPARAM wparam, LPARAM lparam)
{
+
+ extern void ExplainMsg(char *, HWND, UINT, WPARAM, LPARAM);
+ // ExplainMsg("HIDER", hwnd, umsg, wparam, lparam);
+
//LRESULT ret;
switch(umsg)
{
@@ -86,6 +93,7 @@ static LRESULT CALLBACK Hider_Message_Handler(HWND hwnd, UINT umsg, WPARAM wpara
// OutTrace("HIDER: msg=%x(%s) w/lparam= %x-%x\n", umsg, ExplainWinMessage(umsg), wparam, lparam);
if(hwnd == wHider){
+ WINDOWPOS *wp;
switch(umsg){
case WM_NOTIFY:
case WM_SETFOCUS:
@@ -103,6 +111,14 @@ static LRESULT CALLBACK Hider_Message_Handler(HWND hwnd, UINT umsg, WPARAM wpara
(*pSetWindowPos)(dxw.GethWnd(), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE|SWP_NOOWNERZORDER|SWP_NOSENDCHANGING);
return 0;
break;
+ case WM_WINDOWPOSCHANGING:
+ case WM_WINDOWPOSCHANGED:
+ wp = (WINDOWPOS *)lparam;
+ wp->x = wDesktop.left;
+ wp->y = wDesktop.top;
+ wp->cx = wDesktop.right - wDesktop.left;
+ wp->cy = wDesktop.bottom - wDesktop.top;
+ break;
default:
break;
}
@@ -142,7 +158,7 @@ static HINSTANCE RegisterHiderWindow()
WndClsEx.cbSize = sizeof(WNDCLASSEX);
WndClsEx.style = 0;
- WndClsEx.lpfnWndProc = Hider_Message_Handler; //DefWindowProc;
+ WndClsEx.lpfnWndProc = dw_Hider_Message_Handler; //DefWindowProc;
WndClsEx.cbClsExtra = 0;
WndClsEx.cbWndExtra = 0;
WndClsEx.hIcon = LoadIcon(NULL, IDI_APPLICATION);
@@ -274,7 +290,7 @@ void dxwCore::HideDesktop(HWND hwnd)
{
static BOOL DoOnce=TRUE;
static ATOM aClass;
- RECT wRect, wDesktop;
+ RECT wRect;
static HINSTANCE hinst=NULL;
if(DoOnce){
@@ -302,7 +318,7 @@ void dxwCore::HideDesktop(HWND hwnd)
if(!wHider) {
wHider=(*pCreateWindowExA)(0, "dxwnd:hider", "hider", 0, 0, 0, 0, 0, hParent, NULL, hinst, NULL);
if(!wHider) {
- OutTrace("HideDesktop: CreateWindowEx ERROR hwnd=%x err=%d\n", hwnd, GetLastError());
+ OutTrace("HideDesktop: CreateWindowEx ERROR hwnd=%x parent=%x err=%d\n", hwnd, hParent, GetLastError());
return;
}
(*pSetWindowLongA)(wHider, GWL_STYLE, 0);
diff --git a/dll/dxhook.cpp b/dll/dxhook.cpp
index 73b9708..63fac42 100644
--- a/dll/dxhook.cpp
+++ b/dll/dxhook.cpp
@@ -652,7 +652,8 @@ void HookWindowProc(HWND hwnd)
// don't hook twice ....
if ((pWindowProc == extWindowProc) ||
(pWindowProc == extChildWindowProc) ||
- (pWindowProc == extDialogWindowProc)){
+ (pWindowProc == extDialogWindowProc) ||
+ (pWindowProc == dw_Hider_Message_Handler)){
// hooked already !!!
OutTraceDW("GetWindowLong: hwnd=%x WindowProc HOOK already in place\n", hwnd);
return;
diff --git a/dll/dxwnd.cpp b/dll/dxwnd.cpp
index a56fc82..9771d8f 100644
--- a/dll/dxwnd.cpp
+++ b/dll/dxwnd.cpp
@@ -27,7 +27,7 @@ along with this program. If not, see .
#include "TlHelp32.h"
-#define VERSION "2.03.91.fx4"
+#define VERSION "2.03.91.fx5"
#define DDTHREADLOCK 1
//#define LOCKTHREADS
diff --git a/dll/dxwnd.vs2008.suo b/dll/dxwnd.vs2008.suo
index 5629aea..9e4ca3d 100644
Binary files a/dll/dxwnd.vs2008.suo and b/dll/dxwnd.vs2008.suo differ
diff --git a/dll/dxwsstack.cpp b/dll/dxwsstack.cpp
index 0788680..3a0be46 100644
--- a/dll/dxwsstack.cpp
+++ b/dll/dxwsstack.cpp
@@ -91,8 +91,20 @@ void dxwSStack::ClearSurfaceList()
SurfaceDB[i].uRole = 0;
SurfaceDB[i].uVersion = 0;
}
- lpDDSPrimary = NULL;
- lpDDSBackBuffer = NULL;
+ // v2.03.91.fx5: emptying the list entirely is no good for "Warhammer 40K Rites of War"
+ // better leave the last used primary and backbuffer surfaces.
+ if(lpDDSPrimary){
+ SurfaceDB[0].lpdds = lpDDSPrimary;
+ SurfaceDB[0].uRef = TRUE;
+ SurfaceDB[0].uRole = SURFACE_ROLE_PRIMARY;
+ SurfaceDB[0].uVersion = 0;
+ }
+ if(lpDDSBackBuffer){
+ SurfaceDB[1].lpdds = lpDDSBackBuffer;
+ SurfaceDB[1].uRef = TRUE;
+ SurfaceDB[1].uRole = SURFACE_ROLE_BACKBUFFER;
+ SurfaceDB[1].uVersion = 0;
+ }
}
void dxwSStack::UnrefSurface(LPDIRECTDRAWSURFACE ps)
diff --git a/dll/user32.cpp b/dll/user32.cpp
index e431648..c59265e 100644
--- a/dll/user32.cpp
+++ b/dll/user32.cpp
@@ -848,6 +848,13 @@ LONG WINAPI extSetWindowLong(HWND hwnd, int nIndex, LONG dwNewLong, SetWindowLon
!(dxw.dwFlags6 & NOWINDOWHOOKS)){ // v2.03.41 - debug flag
WNDPROC lres;
WNDPROC OldProc;
+
+ // fix ....
+ extern LRESULT CALLBACK dw_Hider_Message_Handler(HWND, UINT, WPARAM, LPARAM);
+ if(dwNewLong==(LONG)dw_Hider_Message_Handler) {
+ return (*pSetWindowLong)(hwnd, nIndex, (LONG)dw_Hider_Message_Handler);
+ }
+
// GPL fix
if(dxw.IsRealDesktop(hwnd) && dxw.Windowize) {
hwnd=dxw.GethWnd();
@@ -1459,6 +1466,10 @@ static void HookChildWndProc(HWND hwnd, DWORD dwStyle, LPCTSTR ApiName)
if(dxw.dwFlags6 & NOWINDOWHOOKS) return;
pWindowProc = (WNDPROC)(*pGetWindowLong)(hwnd, GWL_WNDPROC);
+
+ extern LRESULT CALLBACK dw_Hider_Message_Handler(HWND, UINT, WPARAM, LPARAM);
+ if(pWindowProc==dw_Hider_Message_Handler) return;
+
if((pWindowProc == extWindowProc) ||
(pWindowProc == extChildWindowProc) ||
(pWindowProc == extDialogWindowProc)){ // avoid recursions
diff --git a/host/CGlobalSettings.cpp b/host/CGlobalSettings.cpp
index e7d6a52..8f87276 100644
--- a/host/CGlobalSettings.cpp
+++ b/host/CGlobalSettings.cpp
@@ -8,6 +8,7 @@
extern char gInitPath[];
extern BOOL gbDebug;
+extern BOOL gAutoHideMode;
Key_Type FKeys[] = {
{IDC_KEY_LABEL1, "Time toggle", IDC_KEY_COMBO1, "timetoggle", 0},
@@ -225,4 +226,5 @@ void CGlobalSettings::OnOK()
}
//(CDxwndhostView *)(this->GetParent())->UpdateHotKeys();
gbDebug = m_DebugMode;
+ gAutoHideMode = m_AutoHideMode;
}
diff --git a/host/MessageBox.cpp b/host/MessageBox.cpp
index 6f0ab9c..b810e50 100644
--- a/host/MessageBox.cpp
+++ b/host/MessageBox.cpp
@@ -2,10 +2,14 @@
#include
#include
+extern BOOL gQuietMode;
+
int MessageBoxLang(UINT iText, UINT iCaption, UINT uType)
{
WCHAR sBuffer[1024+1];
WCHAR sCaption[48+1];
+
+ if (gQuietMode) return MB_OK;
LoadStringW(AfxGetResourceHandle(), iText, (LPWSTR)&sBuffer, sizeof(sBuffer));
LoadStringW(AfxGetResourceHandle(), iCaption, (LPWSTR)&sCaption, sizeof(sCaption));
@@ -19,6 +23,7 @@ int MessageBoxLangArg(UINT iText, UINT iCaption, UINT uType, ...)
WCHAR sFormat[1024+1];
WCHAR sCaption[48+1];
+ if (gQuietMode) return MB_OK;
LoadStringW(AfxGetResourceHandle(), iText, (LPWSTR)&sFormat, sizeof(sFormat));
LoadStringW(AfxGetResourceHandle(), iCaption, (LPWSTR)&sCaption, sizeof(sCaption));
diff --git a/host/dxwndhost.cpp b/host/dxwndhost.cpp
index ba6daae..c4dd3be 100644
--- a/host/dxwndhost.cpp
+++ b/host/dxwndhost.cpp
@@ -37,6 +37,7 @@ UINT m_InitialState = DXW_ACTIVE;
BOOL gbDebug = FALSE;
BOOL gTransientMode = FALSE;
BOOL gAutoHideMode = FALSE;
+BOOL gQuietMode = FALSE;
int iProgIndex;
extern char m_ConfigFileName[20+1] = "dxwnd.ini";
@@ -111,6 +112,10 @@ void CNewCommandLineInfo::ParseParam(LPCTSTR lpszParam, BOOL bFlag, BOOL bLast)
iProgIndex = atoi(&p[2]);
return;
}
+ if (sParam.MakeLower() == "q"){
+ // (Q)uiet mode: no message dialogs on screen
+ gQuietMode = TRUE;
+ }
}
// Call the base class to ensure proper command line processing
diff --git a/host/dxwndhost.vs2008.suo b/host/dxwndhost.vs2008.suo
index ccefed3..156ead8 100644
Binary files a/host/dxwndhost.vs2008.suo and b/host/dxwndhost.vs2008.suo differ