Leaked source code of windows server 2003
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.
 
 
 
 
 
 

374 lines
11 KiB

#ifndef RC_INVOKED
#include <nt.h>
#include <ntrtl.h>
#include <nturtl.h>
#endif
#include <windows.h>
#include <lm.h>
#include <ole2.h>
#include <olectl.h>
#include <shellapi.h>
#include <shlobj.h>
#include <commctrl.h>
#include <commdlg.h>
#include <prsht.h>
#include <mmc.h>
#include <activeds.h>
#include <gpedit.h>
#define _USERENV_NO_LINK_APIS_ 1
#include <userenv.h>
#include <userenvp.h>
#include <wbemcli.h>
#include <tchar.h>
#include <winsock2.h>
class CScriptsSnapIn;
class CPolicyComponentData;
#include "debug.h"
#include "util.h"
#include "pcommon.h"
//
// From comctrlp.h
//
#if (_WIN32_IE >= 0x0501)
#define UDS_UNSIGNED 0x0200
#endif
//
// Resource ids
//
#define IDS_SCRIPTS_NAME 1
#define IDS_SCRIPTS_NAME_MACHINE 2
#define IDS_SCRIPTS_NAME_USER 3
#define IDS_NAME 4
#define IDS_STATE 5
#define IDS_SETTING 6
#define IDS_PARAMETERS 7
#define IDS_ENABLED 8
#define IDS_DISABLED 9
#define IDS_NOTCONFIGURED 10
#define IDS_LOGON 11
#define IDS_LOGOFF 12
#define IDS_STARTUP 13
#define IDS_SHUTDOWN 14
#define IDS_BROWSEFILTER 15
#define IDS_BROWSE 16
#define IDS_SCRIPT_EDIT 17
#define IDS_SCRIPT_FILTER 18
#define IDS_POLICY_NAME 19
#define IDS_POLICY_NAME_MACHINE 20
#define IDS_POLICY_NAME_USER 21
#define IDS_TEMPLATES 22
#define IDS_TEMPLATESDESC 23
#define IDS_SIZE 24
#define IDS_MODIFIED 25
#define IDS_POLICYFILTER 26
#define IDS_POLICYTITLE 27
#define IDS_DEFAULTTEMPLATES 28
#define IDS_LISTBOX_SHOW 29
#define IDS_VALUE 31
#define IDS_VALUENAME 32
#define IDS_VALUENAMENOTUNIQUE 33
#define IDS_EMPTYVALUENAME 34
#define IDS_VALUEDATANOTUNIQUE 35
#define IDS_EMPTYVALUEDATA 36
#define IDS_FILTERING 37
#define IDS_FILTERINGDESC 38
#define IDS_ADDITIONALTTEMPLATES 39
#define IDS_GPONAME 41
#define IDS_MULTIPLEGPOS 42
#define IDS_DESCTEXT 43
#define IDS_LASTEXECUTED 44
#define IDS_SAVEFAILED 45
#define IDS_DISPLAYPROPERTIES 46
#define IDS_EXTRAREGSETTINGS 47
#define IDS_STRINGTOOLONG 48
#define IDS_WORDTOOLONG 49
#define IDS_ErrOUTOFMEMORY 50
#define IDS_ParseErr_UNEXPECTED_KEYWORD 51
#define IDS_ParseErr_UNEXPECTED_EOF 52
#define IDS_ParseErr_DUPLICATE_KEYNAME 53
#define IDS_ParseErr_DUPLICATE_VALUENAME 54
#define IDS_ParseErr_NO_KEYNAME 55
#define IDS_ParseErr_NO_VALUENAME 56
#define IDS_ParseErr_NO_VALUE 57
#define IDS_ParseErr_NOT_NUMERIC 58
#define IDS_ParseErr_DUPLICATE_ITEMNAME 59
#define IDS_ParseErr_NO_ITEMNAME 60
#define IDS_ParseErr_DUPLICATE_ACTIONLIST 61
#define IDS_ParseErr_STRING_NOT_FOUND 62
#define IDS_ParseErr_UNMATCHED_DIRECTIVE 63
#define IDS_ParseErr_DUPLICATE_HELP 64
#define IDS_ParseErr_DUPLICATE_CLIENTEXT 65
#define IDS_ParseErr_INVALID_CLIENTEXT 66
#define IDS_ParseErr_DUPLICATE_SUPPORTED 67
#define IDS_ParseErr_MISSINGVALUEON_OR_OFF 68
#define IDS_ParseFmt_MSG_FORMAT 90
#define IDS_ParseFmt_FOUND 91
#define IDS_ParseFmt_EXPECTED 92
#define IDS_ParseFmt_FATAL 93
#define IDS_ENTRYREQUIRED 100
#define IDS_INVALIDNUM 101
#define IDS_NUMBERTOOLARGE 102
#define IDS_NUMBERTOOSMALL 103
#define IDS_POLICYCHANGEDFAILED 104
#define IDS_INVALIDADMFILE 105
#define IDS_IPSEC_NAME 200
#define IDS_PSCHED_NAME 201
#define IDS_WIRELESS_NAME 202
#define IDS_LOGON_DESC 225
#define IDS_LOGOFF_DESC 226
#define IDS_STARTUP_DESC 227
#define IDS_SHUTDOWN_DESC 228
#define IDS_SCRIPTS_DESC 229
#define IDS_SCRIPTS_USER_DESC 230
#define IDS_SCRIPTS_COMPUTER_DESC 231
#define IDS_SCRIPTS_LOGON 232
#define IDS_SCRIPTS_LOGOFF 233
#define IDS_SCRIPTS_STARTUP 234
#define IDS_SCRIPTS_SHUTDOWN 235
#define IDS_POLICY_DESC 236
#define IDS_NONE 237
#define IDS_RSOP_ADMFAILED 238
#define IDS_BINARYDATA 240
#define IDS_UNKNOWNDATA 241
#define IDS_EXSETROOT_DESC 242
#define IDS_EXSET_DESC 243
#define IDS_PREFERENCE 246
#define IDS_SUPPORTEDDESC 247
#define IDS_NOSUPPORTINFO 248
#define IDS_FAILED_RSOPFMT 250
//
// Menus
//
#define IDM_TEMPLATES 1
#define IDM_TEMPLATES2 3
#define IDM_FILTERING 4
//
// Icons
//
#define IDI_POLICY 1
#define IDI_POLICY2 2
#define IDI_POLICY3 3
#define IDI_DOCUMENT 4
#define IDI_SCRIPT 5
#define IDI_FILTER 6
//
// Bitmaps
//
#define IDB_16x16 1
#define IDB_32x32 2
//
// Dialogs
//
#define IDD_SCRIPT 100
#define IDC_SCRIPT_TITLE 101
#define IDC_SCRIPT_HEADING 102
#define IDC_SCRIPT_LIST 103
#define IDC_SCRIPT_UP 104
#define IDC_SCRIPT_DOWN 105
#define IDC_SCRIPT_ADD 106
#define IDC_SCRIPT_EDIT 107
#define IDC_SCRIPT_REMOVE 108
#define IDC_SCRIPT_SHOW 109
#define IDD_SCRIPT_EDIT 150
#define IDC_SCRIPT_NAME 151
#define IDC_SCRIPT_ARGS 152
#define IDC_SCRIPT_BROWSE 153
#define IDD_POLICY 200
#define IDC_POLICY 201
#define IDC_POLICY_TITLE 202
#define IDC_POLICY_SETTINGS 203
#define IDC_POLICY_PREVIOUS 204
#define IDC_POLICY_NEXT 205
#define IDC_POLICYICON 206
#define IDC_NOCONFIG 207
#define IDC_ENABLED 208
#define IDC_DISABLED 209
#define IDC_SUPPORTED 210
#define IDC_SUPPORTEDTITLE 211
#define IDD_SETTINGCTRL 1000
#define IDD_POLICY_HELP 225
#define IDC_POLICY_HELP 226
#define IDD_POLICY_PRECEDENCE 275
#define IDC_POLICY_PRECEDENCE 276
#define IDD_TEMPLATES 300
#define IDC_TEMPLATE_TEXT 301
#define IDC_TEMPLATELIST 302
#define IDC_ADDTEMPLATES 303
#define IDC_REMOVETEMPLATES 304
#define IDD_POLICY_LBADD 400
#define IDD_POLICY_LBADD2 401
#define IDC_POLICY_VALUENAME 402
#define IDC_POLICY_VALUEDATA 403
#define IDD_POLICY_SHOWLISTBOX 500
#define IDC_POLICY_LISTBOX 501
#define IDC_POLICY_ADD 502
#define IDC_POLICY_REMOVE 503
#define IDD_POLICY_FILTERING 600
#define IDC_SUPPORTEDOPTION 601
#define IDC_FILTERLIST 602
#define IDC_SELECTALL 603
#define IDC_DESELECTALL 604
#define IDC_SHOWCONFIG 605
#define IDC_SHOWPOLICIES 606
#define IDC_SUPPORTEDONTITLE 607
#define IDC_STATIC 608
#define IDC_FILTERING_ICON 609
//
// Help ids
//
#define IDH_SCRIPT_TITLE 1
#define IDH_SCRIPT_HEADING 2
#define IDH_SCRIPT_LIST 3
#define IDH_SCRIPT_UP 4
#define IDH_SCRIPT_DOWN 5
#define IDH_SCRIPT_ADD 6
#define IDH_SCRIPT_EDIT 7
#define IDH_SCRIPT_REMOVE 8
#define IDH_SCRIPT_SHOW 9
#define IDH_SCRIPT_NAME 10
#define IDH_SCRIPT_ARGS 11
#define IDH_SCRIPT_BROWSE 12
//
// Error dialog defines
//
#define IDD_ERROR_ADMTEMPLATES 800
#define IDC_ERRORTEXT 801
#define IDC_DETAILSBORDER 802
#define IDC_DETAILSTEXT 803
#define IDC_ERROR_ICON 804
//
// Global variables
//
extern LONG g_cRefThisDll;
extern HINSTANCE g_hInstance;
extern TCHAR g_szSnapInLocation[];
extern CRITICAL_SECTION g_ADMCritSec;
extern TCHAR g_szDisplayProperties[];
//
// Macros
//
#define ARRAYSIZE(a) (sizeof(a)/sizeof(a[0]))
#ifndef NORM_STOP_ON_NULL
#define NORM_STOP_ON_NULL 0x10000000
#endif
//
// Help
//
#define HELP_FILE TEXT("gptext.hlp")
#define IDH_HELPFIRST 5000
//
// Structures
//
#define MAX_DISPLAYNAME_SIZE 100
typedef struct _RESULTITEM
{
DWORD dwID;
DWORD dwNameSpaceItem;
INT iStringID;
INT iDescStringID;
INT iImage;
TCHAR szDisplayName[MAX_DISPLAYNAME_SIZE];
} RESULTITEM, *LPRESULTITEM;
typedef struct _NAMESPACEITEM
{
DWORD dwID;
DWORD dwParent;
INT iStringID;
INT iDescStringID;
INT cChildren;
TCHAR szDisplayName[MAX_DISPLAYNAME_SIZE];
INT cResultItems;
LPRESULTITEM pResultItems;
const GUID *pNodeID;
} NAMESPACEITEM, *LPNAMESPACEITEM;
//
// Functions to create class factories
//
HRESULT CreateScriptsComponentDataClassFactory (REFCLSID rclsid, REFIID riid, LPVOID* ppv);
BOOL InitScriptsNameSpace();
HRESULT RegisterScripts(void);
HRESULT UnregisterScripts(void);
HRESULT CreatePolicyComponentDataClassFactory (REFCLSID rclsid, REFIID riid, LPVOID* ppv);
HRESULT RegisterPolicy(void);
HRESULT UnregisterPolicy(void);
HRESULT RegisterIPSEC(void);
HRESULT UnregisterIPSEC(void);
HRESULT RegisterPSCHED(void);
HRESULT UnregisterPSCHED(void);
HRESULT RegisterWireless(void);
HRESULT UnregisterWireless(void);
//
// Private message that refreshes the button status
//
#define WM_REFRESHDISPLAY (WM_USER + 532)