/////////////////////////////////////////////////////////////////////////////// // // Copyright (c) 2000, Microsoft Corp. All rights reserved. // // FILE // // policywiz.h // // SYNOPSIS // // Declares the classes that implement the new proxy policy wizard. // // MODIFICATION HISTORY // // 03/11/2000 Original version. // 04/19/2000 Marshall SDOs across apartments. // /////////////////////////////////////////////////////////////////////////////// #ifndef POLICYWIZ_H #define POLICYWIZ_H #if _MSC_VER >= 1000 #pragma once #endif #include class NewPolicyWizard; /////////////////////////////////////////////////////////////////////////////// // // CLASS // // NewPolicyStartPage // // DESCRIPTION // // Implements the Welcome page. // /////////////////////////////////////////////////////////////////////////////// class NewPolicyStartPage : public SnapInPropertyPage { public: NewPolicyStartPage(NewPolicyWizard& wizard); protected: virtual BOOL OnInitDialog(); virtual BOOL OnSetActive(); DEFINE_ERROR_CAPTION(IDS_POLICY_E_CAPTION); private: NewPolicyWizard& parent; }; /////////////////////////////////////////////////////////////////////////////// // // CLASS // // NewPolicyNamePage // // DESCRIPTION // // Implements the page where the user chooses the policy name. // /////////////////////////////////////////////////////////////////////////////// class NewPolicyNamePage : public SnapInPropertyPage { public: NewPolicyNamePage(NewPolicyWizard& wizard); PCWSTR getName() const throw () { return name; } protected: virtual LRESULT OnWizardNext(); afx_msg void onButtonClick(); afx_msg void onChangeName(); DECLARE_MESSAGE_MAP() DEFINE_ERROR_CAPTION(IDS_POLICY_E_CAPTION); virtual void setData(); void setButtons(); private: NewPolicyWizard& parent; CComBSTR name; }; /////////////////////////////////////////////////////////////////////////////// // // CLASS // // NewPolicyTypePage // // DESCRIPTION // // Implements the page where the user chooses the policy type. // /////////////////////////////////////////////////////////////////////////////// class NewPolicyTypePage : public SnapInPropertyPage { public: NewPolicyTypePage(NewPolicyWizard& wizard); protected: virtual LRESULT OnWizardNext(); afx_msg void onButtonClick(UINT id); DECLARE_MESSAGE_MAP() DEFINE_ERROR_CAPTION(IDS_POLICY_E_CAPTION); virtual void setData(); void setControlState(); private: NewPolicyWizard& parent; LONG outerType; LONG innerType; }; /////////////////////////////////////////////////////////////////////////////// // // CLASS // // NewPolicyOutsourcePage // // DESCRIPTION // // Implements the page for outsourced dial. // /////////////////////////////////////////////////////////////////////////////// class NewPolicyOutsourcePage : public SnapInPropertyPage { public: NewPolicyOutsourcePage(NewPolicyWizard& wizard); PCWSTR getRealm() const throw () { return realm; } bool isStripped() const throw () { return strip; } protected: virtual LRESULT OnWizardBack(); virtual LRESULT OnWizardNext(); afx_msg void onChangeRealm(); DECLARE_MESSAGE_MAP() DEFINE_ERROR_CAPTION(IDS_POLICY_E_CAPTION); virtual void setData(); void setButtons(); private: NewPolicyWizard& parent; CComBSTR realm; bool strip; }; /////////////////////////////////////////////////////////////////////////////// // // CLASS // // NewPolicyDirectPage // // DESCRIPTION // // Implements the page for dial-up and VPN directly to the corp. // /////////////////////////////////////////////////////////////////////////////// class NewPolicyDirectPage : public SnapInPropertyPage { public: NewPolicyDirectPage(NewPolicyWizard& wizard); protected: virtual BOOL OnInitDialog(); virtual BOOL OnSetActive(); virtual LRESULT OnWizardBack(); DEFINE_ERROR_CAPTION(IDS_POLICY_E_CAPTION); private: NewPolicyWizard& parent; }; /////////////////////////////////////////////////////////////////////////////// // // CLASS // // NewPolicyForwardPage // // DESCRIPTION // // Implements the page for forwarding to a RADIUS server group. // /////////////////////////////////////////////////////////////////////////////// class NewPolicyForwardPage : public SnapInPropertyPage { public: NewPolicyForwardPage(NewPolicyWizard& wizard); PCWSTR getRealm() const throw () { return realm; } PCWSTR getGroup() const throw () { return providerName; } bool isStripped() const throw () { return strip; } protected: virtual LRESULT OnWizardBack(); virtual LRESULT OnWizardNext(); afx_msg void onChangeRealm(); afx_msg void onNewGroup(); DECLARE_MESSAGE_MAP() DEFINE_ERROR_CAPTION(IDS_POLICY_E_CAPTION); virtual void setData(); void setButtons(); private: NewPolicyWizard& parent; SdoCollection serverGroups; CComboBox groupsCombo; CComBSTR realm; CComBSTR providerName; bool strip; }; /////////////////////////////////////////////////////////////////////////////// // // CLASS // // NewPolicyConditionPage // // DESCRIPTION // // Implements the page for editing the conditions. // /////////////////////////////////////////////////////////////////////////////// class NewPolicyConditionPage : public SnapInPropertyPage { public: NewPolicyConditionPage(NewPolicyWizard& wizard); protected: virtual BOOL OnInitDialog(); virtual LRESULT OnWizardBack(); virtual LRESULT OnWizardNext(); afx_msg void onAdd(); afx_msg void onEdit(); afx_msg void onRemove(); DECLARE_MESSAGE_MAP() DEFINE_ERROR_CAPTION(IDS_POLICY_E_CAPTION); virtual void setData(); void setButtons(); private: NewPolicyWizard& parent; CListBox listBox; ConditionList condList; }; /////////////////////////////////////////////////////////////////////////////// // // CLASS // // NewPolicyProfilePage // // DESCRIPTION // // Implements the page for editing the profile. // /////////////////////////////////////////////////////////////////////////////// class NewPolicyProfilePage : public SnapInPropertyPage { public: NewPolicyProfilePage(NewPolicyWizard& wizard); protected: virtual BOOL OnSetActive(); afx_msg void onEditProfile(); DECLARE_MESSAGE_MAP() DEFINE_ERROR_CAPTION(IDS_POLICY_E_CAPTION); private: NewPolicyWizard& parent; }; /////////////////////////////////////////////////////////////////////////////// // // CLASS // // NewPolicyFinishPage // // DESCRIPTION // // Implements the completion page. // /////////////////////////////////////////////////////////////////////////////// class NewPolicyFinishPage : public SnapInPropertyPage { public: NewPolicyFinishPage(NewPolicyWizard& wizard); protected: virtual BOOL OnInitDialog(); virtual LRESULT OnWizardBack(); DEFINE_ERROR_CAPTION(IDS_POLICY_E_CAPTION); virtual void setData(); virtual void saveChanges(); private: NewPolicyWizard& parent; CRichEditCtrl tasks; }; /////////////////////////////////////////////////////////////////////////////// // // CLASS // // NewPolicyWizard // // DESCRIPTION // // Implements the new proxy policy wizard. // /////////////////////////////////////////////////////////////////////////////// class NewPolicyWizard : public CPropertySheetEx { public: NewPolicyWizard( SdoConnection& connection, SnapInView* snapInView = NULL ); virtual INT_PTR DoModal(); ::CString getFinishText(); enum Type { OUTSOURCED, DIRECT, FORWARD, CUSTOM }; Type getType() const throw (); SdoConnection& cxn; SnapInView* view; ////////// // Public properties used by the wizard pages. ////////// Sdo policy; Sdo profile; SdoCollection conditions; SdoProfile attributes; LONG custom; LONG radius; LONG dialin; protected: virtual BOOL OnInitDialog(); private: SdoStream policyStream; SdoStream profileStream; NewPolicyStartPage start; NewPolicyNamePage name; NewPolicyTypePage type; NewPolicyOutsourcePage outsource; NewPolicyDirectPage direct; NewPolicyForwardPage forward; NewPolicyConditionPage condition; NewPolicyProfilePage profilePage; NewPolicyFinishPage finish; }; #endif // POLICYWIZ_H