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.
188 lines
5.3 KiB
188 lines
5.3 KiB
//////////////////////////////////////////////////////////////////////////////
|
|
/*++
|
|
|
|
Copyright (C) Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
PolicyNode.h
|
|
|
|
Abstract:
|
|
|
|
Header file for the CPolicyNode subnode
|
|
|
|
See PolicyNode.cpp for implementation.
|
|
|
|
Revision History:
|
|
mmaguire 12/15/97 - created
|
|
|
|
|
|
--*/
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined(_NAP_POLICY_NODE_H_)
|
|
#define _NAP_POLICY_NODE_H_
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
// BEGIN INCLUDES
|
|
//
|
|
// where we can find what this class derives from:
|
|
//
|
|
#include "SnapinNode.h"
|
|
#include "Condition.h"
|
|
//
|
|
//
|
|
// For include file dependency reasons, we have forward declarations here,
|
|
// and include the needed header files in our .cpp files.
|
|
//
|
|
|
|
#include "IASAttrList.h"
|
|
|
|
class CPoliciesNode;
|
|
class CPolicyPage1;
|
|
class CPolicyPage2;
|
|
class CComponentData;
|
|
class CComponent;
|
|
|
|
//
|
|
// END INCLUDES
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
// policy node
|
|
|
|
class CPolicyNode : public CSnapinNode< CPolicyNode, CComponentData, CComponent >
|
|
{
|
|
|
|
public:
|
|
CPolicyNode(CSnapInItem* pParentNode,
|
|
LPTSTR pszServerAddress,
|
|
CIASAttrList* pAttrList,
|
|
BOOL fBrandNewNode,
|
|
BOOL fUseActiveDirectory,
|
|
bool isWin2k
|
|
);
|
|
|
|
~CPolicyNode();
|
|
|
|
public:
|
|
SNAPINMENUID(IDM_POLICY_NODE)
|
|
|
|
BEGIN_SNAPINTOOLBARID_MAP(CPolicyNode)
|
|
SNAPINTOOLBARID_ENTRY(IDR_POLICY_TOOLBAR)
|
|
END_SNAPINTOOLBARID_MAP()
|
|
|
|
BEGIN_SNAPINCOMMAND_MAP(CPolicyNode, TRUE)
|
|
SNAPINCOMMAND_ENTRY(ID_MENUITEM_POLICY_TOP__MOVE_UP, OnPolicyMoveUp)
|
|
SNAPINCOMMAND_ENTRY(ID_BUTTON_POLICY_MOVEUP, OnPolicyMoveUp)
|
|
SNAPINCOMMAND_ENTRY(ID_MENUITEM_POLICY_TOP__MOVE_DOWN, OnPolicyMoveDown)
|
|
SNAPINCOMMAND_ENTRY(ID_BUTTON_POLICY_MOVEDOWN, OnPolicyMoveDown)
|
|
END_SNAPINCOMMAND_MAP()
|
|
|
|
HRESULT OnPolicyMoveUp( bool &bHandled, CSnapInObjectRootBase* pObj );
|
|
HRESULT OnPolicyMoveDown( bool &bHandled, CSnapInObjectRootBase* pObj );
|
|
|
|
STDMETHOD(CreatePropertyPages)(
|
|
LPPROPERTYSHEETCALLBACK pPropertySheetCallback
|
|
, LONG_PTR handle
|
|
, IUnknown* pUnk
|
|
, DATA_OBJECT_TYPES type
|
|
);
|
|
|
|
STDMETHOD(ControlbarNotify)(IControlbar *pControlbar,
|
|
IExtendControlbar *pExtendControlbar,
|
|
CSimpleMap<UINT, IUnknown*>* pToolbarMap,
|
|
MMC_NOTIFY_TYPE event,
|
|
LPARAM arg,
|
|
LPARAM param,
|
|
CSnapInObjectRootBase* pObj,
|
|
DATA_OBJECT_TYPES type);
|
|
|
|
STDMETHOD(QueryPagesFor)( DATA_OBJECT_TYPES type );
|
|
|
|
OLECHAR* GetResultPaneColInfo(int nCol);
|
|
void UpdateMenuState(UINT id, LPTSTR pBuf, UINT *flags);
|
|
BOOL UpdateToolbarButton(UINT id, BYTE fsState);
|
|
|
|
|
|
virtual HRESULT OnRename(
|
|
LPARAM arg
|
|
, LPARAM param
|
|
, IComponentData * pComponentData
|
|
, IComponent * pComponent
|
|
, DATA_OBJECT_TYPES type
|
|
);
|
|
|
|
virtual HRESULT OnDelete(
|
|
LPARAM arg
|
|
, LPARAM param
|
|
, IComponentData * pComponentData
|
|
, IComponent * pComponent
|
|
, DATA_OBJECT_TYPES type
|
|
, BOOL fSilent
|
|
);
|
|
virtual HRESULT OnPropertyChange(
|
|
LPARAM arg
|
|
, LPARAM param
|
|
, IComponentData * pComponentData
|
|
, IComponent * pComponent
|
|
, DATA_OBJECT_TYPES type
|
|
);
|
|
|
|
|
|
virtual HRESULT SetVerbs( IConsoleVerb * pConsoleVerb );
|
|
|
|
CComponentData * GetComponentData( void );
|
|
|
|
int GetMerit();
|
|
BOOL SetMerit(int nMeritValue);
|
|
|
|
//
|
|
// set the sdo pointer. Here we just need the PolicySdo pointer
|
|
//
|
|
HRESULT SetSdo( ISdo *pPolicySdo
|
|
, ISdoDictionaryOld *pDictionarySdo
|
|
, ISdo *pProfileSdo
|
|
, ISdoCollection *pProfilesCollectionSdo
|
|
, ISdoCollection *pPoliciesCollectionSdo
|
|
, ISdoServiceControl * pSdoServiceControl
|
|
);
|
|
|
|
HRESULT LoadSdoData();
|
|
|
|
BOOL IsBrandNew() { return m_fBrandNewNode;}
|
|
void SetBrandNew(BOOL fBrandNew) { m_fBrandNewNode = fBrandNew; }
|
|
|
|
|
|
LPTSTR m_pszServerAddress; // server name
|
|
CPolicyPage1* m_pPolicyPage1; // pointer to the property page of this node
|
|
|
|
CComPtr<ISdo> m_spPolicySdo;
|
|
CComPtr<ISdo> m_spProfileSdo;
|
|
|
|
protected:
|
|
// Interface pointers to the Sdo objects.
|
|
CComPtr<ISdoDictionaryOld> m_spDictionarySdo;
|
|
CComPtr<ISdoCollection> m_spProfilesCollectionSdo;
|
|
CComPtr<ISdoCollection> m_spPoliciesCollectionSdo;
|
|
|
|
|
|
// Smart pointer to interface for telling service to reload data.
|
|
CComPtr<ISdoServiceControl> m_spSdoServiceControl;
|
|
|
|
// pointer to the global condition attribute list
|
|
//
|
|
CIASAttrList *m_pAttrList;
|
|
|
|
private:
|
|
int m_nMeritValue; // a numeric value, actually invoking sequence
|
|
TCHAR m_tszMeritString[64]; // merit value in string format
|
|
BOOL m_fBrandNewNode; // is this a new node?
|
|
BOOL m_fUseActiveDirectory; // Are we getting this policy from active directory?
|
|
LPTSTR m_ptzLocation;
|
|
bool m_isWin2k;
|
|
CSnapInObjectRootBase* m_pControBarNotifySnapinObj;
|
|
|
|
};
|
|
|
|
#endif // _NAP_CLIENT_NODE_H_
|