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.

535 lines
14 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. //
  5. // Copyright (C) Microsoft Corporation, 1998 - 1999
  6. //
  7. // File: serverui.h
  8. //
  9. //--------------------------------------------------------------------------
  10. #ifndef _SERVERUI_H
  11. #define _SERVERUI_H
  12. #include "uiutil.h"
  13. #include "ipeditor.h"
  14. #include "nspage.h"
  15. #include "aclpage.h"
  16. ///////////////////////////////////////////////////////////////////////////////
  17. // FORWARD DECLARATIONS
  18. class CDNSServerNode;
  19. ///////////////////////////////////////////////////////////////////////////////
  20. // CDNSServer_InterfacesPropertyPage
  21. class CDNSServer_InterfacesPropertyPage : public CPropertyPageBase
  22. {
  23. // Construction
  24. public:
  25. CDNSServer_InterfacesPropertyPage();
  26. // Implementation
  27. protected:
  28. // Generated message map functions
  29. virtual BOOL OnInitDialog();
  30. virtual BOOL OnApply();
  31. afx_msg void OnListenOnSpecifiedAddresses();
  32. afx_msg void OnListenOnAllAddresses();
  33. private:
  34. class CListenAddressesIPEditor : public CIPEditor
  35. {
  36. public:
  37. CListenAddressesIPEditor() : CIPEditor(TRUE) {}
  38. virtual void OnChangeData();
  39. };
  40. CListenAddressesIPEditor m_listenAddressesEditor;
  41. CButton* GetListenOnAllRadio()
  42. { return (CButton*)GetDlgItem(IDC_LISTEN_ON_ALL_RADIO);}
  43. CButton* GetListenOnSpecifiedRadio()
  44. { return (CButton*)GetDlgItem(IDC_LISTEN_ON_SPECIFIED_RADIO);}
  45. void SelectionHelper(BOOL bListenAll);
  46. friend class CListenAddressesIPEditor;
  47. BOOL m_bAllWasPreviousSelection;
  48. DECLARE_MESSAGE_MAP()
  49. };
  50. ///////////////////////////////////////////////////////////////////////////////
  51. // CDNSServer_ForwardersPropertyPage
  52. class CDNSServer_ForwardersPropertyPage : public CPropertyPageBase
  53. {
  54. // Construction
  55. public:
  56. CDNSServer_ForwardersPropertyPage();
  57. // Implementation
  58. protected:
  59. afx_msg void OnForwardersCheck();
  60. afx_msg void OnSlaveCheckChange();
  61. afx_msg void OnForwarderTimeoutChange();
  62. virtual BOOL OnInitDialog();
  63. virtual BOOL OnApply();
  64. virtual BOOL OnKillActive();
  65. private:
  66. void EnableForwardersUI(BOOL bUseForwaders);
  67. CButton* GetForwardersCheck() { return (CButton*)GetDlgItem(IDC_USE_FORWARDERS_CHECK);}
  68. CButton* GetSlaveCheck() { return (CButton*)GetDlgItem(IDC_SLAVE_CHECK);}
  69. CStatic* GetForwardersStatic() { return (CStatic*)GetDlgItem(IDC_STATIC_ADD_FORWARDERS);}
  70. CDNSUnsignedIntEdit m_forwardTimeoutEdit;
  71. class CForwarderAddressesIPEditor : public CIPEditor
  72. {
  73. public:
  74. virtual void OnChangeData();
  75. };
  76. CForwarderAddressesIPEditor m_forwarderAddressesEditor;
  77. friend class CForwarderAddressesIPEditor;
  78. DECLARE_MESSAGE_MAP()
  79. };
  80. ///////////////////////////////////////////////////////////////////////////////
  81. // CAllOthersDomainInfo
  82. class CAllOthersDomainInfo
  83. {
  84. public:
  85. CAllOthersDomainInfo(DWORD cAddrCount, PIP_ADDRESS pipAddrs, DWORD dwForwardTimeout, DWORD fSlave)
  86. {
  87. m_cAddrCount = cAddrCount;
  88. m_pipAddrs = pipAddrs;
  89. m_dwForwardTimeout = dwForwardTimeout;
  90. m_fSlave = fSlave;
  91. }
  92. DWORD m_cAddrCount;
  93. PIP_ADDRESS m_pipAddrs;
  94. DWORD m_dwForwardTimeout;
  95. DWORD m_fSlave;
  96. };
  97. ///////////////////////////////////////////////////////////////////////////////
  98. // CDomainForwardersEditInfo
  99. class CDomainForwardersEditInfo
  100. {
  101. public:
  102. CDomainForwardersEditInfo(CDNSZoneNode* pZoneNode, BOOL bADIntegrated, BOOL bAllOthers = FALSE);
  103. ~CDomainForwardersEditInfo();
  104. typedef enum
  105. {
  106. nochange = 0,
  107. update,
  108. add,
  109. remove
  110. } ACTION_ITEM;
  111. void SetAllOthersDomain(CAllOthersDomainInfo* pAllOthers);
  112. BOOL IsAllOthers() { return m_bAllOthersDomain; }
  113. void SetAction(ACTION_ITEM action);
  114. ACTION_ITEM GetAction() { return m_actionItem; }
  115. void SetSlave(BOOL bSlave) { m_bSlave = bSlave; }
  116. BOOL IsSlave() { return m_bSlave; }
  117. void SetTimeout(DWORD dwTimeout) { m_dwTimeout = dwTimeout; }
  118. DWORD GetTimeout() { return m_dwTimeout; }
  119. BOOL IsADIntegrated() { return m_bADIntegrated; }
  120. void SetIPList(DWORD dwCount, PIP_ADDRESS pipArray)
  121. {
  122. m_cAddrCount = dwCount;
  123. m_pIPList = pipArray;
  124. }
  125. PIP_ADDRESS GetIPList(DWORD* pdwCount)
  126. {
  127. *pdwCount = m_cAddrCount;
  128. return m_pIPList;
  129. }
  130. void SetDomainName(PCWSTR pszDomainName)
  131. {
  132. m_szDomainName = pszDomainName;
  133. m_szDomainName.TrimLeft(L' ');
  134. m_szDomainName.TrimRight(L' ');
  135. }
  136. void GetDomainName(CString& szDomainName) { szDomainName = m_szDomainName; }
  137. void SetDataFromRPC(BOOL bRPCData) { m_bRPCData = bRPCData; }
  138. BOOL IsDataFromRPC() { return m_bRPCData; }
  139. BOOL Update(BOOL bSlave, DWORD dwTimeout, DWORD dwCount, PIP_ADDRESS pipArray);
  140. CDNSZoneNode* GetZoneNode() { return m_pZoneNode; }
  141. private:
  142. BOOL m_bADIntegrated;
  143. BOOL m_bAllOthersDomain;
  144. ACTION_ITEM m_actionItem;
  145. CDNSZoneNode* m_pZoneNode;
  146. CAllOthersDomainInfo* m_pAllOthers;
  147. BOOL m_bRPCData;
  148. CString m_szDomainName;
  149. BOOL m_bSlave;
  150. DWORD m_dwTimeout;
  151. DWORD m_cAddrCount;
  152. PIP_ADDRESS m_pIPList;
  153. };
  154. ///////////////////////////////////////////////////////////////////////////////
  155. // CDomainForwardersEditList
  156. class CDomainForwardersEditList : public CList<CDomainForwardersEditInfo*, CDomainForwardersEditInfo*>
  157. {
  158. public:
  159. ~CDomainForwardersEditList()
  160. {
  161. DeleteAll();
  162. }
  163. void DeleteAll()
  164. {
  165. while (!IsEmpty())
  166. {
  167. delete RemoveTail();
  168. }
  169. }
  170. void Remove(CDomainForwardersEditInfo* pInfo)
  171. {
  172. POSITION pos = GetHeadPosition();
  173. while (pos != NULL)
  174. {
  175. CDomainForwardersEditInfo* pListInfo = reinterpret_cast<CDomainForwardersEditInfo*>(GetAt(pos));
  176. if (pListInfo == pInfo)
  177. {
  178. RemoveAt(pos);
  179. break;
  180. }
  181. GetNext(pos);
  182. }
  183. }
  184. CDomainForwardersEditInfo* DoesExist(PCWSTR pszDomainName)
  185. {
  186. POSITION pos = GetHeadPosition();
  187. while (pos != NULL)
  188. {
  189. CDomainForwardersEditInfo* pListInfo = reinterpret_cast<CDomainForwardersEditInfo*>(GetNext(pos));
  190. if (pListInfo != NULL)
  191. {
  192. CString szName;
  193. pListInfo->GetDomainName(szName);
  194. if (szName == pszDomainName)
  195. {
  196. return pListInfo;
  197. }
  198. }
  199. }
  200. return NULL;
  201. }
  202. };
  203. ///////////////////////////////////////////////////////////////////////////////
  204. // CDNSServer_DomainForwardersPropertyPage
  205. class CDNSServer_DomainForwardersPropertyPage : public CPropertyPageBase
  206. {
  207. // Construction
  208. public:
  209. CDNSServer_DomainForwardersPropertyPage();
  210. // Implementation
  211. protected:
  212. afx_msg void OnDomainSelChange();
  213. afx_msg void OnAddDomain();
  214. afx_msg void OnRemoveDomain();
  215. afx_msg void OnSlaveCheckChange();
  216. afx_msg void OnForwarderTimeoutChange();
  217. virtual BOOL OnInitDialog();
  218. virtual BOOL OnApply();
  219. virtual BOOL OnSetActive();
  220. virtual BOOL OnKillActive();
  221. private:
  222. CButton* GetSlaveCheck() { return (CButton*)GetDlgItem(IDC_SLAVE_CHECK);}
  223. CStatic* GetForwardersStatic() { return (CStatic*)GetDlgItem(IDC_STATIC_ADD_FORWARDERS);}
  224. void SetPageReadOnly(BOOL bServerHasRoot, BOOL bDoesRecursion);
  225. void LoadUIData();
  226. void GetForwarderData();
  227. CDomainForwardersEditInfo* CreateAllOthersDomainInfo(CDNSServerNode* pServerNode);
  228. CDNSUnsignedIntEdit m_forwardTimeoutEdit;
  229. class CForwarderAddressesIPEditor : public CIPEditor
  230. {
  231. public:
  232. virtual void OnChangeData();
  233. };
  234. CForwarderAddressesIPEditor m_forwarderAddressesEditor;
  235. friend class CForwarderAddressesIPEditor;
  236. DECLARE_MESSAGE_MAP()
  237. private:
  238. CDomainForwardersEditList m_EditList;
  239. CDomainForwardersEditInfo* m_pCurrentInfo;
  240. BOOL m_bPostApply;
  241. BOOL m_bPageReadOnly;
  242. BOOL m_bChangingSelection;
  243. };
  244. ///////////////////////////////////////////////////////////////////////////////
  245. // CDNSServer_AdvancedPropertyPage
  246. class CDNSServer_AdvancedPropertyPage : public CPropertyPageBase
  247. {
  248. // Construction
  249. public:
  250. CDNSServer_AdvancedPropertyPage();
  251. virtual void SetDirty(BOOL bDirty) { CPropertyPageBase::SetDirty(bDirty); }
  252. // Implementation
  253. protected:
  254. afx_msg void OnAdvancedOptionsListChange() { SetDirty(TRUE);}
  255. afx_msg void OnComboSelChange() { SetDirty(TRUE);}
  256. afx_msg void OnResetButton();
  257. afx_msg void OnEnableScavenging();
  258. // Overrides
  259. protected:
  260. // Implementation
  261. protected:
  262. virtual void SetUIData();
  263. // Generated message map functions
  264. virtual BOOL OnInitDialog();
  265. virtual BOOL OnApply();
  266. private:
  267. CArrayCheckListBox m_advancedOptionsListBox;
  268. // set/get helpers
  269. void SetAdvancedOptionsListbox(BOOL* bRegKeyOptionsArr);
  270. void GetAdvancedOptionsListbox(BOOL* RegKeyOptionsArr);
  271. void SetBootMethodComboVal(UCHAR fBootMethod);
  272. UCHAR GetBootMethodComboVal();
  273. void SetNameCheckingComboVal(DWORD dwNameChecking);
  274. DWORD GetNameCheckingComboVal();
  275. CComboBox* GetNameCheckingCombo()
  276. { return (CComboBox*)GetDlgItem(IDC_NAME_CHECKING_COMBO);}
  277. CComboBox* GetBootMethodCombo()
  278. { return (CComboBox*)GetDlgItem(IDC_BOOT_METHOD_COMBO);}
  279. DECLARE_MESSAGE_MAP()
  280. CDNS_SERVER_AGING_TimeIntervalEditGroup m_scavengingIntervalEditGroup;
  281. };
  282. ///////////////////////////////////////////////////////////////////////////////
  283. // CDNSServer_DebugLoggingPropertyPage
  284. class CDNSServer_DebugLoggingPropertyPage : public CPropertyPageBase
  285. {
  286. // Construction
  287. public:
  288. CDNSServer_DebugLoggingPropertyPage();
  289. ~CDNSServer_DebugLoggingPropertyPage();
  290. // Implementation
  291. protected:
  292. // Overrides
  293. protected:
  294. afx_msg void OnLoggingCheck();
  295. afx_msg void OnSendCheck();
  296. afx_msg void OnReceiveCheck();
  297. afx_msg void OnQueriesCheck();
  298. afx_msg void OnNotifiesCheck();
  299. afx_msg void OnUpdatesCheck();
  300. afx_msg void OnRequestCheck();
  301. afx_msg void OnResponseCheck();
  302. afx_msg void OnUDPCheck();
  303. afx_msg void OnTCPCheck();
  304. afx_msg void OnDetailCheck();
  305. afx_msg void OnFilterCheck();
  306. afx_msg void OnFilterButton();
  307. afx_msg void OnLogFileChange();
  308. afx_msg void OnMaxSizeChange();
  309. // Implementation
  310. protected:
  311. void EnableLogging(BOOL bLogging = TRUE);
  312. void ResetToDefaults();
  313. void SetUIFromOptions(DWORD dwOptions);
  314. void SetOptionsDirty(BOOL bDirty = TRUE);
  315. BOOL AreOptionsDirty();
  316. virtual void SetUIData();
  317. virtual void GetUIData(BOOL bSilent = TRUE);
  318. // Generated message map functions
  319. virtual BOOL OnInitDialog();
  320. virtual BOOL OnApply();
  321. private:
  322. DWORD m_dwLogLevel;
  323. DWORD m_dwMaxSize;
  324. CString m_szLogFileName;
  325. PIP_ARRAY m_pIPFilterList;
  326. BOOL m_bOnSetUIData;
  327. BOOL m_bMaxSizeDirty;
  328. BOOL m_bLogFileDirty;
  329. BOOL m_bFilterDirty;
  330. BOOL m_bOwnIPListMemory;
  331. BOOL m_bNotWhistler;
  332. BOOL m_bOptionsDirty;
  333. DECLARE_MESSAGE_MAP()
  334. };
  335. ///////////////////////////////////////////////////////////////////////////////
  336. // CDNSServer_EventLoggingPropertyPage
  337. class CDNSServer_EventLoggingPropertyPage : public CPropertyPageBase
  338. {
  339. // Construction
  340. public:
  341. CDNSServer_EventLoggingPropertyPage();
  342. // Implementation
  343. protected:
  344. afx_msg void OnSetDirty();
  345. // Overrides
  346. protected:
  347. // Implementation
  348. protected:
  349. virtual void SetUIData();
  350. // Generated message map functions
  351. virtual BOOL OnInitDialog();
  352. virtual BOOL OnApply();
  353. private:
  354. DWORD m_dwEventLogLevel;
  355. DECLARE_MESSAGE_MAP()
  356. };
  357. ///////////////////////////////////////////////////////////////////////////////
  358. // CDNSServer_CopyRootHintsFromDialog
  359. class CDNSServer_CopyRootHintsFromDialog : public CHelpDialog
  360. {
  361. public:
  362. CDNSServer_CopyRootHintsFromDialog(CComponentDataObject* pComponentData);
  363. virtual void OnOK();
  364. afx_msg void OnIPv4CtrlChange();
  365. DWORD m_dwIPVal;
  366. protected:
  367. CDNSIPv4Control* GetIPv4Ctrl() { return (CDNSIPv4Control*)GetDlgItem(IDC_IPEDIT);}
  368. CComponentDataObject* m_pComponentData;
  369. DECLARE_MESSAGE_MAP()
  370. };
  371. ///////////////////////////////////////////////////////////////////////////////
  372. // CDNSServer_RootHintsPropertyPage
  373. class CDNSServer_RootHintsPropertyPage : public CDNSNameServersPropertyPage
  374. {
  375. public:
  376. CDNSServer_RootHintsPropertyPage();
  377. virtual BOOL OnInitDialog();
  378. virtual BOOL OnApply();
  379. afx_msg void OnCopyFrom();
  380. protected:
  381. virtual void ReadRecordNodesList();
  382. virtual BOOL WriteNSRecordNodesList();
  383. void AddCopiedRootHintsToList(PDNS_RECORD pRootHintsRecordList);
  384. DECLARE_MESSAGE_MAP()
  385. };
  386. #include "servmon.h"
  387. ///////////////////////////////////////////////////////////////////////////////
  388. // CDNSServerPropertyPageHolder
  389. // page holder to contain DNS Server property pages
  390. class CDNSServerPropertyPageHolder : public CPropertyPageHolderBase
  391. {
  392. public:
  393. CDNSServerPropertyPageHolder(CDNSRootData* pRootDataNode, CDNSServerNode* pServerNode,
  394. CComponentDataObject* pComponentData);
  395. ~CDNSServerPropertyPageHolder();
  396. CDNSServerNode* GetServerNode() { return (CDNSServerNode*)GetTreeNode();}
  397. protected:
  398. virtual void OnSheetMessage(WPARAM wParam, LPARAM lParam);
  399. virtual HRESULT OnAddPage(int nPage, CPropertyPageBase* pPage);
  400. virtual int OnSelectPageMessage(long nPageCode) { return nPageCode;}
  401. private:
  402. CDNSServer_InterfacesPropertyPage m_interfacesPage;
  403. CDNSServer_DomainForwardersPropertyPage m_newForwardersPage;
  404. CDNSServer_AdvancedPropertyPage m_advancedPage;
  405. CDNSServer_RootHintsPropertyPage m_rootHintsPage;
  406. CDNSServer_TestPropertyPage m_testPage;
  407. CDNSServer_DebugLoggingPropertyPage m_debugLoggingPage;
  408. CDNSServer_EventLoggingPropertyPage m_eventLoggingPage;
  409. // optional security page
  410. CAclEditorPage* m_pAclEditorPage;
  411. };
  412. #endif // _SERVERUI_H