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

190 lines
5.2 KiB
C++

//////////////////////////////////////////////////////////////////////////////
/*++
Copyright (C) Microsoft Corporation
Module Name:
PolicyPage1.h
Abstract:
Header file for the CPolicyPage1 class.
This is our handler class for the first CPolicyNode property page.
See PolicyPage1.cpp for implementation.
Revision History:
mmaguire 12/15/97 - created
--*/
//////////////////////////////////////////////////////////////////////////////
#if !defined(_NAP_POLICY_PAGE_1_H_)
#define _NAP_POLICY_PAGE_1_H_
//===============================================================
// for local case, neet to set footprint after saving data
#define RAS_REG_ROOT HKEY_LOCAL_MACHINE
#define REGKEY_REMOTEACCESS_PARAMS L"SYSTEM\\CurrentControlSet\\Services\\RemoteAccess\\Parameters"
#define REGVAL_NAME_USERSCONFIGUREDWITHMMC L"UsersConfiguredWithMMC"
#define REGVAL_VAL_USERSCONFIGUREDWITHMMC 1
//////////////////////////////////////////////////////////////////////////////
// BEGIN INCLUDES
//
// where we can find what this class derives from:
//
#include "PropertyPage.h"
//
//
// where we can find what this class has or uses:
//
class CPolicyNode;
#include "Condition.h"
#include "IASAttrList.h"
#include "condlist.h"
#include "atltmp.h"
//
// END INCLUDES
//////////////////////////////////////////////////////////////////////////////
class CPolicyPage1 : public CIASPropertyPage<CPolicyPage1>
{
public :
// ISSUE: how is base class initialization going to work with subclassing???
CPolicyPage1(
LONG_PTR hNotificationHandle
, CPolicyNode *pPolicyNode
, CIASAttrList *pIASAttrList
, TCHAR* pTitle = NULL
, BOOL bOwnsNotificationHandle = FALSE
, bool isWin2k = false
);
~CPolicyPage1();
// This is the ID of the dialog resource we want for this class.
// An enum is used here because the correct value of
// IDD must be initialized before the base class's constructor is called
enum { IDD = IDD_PROPPAGE_POLICY1 };
BEGIN_MSG_MAP(CPolicyPage1)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
COMMAND_ID_HANDLER(IDC_BUTTON_CONDITION_ADD, OnConditionAdd)
COMMAND_ID_HANDLER(IDC_BUTTON_CONDITION_REMOVE, OnConditionRemove)
COMMAND_ID_HANDLER(IDC_LIST_CONDITIONS, OnConditionList)
COMMAND_ID_HANDLER(IDC_BUTTON_CONDITION_EDIT, OnConditionEdit)
COMMAND_ID_HANDLER( IDC_BUTTON_EDITPROFILE, OnEditProfile )
COMMAND_ID_HANDLER( IDC_RADIO_DENY_DIALIN, OnDialinCheck)
COMMAND_ID_HANDLER( IDC_RADIO_GRANT_DIALIN, OnDialinCheck)
CHAIN_MSG_MAP(CIASPropertyPage<CPolicyPage1>)
END_MSG_MAP()
LRESULT OnInitDialog(
UINT uMsg
, WPARAM wParam
, LPARAM lParam
, BOOL& bHandled
);
LRESULT OnConditionAdd(
UINT uMsg
, WPARAM wParam
, HWND hWnd
, BOOL& bHandled
);
LRESULT OnEditProfile(
UINT uMsg
, WPARAM wParam
, HWND hWnd
, BOOL& bHandled
);
LRESULT OnDialinCheck(
UINT uMsg
, WPARAM wParam
, HWND hWnd
, BOOL& bHandled
);
LRESULT OnConditionRemove(
UINT uMsg
, WPARAM wParam
, HWND hWnd
, BOOL& bHandled
);
LRESULT OnConditionList(
UINT uNotifyCode,
UINT uID,
HWND hWnd,
BOOL &bHandled
);
LRESULT OnConditionEdit(
UINT uNotifyCode,
UINT uID,
HWND hWnd,
BOOL &bHandled
);
BOOL OnApply();
BOOL OnQueryCancel();
BOOL OnCancel();
public:
BOOL ValidPolicyName(LPCTSTR pszName);
BOOL m_fDialinAllowed;
// Pointer to streams into which this page's Sdo interface
// pointers will be marshalled.
LPSTREAM m_pStreamPolicySdoMarshall; // marshalled policy sdo pointer
LPSTREAM m_pStreamDictionarySdoMarshall; // marshalled dictionary sdo pointer
LPSTREAM m_pStreamProfileSdoMarshall; // marshalled profile sdo
LPSTREAM m_pStreamProfilesCollectionSdoMarshall; // marshalled profile collection sdo
LPSTREAM m_pStreamPoliciesCollectionSdoMarshall; // marshalled policy collection sdo
LPSTREAM m_pStreamSdoServiceControlMarshall; // marshalled policy collection sdo
protected:
BOOL GetSdoPointers();
HRESULT GetDialinSetting(BOOL &fDialinAllowed);
HRESULT SetDialinSetting(BOOL fDialinAllowed);
CPolicyNode *m_pPolicyNode; // policy node pointer
CIASAttrList *m_pIASAttrList; // condition attribute list
bool m_isWin2k;
// condition collection -- created in the page
CComPtr<ISdoCollection> m_spConditionCollectionSdo; // condition collection
// profile sdos
CComPtr<ISdoDictionaryOld> m_spDictionarySdo; // dictionary sdo pointer
CComPtr<ISdo> m_spProfileSdo; // profiles collection sdo pointer
CComPtr<ISdo> m_spPolicySdo; // policy sdo pointer
CComPtr<ISdoCollection> m_spProfilesCollectionSdo; // profile collection Sdo
CComPtr<ISdoCollection> m_spPoliciesCollectionSdo; // policy collection Sdo
// Smart pointer to interface for telling service to reload data.
CComPtr<ISdoServiceControl> m_spSdoServiceControl;
//
// condition list
//
ConditionList condList;
};
#endif // _NAP_POLICY_PAGE_1_H_