// define as many NOxxxx's as possible to keep windows.h's memory footprint
// small.  rc is a 16-bit app, and runs out of heap space processing windows.h
// since it pulls in so much stuff.

#define	NOGDI
#define	NONLS
#define NORESOURCE
#define NOSCROLL
#define NOSHOWWINDOW
#define NOWH
#define NODESKTOP
#define NOWINDOWSTATION
#define NOSECURITY
#define NOMSG
#define NOWINOFFSETS
#define NONCMESSAGES
#define NOKEYSTATES
#define NOCLIPBOARD
#define NODEFERWINDOWPOS
#define NOSYSMETRICS
#define NOMENUS
#define NODRAWTEXT
#define NOMB
#define NOCOLOR
#define NOSYSCOMMANDS
#define NOICONS
#define NOWINMESSAGES
#define NOMDI
#define NOHELP
#define NOSYSPARAMSINFO
#define NOLANGUAGE
#define NOTEXTMETRIC
#define NOMETAFILE
#define NOGDICAPMASKS
#define NORASTEROPS
#define NODRIVERS
#define MMNOTIMER
#define MMNOJOY
#define MMNOMMIO
#define MMNOMCI
#define NOMCX
#define NOCOMM
#define NOKANJI
#define NOPROFILER
#define NOKERNEL
#define NOGDI
#define NONLS
#define NOMEMMGR
#define NOTOOLBAR
#define NOTOOLTIPS
#define NOUPDOWN
#define NOSTATUSBAR
#define NOTRACKBAR
#define NOBTNLIST
#define NODRAGLIST
#define NOPROGRESS
#define NOSHELLDEBUG
#define NOMENUHELP
#define NOHOTKEY
#define NOMMIDS
#define NONEWWAVE
#define NONEWRIFF
#define NOBITMAP
#define NOJPEGDIB
#define NONEWIC
#define MMNODRV
#define MMNOSOUND
#define MMNOWAVE
#define MMNOMIDI
#define MMNOMIXER
#define MMNOAUX
#define MMNOTIMER
#define MMNOMMIO
#define MMNOMCI
#define MMNOMMSYSTEM
#define NO_APPLOADER

#include "windows.h"
#include <commctrl.h>
#include "strids.h"
#include "dlgids.h"

IDI_APPICON ICON "ADMINCFG.ICO"

IDB_IMGSMALL		BITMAP "imgsmall.bmp"
IDB_IMGLARGE		BITMAP "imglarge.bmp"

IDB_TOOLBAR 		BITMAP "toolbar.bmp"

IDM_MAIN MENU
BEGIN
	POPUP "&File"
	{
        MENUITEM "&New Policy",      		IDM_NEW		
		MENUITEM "&Open Policy...",       IDM_OPEN
        MENUITEM "Open &Registry",		IDM_OPENREGISTRY
		MENUITEM "&Save",           	IDM_SAVE,			GRAYED
		MENUITEM "Save &As...",     	IDM_SAVEAS,			GRAYED
		MENUITEM "&Close"				IDM_CLOSE,			GRAYED
        MENUITEM SEPARATOR
		MENUITEM "E&xit",           	IDM_EXIT
	}
	POPUP "&Edit"
	{
		MENUITEM "Add &User...",		IDM_ADDUSER,		GRAYED
        MENUITEM "Add C&omputer...",	IDM_ADDWORKSTATION,	GRAYED
#ifdef INCL_GROUP_SUPPORT
		MENUITEM "Add &Group...",		IDM_ADDGROUP,		GRAYED
#endif
        MENUITEM "&Remove"				IDM_REMOVE,			GRAYED
    	MENUITEM SEPARATOR
        MENUITEM "&Copy",				IDM_COPY,			GRAYED
        MENUITEM "&Paste",				IDM_PASTE,			GRAYED
	    MENUITEM SEPARATOR
        MENUITEM "Proper&ties...",		IDM_PROPERTIES,		GRAYED
    }

    POPUP "&View"
    {
        MENUITEM "&Toolbar",          	IDM_TOOLBAR
        MENUITEM "Status &Bar",        	IDM_STATUSBAR
		MENUITEM SEPARATOR
        MENUITEM "Lar&ge Icons",		IDM_LARGEICONS,
        MENUITEM "S&mall Icons",		IDM_SMALLICONS,
        MENUITEM "&List",				IDM_LIST,
        MENUITEM "&Details",			IDM_DETAILS,
    }

    POPUP "&Options"
    {
    	MENUITEM "&Policy Template...",		IDM_TEMPLATEOPT
#ifdef INCL_GROUP_SUPPORT
        MENUITEM SEPARATOR
        MENUITEM "&Group Priority...",	IDM_GROUPPRIORITY
#endif
    }

    POPUP        "&Help"
	{
		MENUITEM "Help &Topics...",               IDM_HELPCONTENTS
		MENUITEM SEPARATOR
		MENUITEM "&About...",       	IDM_ABOUT
	}
