#ifndef __RSOP_SECURITY_H__ #define __RSOP_SECURITY_H__ #include "rsop.h" #include class CRegTreeOptions; #define REGSTR_PATH_SECURITY_LOCKOUT TEXT("Software\\Policies\\Microsoft\\Windows\\CurrentVersion\\Internet Settings") #define REGSTR_VAL_HKLM_ONLY TEXT("Security_HKLM_only") typedef struct tagSECURITYZONESETTINGS { BOOL dwFlags; // from the ZONEATTRIBUTES struct DWORD dwZoneIndex; // as defined by ZoneManager DWORD dwSecLevel; // current level (High, Medium, Low, Custom) DWORD dwPrevSecLevel; DWORD dwMinSecLevel; // current min level (High, Medium, Low, Custom) DWORD dwRecSecLevel; // current recommended level (High, Medium, Low, Custom) TCHAR szDescription[MAX_ZONE_DESCRIPTION]; TCHAR szDisplayName[MAX_ZONE_PATH]; HICON hicon; WCHAR wszObjPath[MAX_PATH]; // added for RSoP functionality long nMappings; // added for RSoP functionality } SECURITYZONESETTINGS, *LPSECURITYZONESETTINGS; // structure for main security page typedef struct tagSECURITYPAGE { HWND hDlg; // handle to window LPURLZONEMANAGER pInternetZoneManager; // pointer to InternetZoneManager IInternetSecurityManager *pInternetSecurityManager; // pointer to InternetSecurityManager HIMAGELIST himl; // imagelist for Zones combobox HWND hwndZones; // zones combo box hwnd LPSECURITYZONESETTINGS pszs; // current settings for displayed zone INT iZoneSel; // selected zone (as defined by ComboBox) DWORD dwZoneCount; // number of zones BOOL fChanged; BOOL fPendingChange; // to prevent the controls sending multiple sets (for cancel, mostly) HINSTANCE hinstUrlmon; BOOL fNoEdit; // hklm lockout of level edit BOOL fNoAddSites; // hklm lockout of addsites BOOL fNoZoneMapEdit; // hklm lockout of zone map edits HFONT hfontBolded; // special bolded font created for the zone title BOOL fForceUI; // Force every zone to show ui? BOOL fDisableAddSites; // Automatically disable add sites button? CDlgRSoPData *pDRD; // added for RSoP functionality } SECURITYPAGE, *LPSECURITYPAGE; // structure for Intranet Add Sites typedef struct tagADDSITESINTRANETINFO { HWND hDlg; // handle to window BOOL fUseIntranet; // Use local defined intranet addresses (in reg) BOOL fUseProxyExclusion; // Use proxy exclusion list BOOL fUseUNC; // Include UNC in intranet LPSECURITYPAGE pSec; } ADDSITESINTRANETINFO, *LPADDSITESINTRANETINFO; // structure for Add Sites typedef struct tagADDSITESINFO { HWND hDlg; // handle to window BOOL fRequireServerVerification; // Require Server Verification on sites in zone HWND hwndWebSites; // handle to list HWND hwndAdd; // handle to edit TCHAR szWebSite[MAX_ZONE_PATH]; // text in edit control BOOL fRSVOld; LPSECURITYPAGE pSec; } ADDSITESINFO, *LPADDSITESINFO; // structure for Custom Settings typedef struct tagCUSTOMSETTINGSINFO { HWND hDlg; // handle to window HWND hwndTree; LPSECURITYPAGE pSec; HWND hwndCombo; INT iLevelSel; CRegTreeOptions *pTO; BOOL fUseHKLM; // get/set settings from HKLM DWORD dwJavaPolicy; // Java policy selected BOOL fChanged; } CUSTOMSETTINGSINFO, *LPCUSTOMSETTINGSINFO; #define NUM_TEMPLATE_LEVELS 4 extern TCHAR g_szLevel[3][64]; extern TCHAR LEVEL_DESCRIPTION0[]; extern TCHAR LEVEL_DESCRIPTION1[]; extern TCHAR LEVEL_DESCRIPTION2[]; extern TCHAR LEVEL_DESCRIPTION3[]; extern LPTSTR LEVEL_DESCRIPTION[]; extern TCHAR CUSTOM_DESCRIPTION[]; extern TCHAR LEVEL_NAME0[]; extern TCHAR LEVEL_NAME1[]; extern TCHAR LEVEL_NAME2[]; extern TCHAR LEVEL_NAME3[]; extern LPTSTR LEVEL_NAME[]; extern TCHAR CUSTOM_NAME[]; typedef DWORD REG_CMD; typedef DWORD WALK_TREE_CMD; struct ACTION_SETTING { TCHAR szName[MAX_PATH]; DWORD dwValue; }; ///////////////////////////////////////////////////////////////////// class CRegTreeOptions { public: CRegTreeOptions(); ~CRegTreeOptions(); STDMETHODIMP InitTree( HWND hwndTree, HKEY hkeyRoot, LPCSTR pszRegKey, LPSECURITYPAGE pSec); STDMETHODIMP WalkTree( WALK_TREE_CMD cmd ); // STDMETHODIMP ToggleItem( HTREEITEM hti ); protected: BOOL RegEnumTree(HKEY hkeyRoot, LPCSTR pszRoot, HTREEITEM htviparent, HTREEITEM htvins); int DefaultIconImage(HKEY hkey, int iImage); DWORD GetCheckStatus(HKEY hkey, BOOL *pbChecked, BOOL bUseDefault); DWORD RegGetSetSetting(HKEY hKey, DWORD *pType, LPBYTE pData, DWORD *pcbData, REG_CMD cmd); BOOL WalkTreeRecursive(HTREEITEM htvi,WALK_TREE_CMD cmd); // DWORD SaveCheckStatus(HKEY hkey, BOOL bChecked); BOOL RegIsRestricted(HKEY hsubkey); // UINT cRef; HWND m_hwndTree; // LPTSTR pszParam; HIMAGELIST m_hIml; ACTION_SETTING m_as[50]; // as of Oct.2000, only 25, but give it room to grow long m_nASCount; }; ///////////////////////////////////////////////////////////////////// // Pics Tree Dialog Stuff (content ratings) ------------------------------ struct PRSD{ HINSTANCE hInst; // PicsRatingSystemInfo *pPRSI; CDlgRSoPData *pDRD; HWND hwndBitmapCategory; HWND hwndBitmapLabel; BOOL fNewProviders; }; #endif //__RSOP_SECURITY_H__