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.
718 lines
17 KiB
718 lines
17 KiB
//+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1998 - 1999
|
|
//
|
|
// File: uiutil.h
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
#ifndef __UIUTIL_H
|
|
#define __UIUTIL_H
|
|
|
|
#include "resource.h"
|
|
|
|
extern "C"
|
|
{
|
|
#include "maskctrl.h"
|
|
}
|
|
|
|
#include <shfusion.h>
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// FORWARD DECLARATIONS
|
|
|
|
class CComponentDataObject;
|
|
class CMTContainerNode;
|
|
class CNotificationSinkEvent;
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
typedef enum
|
|
{
|
|
RECORD_FOUND,
|
|
RECORD_NOT_FOUND,
|
|
RECORD_NOT_FOUND_AT_THE_NODE,
|
|
DOMAIN_NOT_ENUMERATED,
|
|
NON_EXISTENT_SUBDOMAIN
|
|
} RECORD_SEARCH;
|
|
|
|
#define ARRAYLENGTH(x) (sizeof(x)/sizeof((x)[0]))
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// CDNSNameTokenizer
|
|
|
|
class CDNSNameTokenizer : public CStringList
|
|
{
|
|
public:
|
|
CDNSNameTokenizer(PCWSTR pszDNSName);
|
|
~CDNSNameTokenizer();
|
|
|
|
BOOL Tokenize(const wchar_t* wcToken);
|
|
void RemoveMatchingFromTail(CDNSNameTokenizer& refTokenizer);
|
|
void GetRemaining(CString& strrefRemaining, const wchar_t* wcToken);
|
|
|
|
private:
|
|
CDNSNameTokenizer(const CDNSNameTokenizer&) {}
|
|
CDNSNameTokenizer& operator=(const CDNSNameTokenizer&) {}
|
|
|
|
CString m_szDNSName;
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// Global functions
|
|
|
|
BOOL LoadStringsToComboBox(HINSTANCE hInstance, CComboBox* pCombo,
|
|
UINT nStringID, UINT nMaxLen, UINT nMaxAddCount);
|
|
|
|
void ParseNewLineSeparatedString(LPWSTR lpsz,
|
|
LPWSTR* lpszArr,
|
|
UINT* pnArrEntries);
|
|
|
|
void LoadStringArrayFromResource(LPWSTR* lpszArr,
|
|
UINT* nStringIDs,
|
|
int nArrEntries,
|
|
int* pnSuccessEntries);
|
|
|
|
void EnumerateMTNodeHelper(CMTContainerNode* pNode,
|
|
CComponentDataObject* pComponentData);
|
|
|
|
|
|
void EnableDialogControls(HWND hWnd, BOOL bEnable);
|
|
|
|
|
|
BOOL LoadFontInfoFromResource(IN UINT nFontNameID,
|
|
IN UINT nFontSizeID,
|
|
OUT LPWSTR lpFontName, IN int nFontNameMaxchar,
|
|
OUT int& nFontSize,
|
|
IN LPCWSTR lpszDefaultFont, IN int nDefaultFontSize);
|
|
|
|
void SetBigBoldFont(HWND hWndDialog, int nControlID);
|
|
|
|
int GetCheckedRadioButtonHelper(HWND hDlg, int nCount, int* nRadioArr, int nRadioDefault);
|
|
|
|
UINT _ForceToRange(UINT nVal, UINT nMin, UINT nMax);
|
|
|
|
BOOL
|
|
WINAPI
|
|
DNSTzSpecificLocalTimeToSystemTime(
|
|
LPTIME_ZONE_INFORMATION lpTimeZoneInformation,
|
|
LPSYSTEMTIME lpLocalTime,
|
|
LPSYSTEMTIME lpUniversalTime
|
|
);
|
|
|
|
LONGLONG
|
|
GetSystemTime64(
|
|
SYSTEMTIME* pSysTime
|
|
);
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// CMultiselectErrorDialog
|
|
class CMultiselectErrorDialog : public CDialog
|
|
{
|
|
public:
|
|
CMultiselectErrorDialog() : m_pErrorArray(NULL), CDialog(IDD_MULTISELECT_ERROR_DIALOG) {}
|
|
~CMultiselectErrorDialog() {}
|
|
|
|
HRESULT Initialize(CNodeList* pNodeList,
|
|
DNS_STATUS* pErrorArray,
|
|
UINT nErrorCount,
|
|
PCWSTR pszTitle,
|
|
PCWSTR pszCaption,
|
|
PCWSTR pszHeader);
|
|
private:
|
|
CMultiselectErrorDialog(const CMultiselectErrorDialog&) {}
|
|
CMultiselectErrorDialog& operator=(const CMultiselectErrorDialog&) {}
|
|
|
|
public:
|
|
virtual BOOL OnInitDialog();
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
private:
|
|
CNodeList* m_pNodeList;
|
|
DNS_STATUS* m_pErrorArray;
|
|
UINT m_nErrorCount;
|
|
CString m_szTitle;
|
|
CString m_szCaption;
|
|
CString m_szColumnHeader;
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// CDNSMaskCtrl
|
|
|
|
class CDNSMaskCtrl : public CWnd
|
|
{
|
|
public:
|
|
CDNSMaskCtrl() { }
|
|
virtual ~CDNSMaskCtrl() {}
|
|
public:
|
|
|
|
BOOL IsBlank();
|
|
void SetFocusField(DWORD dwField);
|
|
void SetFieldRange(DWORD dwField, DWORD dwMin, DWORD dwMax);
|
|
void SetArray(DWORD* pArray, UINT nFields);
|
|
void GetArray(DWORD* pArray, UINT nFields);
|
|
void Clear(int nField = -1);
|
|
void SetAlertFunction( int (*lpfnAlert)(HWND, DWORD, DWORD, DWORD) );
|
|
void EnableField(int nField, BOOL bEnable);
|
|
|
|
static int AlertFunc(HWND hwndParent, DWORD dwCurrent, DWORD dwLow, DWORD dwHigh);
|
|
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// CDNSIPv4Control
|
|
class CDNSIPv4Control : public CDNSMaskCtrl
|
|
{
|
|
public:
|
|
CDNSIPv4Control()
|
|
{
|
|
}
|
|
~CDNSIPv4Control()
|
|
{
|
|
}
|
|
void SetIPv4Val(DWORD x);
|
|
void GetIPv4Val(DWORD* pX);
|
|
BOOL IsEmpty();
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// CDNSIPv6Control
|
|
class CDNSIPv6Control : public CDNSMaskCtrl
|
|
{
|
|
public:
|
|
// assume the format is a WORD[8] array
|
|
void SetIPv6Val(IPV6_ADDRESS* pIpv6Address);
|
|
void GetIPv6Val(IPV6_ADDRESS* pIpv6Address);
|
|
};
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// CDNSTTLControl
|
|
class CDNSTTLControl : public CDNSMaskCtrl
|
|
{
|
|
public:
|
|
void SetTTL(DWORD x);
|
|
void GetTTL(DWORD* pX);
|
|
};
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
// CDNSUnsignedIntEdit
|
|
// NOTE: the resource must be an editbox with Numeric Style
|
|
|
|
class CDNSUnsignedIntEdit : public CEdit
|
|
{
|
|
public:
|
|
CDNSUnsignedIntEdit() {}
|
|
|
|
BOOL SetVal(UINT nVal);
|
|
UINT GetVal();
|
|
void SetRange(UINT nMin, UINT nMax)
|
|
{ m_nMin = nMin; m_nMax = nMax;}
|
|
UINT GetMax() { return m_nMax;}
|
|
UINT GetMin() { return m_nMin;}
|
|
|
|
protected:
|
|
afx_msg void OnKillFocus();
|
|
|
|
private:
|
|
UINT m_nMin;
|
|
UINT m_nMax;
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
// CDNSUpDownUnsignedIntEdit
|
|
|
|
class CDNSUpDownUnsignedIntEditGroup; // fwd decl
|
|
|
|
class CDNSUpDownUnsignedIntEdit : public CDNSUnsignedIntEdit
|
|
{
|
|
public:
|
|
CDNSUpDownUnsignedIntEdit() { m_pEditGroup = NULL; }
|
|
void Set(CDNSUpDownUnsignedIntEditGroup* pEditGroup) { m_pEditGroup = pEditGroup;}
|
|
|
|
protected:
|
|
afx_msg void OnKillFocus();
|
|
afx_msg void OnChange();
|
|
|
|
private:
|
|
CDNSUpDownUnsignedIntEditGroup* m_pEditGroup;
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// CDNSUpDownButton
|
|
|
|
class CDNSUpDownButton : public CButton
|
|
{
|
|
public:
|
|
CDNSUpDownButton() { m_pEditGroup = NULL; m_bUp = TRUE; }
|
|
void Set(CDNSUpDownUnsignedIntEditGroup* pEditGroup, BOOL bUp)
|
|
{ m_pEditGroup = pEditGroup; m_bUp = bUp; }
|
|
protected:
|
|
afx_msg void OnClicked();
|
|
|
|
private:
|
|
CDNSUpDownUnsignedIntEditGroup* m_pEditGroup;
|
|
BOOL m_bUp;
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// CDNSUpDownUnsignedIntEditGroup
|
|
|
|
class CDNSUpDownUnsignedIntEditGroup
|
|
{
|
|
public:
|
|
CDNSUpDownUnsignedIntEditGroup() {}
|
|
BOOL Initialize(CWnd* pParentWnd, UINT nIDEdit,
|
|
UINT nIDBtnUp, UINT nIDBtnDown);
|
|
void SetRange(UINT nMin, UINT nMax)
|
|
{ m_edit.SetRange(nMin, nMax); }
|
|
|
|
void SetVal(UINT nVal);
|
|
UINT GetVal();
|
|
|
|
protected:
|
|
virtual void OnEditChange() {}
|
|
|
|
private:
|
|
CDNSUpDownUnsignedIntEdit m_edit;
|
|
CDNSUpDownButton m_downBtn;
|
|
CDNSUpDownButton m_upBtn;
|
|
|
|
void SetButtonsState();
|
|
|
|
void OnClicked(BOOL bUp);
|
|
|
|
friend class CDNSUpDownButton;
|
|
friend class CDNSUpDownUnsignedIntEdit;
|
|
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
// CDNSTimeIntervalEdit
|
|
|
|
class CDNSTimeIntervalEditGroup; // fwd decl
|
|
|
|
class CDNSTimeIntervalEdit : public CDNSUnsignedIntEdit
|
|
{
|
|
public:
|
|
CDNSTimeIntervalEdit() { m_pEditGroup = NULL; }
|
|
void Set(CDNSTimeIntervalEditGroup* pEditGroup)
|
|
{ m_pEditGroup = pEditGroup; }
|
|
|
|
protected:
|
|
afx_msg void OnChange();
|
|
afx_msg void OnKillFocus();
|
|
private:
|
|
CDNSTimeIntervalEditGroup* m_pEditGroup;
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
// CDNSTimeUnitComboBox
|
|
|
|
class CDNSTimeUnitComboBox : public CComboBox
|
|
{
|
|
public:
|
|
typedef enum { sec=0, min, hrs, days} unitType;
|
|
CDNSTimeUnitComboBox() { m_pEditGroup = NULL;}
|
|
void Set(CDNSTimeIntervalEditGroup* pEditGroup)
|
|
{ m_pEditGroup = pEditGroup; }
|
|
|
|
BOOL LoadStrings(UINT nIDUnitsString, UINT nMaxAddCount);
|
|
void SetUnit(unitType u);
|
|
unitType GetUnit();
|
|
|
|
protected:
|
|
afx_msg void OnSelChange();
|
|
|
|
private:
|
|
CDNSTimeIntervalEditGroup* m_pEditGroup;
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// CDNSTimeIntervalEditGroup
|
|
|
|
class CDNSTimeIntervalEditGroup
|
|
{
|
|
public:
|
|
CDNSTimeIntervalEditGroup(UINT nMinVal = 0 , UINT nMaxVal = (UINT)-1);
|
|
|
|
BOOL Initialize(CWnd* pParentWnd, UINT nIDEdit,
|
|
UINT nIDCombo, UINT nIDComboUnitsString);
|
|
|
|
void SetVal(UINT nVal);
|
|
UINT GetVal();
|
|
|
|
void EnableUI(BOOL bEnable);
|
|
|
|
protected:
|
|
virtual void OnEditChange() {}
|
|
|
|
struct RANGE_INFO
|
|
{
|
|
RANGE_INFO()
|
|
{ memset(this, 0x0, sizeof(RANGE_INFO));}
|
|
UINT m_nMinVal;
|
|
UINT m_nMaxVal;
|
|
};
|
|
|
|
CDNSTimeIntervalEdit m_edit;
|
|
CDNSTimeUnitComboBox m_timeUnitCombo;
|
|
RANGE_INFO m_rangeInfoArr[4]; // for sec, min, hrs, days
|
|
UINT m_nRangeCount;
|
|
|
|
UINT m_nMaxVal;
|
|
UINT m_nMinVal;
|
|
|
|
private:
|
|
|
|
virtual void InitRangeInfo();
|
|
|
|
void OnComboSelChange();
|
|
void OnEditKillFocus();
|
|
|
|
|
|
friend class CDNSTimeIntervalEdit;
|
|
friend class CDNSTimeUnitComboBox;
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// CDNSManageControlTextHelper
|
|
|
|
class CDNSManageControlTextHelper
|
|
{
|
|
public:
|
|
CDNSManageControlTextHelper(int nStates);
|
|
~CDNSManageControlTextHelper();
|
|
|
|
BOOL Init(CWnd* pParentWnd, UINT nID, UINT* pnStrArray);
|
|
BOOL Init(CWnd* pParentWnd, UINT nID);
|
|
void SetStateX(int nIndex);
|
|
|
|
private:
|
|
CWnd* m_pParentWnd;
|
|
UINT m_nID;
|
|
WCHAR* m_lpszText;
|
|
|
|
int m_nStates;
|
|
LPWSTR* m_lpszArr;
|
|
};
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// CDNSToggleTextControlHelper
|
|
|
|
class CDNSToggleTextControlHelper : public CDNSManageControlTextHelper
|
|
{
|
|
public:
|
|
CDNSToggleTextControlHelper();
|
|
void SetToggleState(BOOL bFirst) { SetStateX(bFirst ? 0 : 1);}
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
// CDNSManageButtonTextHelper
|
|
|
|
class CDNSManageButtonTextHelper
|
|
{
|
|
public:
|
|
CDNSManageButtonTextHelper(int nStates);
|
|
~CDNSManageButtonTextHelper();
|
|
|
|
BOOL Init(CWnd* pParentWnd, UINT nButtonID, UINT* nStrArray);
|
|
void SetStateX(int nIndex);
|
|
|
|
private:
|
|
CWnd* m_pParentWnd;
|
|
UINT m_nID;
|
|
WCHAR* m_lpszText;
|
|
|
|
int m_nStates;
|
|
LPWSTR* m_lpszArr;
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
// CDNSButtonToggleTextHelper
|
|
|
|
class CDNSButtonToggleTextHelper : public CDNSManageButtonTextHelper
|
|
{
|
|
public:
|
|
CDNSButtonToggleTextHelper();
|
|
|
|
void SetToggleState(BOOL bFirst) { SetStateX(bFirst ? 0 : 1); }
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CDlgWorkerThread
|
|
|
|
class CLongOperationDialog; // fwd decl
|
|
|
|
class CDlgWorkerThread : public CWorkerThread
|
|
{
|
|
public:
|
|
CDlgWorkerThread();
|
|
|
|
BOOL Start(CLongOperationDialog* pDlg);
|
|
virtual int Run(); // MFC override
|
|
|
|
DWORD GetError() { return m_dwErr;}
|
|
|
|
protected:
|
|
virtual void OnDoAction() = 0;
|
|
|
|
DWORD m_dwErr;
|
|
|
|
private:
|
|
BOOL PostMessageToDlg();
|
|
|
|
friend CLongOperationDialog;
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CLongOperationDialog dialog
|
|
|
|
class CLongOperationDialog : public CDialog
|
|
{
|
|
// Construction
|
|
public:
|
|
static UINT s_nNotificationMessage;
|
|
CLongOperationDialog(CDlgWorkerThread* pThreadObj, CWnd* pParentWnd, UINT nAviID = -1);
|
|
virtual ~CLongOperationDialog();
|
|
|
|
virtual INT_PTR DoModal()
|
|
{
|
|
if (m_bExecuteNoUI)
|
|
{
|
|
GetThreadObj()->OnDoAction();
|
|
m_bAbandoned = FALSE;
|
|
return IDOK;
|
|
}
|
|
return CDialog::DoModal();
|
|
}
|
|
|
|
BOOL LoadTitleString(UINT nID);
|
|
|
|
CDlgWorkerThread* GetThreadObj()
|
|
{
|
|
ASSERT(m_pThreadObj != NULL);
|
|
return m_pThreadObj;
|
|
}
|
|
|
|
UINT m_nAviID;
|
|
CString m_szTitle;
|
|
BOOL m_bAbandoned;
|
|
BOOL m_bExecuteNoUI;
|
|
|
|
afx_msg LONG OnNotificationMessage( WPARAM wParam, LPARAM lParam);
|
|
// Implementation
|
|
protected:
|
|
// Generated message map functions
|
|
virtual BOOL OnInitDialog();
|
|
virtual void OnCancel();
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
private:
|
|
CDlgWorkerThread* m_pThreadObj;
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////
|
|
// CNodeEnumerationThread
|
|
|
|
class CNodeEnumerationThread : public CDlgWorkerThread
|
|
{
|
|
public:
|
|
CNodeEnumerationThread(CComponentDataObject* pComponentDataObject,
|
|
CMTContainerNode* pNode);
|
|
~CNodeEnumerationThread();
|
|
|
|
protected:
|
|
virtual void OnDoAction();
|
|
void OnAbandon();
|
|
private:
|
|
CComponentDataObject* m_pComponentDataObject;
|
|
CNotificationSinkEvent* m_pSink;
|
|
CMTContainerNode* m_pNode;
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////
|
|
// CArrayCheckListBox
|
|
|
|
class CArrayCheckListBox : public CCheckListBox
|
|
{
|
|
public:
|
|
CArrayCheckListBox(UINT nArrSize, DWORD* dwMaskArr = NULL)
|
|
{ m_nArrSize = nArrSize; m_dwMaskArr = dwMaskArr; }
|
|
BOOL Initialize(UINT nCtrlID, UINT nStringID, CWnd* pParentWnd);
|
|
|
|
void SetValue(DWORD dw);
|
|
DWORD GetValue();
|
|
void SetArrValue(DWORD* dwArr, UINT nArrSize);
|
|
void GetArrValue(DWORD* dwArr, UINT nArrSize);
|
|
private:
|
|
DWORD* m_dwMaskArr;
|
|
UINT m_nArrSize;
|
|
};
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// CDNS_AGING_TimeIntervalEditGroup
|
|
|
|
class CDNSZone_AgingDialog; // Foward declaration
|
|
class CDNSServer_AdvancedPropertyPage; // Fwd declaration
|
|
|
|
class CDNS_AGING_TimeIntervalEditGroup : public CDNSTimeIntervalEditGroup
|
|
{
|
|
public:
|
|
CDNS_AGING_TimeIntervalEditGroup(UINT nMinVal = 0 , UINT nMaxVal = (UINT)0x7fffffff)
|
|
: CDNSTimeIntervalEditGroup(nMinVal, nMaxVal)
|
|
{
|
|
m_pPage = NULL;
|
|
}
|
|
virtual void OnEditChange();
|
|
virtual void SetVal(UINT nVal);
|
|
virtual UINT GetVal();
|
|
virtual void InitRangeInfo();
|
|
|
|
protected:
|
|
CDNSZone_AgingDialog* m_pPage;
|
|
friend class CDNSZone_AgingDialog;
|
|
};
|
|
|
|
class CDNS_SERVER_AGING_TimeIntervalEditGroup : public CDNS_AGING_TimeIntervalEditGroup
|
|
{
|
|
public:
|
|
CDNS_SERVER_AGING_TimeIntervalEditGroup(UINT nMinVal = 0 , UINT nMaxVal = (UINT)0x7fffffff)
|
|
: CDNS_AGING_TimeIntervalEditGroup(nMinVal, nMaxVal)
|
|
{
|
|
m_pPage2 = NULL;
|
|
}
|
|
|
|
virtual void OnEditChange();
|
|
|
|
protected:
|
|
CDNSServer_AdvancedPropertyPage* m_pPage2;
|
|
friend class CDNSServer_AdvancedPropertyPage;
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
// CDNSZone_AgingDialog
|
|
|
|
class CDNSZone_AgingDialog : public CHelpDialog
|
|
{
|
|
public:
|
|
CDNSZone_AgingDialog(CPropertyPageHolderBase* pHolder, UINT nID, CComponentDataObject* pComponentData);
|
|
|
|
// IN/OUT
|
|
DWORD m_dwRefreshInterval;
|
|
DWORD m_dwNoRefreshInterval;
|
|
DWORD m_dwScavengingStart;
|
|
DWORD m_fScavengingEnabled;
|
|
BOOL m_bAdvancedView;
|
|
BOOL m_bScavengeDirty;
|
|
BOOL m_bNoRefreshDirty;
|
|
BOOL m_bRefreshDirty;
|
|
BOOL m_bApplyAll;
|
|
BOOL m_bADApplyAll;
|
|
BOOL m_bStandardApplyAll;
|
|
|
|
DWORD m_dwDefaultRefreshInterval;
|
|
DWORD m_dwDefaultNoRefreshInterval;
|
|
BOOL m_bDefaultScavengingState;
|
|
|
|
virtual void SetDirty();
|
|
BOOL IsDirty() { return m_bDirty; }
|
|
|
|
CComponentDataObject* GetComponentData() { return m_pComponentData; }
|
|
|
|
protected:
|
|
virtual BOOL OnInitDialog();
|
|
virtual void OnOK();
|
|
virtual void OnCancel();
|
|
|
|
afx_msg void OnCheckScavenge();
|
|
afx_msg void OnEditNoRefresh();
|
|
afx_msg void OnEditRefresh();
|
|
|
|
void GetTimeStampString(CString& cstrDate);
|
|
void SetUIData();
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
CPropertyPageHolderBase* m_pHolder;
|
|
CDNS_AGING_TimeIntervalEditGroup m_refreshIntervalEditGroup;
|
|
CDNS_AGING_TimeIntervalEditGroup m_norefreshIntervalEditGroup;
|
|
|
|
CComponentDataObject* m_pComponentData;
|
|
|
|
BOOL m_bDirty;
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////
|
|
// CDNSServer_AgingConfirm
|
|
|
|
class CDNSServer_AgingConfirm : public CHelpDialog
|
|
{
|
|
public:
|
|
CDNSServer_AgingConfirm(CDNSZone_AgingDialog* pAgingDialog)
|
|
: CHelpDialog(IDD_SERVER_AGING_CONFIRMATION, pAgingDialog->GetComponentData())
|
|
{
|
|
ASSERT(pAgingDialog != NULL);
|
|
m_pAgingDialog = pAgingDialog;
|
|
}
|
|
|
|
protected:
|
|
virtual BOOL OnInitDialog();
|
|
virtual void OnOK();
|
|
|
|
void SetAgingUpdateValues();
|
|
|
|
private:
|
|
CDNSZone_AgingDialog* m_pAgingDialog;
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
typedef struct _COMBOBOX_TABLE_ENTRY
|
|
{
|
|
UINT nComboStringID;
|
|
DWORD dwComboData;
|
|
} COMBOBOX_TABLE_ENTRY, *PCOMBOBOX_TABLE_ENTRY;
|
|
|
|
BOOL LoadComboBoxFromTable(CComboBox* pComboBox, PCOMBOBOX_TABLE_ENTRY pTable);
|
|
BOOL SetComboSelByData(CComboBox* pComboBox, DWORD dwData);
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////
|
|
// Theme support
|
|
|
|
class CThemeContextActivator
|
|
{
|
|
public:
|
|
CThemeContextActivator() : m_ulActivationCookie(0)
|
|
{ SHActivateContext (&m_ulActivationCookie); }
|
|
|
|
~CThemeContextActivator()
|
|
{ SHDeactivateContext (m_ulActivationCookie); }
|
|
|
|
private:
|
|
ULONG_PTR m_ulActivationCookie;
|
|
};
|
|
|
|
#endif // __UIUTIL_H
|