// grpprop.h - Group node property pages header file #ifndef _GRPPROP_H_ #define _GRPPROP_H_ #include "scopenode.h" #include "atlwin.h" #include "atldlgs.h" #include "atlctrls.h" #include class CGroupEditObj { public: CGroupEditObj(CGroupNode* pGroupNode) : m_spGroupNode(pGroupNode), m_iPageMax(-1), m_cRef(0) { ASSERT(pGroupNode != NULL); } void PageActive(HWND hwndPage); BOOL ApplyChanges(HWND hwndPage); ULONG AddRef() { return ++m_cRef; } ULONG Release() { ASSERT(m_cRef > 0); if (--m_cRef != 0) return m_cRef; delete this; return 0; } public: CComPtr m_spGroupNode; private: int m_iPageMax; ULONG m_cRef; }; class CGroupGeneralPage : public CPropertyPageImpl { public: typedef CPropertyPageImpl BC; // Constructor/destructor CGroupGeneralPage(CGroupEditObj* pEditObj) : m_EditObject(*pEditObj) { ASSERT(pEditObj != NULL); m_EditObject.AddRef(); } ~CGroupGeneralPage() { m_EditObject.Release(); } enum { IDD = IDD_GROUP_GENERAL_PAGE }; protected: BEGIN_MSG_MAP( CGroupGeneralPage ) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) COMMAND_HANDLER(IDC_FILTER, EN_CHANGE, OnFilterChange) COMMAND_HANDLER(IDC_APPLYSCOPE, BN_CLICKED, OnApplyScopeClicked) COMMAND_HANDLER(IDC_APPLYFILTER, BN_CLICKED, OnApplyFilterClicked) COMMAND_HANDLER(IDC_SCOPE_BROWSE, BN_CLICKED, OnScopeBrowse) CHAIN_MSG_MAP(BC) END_MSG_MAP() // message handlers LRESULT OnInitDialog( UINT mMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled ); LRESULT OnFilterChange( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled ); LRESULT OnApplyScopeClicked( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled ); LRESULT OnApplyFilterClicked( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled ); LRESULT OnClassSelect( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled ); LRESULT OnScopeBrowse( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled ); void UpdateButtons(); // overrrides BOOL OnSetActive(); BOOL OnApply(); private: tstring m_strScope; CGroupEditObj& m_EditObject; }; #endif // _GRPPROP_H_