/*++ Copyright (c) 1994-2000 Microsoft Corporation Module Name : metaback.h Abstract: Metabase backup and restore dialog definitions Author: Ronald Meijer (ronaldm) Sergei Antonov (sergeia) Project: Internet Services Manager Revision History: --*/ #ifndef __METABACK_H__ #define __METABACK_H__ class CBackupFile : public CObjectPlus /*++ Class Description: Backup location object Public Interface: CBackupFile : Constructor QueryVersion : Get the version number QueryLocation : Get the location name GetTime : Get the time --*/ { // // Constructor // public: CBackupFile( IN LPCTSTR lpszLocation, IN DWORD dwVersion, IN FILETIME * pft ); public: DWORD QueryVersion() const { return m_dwVersion; } LPCTSTR QueryLocation() const { return m_strLocation; } void GetTime(OUT CTime & tim); private: DWORD m_dwVersion; CString m_strLocation; FILETIME m_ft; }; class CBackupsListBox : public CHeaderListBox /*++ Class Description: A listbox of CBackupFile objects Public Interface: CBackupsListBox : Constructor GetItem : Get backup object at index AddItem : Add item to listbox InsertItem : Insert item into the listbox Initialize : Initialize the listbox --*/ { DECLARE_DYNAMIC(CBackupsListBox); public: static const nBitmaps; // Number of bitmaps public: CBackupsListBox(); public: CBackupFile * GetItem(UINT nIndex); CBackupFile * GetNextSelectedItem(int * pnStartingIndex); int AddItem(CBackupFile * pItem); int InsertItem(int nPos, CBackupFile * pItem); virtual BOOL Initialize(); protected: virtual void DrawItemEx(CRMCListBoxDrawStruct & s); }; class CBkupPropDlg : public CDialog /*++ Class Description: Backup file properties dialog Public Interface: CBkupPropDlg : Constructor QueryName : Return the name of the backup file --*/ { // // Construction // public: // // Standard Constructor // CBkupPropDlg( IN CIISMachine * pMachine, IN CWnd * pParent = NULL ); // // Access // public: LPCTSTR QueryName() const { return m_strName; } // // Dialog Data // protected: //{{AFX_DATA(CBkupPropDlg) enum { IDD = IDD_BACKUP }; CEdit m_edit_Name; CButton m_button_OK; CString m_strPassword; CEdit m_edit_Password; CString m_strPasswordConfirm; CEdit m_edit_PasswordConfirm; CButton m_button_Password; CString m_strName; //}}AFX_DATA // // Overrides // protected: //{{AFX_VIRTUAL(CBkupPropDlg) protected: virtual void DoDataExchange(CDataExchange * pDX); //}}AFX_VIRTUAL // // Implementation // protected: //{{AFX_MSG(CBkupPropDlg) afx_msg void OnChangeEditBackupName(); afx_msg void OnChangeEditPassword(); virtual BOOL OnInitDialog(); virtual void OnOK(); virtual void OnUsePassword(); //}}AFX_MSG DECLARE_MESSAGE_MAP() private: CIISMachine * m_pMachine; }; #define MIN_PASSWORD_LENGTH 1 class CBackupPassword : public CDialog { public: CBackupPassword(CWnd * pParent); //{{AFX_DATA(CBackupPassword) enum { IDD = IDD_PASSWORD }; CEdit m_edit; CButton m_button_OK; CString m_password; //}}AFX_DATA virtual void DoDataExchange(CDataExchange * pDX); protected: //{{AFX_MSG(CBackupPassword) afx_msg void OnChangedPassword(); virtual BOOL OnInitDialog(); //}}AFX_MSG DECLARE_MESSAGE_MAP() CString m_confirm_password; }; class CBackupDlg : public CDialog /*++ Class Description: Metabase backup/restore dialog Public Interface: CBackupDlg : Constructor HasChangedMetabase : TRUE if the metabase was changed --*/ { // // Construction // public: // // Standard Constructor // CBackupDlg( IN CIISMachine * pMachine, IN CWnd * pParent = NULL ); // // Access // public: BOOL HasChangedMetabase() const { return m_fChangedMetabase; } // // Dialog Data // protected: //{{AFX_DATA(CBackupDlg) enum { IDD = IDD_METABACKREST }; CButton m_button_Restore; CButton m_button_Delete; CButton m_button_Close; //}}AFX_DATA CBackupsListBox m_list_Backups; // // Overrides // protected: //{{AFX_VIRTUAL(CBackupDlg) protected: virtual void DoDataExchange(CDataExchange * pDX); //}}AFX_VIRTUAL // // Implementation // protected: //{{AFX_MSG(CBackupDlg) virtual BOOL OnInitDialog(); afx_msg void OnButtonCreate(); afx_msg void OnButtonDelete(); afx_msg void OnButtonRestore(); afx_msg void OnDblclkListBackups(); afx_msg void OnSelchangeListBackups(); //}}AFX_MSG DECLARE_MESSAGE_MAP() void SetControlStates(); HRESULT EnumerateBackups(IN LPCTSTR lpszSelect = NULL); CBackupFile * GetSelectedListItem(OUT int * pnSel = NULL); private: BOOL m_fChangedMetabase; CIISMachine * m_pMachine; CObListPlus m_oblBackups; CRMCListBoxResources m_ListBoxRes; }; // // Inline Expansion // // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< inline CBackupFile::CBackupFile( IN LPCTSTR lpszLocation, IN DWORD dwVersion, IN FILETIME * pft ) : m_dwVersion(dwVersion), m_strLocation(lpszLocation) { CopyMemory(&m_ft, pft, sizeof(m_ft)); } inline void CBackupFile::GetTime(CTime & tim) { tim = m_ft; } inline CBackupFile * CBackupsListBox::GetItem(UINT nIndex) { return (CBackupFile *)GetItemDataPtr(nIndex); } inline CBackupFile * CBackupsListBox::GetNextSelectedItem(int * pnStartingIndex) { return (CBackupFile *)CHeaderListBox::GetNextSelectedItem(pnStartingIndex); } inline int CBackupsListBox::AddItem(CBackupFile * pItem) { return AddString((LPCTSTR)pItem); } inline int CBackupsListBox::InsertItem(int nPos, CBackupFile * pItem) { return InsertString(nPos, (LPCTSTR)pItem); } inline CBackupFile * CBackupDlg::GetSelectedListItem(int * pnSel) { return (CBackupFile *)m_list_Backups.GetSelectedListItem(pnSel); } #endif // __METABACK_H__