END

STRINGTABLE LOADONCALL DISCARDABLE
BEGIN
    IDS_APPNAME, 		"System Policy Editor"
    IDS_UNTITLED,		"(Untitled)"
    IDS_LOCALREGISTRY,	"Local Registry"
    IDS_REGISTRYON,		"Registry on %s"
    IDS_TITLEFORMAT,	"%s - %s"
    IDS_WP,				"WP"
    IDS_VIEW,			"VIEW"
    IDS_INFDIR,			"INF"
    IDS_DEF_NT_INFNAME,         "WINNT.ADM"
    IDS_DEF_INFNAME,	        "WINDOWS.ADM"
    IDS_DEF_COMMONNAME,         "COMMON.ADM"

    IDS_INF_EXT,		".ADM"
	IDS_SETTINGSFOR,	"&Settings for %s"
	IDS_POLICIESFOR,	"Policies for %s"
    IDS_InfOPENFILTER1,	"Template Files (*.ADM)"
    IDS_InfOPENFILTER2,	"*.ADM"
    IDS_InfOPENTITLE,	"Open Template File"
	IDS_FILEFILTER1,	"Policy Files (*.POL)"
    IDS_FILEFILTER2,	"*.POL"
	IDS_OPENTITLE,		"Open Policy File"
    IDS_QUERYSAVE,		"Do you want to save changes to %s?"
	IDS_QUERYSAVEREGISTRY,	"Do you want to save changes to the Registry?"
	IDS_QUERYSAVEREMOTEREGISTRY, "Do you want to save changes to the Registry on %s?"
	IDS_QUERYREMOVE_USER,	"Are you sure you want to remove the user ""%s""?"
	IDS_QUERYREMOVE_WORKSTA,"Are you sure you want to remove the computer ""%s""?"
#ifdef INCL_GROUP_SUPPORT
	IDS_QUERYREMOVE_GROUP,	"Are you sure you want to remove the group ""%s""?"
