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.
 
 
 
 
 
 

111 lines
3.2 KiB

///////////////////////////////////////////////////////////////////////////////
//
// RulesUI.h
//
///////////////////////////////////////////////////////////////////////////////
// Bring in only once
#pragma once
#include "rulesmgr.h"
// Rules Manager UI Page Base Class
class COERulesPageUI
{
protected:
enum
{
STATE_UNINIT = 0x00000000,
STATE_INITIALIZED = 0x00000001,
STATE_DIRTY = 0x00000002
};
protected:
UINT m_uiDlgRscId;
UINT m_uiTabLabelId;
DWORD m_dwFlags;
DWORD m_dwState;
public:
COERulesPageUI();
COERulesPageUI(UINT uiDlgRscId, UINT uiTabLabelId, DWORD dwFlags, DWORD dwState) :
m_uiDlgRscId(uiDlgRscId), m_uiTabLabelId(uiTabLabelId), m_dwFlags(dwFlags), m_dwState(dwState) {}
virtual ~COERulesPageUI() {};
virtual HRESULT HrInit(HWND hwndOwner, DWORD dwFlags) = 0;
virtual HRESULT HrCommitChanges(DWORD dwFlags, BOOL fClearDirty) = 0;
// Accessor functions
UINT UiGetDlgRscId(VOID) {return m_uiDlgRscId;}
UINT UiGetTabLabelId(VOID) {return m_uiTabLabelId;}
virtual DLGPROC DlgProcGetPageDlgProc(VOID) = 0;
BOOL FIsDirty(VOID) {return (0 != (m_dwState & STATE_DIRTY));}
virtual BOOL FGetRules(RULE_TYPE typeRule, RULENODE ** pprnode) = 0;
};
enum RULEMGR_FLAGS
{
RMF_MAIL = 0x00000000,
RMF_NEWS = 0x00000001,
RMF_JUNK = 0x00000002,
RMF_SENDERS = 0x00000003
};
// Rules Manager UI Class
class COERulesMgrUI
{
private:
enum
{
STATE_UNINIT = 0x00000000,
STATE_INITIALIZED = 0x00000001
};
enum
{
RULE_DIALOG_PAD = 0x00000004
};
enum
{
RULE_PAGE_MAIL = 0x00000000,
RULE_PAGE_NEWS = 0x00000001,
RULE_PAGE_JUNK = 0x00000002,
RULE_PAGE_SENDERS = 0x00000003,
RULE_PAGE_MAX = 0x00000004,
RULE_PAGE_MASK = 0x000000FF
};
private:
HWND m_hwndOwner;
DWORD m_dwFlags;
DWORD m_dwState;
HWND m_hwndDlg;
HWND m_hwndTab;
COERulesPageUI * m_rgRuleTab[RULE_PAGE_MAX];
public:
// Constructor/destructor
COERulesMgrUI();
~COERulesMgrUI();
// Main UI methods
HRESULT HrInit(HWND hwndOwner, DWORD dwFlags);
HRESULT HrShow(VOID);
// Dialog methods
static INT_PTR CALLBACK FOERuleMgrDlgProc(HWND hwnd, UINT uiMsg, WPARAM wParam, LPARAM lParam);
// Message handling methods
BOOL FOnInitDialog(HWND hwndDlg);
BOOL FOnCommand(UINT uiNotify, INT iCtl, HWND hwndCtl);
BOOL FOnNotify(INT iCtl, NMHDR * pnmhdr);
BOOL FOnDestroy(VOID);
BOOL FOnGetRules(RULE_TYPE typeRule, RULENODE ** pprnode);
private:
BOOL _FOnOK(VOID);
BOOL _FOnCancel(VOID);
BOOL _FInitTabCtrl(VOID);
};