Source code of Windows XP (NT5)
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.

1566 lines
49 KiB

  1. /**********************************************************************/
  2. /** Microsoft Windows/NT **/
  3. /** Copyright(c) Microsoft Corporation, 1997 - 1999 **/
  4. /**********************************************************************/
  5. /*
  6. rraswiz.h
  7. FILE HISTORY:
  8. */
  9. #if !defined _RRASWIZ_H_
  10. #define _RRASWIZ_H_
  11. #if _MSC_VER >= 1000
  12. #pragma once
  13. #endif // _MSC_VER >= 1000
  14. #include "listctrl.h"
  15. #include "ports.h"
  16. #include "rasppp.h" // for PPPCFG_XXX constants
  17. #include "rtrcfg.h" // for DATA_SRV_??? structures
  18. #include "rtrwiz.h"
  19. #ifndef _ADDRPOOL_H_
  20. #include "addrpool.h"
  21. #endif
  22. // forward declarations
  23. class CNewRtrWiz;
  24. /*---------------------------------------------------------------------------
  25. Here are a list of the pages used by the install wizard
  26. CNewRtrWizWelcome - IDD_NEWRTRWIZ_WELCOME
  27. CNewRtrWizCommonConfig - IDD_NEWRTRWIZ_COMMONCONFIG
  28. CNewRtrWizNatFinishSConflict - IDD_NEWRTRWIZ_NAT_S_CONFLICT
  29. CNewRtrWizNatFinishSConflictNonLocal - IDD_NEWRTRIWZ_NAT_S_CONFLICT_NONOLOCAL
  30. CNewRtrWizNatFinishAConflict - IDD_NEWRTRWIZ_NAT_A_CONFLICT
  31. CNewRtrWizNatFinishAConflictNonLocal - IDD_NEWRTRIWZ_NAT_A_CONFLICT_NONOLOCAL
  32. CNewRtrWizNatFinishNoIP - IDD_NEWRTRWIZ_NAT_NOIP
  33. CNewRtrWizNatFinishNoIPNonLocal - IDD_NEWRTRWIZ_NAT_NOIP_NONLOCAL
  34. CNewRtrWizNatChoice - IDD_NEWRTRWIZ_NAT_CHOOSE
  35. CNewRtrWizNatSelectPublic - IDD_NEWRTRWIZ_NAT_A_PUBLIC
  36. CNewRtrWizNatSelectPrivate - IDD_NEWRTRWIZ_NAT_A_PRIVATE
  37. CNewRtrWizNatFinishAdvancedNoNICs - IDD_NEWRTRWIZ_NAT_A_NONICS_FINISH
  38. CNewRtrWizNatDHCPDNS - IDD_NEWRTRWIZ_NAT_A_DHCPDNS
  39. CNewRtrWizNatDHCPWarning - IDD_NEWRTRWIZ_NAT_A_DHCP_WARNING
  40. CNewRtrWizNatDDWarning - IDD_NEWRTRWIZ_NAT_A_DD_WARNING
  41. CNewRtrWizNatFinish - IDD_NEWRTRWIZ_NAT_A_FINISH
  42. CNewRtrWizNatFinishExternal - IDD_NEWRTRWIZ_NAT_A_EXTERNAL_FINISH
  43. CNewRtrWizNatFinishDDError - IDD_NEWRTRWIZ_NAT_DD_ERROR
  44. CNewRtrWizRasChoice - IDD_NEWRTRWIZ_RAS_CHOOSE
  45. // Some base classes for dialogs common to RAS and VPN
  46. CNewRtrWizProtocols (no dialog)
  47. CNewRtrWizAtalk (no dialog)
  48. CNewRtrWizAddressing (no dialog)
  49. CNewRtrWizAddressPool (no dialog)
  50. CNewRtrWizRadius (no dialog)
  51. CNewRtrWizRadiusConfig (no dialog)
  52. CNewRtrWizRasProtocols - IDD_NEWRTRWIZ_RAS_A_PROTOCOLS
  53. CNewRtrWizRasFinishNeedProtocols - IDD_NEWRTRWIZ_RAS_A_NEED_PROT
  54. CNewRtrWizRasFinishNeedProtocolsNonLocal - IDD_NEWRTRWIZ_RAS_A_NEED_PROT_NONLOCAL
  55. CNewRtrWizRasAtalk - IDD_NEWRTRWIZ_RAS_A_ATALK
  56. CNewRtrWizRasSelectNetwork - IDD_NEWRTRWIZ_RAS_A_NETWORK
  57. CNewRtrWizRasNoNICs - IDD_NEWRTRWIZ_RAS_A_NONICS
  58. CNewRtrWizRasFinishNoNICs - IDD_NEWRTRWIZ_RAS_A_FINISH_NONICS
  59. CNewRtrWizRasAddressingNoNICs - IDD_NEWRTRWIZ_RAS_A_ADDRESSING_NONICS
  60. CNewRtrWizRasAddressing - IDD_NEWRTRWIZ_RAS_A_ADDRESSING
  61. CNewRtrWizRasAddressPool - IDD_NEWRTRWIZ_RAS_A_ADDRESSPOOL
  62. CNewRtrWizRasRadius - IDD_NEWRTRWIZ_RAS_A_USERADIUS
  63. CNewRtrWizRasRadiusConfig - IDD_NEWRTRWIZ_RAS_A_RADIUS_CONFIG
  64. CNewRtrWizRasFinishAdvanced - IDD_NEWRTRWIZ_RAS_A_FINISH
  65. CNewRtrWizVpnFinishNoIP - IDD_NEWRTRWIZ_VPN_NOIP
  66. CNewRtrWizVpnFinishNoIPNonLocal - IDD_NEWRTRWIZ_VPN_NOIP_NONLOCAL
  67. CNewRtrWizVpnProtocols - IDD_NEWRTRWIZ_VPN_A_PROTOCOLS
  68. CNewRtrWizVpnFinishNeedProtocols - IDD_NEWRTRWIZ_VPN_A_NEED_PROT
  69. CNewRtrWizVpnFinishNeedProtocolsNonLocal - IDD_NEWRTRWIZ_V_A_NEED_PROT_NONLOCAL
  70. CNewRtrWizVpnFinishNoNICs - IDD_NEWRTRWIZ_VPN_A_FINISH_NONICS
  71. CNewRtrWizVpnAtalk - IDD_NEWRTRWIZ_VPN_A_ATALK
  72. CNewRtrWizVpnSelectPublic - IDD_NEWRTRWIZ_VPN_A_PUBLIC
  73. CNewRtrWizVpnSelectPrivate - IDD_NEWRTRWIZ_VPN_A_PRIVATE
  74. CNewRtrWizVpnAddressing - IDD_NEWRTRWIZ_VPN_A_ADDRESSING
  75. CNewRtrWizVpnAddressPool - IDD_NEWRTRWIZ_VPN_A_ADDRESSPOOL
  76. CNewRtrWizVpnRadius - IDD_NEWRTRWIZ_VPN_A_USERADIUS
  77. CNewRtrWizVpnRadiusConfig - IDD_NEWRTRWIZ_VPN_A_RADIUS_CONFIG
  78. CNewRtrWizVpnFinishAdvanced - IDD_NEWRTRWIZ_VPN_A_FINISH
  79. CNewRtrWizRouterProtocols - IDD_NEWRTRWIZ_ROUTER_PROTOCOLS
  80. CNewRtrWizRouterNeedProtocols - IDD_NEWRTRWIZ_ROUTER_NEED_PROT
  81. CNewRtrWizRouterNeedProtocolsNonLocal - IDD_NEWRTRWIZ_ROUTER_NEED_PROT_NONLOCAL
  82. CNewRtrWizRouterUseDD - IDD_NEWRTRWIZ_ROUTER_USEDD
  83. CNewRtrWizRouterAddressing - IDD_NEWRTRWIZ_ROUTER_ADDRESSING
  84. CNewRtrWizRouterAddressPool - IDD_NEWRTRWIZ_ROUTER_ADDRESSPOOL
  85. CNewRtrWizRouterFinish - IDD_NEWRTRWIZ_ROUTER_FINISH
  86. CNewRtrWizRouterFinishDD - IDD_NEWRTRWIZ_ROUTER_FINISH_DD
  87. CNewRtrWizManualFinish - IDD_NEWRTRWIZ_MANUAL_FINISH
  88. ---------------------------------------------------------------------------*/
  89. /*---------------------------------------------------------------------------
  90. Class : RtrWizInterface
  91. This class holds the per-interface info for the wizard.
  92. This class is setup before coming into the wizard. The list
  93. of interfaces is obtained from the router. The relevant data is
  94. then filled in from the registry (there are no remote API calls).
  95. The DHCP and DNS checks will be done on a per-interface basis.
  96. ---------------------------------------------------------------------------*/
  97. class RtrWizInterface
  98. {
  99. public:
  100. CString m_stId; // ID for the interface
  101. CString m_stName; // Friendly name for the interface
  102. CString m_stDesc;
  103. // IP Address for this interface
  104. // Do we need to show multiple IP addresses? (why?)
  105. // This list is obtained from the iphlp apis
  106. CString m_stIpAddress;
  107. CString m_stMask;
  108. BOOL m_fDhcpObtained;
  109. // IP address of the DHCP Server
  110. CString m_stDhcpServer;
  111. BOOL m_fIsDhcpEnabled;
  112. BOOL m_fIsDnsEnabled;
  113. };
  114. // This is the map used to hold all of the interface information
  115. typedef CMap<CString, LPCTSTR, RtrWizInterface *, RtrWizInterface *> RtrWizInterfaceMap;
  116. /*---------------------------------------------------------------------------
  117. This is used to determine the action at the end of the wizard.
  118. Typically
  119. SaveFlag_DoNothing - exactly what it means, do nothing.
  120. SaveFlag_Simple - launch the connections UI (simple UI)
  121. SaveFlag_Advanced - do the full wizard save/config
  122. ---------------------------------------------------------------------------*/
  123. enum RtrWizFinishSaveFlag
  124. {
  125. SaveFlag_DoNothing = 0,
  126. SaveFlag_Simple = 1,
  127. SaveFlag_Advanced = 2
  128. };
  129. /*---------------------------------------------------------------------------
  130. Determine what help to launch after the wizard
  131. ---------------------------------------------------------------------------*/
  132. enum RtrWizFinishHelpFlag
  133. {
  134. HelpFlag_Nothing = 0,
  135. HelpFlag_AddIp = 1, // how to add IP
  136. HelpFlag_ICS = 2, // how to add ICS
  137. HelpFlag_AddProtocol = 3, // how to add a protocol
  138. HelpFlag_InboundConnections = 4, // how to add inbound conn
  139. HelpFlag_GeneralNAT = 5, // general NAT finish help
  140. HelpFlag_GeneralRAS = 6, // general RAS finish help
  141. };
  142. enum RtrWizProtocolId
  143. {
  144. RtrWizProtocol_None = 0,
  145. RtrWizProtocol_Ip = 1,
  146. RtrWizProtocol_Ipx = 2,
  147. RtrWizProtocol_Appletalk = 3,
  148. RtrWizProtocol_Nbf = 4
  149. };
  150. // These are special values for the return from NewRtrWizData::GetNextPage().
  151. // This indicates that the wizard should be cancelled
  152. #define ERR_IDD_CANCEL_WIZARD (-2)
  153. // Cancel out of the wizard (but call the OnWizardFinish()).
  154. #define ERR_IDD_FINISH_WIZARD (-3)
  155. /*---------------------------------------------------------------------------
  156. NewRtrWizData
  157. This structure is used to maintain all of the information needed
  158. by the pages. This way I can persist this stuff all at the end of
  159. the wizard.
  160. There are two parts to this structure.
  161. The first part is the data that is being set.
  162. The second part are parameters (they are queries that are being
  163. made as we go through the system). These will be set by the test
  164. code but will eventually be made into code.
  165. ---------------------------------------------------------------------------*/
  166. class NewRtrWizData
  167. {
  168. public:
  169. friend class CNewWizTestParams;
  170. friend class CNewRtrWizNatDDWarning;
  171. // This is the type of RRAS install that is being performed
  172. // ----------------------------------------------------------------
  173. enum WizardRouterType
  174. {
  175. WizardRouterType_NAT = 0,
  176. WizardRouterType_RAS,
  177. WizardRouterType_VPN,
  178. WizardRouterType_Router,
  179. WizardRouterType_Manual
  180. };
  181. WizardRouterType m_wizType;
  182. DWORD m_dwRouterType; // only used during the finish
  183. // This is TRUE if the data has already been saved (this is
  184. // for the NAT scenario, when we presave and then launch the
  185. // DD wizard).
  186. // ----------------------------------------------------------------
  187. BOOL m_fSaved;
  188. // Constructor
  189. // ----------------------------------------------------------------
  190. NewRtrWizData()
  191. {
  192. // Defaults
  193. m_wizType = WizardRouterType_NAT;
  194. m_fTest = FALSE;
  195. m_SaveFlag = SaveFlag_Advanced;
  196. m_HelpFlag = HelpFlag_Nothing;
  197. m_fAdvanced = FALSE;
  198. m_fCreateDD = FALSE;
  199. m_fUseDD = FALSE;
  200. m_hrDDError = hrOK;
  201. m_fWillBeInDomain = FALSE;
  202. m_fUseIpxType20Broadcasts = FALSE;
  203. m_fAppletalkUseNoAuth = FALSE;
  204. m_fUseDHCP = TRUE;
  205. m_fUseRadius = FALSE;
  206. m_fNeedMoreProtocols = FALSE;
  207. m_fNoNicsAreOk = FALSE;
  208. m_fNatUseSimpleServers = TRUE;
  209. m_fSetVPNFilter = FALSE;
  210. m_netRadius1IpAddress = 0;
  211. m_netRadius2IpAddress = 0;
  212. m_fSaved = FALSE;
  213. m_dwNumberOfNICs_IPorIPX = 0;
  214. }
  215. ~NewRtrWizData();
  216. HRESULT Init(LPCTSTR pszServerName, IRouterInfo *pRouter);
  217. HRESULT FinishTheDamnWizard(HWND hwndOwner, IRouterInfo *pRouter);
  218. // Query functions. These will determine the state of the
  219. // machine.
  220. // ----------------------------------------------------------------
  221. HRESULT HrIsIPInstalled();
  222. HRESULT HrIsIPXInstalled();
  223. HRESULT HrIsAppletalkInstalled();
  224. HRESULT HrIsNbfInstalled();
  225. HRESULT HrIsIPInUse();
  226. HRESULT HrIsIPXInUse();
  227. HRESULT HrIsAppletalkInUse();
  228. HRESULT HrIsNbfInUse();
  229. HRESULT HrIsLocalMachine();
  230. HRESULT HrIsDNSRunningOnInterface();
  231. HRESULT HrIsDHCPRunningOnInterface();
  232. HRESULT HrIsDNSRunningOnServer();
  233. HRESULT HrIsDHCPRunningOnServer();
  234. HRESULT HrIsSharedAccessRunningOnServer();
  235. HRESULT HrIsMemberOfDomain();
  236. // Given the page, determine the next page
  237. // This is done to centralize the logic (rather than copying
  238. // and splitting the logic up).
  239. LRESULT GetNextPage(UINT uDialogId);
  240. // This function is pure test code, the real way to do this is
  241. // to use the IRouterInfo
  242. HRESULT GetNumberOfNICS_IP(DWORD *pdwNumber);
  243. HRESULT GetNumberOfNICS_IPorIPX(DWORD *pdwNumber);
  244. HRESULT QueryForTestData();
  245. BOOL m_fTest;
  246. // User-selections
  247. // Name of the machine, if blank assume local machine
  248. CString m_stServerName;
  249. RtrWizFinishSaveFlag m_SaveFlag;
  250. RtrWizFinishHelpFlag m_HelpFlag;
  251. // If this is FALSE, then the user chose to use the Connections UI.
  252. BOOL m_fAdvanced;
  253. // If this is TRUE, then we have exited
  254. BOOL m_fNeedMoreProtocols;
  255. // If this is TRUE, then we are to create a DD interface
  256. BOOL m_fCreateDD;
  257. // This is the ID of the public interface (this should be empty if
  258. // m_fCreateDD is TRUE).
  259. CString m_stPublicInterfaceId;
  260. // This is the ID of the private interface
  261. CString m_stPrivateInterfaceId;
  262. // This is usually set when the machine is not currently in a
  263. // domain but may join at a later time.
  264. BOOL m_fWillBeInDomain;
  265. BOOL m_fNoNicsAreOk;
  266. BOOL m_fUseIpxType20Broadcasts;
  267. BOOL m_fAppletalkUseNoAuth;
  268. // Address pool information
  269. // ----------------------------------------------------------------
  270. BOOL m_fUseDHCP;
  271. // List of address ranges in the address pool. This list will
  272. // only be used if m_fUseDHCP is FALSE.
  273. AddressPoolList m_addressPoolList;
  274. // RADIUS information
  275. // ----------------------------------------------------------------
  276. BOOL m_fUseRadius; // TRUE if we are to use Radius
  277. CString m_stRadius1; // Name of the primary RADIUS server
  278. CString m_stRadius2; // Name of the secondary RADIUS server
  279. CString m_stRadiusSecret; // munged shared secret
  280. UCHAR m_uSeed; // key to munged radius secret
  281. // These should be in NETWORK order
  282. DWORD m_netRadius1IpAddress;
  283. DWORD m_netRadius2IpAddress;
  284. HRESULT SaveRadiusConfig();
  285. // Protocol information
  286. // ----------------------------------------------------------------
  287. BOOL m_fIpInUse;
  288. BOOL m_fIpxInUse;
  289. BOOL m_fAppletalkInUse;
  290. BOOL m_fNbfInUse;
  291. // NAT information
  292. // If this TRUE, then NAT will use its own DHCP/DNS servers
  293. // ----------------------------------------------------------------
  294. BOOL m_fNatUseSimpleServers;
  295. // VPN only Server
  296. // If this is true, filters will be plumbed on the public
  297. // interface to the Internet to allow only VON traffic through
  298. //
  299. BOOL m_fSetVPNFilter;
  300. // Router DD information
  301. // ----------------------------------------------------------------
  302. // If this is TRUE, then the router wants to use a DD interface
  303. // This is only used when the wizard type is for a router.
  304. BOOL m_fUseDD;
  305. // This is the error result from the DD interface wizard
  306. HRESULT m_hrDDError;
  307. // This function will select the interface that is not the public
  308. // interface.
  309. void AutoSelectPrivateInterface();
  310. void LoadInterfaceData(IRouterInfo *pRouter);
  311. RtrWizInterfaceMap m_ifMap;
  312. DWORD m_dwNumberOfNICs_IPorIPX;
  313. protected:
  314. // This is TEST code. Do not use these variables, use the
  315. // functions instead.
  316. static BOOL s_fIpInstalled;
  317. static BOOL s_fIpxInstalled;
  318. static BOOL s_fAppletalkInstalled;
  319. static BOOL s_fNbfInstalled;
  320. static BOOL s_fIsLocalMachine;
  321. static BOOL s_fIsDNSRunningOnPrivateInterface;
  322. static BOOL s_fIsDHCPRunningOnPrivateInterface;
  323. static BOOL s_fIsSharedAccessRunningOnServer;
  324. static BOOL s_fIsMemberOfDomain;
  325. static DWORD s_dwNumberOfNICs;
  326. // These are the real variables (used for the real thing)
  327. // ----------------------------------------------------------------
  328. BOOL m_fIpInstalled;
  329. BOOL m_fIpxInstalled;
  330. BOOL m_fAppletalkInstalled;
  331. BOOL m_fNbfInstalled;
  332. // DHCP/DNS service information. This information is stored here
  333. // as cached information.
  334. // ----------------------------------------------------------------
  335. BOOL m_fIsDNSRunningOnServer;
  336. BOOL m_fIsDHCPRunningOnServer;
  337. // There is a two step-process, first we have to save the info
  338. // from our data-gathering into the DATA_SRV_XXX structures. And
  339. // then we tell the DATA_SRV_XXX structures to save themselves
  340. // into the registry.
  341. // ----------------------------------------------------------------
  342. HRESULT SaveToRtrConfigData();
  343. RtrConfigData m_RtrConfigData;
  344. };
  345. /*---------------------------------------------------------------------------
  346. Class : CNewRtrWizPageBase
  347. This class implements the common router install wizard base
  348. wizard page functionality.
  349. The major function provides for a stack-based way of keeping
  350. track of which pages have been seen (this makes OnWizardBack()
  351. really easy).
  352. ---------------------------------------------------------------------------*/
  353. // forward declaration
  354. class CNewRtrWizPageBase;
  355. // The page stack consists of a series of DWORDs
  356. typedef CList<DWORD, DWORD> PageStack;
  357. // The list of pages consists of CNewRtrWizPageBase ptrs.
  358. typedef CList<CNewRtrWizPageBase *, CNewRtrWizPageBase *> PPageList;
  359. class CNewRtrWizPageBase : public CPropertyPageBase
  360. {
  361. public:
  362. enum PageType
  363. {
  364. Start = 0,
  365. Middle,
  366. Finish
  367. };
  368. CNewRtrWizPageBase(UINT idd, PageType pt);
  369. void PushPage(UINT idd);
  370. UINT PopPage();
  371. virtual BOOL OnInitDialog();
  372. virtual BOOL OnSetActive();
  373. virtual LRESULT OnWizardNext();
  374. virtual LRESULT OnWizardBack();
  375. virtual BOOL OnWizardFinish();
  376. afx_msg LRESULT OnHelp(WPARAM, LPARAM);
  377. // The derived class should implement this
  378. virtual HRESULT OnSavePage();
  379. virtual void Init(NewRtrWizData* pRtrWizData, CNewRtrWiz *pRtrWiz)
  380. { m_pRtrWizData = pRtrWizData; m_pRtrWiz = pRtrWiz; }
  381. protected:
  382. NewRtrWizData* m_pRtrWizData;
  383. CNewRtrWiz * m_pRtrWiz;
  384. static PageStack m_pagestack;
  385. PageType m_pagetype;
  386. UINT m_uDialogId;
  387. // This is the font used for the big finish text
  388. CFont m_fontBig;
  389. // This is the font used for the bullets
  390. CFont m_fontBullet;
  391. DECLARE_MESSAGE_MAP()
  392. };
  393. /*---------------------------------------------------------------------------
  394. Base class for the finish pages
  395. ---------------------------------------------------------------------------*/
  396. class CNewRtrWizFinishPageBase : public CNewRtrWizPageBase
  397. {
  398. public:
  399. CNewRtrWizFinishPageBase(UINT idd,
  400. RtrWizFinishSaveFlag SaveFlag,
  401. RtrWizFinishHelpFlag HelpFlag);
  402. virtual BOOL OnInitDialog();
  403. virtual BOOL OnWizardFinish();
  404. virtual BOOL OnSetActive();
  405. protected:
  406. RtrWizFinishSaveFlag m_SaveFlag;
  407. RtrWizFinishHelpFlag m_HelpFlag;
  408. DECLARE_MESSAGE_MAP()
  409. };
  410. //
  411. // This makes it easier to create new finish pages
  412. //
  413. #define DEFINE_NEWRTRWIZ_FINISH_PAGE(classname, dialogid) \
  414. class classname : public CNewRtrWizFinishPageBase \
  415. { \
  416. public: \
  417. classname(); \
  418. enum { IDD = dialogid }; \
  419. protected: \
  420. DECLARE_MESSAGE_MAP() \
  421. };
  422. #define IMPLEMENT_NEWRTRWIZ_FINISH_PAGE(classname, saveflag, helpflag) \
  423. classname::classname() : \
  424. CNewRtrWizFinishPageBase(classname::IDD, saveflag, helpflag) \
  425. { \
  426. InitWiz97(TRUE, 0, 0); \
  427. } \
  428. \
  429. BEGIN_MESSAGE_MAP(classname, CNewRtrWizFinishPageBase) \
  430. END_MESSAGE_MAP() \
  431. // Utility functions
  432. /*!--------------------------------------------------------------------------
  433. InitializeInterfaceListControl
  434. This will populate the list control with LAN interfaces for
  435. the router.
  436. It will also add the appropriate columns to the list control.
  437. Author: KennT
  438. ---------------------------------------------------------------------------*/
  439. HRESULT InitializeInterfaceListControl(IRouterInfo *pRouter,
  440. CListCtrl *pListCtrl,
  441. LPCTSTR pszExcludedIf,
  442. LPARAM flags,
  443. NewRtrWizData *pWizData);
  444. HRESULT RefreshInterfaceListControl(IRouterInfo *pRouter,
  445. CListCtrl *pListCtrl,
  446. LPCTSTR pszExcludedIf,
  447. LPARAM flags,
  448. NewRtrWizData *pWizData);
  449. #define IFLIST_FLAGS_DEBUG 0x01
  450. #define IFLIST_FLAGS_NOIP 0x02
  451. /////////////////////////////////////////////////////////////////////////////
  452. // CNewRtrWizWelcome dialog
  453. class CNewRtrWizWelcome : public CNewRtrWizPageBase
  454. {
  455. public:
  456. CNewRtrWizWelcome();
  457. enum { IDD = IDD_NEWRTRWIZ_WELCOME };
  458. protected:
  459. DECLARE_MESSAGE_MAP()
  460. };
  461. /*---------------------------------------------------------------------------
  462. Class CNewRtrWizCommonConfig
  463. ---------------------------------------------------------------------------*/
  464. class CNewRtrWizCommonConfig : public CNewRtrWizPageBase
  465. {
  466. public:
  467. CNewRtrWizCommonConfig();
  468. enum { IDD = IDD_NEWRTRWIZ_COMMONCONFIG };
  469. virtual BOOL OnInitDialog();
  470. virtual HRESULT OnSavePage();
  471. protected:
  472. CFont m_boldFont;
  473. DECLARE_MESSAGE_MAP()
  474. };
  475. /*---------------------------------------------------------------------------
  476. Class: CNewRtrWizNatFinishSConflict
  477. ---------------------------------------------------------------------------*/
  478. DEFINE_NEWRTRWIZ_FINISH_PAGE(CNewRtrWizNatFinishSConflict,
  479. IDD_NEWRTRWIZ_NAT_S_CONFLICT)
  480. /*---------------------------------------------------------------------------
  481. Class: CNewRtrWizNatFinishSConflictNonLocal
  482. ---------------------------------------------------------------------------*/
  483. DEFINE_NEWRTRWIZ_FINISH_PAGE(CNewRtrWizNatFinishSConflictNonLocal,
  484. IDD_NEWRTRWIZ_NAT_S_CONFLICT_NONLOCAL)
  485. /*---------------------------------------------------------------------------
  486. Class: CNewRtrWizNatFinishAConflict
  487. ---------------------------------------------------------------------------*/
  488. DEFINE_NEWRTRWIZ_FINISH_PAGE(CNewRtrWizNatFinishAConflict,
  489. IDD_NEWRTRWIZ_NAT_A_CONFLICT)
  490. /*---------------------------------------------------------------------------
  491. Class: CNewRtrWizNatFinishAConflictNonLocal
  492. ---------------------------------------------------------------------------*/
  493. DEFINE_NEWRTRWIZ_FINISH_PAGE(CNewRtrWizNatFinishAConflictNonLocal,
  494. IDD_NEWRTRWIZ_NAT_A_CONFLICT_NONLOCAL)
  495. /*---------------------------------------------------------------------------
  496. Class: CNewRtrWizNatFinishNoIP
  497. ---------------------------------------------------------------------------*/
  498. DEFINE_NEWRTRWIZ_FINISH_PAGE(CNewRtrWizNatFinishNoIP,
  499. IDD_NEWRTRWIZ_NAT_NOIP)
  500. /*---------------------------------------------------------------------------
  501. Class: CNewRtrWizNatFinishNoIPNonLocal
  502. ---------------------------------------------------------------------------*/
  503. DEFINE_NEWRTRWIZ_FINISH_PAGE(CNewRtrWizNatFinishNoIPNonLocal,
  504. IDD_NEWRTRWIZ_NAT_NOIP_NONLOCAL)
  505. /*---------------------------------------------------------------------------
  506. Class: CNewRtrWizNatChoice
  507. ---------------------------------------------------------------------------*/
  508. class CNewRtrWizNatChoice : public CNewRtrWizPageBase
  509. {
  510. public:
  511. CNewRtrWizNatChoice();
  512. enum { IDD = IDD_NEWRTRWIZ_NAT_CHOOSE };
  513. public:
  514. virtual BOOL OnInitDialog();
  515. virtual HRESULT OnSavePage();
  516. protected:
  517. DECLARE_MESSAGE_MAP()
  518. };
  519. /*---------------------------------------------------------------------------
  520. CNewRtrWizNatSelectPublic
  521. ---------------------------------------------------------------------------*/
  522. class CNewRtrWizNatSelectPublic : public CNewRtrWizPageBase
  523. {
  524. public:
  525. CNewRtrWizNatSelectPublic();
  526. enum { IDD = IDD_NEWRTRWIZ_NAT_A_PUBLIC };
  527. public:
  528. virtual BOOL OnInitDialog();
  529. virtual HRESULT OnSavePage();
  530. virtual VOID DoDataExchange(CDataExchange *pDX);
  531. protected:
  532. CListCtrl m_listCtrl;
  533. afx_msg void OnBtnClicked();
  534. DECLARE_MESSAGE_MAP()
  535. };
  536. /*---------------------------------------------------------------------------
  537. CNewRtrWizNatSelectPrivate
  538. ---------------------------------------------------------------------------*/
  539. class CNewRtrWizNatSelectPrivate : public CNewRtrWizPageBase
  540. {
  541. public:
  542. CNewRtrWizNatSelectPrivate();
  543. enum { IDD = IDD_NEWRTRWIZ_NAT_A_PRIVATE };
  544. public:
  545. virtual BOOL OnInitDialog();
  546. virtual BOOL OnSetActive();
  547. virtual HRESULT OnSavePage();
  548. virtual VOID DoDataExchange(CDataExchange *pDX);
  549. protected:
  550. CListCtrl m_listCtrl;
  551. DECLARE_MESSAGE_MAP()
  552. };
  553. /*---------------------------------------------------------------------------
  554. CNewRtrWizNatFinishAdvancedNoNICs
  555. ---------------------------------------------------------------------------*/
  556. DEFINE_NEWRTRWIZ_FINISH_PAGE(CNewRtrWizNatFinishAdvancedNoNICs,
  557. IDD_NEWRTRWIZ_NAT_A_NONICS_FINISH)
  558. /*---------------------------------------------------------------------------
  559. CNewRtrWizNatDHCPDNS
  560. ---------------------------------------------------------------------------*/
  561. class CNewRtrWizNatDHCPDNS : public CNewRtrWizPageBase
  562. {
  563. public:
  564. CNewRtrWizNatDHCPDNS();
  565. enum { IDD = IDD_NEWRTRWIZ_NAT_A_DHCPDNS };
  566. public:
  567. virtual BOOL OnInitDialog();
  568. virtual HRESULT OnSavePage();
  569. protected:
  570. DECLARE_MESSAGE_MAP()
  571. };
  572. /*---------------------------------------------------------------------------
  573. CNewRtrWizNatDHCPWarning
  574. ---------------------------------------------------------------------------*/
  575. class CNewRtrWizNatDHCPWarning : public CNewRtrWizPageBase
  576. {
  577. public:
  578. CNewRtrWizNatDHCPWarning();
  579. enum { IDD = IDD_NEWRTRWIZ_NAT_A_DHCP_WARNING };
  580. virtual BOOL OnSetActive();
  581. public:
  582. protected:
  583. DECLARE_MESSAGE_MAP()
  584. };
  585. /*---------------------------------------------------------------------------
  586. CNewRtrWizNatDDWarning
  587. ---------------------------------------------------------------------------*/
  588. class CNewRtrWizNatDDWarning : public CNewRtrWizPageBase
  589. {
  590. public:
  591. CNewRtrWizNatDDWarning();
  592. enum { IDD = IDD_NEWRTRWIZ_NAT_A_DD_WARNING };
  593. // Calling this will cause the DD wizard to be started
  594. virtual BOOL OnSetActive();
  595. virtual HRESULT OnSavePage();
  596. public:
  597. protected:
  598. DECLARE_MESSAGE_MAP()
  599. };
  600. /*---------------------------------------------------------------------------
  601. CNewRtrWizNatFinish
  602. ---------------------------------------------------------------------------*/
  603. class CNewRtrWizNatFinish : public CNewRtrWizFinishPageBase
  604. {
  605. public:
  606. CNewRtrWizNatFinish();
  607. enum { IDD = IDD_NEWRTRWIZ_NAT_A_FINISH };
  608. virtual BOOL OnSetActive();
  609. protected:
  610. DECLARE_MESSAGE_MAP()
  611. };
  612. /*---------------------------------------------------------------------------
  613. CNewRtrWizNatFinishExternal
  614. ---------------------------------------------------------------------------*/
  615. class CNewRtrWizNatFinishExternal : public CNewRtrWizFinishPageBase
  616. {
  617. public:
  618. CNewRtrWizNatFinishExternal();
  619. enum { IDD = IDD_NEWRTRWIZ_NAT_A_EXTERNAL_FINISH };
  620. virtual BOOL OnSetActive();
  621. protected:
  622. DECLARE_MESSAGE_MAP()
  623. };
  624. /*---------------------------------------------------------------------------
  625. Class: CNewRtrWizNatFinishDDError
  626. ---------------------------------------------------------------------------*/
  627. DEFINE_NEWRTRWIZ_FINISH_PAGE(CNewRtrWizNatFinishDDError,
  628. IDD_NEWRTRWIZ_NAT_A_DD_ERROR)
  629. /*---------------------------------------------------------------------------
  630. Class: CNewRtrWizRasChoice
  631. ---------------------------------------------------------------------------*/
  632. class CNewRtrWizRasChoice : public CNewRtrWizPageBase
  633. {
  634. public:
  635. CNewRtrWizRasChoice();
  636. enum { IDD = IDD_NEWRTRWIZ_RAS_CHOOSE };
  637. public:
  638. virtual BOOL OnInitDialog();
  639. virtual HRESULT OnSavePage();
  640. protected:
  641. DECLARE_MESSAGE_MAP()
  642. };
  643. /*---------------------------------------------------------------------------
  644. CNewRtrWizProtocols
  645. ---------------------------------------------------------------------------*/
  646. class CNewRtrWizProtocols : public CNewRtrWizPageBase
  647. {
  648. public:
  649. CNewRtrWizProtocols(UINT uDialogId);
  650. public:
  651. virtual BOOL OnInitDialog();
  652. virtual VOID DoDataExchange(CDataExchange *pDX);
  653. virtual HRESULT OnSavePage();
  654. void AddProtocolItem(UINT idsProto, RtrWizProtocolId pid, INT nCount);
  655. protected:
  656. BOOL m_fUseChecks;
  657. CListCtrlEx m_listCtrl;
  658. DECLARE_MESSAGE_MAP()
  659. };
  660. /*---------------------------------------------------------------------------
  661. CNewRtrWizRasProtocols
  662. ---------------------------------------------------------------------------*/
  663. class CNewRtrWizRasProtocols : public CNewRtrWizProtocols
  664. {
  665. public:
  666. CNewRtrWizRasProtocols();
  667. enum { IDD = IDD_NEWRTRWIZ_RAS_A_PROTOCOLS };
  668. };
  669. /*---------------------------------------------------------------------------
  670. Class: CNewRtrWizRasFinishNeedProtocols
  671. ---------------------------------------------------------------------------*/
  672. DEFINE_NEWRTRWIZ_FINISH_PAGE(CNewRtrWizRasFinishNeedProtocols,
  673. IDD_NEWRTRWIZ_RAS_A_NEED_PROT)
  674. /*---------------------------------------------------------------------------
  675. Class: CNewRtrWizRasFinishNeedProtocolsNonLocal
  676. ---------------------------------------------------------------------------*/
  677. DEFINE_NEWRTRWIZ_FINISH_PAGE(CNewRtrWizRasFinishNeedProtocolsNonLocal,
  678. IDD_NEWRTRWIZ_RAS_A_NEED_PROT_NONLOCAL)
  679. /*---------------------------------------------------------------------------
  680. CNewRtrWizVpnProtocols
  681. ---------------------------------------------------------------------------*/
  682. class CNewRtrWizVpnProtocols : public CNewRtrWizProtocols
  683. {
  684. public:
  685. CNewRtrWizVpnProtocols();
  686. enum { IDD = IDD_NEWRTRWIZ_VPN_A_PROTOCOLS };
  687. // Override this so that we can ensure that IP is always checked
  688. virtual HRESULT OnSavePage();
  689. };
  690. /*---------------------------------------------------------------------------
  691. Class: CNewRtrWizVpnFinishNeedProtocols
  692. ---------------------------------------------------------------------------*/
  693. DEFINE_NEWRTRWIZ_FINISH_PAGE(CNewRtrWizVpnFinishNeedProtocols,
  694. IDD_NEWRTRWIZ_VPN_A_NEED_PROT)
  695. /*---------------------------------------------------------------------------
  696. Class: CNewRtrWizVpnFinishNeedProtocolsNonLocal
  697. ---------------------------------------------------------------------------*/
  698. DEFINE_NEWRTRWIZ_FINISH_PAGE(CNewRtrWizVpnFinishNeedProtocolsNonLocal,
  699. IDD_NEWRTRWIZ_VPN_A_NEED_PROT_NONLOCAL)
  700. /*---------------------------------------------------------------------------
  701. CNewRtrWizRouterProtocols
  702. ---------------------------------------------------------------------------*/
  703. class CNewRtrWizRouterProtocols : public CNewRtrWizProtocols
  704. {
  705. public:
  706. CNewRtrWizRouterProtocols();
  707. enum { IDD = IDD_NEWRTRWIZ_ROUTER_PROTOCOLS };
  708. };
  709. /*---------------------------------------------------------------------------
  710. Class: CNewRtrWizRouterFinishNeedProtocols
  711. ---------------------------------------------------------------------------*/
  712. DEFINE_NEWRTRWIZ_FINISH_PAGE(CNewRtrWizRouterFinishNeedProtocols,
  713. IDD_NEWRTRWIZ_ROUTER_NEED_PROT)
  714. /*---------------------------------------------------------------------------
  715. Class: CNewRtrWizRouterFinishNeedProtocolsNonLocal
  716. ---------------------------------------------------------------------------*/
  717. DEFINE_NEWRTRWIZ_FINISH_PAGE(CNewRtrWizRouterFinishNeedProtocolsNonLocal,
  718. IDD_NEWRTRWIZ_ROUTER_NEED_PROT_NONLOCAL)
  719. /*---------------------------------------------------------------------------
  720. CNewRtrWizAppletalk
  721. ---------------------------------------------------------------------------*/
  722. class CNewRtrWizAppletalk : public CNewRtrWizPageBase
  723. {
  724. public:
  725. CNewRtrWizAppletalk(UINT uDialogId);
  726. public:
  727. virtual BOOL OnInitDialog();
  728. virtual HRESULT OnSavePage();
  729. protected:
  730. DECLARE_MESSAGE_MAP()
  731. };
  732. /*---------------------------------------------------------------------------
  733. CNewRtrWizRasAppletalk
  734. ---------------------------------------------------------------------------*/
  735. class CNewRtrWizRasAppletalk : public CNewRtrWizAppletalk
  736. {
  737. public:
  738. CNewRtrWizRasAppletalk();
  739. enum { IDD = IDD_NEWRTRWIZ_RAS_A_ATALK };
  740. };
  741. /*---------------------------------------------------------------------------
  742. CNewRtrWizVpnAppletalk
  743. ---------------------------------------------------------------------------*/
  744. class CNewRtrWizVpnAppletalk : public CNewRtrWizAppletalk
  745. {
  746. public:
  747. CNewRtrWizVpnAppletalk();
  748. enum { IDD = IDD_NEWRTRWIZ_VPN_A_ATALK };
  749. };
  750. /*---------------------------------------------------------------------------
  751. CNewRtrWizSelectNetwork
  752. ---------------------------------------------------------------------------*/
  753. class CNewRtrWizSelectNetwork : public CNewRtrWizPageBase
  754. {
  755. public:
  756. CNewRtrWizSelectNetwork(UINT uDialogId);
  757. public:
  758. virtual BOOL OnInitDialog();
  759. virtual HRESULT OnSavePage();
  760. virtual VOID DoDataExchange(CDataExchange *pDX);
  761. protected:
  762. CListCtrl m_listCtrl;
  763. DECLARE_MESSAGE_MAP()
  764. };
  765. /*---------------------------------------------------------------------------
  766. CNewRtrWizRasSelectNetwork
  767. ---------------------------------------------------------------------------*/
  768. class CNewRtrWizRasSelectNetwork : public CNewRtrWizSelectNetwork
  769. {
  770. public:
  771. CNewRtrWizRasSelectNetwork();
  772. enum { IDD = IDD_NEWRTRWIZ_RAS_A_NETWORK };
  773. };
  774. /*---------------------------------------------------------------------------
  775. CNewRtrWizRasNoNICs
  776. ---------------------------------------------------------------------------*/
  777. class CNewRtrWizRasNoNICs : public CNewRtrWizPageBase
  778. {
  779. public:
  780. CNewRtrWizRasNoNICs();
  781. enum { IDD = IDD_NEWRTRWIZ_RAS_A_NONICS };
  782. public:
  783. virtual BOOL OnInitDialog();
  784. virtual HRESULT OnSavePage();
  785. virtual VOID DoDataExchange(CDataExchange *pDX);
  786. protected:
  787. DECLARE_MESSAGE_MAP()
  788. };
  789. /*---------------------------------------------------------------------------
  790. CNewRtrWizRasFinishNoNICs
  791. ---------------------------------------------------------------------------*/
  792. DEFINE_NEWRTRWIZ_FINISH_PAGE(CNewRtrWizRasFinishNoNICs,
  793. IDD_NEWRTRWIZ_RAS_A_FINISH_NONICS)
  794. /*---------------------------------------------------------------------------
  795. CNewRtrWizAddressing
  796. ---------------------------------------------------------------------------*/
  797. class CNewRtrWizAddressing : public CNewRtrWizPageBase
  798. {
  799. public:
  800. CNewRtrWizAddressing(UINT uDialogId);
  801. public:
  802. virtual BOOL OnInitDialog();
  803. virtual HRESULT OnSavePage();
  804. virtual VOID DoDataExchange(CDataExchange *pDX);
  805. protected:
  806. DECLARE_MESSAGE_MAP()
  807. };
  808. /*---------------------------------------------------------------------------
  809. CNewRtrWizRasAddressing
  810. ---------------------------------------------------------------------------*/
  811. class CNewRtrWizRasAddressing : public CNewRtrWizAddressing
  812. {
  813. public:
  814. CNewRtrWizRasAddressing();
  815. enum { IDD = IDD_NEWRTRWIZ_RAS_A_ADDRESSING };
  816. };
  817. /*---------------------------------------------------------------------------
  818. CNewRtrWizRasAddressingNoNICs
  819. ---------------------------------------------------------------------------*/
  820. class CNewRtrWizRasAddressingNoNICs : public CNewRtrWizAddressing
  821. {
  822. public:
  823. CNewRtrWizRasAddressingNoNICs();
  824. enum { IDD = IDD_NEWRTRWIZ_RAS_A_ADDRESSING_NONICS };
  825. };
  826. /*---------------------------------------------------------------------------
  827. CNewRtrWizVpnAddressing
  828. ---------------------------------------------------------------------------*/
  829. class CNewRtrWizVpnAddressing : public CNewRtrWizAddressing
  830. {
  831. public:
  832. CNewRtrWizVpnAddressing();
  833. enum { IDD = IDD_NEWRTRWIZ_VPN_A_ADDRESSING };
  834. };
  835. /*---------------------------------------------------------------------------
  836. CNewRtrWizRouterAddressing
  837. ---------------------------------------------------------------------------*/
  838. class CNewRtrWizRouterAddressing : public CNewRtrWizAddressing
  839. {
  840. public:
  841. CNewRtrWizRouterAddressing();
  842. enum { IDD = IDD_NEWRTRWIZ_ROUTER_ADDRESSING };
  843. };
  844. /*---------------------------------------------------------------------------
  845. CNewRtrWizAddressPool
  846. ---------------------------------------------------------------------------*/
  847. class CNewRtrWizAddressPool : public CNewRtrWizPageBase
  848. {
  849. public:
  850. CNewRtrWizAddressPool(UINT uDialogId);
  851. public:
  852. virtual BOOL OnInitDialog();
  853. virtual HRESULT OnSavePage();
  854. virtual BOOL OnSetActive();
  855. virtual VOID DoDataExchange(CDataExchange *pDX);
  856. protected:
  857. CListCtrl m_listCtrl;
  858. afx_msg VOID OnBtnNew();
  859. afx_msg VOID OnBtnEdit();
  860. afx_msg VOID OnBtnDelete();
  861. afx_msg VOID OnListDblClk(NMHDR *, LRESULT *);
  862. afx_msg VOID OnNotifyListItemChanged(NMHDR *, LRESULT *);
  863. DECLARE_MESSAGE_MAP()
  864. };
  865. /*---------------------------------------------------------------------------
  866. CNewRtrWizRasAddressPool
  867. ---------------------------------------------------------------------------*/
  868. class CNewRtrWizRasAddressPool : public CNewRtrWizAddressPool
  869. {
  870. public:
  871. CNewRtrWizRasAddressPool();
  872. enum { IDD = IDD_NEWRTRWIZ_RAS_A_ADDRESSPOOL };
  873. };
  874. /*---------------------------------------------------------------------------
  875. CNewRtrWizVpnAddressPool
  876. ---------------------------------------------------------------------------*/
  877. class CNewRtrWizVpnAddressPool : public CNewRtrWizAddressPool
  878. {
  879. public:
  880. CNewRtrWizVpnAddressPool();
  881. enum { IDD = IDD_NEWRTRWIZ_VPN_A_ADDRESSPOOL };
  882. };
  883. /*---------------------------------------------------------------------------
  884. CNewRtrWizRouterAddressPool
  885. ---------------------------------------------------------------------------*/
  886. class CNewRtrWizRouterAddressPool : public CNewRtrWizAddressPool
  887. {
  888. public:
  889. CNewRtrWizRouterAddressPool();
  890. enum { IDD = IDD_NEWRTRWIZ_ROUTER_ADDRESSPOOL };
  891. };
  892. /*---------------------------------------------------------------------------
  893. CNewRtrWizRadius
  894. ---------------------------------------------------------------------------*/
  895. class CNewRtrWizRadius : public CNewRtrWizPageBase
  896. {
  897. public:
  898. CNewRtrWizRadius(UINT uDialogId);
  899. public:
  900. virtual BOOL OnInitDialog();
  901. virtual HRESULT OnSavePage();
  902. virtual VOID DoDataExchange(CDataExchange *pDX);
  903. protected:
  904. DECLARE_MESSAGE_MAP()
  905. };
  906. /*---------------------------------------------------------------------------
  907. CNewRtrWizRasRadius
  908. ---------------------------------------------------------------------------*/
  909. class CNewRtrWizRasRadius : public CNewRtrWizRadius
  910. {
  911. public:
  912. CNewRtrWizRasRadius();
  913. enum { IDD = IDD_NEWRTRWIZ_RAS_A_USERADIUS };
  914. };
  915. /*---------------------------------------------------------------------------
  916. CNewRtrWizVpnRadius
  917. ---------------------------------------------------------------------------*/
  918. class CNewRtrWizVpnRadius : public CNewRtrWizRadius
  919. {
  920. public:
  921. CNewRtrWizVpnRadius();
  922. enum { IDD = IDD_NEWRTRWIZ_VPN_A_USERADIUS };
  923. };
  924. /*---------------------------------------------------------------------------
  925. CNewRtrWizRadiusConfig
  926. ---------------------------------------------------------------------------*/
  927. class CNewRtrWizRadiusConfig : public CNewRtrWizPageBase
  928. {
  929. public:
  930. CNewRtrWizRadiusConfig(UINT uDialogId);
  931. public:
  932. virtual BOOL OnInitDialog();
  933. virtual HRESULT OnSavePage();
  934. virtual VOID DoDataExchange(CDataExchange *pDX);
  935. protected:
  936. DWORD ResolveName(LPCTSTR pszServer);
  937. DECLARE_MESSAGE_MAP()
  938. };
  939. /*---------------------------------------------------------------------------
  940. CNewRtrWizRasRadiusConfig
  941. ---------------------------------------------------------------------------*/
  942. class CNewRtrWizRasRadiusConfig : public CNewRtrWizRadiusConfig
  943. {
  944. public:
  945. CNewRtrWizRasRadiusConfig();
  946. enum { IDD = IDD_NEWRTRWIZ_RAS_A_RADIUS_CONFIG };
  947. };
  948. /*---------------------------------------------------------------------------
  949. CNewRtrWizVpnRadiusConfig
  950. ---------------------------------------------------------------------------*/
  951. class CNewRtrWizVpnRadiusConfig : public CNewRtrWizRadiusConfig
  952. {
  953. public:
  954. CNewRtrWizVpnRadiusConfig();
  955. enum { IDD = IDD_NEWRTRWIZ_VPN_A_RADIUS_CONFIG };
  956. };
  957. /*---------------------------------------------------------------------------
  958. CNewRtrWizRasFinishAdvanced
  959. ---------------------------------------------------------------------------*/
  960. DEFINE_NEWRTRWIZ_FINISH_PAGE(CNewRtrWizRasFinishAdvanced,
  961. IDD_NEWRTRWIZ_RAS_A_FINISH)
  962. /*---------------------------------------------------------------------------
  963. CNewRtrWizVpnFinishNoNICs
  964. ---------------------------------------------------------------------------*/
  965. DEFINE_NEWRTRWIZ_FINISH_PAGE(CNewRtrWizVpnFinishNoNICs,
  966. IDD_NEWRTRWIZ_VPN_A_FINISH_NONICS)
  967. /*---------------------------------------------------------------------------
  968. Class: CNewRtrWizVpnFinishNoIP
  969. ---------------------------------------------------------------------------*/
  970. DEFINE_NEWRTRWIZ_FINISH_PAGE(CNewRtrWizVpnFinishNoIP,
  971. IDD_NEWRTRWIZ_VPN_NOIP)
  972. /*---------------------------------------------------------------------------
  973. Class: CNewRtrWizVpnFinishNoIPNonLocal
  974. ---------------------------------------------------------------------------*/
  975. DEFINE_NEWRTRWIZ_FINISH_PAGE(CNewRtrWizVpnFinishNoIPNonLocal,
  976. IDD_NEWRTRWIZ_VPN_NOIP_NONLOCAL)
  977. /*---------------------------------------------------------------------------
  978. CNewRtrWizVpnFinishAdvanced
  979. ---------------------------------------------------------------------------*/
  980. DEFINE_NEWRTRWIZ_FINISH_PAGE(CNewRtrWizVpnFinishAdvanced,
  981. IDD_NEWRTRWIZ_VPN_A_FINISH)
  982. /*---------------------------------------------------------------------------
  983. CNewRtrWizVpnSelectPublic
  984. ---------------------------------------------------------------------------*/
  985. class CNewRtrWizVpnSelectPublic : public CNewRtrWizPageBase
  986. {
  987. public:
  988. CNewRtrWizVpnSelectPublic();
  989. enum { IDD = IDD_NEWRTRWIZ_VPN_A_PUBLIC };
  990. public:
  991. virtual BOOL OnInitDialog();
  992. virtual HRESULT OnSavePage();
  993. virtual VOID DoDataExchange(CDataExchange *pDX);
  994. protected:
  995. CListCtrl m_listCtrl;
  996. afx_msg void OnButtonClick();
  997. DECLARE_MESSAGE_MAP()
  998. };
  999. /*---------------------------------------------------------------------------
  1000. CNewRtrWizVpnSelectPrivate
  1001. ---------------------------------------------------------------------------*/
  1002. class CNewRtrWizVpnSelectPrivate : public CNewRtrWizPageBase
  1003. {
  1004. public:
  1005. CNewRtrWizVpnSelectPrivate();
  1006. enum { IDD = IDD_NEWRTRWIZ_VPN_A_PRIVATE };
  1007. public:
  1008. virtual BOOL OnInitDialog();
  1009. virtual BOOL OnSetActive();
  1010. virtual HRESULT OnSavePage();
  1011. virtual VOID DoDataExchange(CDataExchange *pDX);
  1012. protected:
  1013. CListCtrl m_listCtrl;
  1014. DECLARE_MESSAGE_MAP()
  1015. };
  1016. /*---------------------------------------------------------------------------
  1017. Class: CNewRtrWizRouterUseDD
  1018. ---------------------------------------------------------------------------*/
  1019. class CNewRtrWizRouterUseDD : public CNewRtrWizPageBase
  1020. {
  1021. public:
  1022. CNewRtrWizRouterUseDD();
  1023. enum { IDD = IDD_NEWRTRWIZ_ROUTER_USEDD };
  1024. public:
  1025. virtual BOOL OnInitDialog();
  1026. virtual VOID DoDataExchange(CDataExchange *pDX);
  1027. virtual HRESULT OnSavePage();
  1028. protected:
  1029. DECLARE_MESSAGE_MAP()
  1030. };
  1031. /*---------------------------------------------------------------------------
  1032. Class: CNewRtrWizRouterFinish
  1033. ---------------------------------------------------------------------------*/
  1034. DEFINE_NEWRTRWIZ_FINISH_PAGE(CNewRtrWizRouterFinish,
  1035. IDD_NEWRTRWIZ_ROUTER_FINISH)
  1036. /*---------------------------------------------------------------------------
  1037. Class: CNewRtrWizRouterFinishDD
  1038. ---------------------------------------------------------------------------*/
  1039. DEFINE_NEWRTRWIZ_FINISH_PAGE(CNewRtrWizRouterFinishDD,
  1040. IDD_NEWRTRWIZ_ROUTER_FINISH_DD)
  1041. /*---------------------------------------------------------------------------
  1042. Class: CNewRtrWizManualFinish
  1043. ---------------------------------------------------------------------------*/
  1044. DEFINE_NEWRTRWIZ_FINISH_PAGE(CNewRtrWizManualFinish,
  1045. IDD_NEWRTRWIZ_MANUAL_FINISH)
  1046. ///////////////////////////////////////////////////////////////////////////////
  1047. //
  1048. // CNewRtrWiz
  1049. // page holder to contain Router install wizard pages
  1050. //
  1051. /////////////////////////////////////////////////////////////////////////////
  1052. class CNewRtrWiz : public CPropertyPageHolderBase
  1053. {
  1054. public:
  1055. CNewRtrWiz (ITFSNode * pNode,
  1056. IRouterInfo * pRouter,
  1057. IComponentData * pComponentData,
  1058. ITFSComponentData * pTFSCompData,
  1059. LPCTSTR pszSheetName);
  1060. virtual ~CNewRtrWiz();
  1061. HRESULT Init(LPCTSTR pszServerName);
  1062. virtual DWORD OnFinish();
  1063. HRESULT QueryForTestData()
  1064. {
  1065. return m_RtrWizData.QueryForTestData();
  1066. }
  1067. protected:
  1068. CNewRtrWizWelcome m_pageWelcome;
  1069. CNewRtrWizCommonConfig m_pageCommonConfig;
  1070. CNewRtrWizNatFinishSConflict m_pageNatFinishSConflict;
  1071. CNewRtrWizNatFinishSConflictNonLocal m_pageNatFinishSConflictNonLocal;
  1072. CNewRtrWizNatFinishAConflict m_pageNatFinishAConflict;
  1073. CNewRtrWizNatFinishAConflictNonLocal m_pageNatFinishAConflictNonLocal;
  1074. CNewRtrWizNatFinishNoIP m_pageNatFinishNoIP;
  1075. CNewRtrWizNatFinishNoIPNonLocal m_pageNatFinishNoIPNonLocal;
  1076. CNewRtrWizNatChoice m_pageNatChoice;
  1077. CNewRtrWizNatSelectPublic m_pageNatSelectPublic;
  1078. CNewRtrWizNatSelectPrivate m_pageNatSelectPrivate;
  1079. CNewRtrWizNatFinishAdvancedNoNICs m_pageNatFinishAdvancedNoNICs;
  1080. CNewRtrWizNatDHCPDNS m_pageNatDHCPDNS;
  1081. CNewRtrWizNatDHCPWarning m_pageNatDHCPWarning;
  1082. CNewRtrWizNatDDWarning m_pageNatDDWarning;
  1083. CNewRtrWizNatFinish m_pageNatFinish;
  1084. CNewRtrWizNatFinishExternal m_pageNatFinishExternal;
  1085. CNewRtrWizNatFinishDDError m_pageNatFinishDDError;
  1086. CNewRtrWizRasChoice m_pageRasChoice;
  1087. CNewRtrWizRasProtocols m_pageRasProtocols;
  1088. CNewRtrWizRasFinishNeedProtocols m_pageRasFinishNeedProtocols;
  1089. CNewRtrWizRasFinishNeedProtocolsNonLocal m_pageRasFinishNeedProtocolsNonLocal;
  1090. CNewRtrWizRasAppletalk m_pageRasAppletalk;
  1091. CNewRtrWizRasNoNICs m_pageRasNoNICs;
  1092. CNewRtrWizRasFinishNoNICs m_pageRasFinishNoNICs;
  1093. CNewRtrWizRasSelectNetwork m_pageRasNetwork;
  1094. CNewRtrWizRasAddressingNoNICs m_pageRasAddressingNoNICs;
  1095. CNewRtrWizRasAddressing m_pageRasAddressing;
  1096. CNewRtrWizRasAddressPool m_pageRasAddressPool;
  1097. CNewRtrWizRasRadius m_pageRasRadius;
  1098. CNewRtrWizRasRadiusConfig m_pageRasRadiusConfig;
  1099. CNewRtrWizRasFinishAdvanced m_pageRasFinishAdvanced;
  1100. CNewRtrWizVpnFinishNoNICs m_pageVpnFinishNoNICs;
  1101. CNewRtrWizVpnFinishNoIP m_pageVpnFinishNoIP;
  1102. CNewRtrWizVpnFinishNoIPNonLocal m_pageVpnFinishNoIPNonLocal;
  1103. CNewRtrWizVpnProtocols m_pageVpnProtocols;
  1104. CNewRtrWizVpnFinishNeedProtocols m_pageVpnFinishNeedProtocols;
  1105. CNewRtrWizVpnFinishNeedProtocolsNonLocal m_pageVpnFinishNeedProtocolsNonLocal;
  1106. CNewRtrWizVpnAppletalk m_pageVpnAppletalk;
  1107. CNewRtrWizVpnSelectPublic m_pageVpnSelectPublic;
  1108. CNewRtrWizVpnSelectPrivate m_pageVpnSelectPrivate;
  1109. CNewRtrWizVpnAddressing m_pageVpnAddressing;
  1110. CNewRtrWizVpnAddressPool m_pageVpnAddressPool;
  1111. CNewRtrWizVpnRadius m_pageVpnRadius;
  1112. CNewRtrWizVpnRadiusConfig m_pageVpnRadiusConfig;
  1113. CNewRtrWizVpnFinishAdvanced m_pageVpnFinishAdvanced;
  1114. CNewRtrWizRouterProtocols m_pageRouterProtocols;
  1115. CNewRtrWizRouterFinishNeedProtocols m_pageRouterFinishNeedProtocols;
  1116. CNewRtrWizRouterFinishNeedProtocolsNonLocal m_pageRouterFinishNeedProtocolsNonLocal;
  1117. CNewRtrWizRouterUseDD m_pageRouterUseDD;
  1118. CNewRtrWizRouterAddressing m_pageRouterAddressing;
  1119. CNewRtrWizRouterAddressPool m_pageRouterAddressPool;
  1120. CNewRtrWizRouterFinish m_pageRouterFinish;
  1121. CNewRtrWizRouterFinishDD m_pageRouterFinishDD;
  1122. CNewRtrWizManualFinish m_pageManualFinish;
  1123. public:
  1124. SPIRouterInfo m_spRouter;
  1125. protected:
  1126. SPITFSComponentData m_spTFSCompData;
  1127. CString m_stServerName;
  1128. NewRtrWizData m_RtrWizData;
  1129. PPageList m_pagelist;
  1130. };
  1131. class CNewWizTestParams : public CBaseDialog
  1132. {
  1133. public:
  1134. CNewWizTestParams() :
  1135. CBaseDialog(IDD_TEST_NEWWIZ_PARAMS)
  1136. {};
  1137. void SetData(NewRtrWizData *pWizData)
  1138. { m_pWizData = pWizData; }
  1139. protected:
  1140. NewRtrWizData * m_pWizData;
  1141. //{{AFX_VIRTUAL(CNewWizTestParams)
  1142. protected:
  1143. virtual BOOL OnInitDialog();
  1144. virtual void OnOK();
  1145. //}}AFX_VIRTUAL
  1146. DECLARE_MESSAGE_MAP()
  1147. };
  1148. #endif // !defined _RRASWIZ_H_