#endif
    IDS_QUERYREMOVE_MULTIPLE,"Are you sure you want to remove the selected entries?"
	IDS_QUERYPASTE_USER,	"Are you sure you want to paste the clipboard contents to the user ""%s""?"
	IDS_QUERYPASTE_WORKSTA,"Are you sure you want to paste the clipboard contents the computer ""%s""?"
	IDS_QUERYPASTE_MULTIPLE,"Are you sure you want to paste the clipboard contents to the selected entries?"
	IDS_USERALREADYEXISTS,	"The specified user has already been added."
	IDS_MACHINEALREADYEXISTS,	"The specified computer has already been added."
	IDS_ENTRYREQUIRED,	"You need to enter something for ""%s""  This field cannot be left blank."
	IDS_INVALIDNUM,		"You need to enter a number for ""%s""  This field has invalid characters."
	IDS_NEEDCOMPUTERNAME,	"You must type a computer name."
	IDS_CANTCONNECT,    "Windows cannot connect to %s.  Make sure that you have administrative privileges for %s, that it is on the network and has user-level access control enabled,\
and that the Remote Registry service is enabled on both computers."
    IDS_CONNECT, "Connec&t..."
    IDS_DISCONNECT, "Disconnec&t"
	IDS_SAVING, "Saving %s..."
    IDS_LOADING, "Loading %s..."
	IDS_LOADINGTEMPLATE, "Loading template file %s..."
	IDS_READINGREGISTRY, "Reading from registry..."
	IDS_SAVINGREGISTRY,	"Saving to registry..."
    IDS_CONNECTINGTO, "Connecting to %s..."
	IDS_NEEDWORKSTANAME,	"You need to type a computer name."
    IDS_NEEDUSERNAME,		"You need to type a user name."
	IDS_DUPLICATEWORKSTA,   "There is already an entry for that computer."
    IDS_DUPLICATEUSER,		"There is already an entry for that user."
    IDS_DUPLICATEGROUP,		"There is already an entry for that group."
	IDS_CHOOSUSRDLL,		"CHOOSUSR.DLL"
    IDS_ADDBUTTON,			"&Add ->"
    IDS_CANTLOADCHOOSUSR,	"Unable to load CHOOSUSR.DLL to browse for users."
	IDS_NOPROVIDER,			"An Address Book Provider could not be found."
	IDS_INVALIDPROVIDER,	"The Address Book Provider is not valid."
	IDS_PROVIDERERROR,	"An error occurred trying to access the Address Book Provider."
	IDS_ERRORADDINGUSERS,	"One or more users could not be added because there is not enough memory available."
    IDS_ENTRIES				"%lu entries"
    IDS_ONEENTRY			"1 entry"
    IDS_NOENTRIES			"No entries"

#ifndef INCL_GROUP_SUPPORT
    IDS_GROUPSNOTADDED,		"User groups are not supported in this version of the System Policy Editor.  The groups you selected will not be added."
#else

	IDS_GROUPDLGTXT,		"Enter the name of the &group to add:"
    IDS_GROUPDLGTITLE,		"Add Group"
#endif

    IDS_LISTBOX_SHOW,	"Show..."
	IDS_VALUE,	"Value"
    IDS_VALUENAME, "Value Name"

 	IDS_LOCALUSER,	"Local User"
    IDS_LOCALCOMPUTER, "Local Computer"
    IDS_DEFAULTUSER, "Default User"
    IDS_DEFAULTCOMPUTER, "Default Computer"

	IDS_VALUENAMENOTUNIQUE,	"The name you typed has already been used.  You need to type a unique name."
    IDS_EMPTYVALUENAME, "You need to type a name."
	IDS_VALUEDATANOTUNIQUE,	"The value you typed has already been used.  You need to type a unique value."
    IDS_EMPTYVALUEDATA, "You need to type a value."
	IDS_COMPUTERBROWSETITLE, "Click the computer that you want to add."
	IDS_COLUMNTITLE,	"Policies for:"
    IDS_HELPFILE,		"POLEDIT.CHM"
    IDS_CHOOSEUSER_TITLE,       "Users on %s"
    IDS_ACCOUNTUNKNOWN,         "Account Unknown"
    IDS_CANTLOADNETUI2,         "Unable to load NETUI2.DLL to browse for users."
    IDS_ERRORADDINGGROUP,       "The group could not be added because there is not enough memory available."
    IDS_ADDUSERS,               "Add Users"
    IDS_ADDGROUPS,              "Add Groups"
END

