186 lines
5.1 KiB
C++
186 lines
5.1 KiB
C++
//////////////////////////////////////////////////////////////////////////////
|
|
/*++
|
|
|
|
Copyright (C) Microsoft Corporation, 1997 - 1999
|
|
|
|
Module Name:
|
|
|
|
PoliciesNode.h
|
|
|
|
Abstract:
|
|
|
|
Header file for the CPoliciesNode subnode.
|
|
|
|
See PoliciesNode.cpp for implementation.
|
|
|
|
Revision History:
|
|
mmaguire 12/15/97 - created
|
|
|
|
|
|
--*/
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined(_NAP_POLICIES_NODE_H_)
|
|
#define _NAP_POLICIES_NODE_H_
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
// BEGIN INCLUDES
|
|
//
|
|
// where we can find what this class derives from:
|
|
//
|
|
#include "MeritNode.h"
|
|
#include "NodeWithResultChildrenList.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 CPolicyNode;
|
|
class CPolicyPage1;
|
|
class CComponentData;
|
|
class CComponent;
|
|
|
|
//
|
|
// END INCLUDES
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
#define EXCLUDE_AUTH_TYPE 0x000000001
|
|
|
|
class CPoliciesNode : public CNodeWithResultChildrenList< CPoliciesNode, CPolicyNode, CMeritNodeArray<CPolicyNode*>, CComponentData, CComponent >
|
|
{
|
|
|
|
public:
|
|
CPoliciesNode(
|
|
CSnapInItem* pParentNode,
|
|
LPTSTR pszServerAddress,
|
|
bool fExtendingIAS
|
|
);
|
|
|
|
HRESULT SetSdo(
|
|
ISdo* pSdoMachine,
|
|
ISdoDictionaryOld* pSdoDictionary,
|
|
BOOL fSdoConnected,
|
|
BOOL fUseDS,
|
|
BOOL fDSAvailable
|
|
);
|
|
|
|
HRESULT SetName(
|
|
BOOL bPoliciesFromDirectoryService,
|
|
LPWSTR szPolicyLocation,
|
|
IConsole * pConsole
|
|
);
|
|
|
|
~CPoliciesNode();
|
|
|
|
// we can't do this because of the way this macro was
|
|
// not written to support subclassing
|
|
// BEGIN_SNAPINCOMMAND_MAP(CPoliciesNode, FALSE)
|
|
// END_SNAPINCOMMAND_MAP()
|
|
|
|
SNAPINMENUID(IDM_POLICIES_NODE)
|
|
|
|
BEGIN_SNAPINTOOLBARID_MAP(CPoliciesNode)
|
|
// SNAPINTOOLBARID_ENTRY(IDR_POLICIES_TOOLBAR)
|
|
END_SNAPINTOOLBARID_MAP()
|
|
|
|
BEGIN_SNAPINCOMMAND_MAP(CPolicyNode, TRUE)
|
|
SNAPINCOMMAND_ENTRY(ID_MENUITEM_POLICIES_TOP__NEW_POLICY, OnNewPolicy)
|
|
SNAPINCOMMAND_ENTRY(ID_MENUITEM_POLICIES_NEW__POLICY, OnNewPolicy)
|
|
SNAPINCOMMAND_ENTRY(ID_MENUITEM_POLICIES_TOP__POLICY_LOCATION, OnPolicyLocation)
|
|
END_SNAPINCOMMAND_MAP()
|
|
|
|
HRESULT OnNewPolicy( bool &bHandled, CSnapInObjectRootBase* pObj );
|
|
HRESULT OnPolicyLocation( bool &bHandled, CSnapInObjectRootBase* pObj );
|
|
void UpdateMenuState(UINT id, LPTSTR pBuf, UINT *flags);
|
|
|
|
STDMETHOD(FillData)(CLIPFORMAT cf, LPSTREAM pStream);
|
|
|
|
|
|
HRESULT DataRefresh(ISdo* pSdo, ISdoDictionaryOld* pDic);
|
|
|
|
virtual HRESULT OnRefresh(
|
|
LPARAM arg
|
|
, LPARAM param
|
|
, IComponentData * pComponentData
|
|
, IComponent * pComponent
|
|
, DATA_OBJECT_TYPES type
|
|
);
|
|
|
|
OLECHAR* GetResultPaneColInfo( int nCol );
|
|
|
|
CComponentData * GetComponentData( void );
|
|
|
|
HRESULT InsertColumns( IHeaderCtrl* pHeaderCtrl );
|
|
|
|
HRESULT PopulateResultChildrenList( void );
|
|
|
|
HRESULT MoveUpChild( CPolicyNode* pChildNode );
|
|
HRESULT MoveDownChild( CPolicyNode* pChildNode );
|
|
HRESULT NormalizeMerit( CPolicyNode* pAddedChildNode );
|
|
|
|
HRESULT RemoveChild( CPolicyNode* pPolicyNode);
|
|
|
|
int GetChildrenCount();
|
|
|
|
CPolicyNode* FindChildWithName(LPCTSTR pszName); // search for a child
|
|
|
|
|
|
bool m_fExtendingIAS; // are we extending IAS or something else?
|
|
|
|
|
|
HRESULT AddDefaultProfileAttrs(ISdo* pProfileSdo, DWORD dwFlagExclude = 0);
|
|
|
|
HRESULT AddProfAttr(ISdoCollection* pProfAttrCollectionSdo,
|
|
ATTRIBUTEID AttrId,
|
|
VARIANT* pvarValue
|
|
);
|
|
|
|
protected:
|
|
BOOL CheckActivePropertyPages();
|
|
HRESULT ReloadPoliciesFromNewLocation();
|
|
|
|
|
|
virtual HRESULT SetVerbs( IConsoleVerb * pConsoleVerb );
|
|
|
|
//
|
|
// smart pointer to the NAP collection interface
|
|
//
|
|
CComPtr<ISdoCollection> m_spPoliciesCollectionSdo;
|
|
CComPtr<ISdoCollection> m_spProfilesCollectionSdo;
|
|
CComPtr<ISdoDictionaryOld> m_spDictionarySdo;
|
|
CComPtr<ISdo> m_spDSNameSpaceSdo;
|
|
CComPtr<ISdo> m_spLocalNameSpaceSdo;
|
|
CComPtr<ISdo> m_spServiceSdo;
|
|
|
|
CComPtr<IIASNASVendors> m_spIASNASVendors;
|
|
|
|
|
|
// Smart pointer to interface for telling service to reload data.
|
|
CComPtr<ISdoServiceControl> m_spSdoServiceControl;
|
|
|
|
LPTSTR m_pszServerAddress; // address of the server that NAP currently
|
|
// connect to
|
|
CIASAttrList m_AttrList;
|
|
BOOL m_fUseDS; // shall we use DS for policy location?
|
|
BOOL m_fDSAvailable; // is DS available for that machine?
|
|
|
|
public:
|
|
BOOL m_fSdoConnected; // whether the SDOs have been connected
|
|
|
|
private:
|
|
enum ServerType
|
|
{
|
|
unknown,
|
|
nt4,
|
|
win2k,
|
|
win5_1_or_later
|
|
} m_serverType;
|
|
|
|
HRESULT GetServerType();
|
|
bool IsWin2kServer() throw();
|
|
|
|
};
|
|
|
|
#endif // _NAP_POLICIES_NODE_H_
|