windows-nt/Source/XPSP1/NT/sdktools/verifier/win2k/drvvctrl.cxx

151 lines
2.9 KiB
C++
Raw Normal View History

2020-09-26 03:20:57 -05:00
//
// Driver Verifier UI
// Copyright (c) Microsoft Corporation, 1999
//
//
// module: DrvVCtrl.cxx
// author: DMihai
// created: 01/04/98
//
// Description:
//
// Defines the class behaviors for the application..
//
#include "stdafx.h"
#include "DrvVCtrl.hxx"
#include "DrvCSht.hxx"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
static BOOL IsBuildNumberAcceptable()
{
if( g_OsVersion.dwMajorVersion < 5 || g_OsVersion.dwBuildNumber < 1954 )
{
::AfxMessageBox( IDS_BUILD_WARN,
MB_OK | MB_ICONSTOP );
return FALSE;
}
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CDrvVCtrlApp
BEGIN_MESSAGE_MAP(CDrvVCtrlApp, CWinApp)
//{{AFX_MSG_MAP(CDrvVCtrlApp)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDrvVCtrlApp construction
CDrvVCtrlApp::CDrvVCtrlApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
CString strAppName;
if( strAppName.LoadString( IDS_APPTITLE ) )
{
m_pszAppName = _tcsdup( (LPCTSTR)strAppName );
}
}
/////////////////////////////////////////////////////////////////////////////
// The one and only CDrvVCtrlApp object
CDrvVCtrlApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CDrvVCtrlApp initialization
BOOL CDrvVCtrlApp::InitInstance()
{
DWORD dwExitCode;
//
// Get the OS version and build nuber
//
ZeroMemory (&g_OsVersion, sizeof g_OsVersion);
g_OsVersion.dwOSVersionInfoSize = sizeof g_OsVersion;
GetVersionEx (&g_OsVersion);
//
// check for command line arguments
//
if( __argc > 1 )
{
//
// run just in command line mode
//
dwExitCode = VrfExecuteCommandLine( __argc, __targv );
exit( dwExitCode );
}
else
{
FreeConsole();
//
// check if the build # is acceptable
//
if( ! ::IsBuildNumberAcceptable() )
{
return FALSE;
}
}
AfxEnableControlContainer();
//
// There is only one property sheet in this program so
// we declare it static. It is embedding very big KRN_VERIFIER_STATE and
// VRF_VERIFIER_STATE structures so we don't want them pushed on the stack
//
static CDrvChkSheet dlg;
//
// show the dialog
//
m_pMainWnd = &dlg;
dlg.DoModal();
//
// all done, exit the application
//
if( g_bSettingsSaved )
{
exit( EXIT_CODE_REBOOT_NEEDED );
}
else
{
exit( EXIT_CODE_SUCCESS );
}
//
// not reached
//
return FALSE;
}