STRINGTABLE LOADONCALL DISCARDABLE
BEGIN
        IDS_WORDTOOLONG,        "The following keyword is too long:\n\n%s"
        IDS_ErrOUTOFMEMORY,     "There is not enough memory available.  Quit one or more applications and try again."
	IDS_ErrCANTOPENREGISTRY, "Unable to open the registry."
	IDS_ErrINVALIDPOLICYFILE,	"%s is not a valid policy file."
	IDS_ErrREGERR_CANTSAVE,	"An error occurred writing the Registry.  The file cannot be saved."
	IDS_ErrREGERR_LOAD,    "Unable to read from the Registry: error %lu occurred."
	IDS_ErrREGERR_SAVE,    "Unable to save to the Registry: error %lu occurred."
	IDS_ErrREGERR_LOADKEY, "Unable to open %s: error %lu occurred."
	IDS_ErrREGERR_LOADKEY1, "Unable to open %s:\r\n%s"
	IDS_ErrREGERR_SAVEKEY, "Unable to save %s: error %lu occurred."
	IDS_ErrREGERR_SAVEKEY1, "Unable to save %s:\r\n%s"
    IDS_ParseFmt_MSG_FORMAT,	"The following error occurred in %s on line %lu:\r\nError %lu  %s\r\n\r\n"
	IDS_ParseFmt_FOUND,			"Found: %s\r\n"
    IDS_ParseFmt_EXPECTED,		"Expected: %s\r\n"
	IDS_ParseFmt_FATAL,			"\r\nThe file can not be loaded.\r\n"
	IDS_ErrCOMMANDLINE,		"The command line parameters are incorrect."
	IDS_ERRFORMAT, "Error %lu occurred"
    IDS_ErrOPENTEMPLATE,	"Unable to open template file %s:\r\n%s"
	
    IDS_ParseErr_UNEXPECTED_KEYWORD,	"Unexpected keyword"
    IDS_ParseErr_UNEXPECTED_EOF, 		"Unexpected end of file"
	IDS_ParseErr_DUPLICATE_KEYNAME,		"Key name specified more than once"
	IDS_ParseErr_DUPLICATE_VALUENAME,	"Value name specified more than once"
	IDS_ParseErr_DUPLICATE_ITEMNAME,	"Item name specified more than once"
	IDS_ParseErr_DUPLICATE_ACTIONLIST,	"More than one action list was specified"
    IDS_ParseErr_NO_KEYNAME,			"There was no key name specified for this entry or any of its parents"
	IDS_ParseErr_NO_VALUENAME,			"There was no value name specified"
	IDS_ParseErr_NO_VALUE,				"There was no value specified"
	IDS_ParseErr_NO_ITEMNAME,			"There was no item name specified"
	IDS_ParseErr_NOT_NUMERIC,			"Expected a numeric value"
    IDS_ParseErr_STRING_NOT_FOUND,		"The corresponding string was not found in the [strings] section"
	IDS_ParseErr_UNMATCHED_DIRECTIVE,	"An unmatched interpreter directive was found"
END

STRINGTABLE LOADONCALL DISCARDABLE
BEGIN
	IDS_TIPS + IDM_NEW,			"New"
	IDS_TIPS + IDM_OPEN,		"Open"
	IDS_TIPS + IDM_SAVE,		"Save"
	IDS_TIPS + IDM_ADDUSER,		"Add User"
	IDS_TIPS + IDM_ADDWORKSTATION,"Add Computer"
        IDS_TIPS + IDM_ADDGROUP,	"Add Group"
	IDS_TIPS + IDM_REMOVE,		"Remove"
END

IDA_ACCEL ACCELERATORS
BEGIN
	VK_F1, IDM_HELPCONTENTS, VIRTKEY
	"?", IDM_ABOUT, ALT
	"/", IDM_ABOUT, ALT
    VK_RETURN,  IDM_PROPERTIES,	NOINVERT, VIRTKEY, ALT
END

; Bring in the dialogs:
RCINCLUDE ADMINCFG.DLG

; Bring in the version stamping information:
RCINCLUDE ADMINCFG.RCV