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.
|
|
//
// Application Verifier UI
// Copyright (c) Microsoft Corporation, 2001
//
//
//
// module: Setting.h
// author: DMihai
// created: 02/22/2001
//
// Description:
//
//
#ifndef __APP_VERIFIER_SETTINGS_H__
#define __APP_VERIFIER_SETTINGS_H__
////////////////////////////////////////////////////
//
// Standard app verifier flags
//
#define AV_ALL_STANDARD_VERIFIER_FLAGS ( RTL_VRF_FLG_FULL_PAGE_HEAP | \
RTL_VRF_FLG_LOCK_CHECKS | \ RTL_VRF_FLG_HANDLE_CHECKS | \ RTL_VRF_FLG_STACK_CHECKS | \ RTL_VRF_FLG_APPCOMPAT_CHECKS )
////////////////////////////////////////////////////
//
// Type of settings (standard, custom)
//
typedef enum { AVSettingsTypeUnknown, AVSettingsTypeStandard, AVSettingsTypeCustom } AVSettingsType;
////////////////////////////////////////////////////
class CApplicationData : public CObject { public: CApplicationData( LPCTSTR szFileName, LPCTSTR szFullPath, ULONG uSettingsBits );
CApplicationData( LPCTSTR szFileName, ULONG uSettingsBits );
public: //
// Data
//
CString m_strExeFileName; CString m_strFileVersion; CString m_strCompanyName; CString m_strProductName;
DWORD m_uCustomFlags; BOOL m_bSaved;
protected: VOID LoadAppVersionData( LPCTSTR szFileName ); };
////////////////////////////////////////////////////
class CApplicationDataArray : public CObArray { public: ~CApplicationDataArray();
public: CApplicationData *GetAt( INT_PTR nIndex );
VOID DeleteAll(); VOID DeleteAt( INT_PTR nIndex );
BOOL IsFileNameInList( LPCTSTR szFileName ); INT_PTR FileNameIndex( LPCTSTR szFileName );
INT_PTR AddNewAppData( LPCTSTR szFileName, LPCTSTR szFullPath, ULONG uSettingsBits );
INT_PTR AddNewAppDataConsoleMode( LPCTSTR szFileName, ULONG uSettingsBits );
VOID SetAllSaved( BOOL bSaved ); };
////////////////////////////////////////////////////
//
// App verifier settings
//
class CAVSettings : public CObject { public: CAVSettings();
public: //
// Data
//
AVSettingsType m_SettingsType;
CApplicationDataArray m_aApplicationData; };
/////////////////////////////////////////////////////////////////////////////
//
// Name and bit pair structure
//
typedef struct _BIT_LISTNAME_CMDLINESWITCH { ULONG m_uCmdLineStringId; ULONG m_uNameStringId; DWORD m_dwBit; } BIT_LISTNAME_CMDLINESWITCH, *PBIT_LISTNAME_CMDLINESWITCH;
/////////////////////////////////////////////////////////////////////////////
//
// App name and enabled bits pair class
//
class CAppAndBits : public CObject { public: //
// Construction
//
CAppAndBits( LPCTSTR szAppName, DWORD dwEnabledBits );
public: //
// Data
//
CString m_strAppName; DWORD m_dwEnabledBits; };
/////////////////////////////////////////////////////////////////////////////
//
// App name and enabled bits pair array class
//
class CAppAndBitsArray : public CObArray { public: ~CAppAndBitsArray();
public: CAppAndBits *GetAt( INT_PTR nIndex ); VOID DeleteAll(); };
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
//
// Global data:
/////////////////////////////////////////////////////////////////////////////
//
// New app verifier settings
//
extern CAVSettings g_NewSettings;
/////////////////////////////////////////////////////////////////////////////
//
// Current settings bits - used as temporary variable
// to store custom settings bits between the settings bits
// page and the app selection page.
//
extern DWORD g_dwNewSettingBits;
/////////////////////////////////////////////////////////////////////////////
//
// Bit names and cmd line switch
//
extern BIT_LISTNAME_CMDLINESWITCH g_AllNamesAndBits[ 5 ];
/////////////////////////////////////////////////////////////////////////////
//
// Changed settings? If yes, the program will exit with AV_EXIT_CODE_RESTART
//
extern BOOL g_bChangedSettings;
/////////////////////////////////////////////////////////////////////////////
extern CAppAndBitsArray g_aAppsAndBitsFromRegistry;
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
//
// Helper functions
//
/////////////////////////////////////////////////////////////////////////////
//
// Save the new app verifier settings for all images
//
BOOL AVSaveNewSettings( BOOL bDeleteOtherSettings = TRUE );
/////////////////////////////////////////////////////////////////////////////
//
// Save the new app verifier settings for only one image
//
BOOL AVSetVerifierFlagsForExe( LPCTSTR szExeName, DWORD dwNewVerifierFlags );
/////////////////////////////////////////////////////////////////////////////
//
// Dump the current registry settings to the console
//
VOID AVDumpRegistrySettingsToConsole();
/////////////////////////////////////////////////////////////////////////////
//
// Read the current registry settings
//
VOID AVReadCrtRegistrySettings();
#endif //#ifndef __APP_VERIFIER_SETTINGS_H__
|