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
40class CBINDInstallDlg : public CDialog
41{
42public:
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
62protected:
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();
87protected:
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
129