windows-nt/Source/XPSP1/NT/net/layer2svc/wlsnp/stdafx.h
2020-09-26 16:20:57 +08:00

271 lines
6.3 KiB
C++

//----------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 2001.
//
// File: stdafx.h
//
// Contents: WiF Policy Snapin
//
//
// History: TaroonM
// 10/30/01
//
//----------------------------------------------------------------------------
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently,
// but are changed infrequently
#include <afxwin.h>
#include <afxdisp.h>
#include <afxcmn.h>
#include <afxdlgs.h>
#include <afxmt.h>
#include <shfusion.h>
#include <atlbase.h>
//#include <atlwin.h>
// We depend on this pretty heavily for cross module communication
#include <shlobj.h>
#include <dsclient.h>
#include <windns.h>
//You may derive a class from CComModule and use it if you want to override
//something, but do not change the name of _Module
extern CComModule _Module;
#include <atlcom.h>
#pragma comment(lib, "mmc")
#include <mmc.h>
#include "afxtempl.h"
/*
* Define/include the stuff we need for WTL::CImageList. We need prototypes
* for IsolationAwareImageList_Read and IsolationAwareImageList_Write here
* because commctrl.h only declares them if __IStream_INTERFACE_DEFINED__
* is defined. __IStream_INTERFACE_DEFINED__ is defined by objidl.h, which
* we can't include before including afx.h because it ends up including
* windows.h, which afx.h expects to include itself. Ugh.
*/
HIMAGELIST WINAPI IsolationAwareImageList_Read(LPSTREAM pstm);
BOOL WINAPI IsolationAwareImageList_Write(HIMAGELIST himl,LPSTREAM pstm);
#define _WTL_NO_AUTOMATIC_NAMESPACE
#include <atlwin.h>
#include "atlapp.h"
#include "atlctrls.h"
#include <vector>
#include "resource.h"
#include "winsock2.h"
#include "helpids.h"
#include "helparr.h"
extern "C" {
#include "wlstore2.h"
};
#include <initguid.h>
#include "gpedit.h" // gpe interface for extending GPO
//for wmi stuff begin
#include <wbemidl.h>
#include <oleauto.h>
#include <objbase.h>
#include <iads.h>
#include <adshlp.h>
#include <adserr.h>
#include <userenv.h>
#include <prsht.h>
//for wmi stuff end
#define SECURITY_WIN32
#include <Security.h>
#include "policycf.h"
#include "snputils.h"
/////////////////////////////////////////////////////////////////////////////
// Helper functions
template<class TYPE>
inline void SAFE_RELEASE(TYPE*& pObj)
{
if (pObj != NULL)
{
pObj->Release();
pObj = NULL;
}
else
{
TRACE(_T("Release called on NULL interface ptr\n"));
}
}
// TODO: remove CLSID_Extension code -- as we are not an extenstion
extern const CLSID CLSID_Snapin; // In-Proc server GUID
extern const wchar_t* cszSnapin;
extern const CLSID CLSID_Extension; // In-Proc server GUID
extern const wchar_t* cszSnapin_ext;
extern const CLSID CLSID_WIRELESSClientEx;
extern const CLSID CLSID_About;
extern const wchar_t *cszAbout;
// OBJECT TYPE for Scope Nodes.
// "IP Security Management" static folder NodeType GUID in numeric & string formats.
extern const GUID cNodeTypeWirelessMan;
extern const wchar_t* cszNodeTypeWirelessMan;
// OBJECT TYPE for result items.
// "Negotiation Policy" result NodeType GUID in numeric & string formats.
extern const GUID cObjectTypeSecPolRes;
extern const wchar_t* cszObjectTypeSecPolRes;
// GPT guid
extern const GUID cGPEguid;
// Published context information for extensions to extend
extern const wchar_t* SNAPIN_WORKSTATION;
// the default folder images location in IDB_16x16 and IDB_32x32
#define FOLDER_IMAGE_IDX 0
#define OPEN_FOLDER_IMAGE_IDX 1
#define SECPOLICY_IMAGE_IDX 7
#define ENABLEDSECPOLICY_IMAGE_IDX 9
#define OPENSECPOLICY_IMAGE_IDX 8
#define NEGOTIATION_IMAGE_IDX 4
#define NEGOTIATIONLINK_IMAGE_IDX 5
#define NEGOTIATIONLINKOPEN_IMAGE_IDX 6
#define FILTER_IMAGE_IDX 2
#define FILTERLINK_IMAGE_IDX 3
// some helper defines
#define SAFE_ENABLEWINDOW(dlgID, bEnable) \
{ \
CWnd* pWnd = 0; \
pWnd = GetDlgItem (dlgID); \
ASSERT (pWnd); \
if (pWnd) \
{ \
pWnd->EnableWindow (bEnable); \
} \
}
#define SAFE_SHOWWINDOW(dlgID, nCmdShow ) \
{ \
CWnd* pWnd = 0; \
pWnd = GetDlgItem (dlgID); \
ASSERT (pWnd); \
if (pWnd) \
{ \
pWnd->ShowWindow (nCmdShow ); \
} \
}
inline CString ResourcedString (UINT nStringID)
{
CString strTemp;
strTemp.LoadString (nStringID);
return strTemp;
}
// helper functions and macros shared between directories wlsnp.
#include "ipsutil.h"
#define CONFIGUREITEM(TmItem, TstrName, TstrStatusBarText, TlCommandID, TlInsertionPointID, TfFlags, TfSpecialFlags) \
{ \
TmItem.strName = TstrName.GetBuffer(20); \
TmItem.strStatusBarText = TstrStatusBarText.GetBuffer(20); \
TmItem.lCommandID = TlCommandID; \
TmItem.lInsertionPointID = TlInsertionPointID; \
TmItem.fFlags = TfFlags; \
TmItem.fSpecialFlags = TfSpecialFlags; \
}
// Debug instance counter
#ifdef _DEBUG
inline void DbgInstanceRemaining(char * pszClassName, int cInstRem)
{
char buf[100];
wsprintfA(buf, "%s has %d instances left over.", pszClassName, cInstRem);
::MessageBoxA(NULL, buf, "WIRELESS: Memory Leak!!!", MB_OK);
}
#define DEBUG_DECLARE_INSTANCE_COUNTER(cls) extern int s_cInst_##cls = 0;
#define DEBUG_INCREMENT_INSTANCE_COUNTER(cls) ++(s_cInst_##cls);
#define DEBUG_DECREMENT_INSTANCE_COUNTER(cls) --(s_cInst_##cls);
#define DEBUG_VERIFY_INSTANCE_COUNT(cls) \
extern int s_cInst_##cls; \
if (s_cInst_##cls) DbgInstanceRemaining(#cls, s_cInst_##cls);
#ifdef DO_TRACE
#define OPT_TRACE TRACE // optional trace on
#else
#define OPT_TRACE
#endif //#ifdef DO_TRACE
#else
#define DEBUG_DECLARE_INSTANCE_COUNTER(cls)
#define DEBUG_INCREMENT_INSTANCE_COUNTER(cls)
#define DEBUG_DECREMENT_INSTANCE_COUNTER(cls)
#define DEBUG_VERIFY_INSTANCE_COUNT(cls)
#define OPT_TRACE
#endif
#include "ccompdta.h"
#include "ccomp.h"
#include "DataObj.h"
#include "snapin.h"
#include "snpobj.h"
#include "snpdata.h"
#include "spolitem.h"
#include "mngrfldr.h"
#include "snppage.h"
#include "wiz97pg.h"
#include "nfabpage.h"
//#include "warnDlg.h"
#define BAIL_ON_WIN32_ERROR(dwError) \
if (dwError) {\
goto error; \
}
#define BAIL_ON_FAILURE(hr) \
if (FAILED(hr)) {\
goto error; \
}
#define DELETE_OBJECT(pObject) \
if (pObject) \
{ \
delete(pObject); \
pObject=NULL; \
}