////////////////////////////////////////////////////////////////////////////// /*++ 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, 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 m_spPoliciesCollectionSdo; CComPtr m_spProfilesCollectionSdo; CComPtr m_spDictionarySdo; CComPtr m_spDSNameSpaceSdo; CComPtr m_spLocalNameSpaceSdo; CComPtr m_spServiceSdo; CComPtr m_spIASNASVendors; // Smart pointer to interface for telling service to reload data. CComPtr 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_