Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

81 lines
1.5 KiB

/*
* dem.c - Main Module of DOS Emulation DLL.
*
* Sudeepb 09-Apr-1991 Craeted
*/
#include "io.h"
#include "dem.h"
/* DemInit - DEM Initialiazation routine. (This name may change when DEM is
* converted to DLL).
*
* Entry
* argc,argv - from softpc as it is.
*
*
* Exit
* None
*/
PSZ pszDefaultDOSDirectory;
extern VOID TerminateVDM(VOID);
extern VOID dempInitLFNSupport(VOID);
CHAR demDebugBuffer [256];
#if DBG
BOOL ToDebugOnF11 = FALSE;
#endif
BOOL DemInit (int argc, char *argv[])
{
PSZ psz;
DWORD dw;
// Modify default hard error handling
// - turn off all file io related popups
// - keep GP fault popups from system
//
SetErrorMode (SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX);
pszDefaultDOSDirectory = (PCHAR) malloc(MAX_PATH+14);
if (!pszDefaultDOSDirectory ||
!(dw = GetSystemDirectory(pszDefaultDOSDirectory, MAX_PATH)) ||
dw >= MAX_PATH )
{
return FALSE;
}
dempInitLFNSupport();
if (VDMForWOW)
return TRUE;
// Check the debugging level
while (--argc > 0) {
psz = *++argv;
if (*psz == '-' || *psz == '/') {
psz++;
if(tolower(*psz) == 'd'){
fShowSVCMsg = DEMDOSDISP | DEMFILIO;
break;
}
}
}
#if DBG
#ifndef i386
if( getenv( "YODA" ) != 0 )
#else
if( getenv( "DEBUGDOS" ) != 0 )
#endif
ToDebugOnF11 = TRUE;
#endif
return TRUE;
}