Leaked source code of windows server 2003
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.

96 lines
2.4 KiB

  1. // grpprop.h - Group node property pages header file
  2. #ifndef _GRPPROP_H_
  3. #define _GRPPROP_H_
  4. #include "scopenode.h"
  5. #include "atlwin.h"
  6. #include "atldlgs.h"
  7. #include "atlctrls.h"
  8. #include <list>
  9. class CGroupEditObj
  10. {
  11. public:
  12. CGroupEditObj(CGroupNode* pGroupNode) : m_spGroupNode(pGroupNode), m_iPageMax(-1), m_cRef(0)
  13. {
  14. ASSERT(pGroupNode != NULL);
  15. }
  16. void PageActive(HWND hwndPage);
  17. BOOL ApplyChanges(HWND hwndPage);
  18. ULONG AddRef() { return ++m_cRef; }
  19. ULONG Release()
  20. {
  21. ASSERT(m_cRef > 0);
  22. if (--m_cRef != 0)
  23. return m_cRef;
  24. delete this;
  25. return 0;
  26. }
  27. public:
  28. CComPtr<CGroupNode> m_spGroupNode;
  29. private:
  30. int m_iPageMax;
  31. ULONG m_cRef;
  32. };
  33. class CGroupGeneralPage : public CPropertyPageImpl<CGroupGeneralPage>
  34. {
  35. public:
  36. typedef CPropertyPageImpl<CGroupGeneralPage> BC;
  37. // Constructor/destructor
  38. CGroupGeneralPage(CGroupEditObj* pEditObj) : m_EditObject(*pEditObj)
  39. {
  40. ASSERT(pEditObj != NULL);
  41. m_EditObject.AddRef();
  42. }
  43. ~CGroupGeneralPage()
  44. {
  45. m_EditObject.Release();
  46. }
  47. enum { IDD = IDD_GROUP_GENERAL_PAGE };
  48. protected:
  49. BEGIN_MSG_MAP( CGroupGeneralPage )
  50. MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
  51. COMMAND_HANDLER(IDC_FILTER, EN_CHANGE, OnFilterChange)
  52. COMMAND_HANDLER(IDC_APPLYSCOPE, BN_CLICKED, OnApplyScopeClicked)
  53. COMMAND_HANDLER(IDC_APPLYFILTER, BN_CLICKED, OnApplyFilterClicked)
  54. COMMAND_HANDLER(IDC_SCOPE_BROWSE, BN_CLICKED, OnScopeBrowse)
  55. CHAIN_MSG_MAP(BC)
  56. END_MSG_MAP()
  57. // message handlers
  58. LRESULT OnInitDialog( UINT mMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled );
  59. LRESULT OnFilterChange( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled );
  60. LRESULT OnApplyScopeClicked( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled );
  61. LRESULT OnApplyFilterClicked( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled );
  62. LRESULT OnClassSelect( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled );
  63. LRESULT OnScopeBrowse( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled );
  64. void UpdateButtons();
  65. // overrrides
  66. BOOL OnSetActive();
  67. BOOL OnApply();
  68. private:
  69. tstring m_strScope;
  70. CGroupEditObj& m_EditObject;
  71. };
  72. #endif // _GRPPROP_H_