update to 9.7.1-P2
[tridge/bind9.git] / bin / win32 / BINDInstall / BINDInstallDlg.h
1 /*
2  * Portions Copyright (C) 2004, 2007, 2009  Internet Systems Consortium, Inc. ("ISC")
3  * Portions Copyright (C) 2001  Internet Software Consortium.
4  *
5  * Permission to use, copy, modify, and/or distribute this software for any
6  * purpose with or without fee is hereby granted, provided that the above
7  * copyright notice and this permission notice appear in all copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
10  * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11  * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
12  * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13  * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
14  * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15  * PERFORMANCE OF THIS SOFTWARE.
16  */
17
18 /* $Id: BINDInstallDlg.h,v 1.11 2009/09/01 06:51:47 marka Exp $ */
19
20 /*
21  * Copyright (c) 1999-2000 by Nortel Networks Corporation
22  *
23  * Permission to use, copy, modify, and distribute this software for any
24  * purpose with or without fee is hereby granted, provided that the above
25  * copyright notice and this permission notice appear in all copies.
26  *
27  * THE SOFTWARE IS PROVIDED "AS IS" AND NORTEL NETWORKS DISCLAIMS
28  * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
29  * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NORTEL NETWORKS
30  * BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
31  * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
32  * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
33  * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
34  * SOFTWARE.
35  */
36
37 #ifndef BINDINSTALLDLG_H
38 #define BINDINSTALLDLG_H
39
40 class CBINDInstallDlg : public CDialog
41 {
42 public:
43         CBINDInstallDlg(CWnd* pParent = NULL);  // standard constructor
44
45         //{{AFX_DATA(CBINDInstallDlg)
46         enum { IDD = IDD_BINDINSTALL_DIALOG };
47         CString m_targetDir;
48         CString m_version;
49         BOOL    m_autoStart;
50         BOOL    m_keepFiles;
51         BOOL    m_toolsOnly;
52         CString m_current;
53         BOOL    m_startOnInstall;
54         //}}AFX_DATA
55
56         // ClassWizard generated virtual function overrides
57         //{{AFX_VIRTUAL(CBINDInstallDlg)
58         protected:
59         virtual void DoDataExchange(CDataExchange* pDX);        // DDX/DDV support
60         //}}AFX_VIRTUAL
61
62 protected:
63         void StartBINDService();
64         void StopBINDService();
65
66         void InstallTags();
67         void UninstallTags();
68
69         void CreateDirs();
70         void RemoveDirs(BOOL uninstall);
71
72         void CopyFiles();
73         void DeleteFiles(BOOL uninstall);
74
75         void RegisterService();
76         void UpdateService(CString StartName);
77         void UnregisterService(BOOL uninstall);
78
79         void RegisterMessages();
80         void UnregisterMessages(BOOL uninstall);
81
82         void FailedInstall();
83         void SetItemStatus(UINT nID, BOOL bSuccess = TRUE);
84
85         void GetCurrentServiceAccountName();
86         BOOL ValidateServiceAccount();
87 protected:
88         CString DestDir(int destination);
89         int MsgBox(int id,  ...);
90         int MsgBox(int id, UINT type, ...);
91         CString GetErrMessage(DWORD err = -1);
92         BOOL CheckBINDService();
93         void SetCurrent(int id, ...);
94         void ProgramGroup(BOOL create = TRUE);
95
96         HICON m_hIcon;
97         CString m_defaultDir;
98         CString m_etcDir;
99         CString m_binDir;
100         CString m_winSysDir;
101         BOOL m_installed;
102         CString m_currentDir;
103         BOOL    m_accountExists;
104         BOOL    m_accountUsed;
105         CString m_currentAccount;
106         CString m_accountName;
107         CString m_accountPasswordConfirm;
108         CString m_accountPassword;
109         BOOL    m_serviceExists;
110
111         // Generated message map functions
112         //{{AFX_MSG(CBINDInstallDlg)
113         virtual BOOL OnInitDialog();
114         afx_msg void OnPaint();
115         afx_msg HCURSOR OnQueryDragIcon();
116         afx_msg void OnBrowse();
117         afx_msg void OnChangeTargetdir();
118         afx_msg void OnInstall();
119         afx_msg void OnExit();
120         afx_msg void OnUninstall();
121         afx_msg void OnAutoStart();
122         afx_msg void OnKeepFiles();
123         afx_msg void OnStartOnInstall();
124         //}}AFX_MSG
125         DECLARE_MESSAGE_MAP()
126 };
127
128 #endif