windows-nt/Source/XPSP1/NT/net/mmc/ipsecmon/ipsmsnap.h
2020-09-26 16:20:57 +08:00

167 lines
5.2 KiB
C++

/**********************************************************************/
/** Microsoft Windows/NT **/
/** Copyright(c) Microsoft Corporation, 1997 - 2000 **/
/**********************************************************************/
/*
global.h
Global defines for the IPSecMon snapin
FILE HISTORY:
*/
const TCHAR PA_SERVICE_NAME[] = _T("PolicyAgent");
// Defines for help from the help menu and F1 help for scope pane items
#define IPSMSNAP_HELP_BASE 0xA0000000
#define IPSMSNAP_HELP_SNAPIN IPSMSNAP_HELP_BASE + 1
#define IPSMSNAP_HELP_ROOT IPSMSNAP_HELP_BASE + 2
#define IPSMSNAP_HELP_SERVER IPSMSNAP_HELP_BASE + 3
#define IPSMSNAP_HELP_PROVIDER IPSMSNAP_HELP_BASE + 4
#define IPSMSNAP_HELP_DEVICE IPSMSNAP_HELP_BASE + 5
// wait cursor stuff around functions. If you need a wait cursor for
// and entire fucntion, just use CWaitCursor. To wrap a wait cursor
// around an rpc call, use these macros.
#define BEGIN_WAIT_CURSOR { CWaitCursor waitCursor;
#define RESTORE_WAIT_CURSOR waitCursor.Restore();
#define END_WAIT_CURSOR }
#define ARRAYLEN(x) (sizeof(x) / sizeof((x)[0]))
// macro to get the handler for a node. This is a IPSecMon snapin specific
// implementation
#define GETHANDLER(classname, node) (reinterpret_cast<classname *>(node->GetData(TFS_DATA_USER)))
// HRESULT Mapping
#define WIN32_FROM_HRESULT(hr) (0x0000FFFF & (hr))
// Version Suff
#define IPSMSNAP_VERSION 0x00010000
extern DWORD gdwIpsmSnapVersion;
#define IPSMSNAP_FILE_VERSION 0x00000001
// constants for time conversion
#define MILLISEC_PER_SECOND 1000
#define MILLISEC_PER_MINUTE (60 * MILLISEC_PER_SECOND)
#define MILLISEC_PER_HOUR (60 * MILLISEC_PER_MINUTE)
#define IPSECMON_REFRESH_INTERVAL_DEFAULT (45 * MILLISEC_PER_SECOND) // 45 seconds
// macros for memory exception handling
#define CATCH_MEM_EXCEPTION \
TRY
#define END_MEM_EXCEPTION(err) \
CATCH_ALL(e) { \
err = ERROR_NOT_ENOUGH_MEMORY ; \
} END_CATCH_ALL
// some global defines we need
#define STRING_LENGTH_MAX 256
// Note - These are offsets into my image list
typedef enum _ICON_INDICIES
{
ICON_IDX_SERVER,
ICON_IDX_SERVER_BUSY,
ICON_IDX_SERVER_CONNECTED,
ICON_IDX_SERVER_LOST_CONNECTION,
ICON_IDX_MACHINE,
ICON_IDX_FOLDER_OPEN,
ICON_IDX_FOLDER_CLOSED,
ICON_IDX_PRODUCT,
ICON_IDX_FILTER,
ICON_IDX_POLICY,
ICON_IDX_MAX
} ICON_INDICIES, * LPICON_INDICIES;
// Sample folder types
enum NODETYPES
{
// scope pane items
IPSMSNAP_ROOT,
IPSMSNAP_SERVER,
IPSECMON_QM_SA,
IPSECMON_FILTER,
IPSECMON_SPECIFIC_FILTER,
IPSECMON_QUICK_MODE,
IPSECMON_MAIN_MODE,
IPSECMON_MM_POLICY,
IPSECMON_QM_POLICY,
IPSECMON_MM_FILTER,
IPSECMON_MM_SP_FILTER,
IPSECMON_MM_SA,
// result pane items
IPSECMON_QM_SA_ITEM,
IPSECMON_FILTER_ITEM,
IPSECMON_SPECIFIC_FILTER_ITEM,
IPSECMON_MM_POLICY_ITEM,
IPSECMON_QM_POLICY_ITEM,
IPSECMON_MM_FILTER_ITEM,
IPSECMON_MM_SP_FILTER_ITEM,
IPSECMON_MM_SA_ITEM,
IPSECMON_NODETYPE_MAX,
};
// GUIDs are defined in guids.cpp
extern const CLSID CLSID_IpsmSnapin; // In-Proc server GUID
extern const CLSID CLSID_IpsmSnapinExtension; // In-Proc server GUID
extern const CLSID CLSID_IpsmSnapinAbout; // In-Proc server GUID
extern const GUID GUID_IpsmRootNodeType; // Root NodeType GUID
extern const GUID GUID_IpsmServerNodeType; // Server NodeType GUID
extern const GUID GUID_IpsmFilterNodeType; // Filters NodeType GUID
extern const GUID GUID_IpsmSpecificFilterNodeType; // Specific Filters NodeType GUID
extern const GUID GUID_QmNodeType; // Quick Mode NodeType GUID
extern const GUID GUID_MmNodeType; // Main Mode NodeType GUID
extern const GUID GUID_IpsmMmPolicyNodeType; // Main Mode Policy GUID
extern const GUID GUID_IpsmQmPolicyNodeType; // Quick Mode Policy GUID
extern const GUID GUID_IpsmMmFilterNodeType; // Main Mode Filter GUID
extern const GUID GUID_IpsmMmSANodeType; // Main Mode SA GUID
extern const GUID GUID_IpsmMmSpFilterNodeType; // Main Mode Specific Filter GUID
extern const GUID IID_ISpdInfo;
extern const GUID GUID_IpsmQmSANodeType;
const int MAX_COLUMNS = 14;
const int NUM_SCOPE_ITEMS = 3;
const int NUM_CONSOLE_VERBS = 8;
// arrays used to hold all of the result pane column information
extern UINT aColumns[IPSECMON_NODETYPE_MAX][MAX_COLUMNS];
extern int aColumnWidths[IPSECMON_NODETYPE_MAX][MAX_COLUMNS];
// arrays for console verbs
extern MMC_CONSOLE_VERB g_ConsoleVerbs[NUM_CONSOLE_VERBS];
extern MMC_BUTTON_STATE g_ConsoleVerbStates[IPSECMON_NODETYPE_MAX][NUM_CONSOLE_VERBS];
extern MMC_BUTTON_STATE g_ConsoleVerbStatesMultiSel[IPSECMON_NODETYPE_MAX][NUM_CONSOLE_VERBS];
// array for help
extern DWORD g_dwMMCHelp[IPSECMON_NODETYPE_MAX];
// Clipboard format that has the Type and Cookie
extern const wchar_t* SNAPIN_INTERNAL;
// CIpsmSnapinApp definition
class CIpsmSnapinApp : public CWinApp
{
public:
virtual BOOL InitInstance();
virtual int ExitInstance();
DECLARE_MESSAGE_MAP()
public:
BOOL m_bWinsockInited;
};
extern CIpsmSnapinApp theApp;
#define IPSECMON_UPDATE_STATUS ( 0x10000000 )