亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bindinstalldlg.cpp

?? package of develop dns
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
/* * Portions Copyright (C) 2004  Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 2001, 2003  Internet Software Consortium. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. *//* $Id: BINDInstallDlg.cpp,v 1.6.2.6.2.10 2004/05/18 01:20:04 marka Exp $ *//* * Copyright (c) 1999-2000 by Nortel Networks Corporation * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND NORTEL NETWORKS DISCLAIMS * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NORTEL NETWORKS * BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. *//* * Define this to make a standalone installer that will copy msvcrt.dll * and/or msvcrtd.dll during the install */// #define BINARIES_INSTALL/* * msvcrt.dll is the release c-runtime library for MSVC.  msvcrtd.dll is the debug * c-runtime library for MSVC.  If you have debug binaries you want to have DEBUG_BINARIES * defined.  If you have release binaries you want to have RELEASE_BINARIES defined. * If you have both, then define them both. * Of course, you need msvcrt[d].dll present to install it! */#ifdef BINARIES_INSTALL// #  define DEBUG_BINARIES// #  define RELEASE_BINARIES#endif#include "stdafx.h"#include "BINDInstall.h"#include "BINDInstallDlg.h"#include "DirBrowse.h"#include <winsvc.h>#include <named/ntservice.h>#include <isc/bind_registry.h>#include <isc/ntgroups.h>#include <direct.h>#include "AccountInfo.h"#include "versioninfo.h"#define MAX_GROUPS	100#define MAX_PRIVS	 50#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endiftypedef struct _xexception{	_xexception(UINT string, ...);		CString resString;} Exception;_xexception::_xexception(UINT string, ...){	CString format;	va_list va;	format.LoadString(string);	va_start(va, string);	resString.FormatV(format, va);	va_end(va);}typedef struct _filedata {	enum FileDestinations {TargetDir, BinDir, EtcDir, WinSystem};	enum FileImportance {Trivial, Normal, Critical};	char *filename;	int destination;	int importance;	BOOL checkVer;} FileData;const FileData installFiles[] ={#ifdef BINARIES_INSTALL#  ifdef DEBUG_BINARIES	{"msvcrtd.dll", FileData::WinSystem, FileData::Critical, TRUE},#  endif#  ifdef RELEASE_BINARIES	{"msvcrt.dll", FileData::WinSystem, FileData::Critical, TRUE},#  endif#endif#if _MSC_VER >= 1310	{"mfc71.dll", FileData::WinSystem, FileData::Critical, TRUE},	{"msvcr71.dll", FileData::WinSystem, FileData::Critical, TRUE},#elif _MSC_VER > 1200	{"mfc70.dll", FileData::WinSystem, FileData::Critical, TRUE},	{"msvcr70.dll", FileData::WinSystem, FileData::Critical, TRUE},#endif	{"bindevt.dll", FileData::WinSystem, FileData::Normal, FALSE},	{"libbind9.dll", FileData::WinSystem, FileData::Critical, FALSE},	{"libisc.dll", FileData::WinSystem, FileData::Critical, FALSE},	{"libisccfg.dll", FileData::WinSystem, FileData::Critical, FALSE},	{"libisccc.dll", FileData::WinSystem, FileData::Critical, FALSE},	{"libdns.dll", FileData::WinSystem, FileData::Critical, FALSE},	{"liblwres.dll", FileData::WinSystem, FileData::Critical, FALSE},	{"libeay32.dll", FileData::BinDir, FileData::Critical, FALSE},	{"named.exe", FileData::BinDir, FileData::Critical, FALSE},	{"nsupdate.exe", FileData::BinDir, FileData::Normal, FALSE},	{"BINDInstall.exe", FileData::BinDir, FileData::Normal, FALSE},	{"rndc.exe", FileData::BinDir, FileData::Normal, FALSE},	{"dig.exe", FileData::BinDir, FileData::Normal, FALSE},	{"host.exe", FileData::BinDir, FileData::Normal, FALSE},	{"nslookup.exe", FileData::BinDir, FileData::Normal, FALSE},	{"rndc-confgen.exe", FileData::BinDir, FileData::Normal, FALSE},	{"dnssec-keygen.exe", FileData::BinDir, FileData::Normal, FALSE},	{"dnssec-signzone.exe", FileData::BinDir, FileData::Normal, FALSE},	{"named-checkconf.exe", FileData::BinDir, FileData::Normal, FALSE},	{"named-checkzone.exe", FileData::BinDir, FileData::Normal, FALSE},	{"readme1st.txt", FileData::BinDir, FileData::Trivial, FALSE},	{NULL, -1, -1}};/////////////////////////////////////////////////////////////////////////////// CBINDInstallDlg dialogCBINDInstallDlg::CBINDInstallDlg(CWnd* pParent /*=NULL*/)	: CDialog(CBINDInstallDlg::IDD, pParent) {	char buf[MAX_PATH];	//{{AFX_DATA_INIT(CBINDInstallDlg)	m_targetDir = _T("");	m_version = _T("");	m_autoStart = FALSE;	m_keepFiles = FALSE;	m_current = _T("");	m_startOnInstall = FALSE;	m_accountName = _T("");	m_accountPassword = _T("");	m_accountName = _T("");	//}}AFX_DATA_INIT	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);	GetSystemDirectory(buf, MAX_PATH);	m_winSysDir = buf;	m_defaultDir = buf;	m_defaultDir += "\\dns";	m_installed = FALSE;	m_accountExists = FALSE;	m_accountUsed = FALSE;	m_serviceExists = TRUE;	GetCurrentServiceAccountName();	m_currentAccount = m_accountName;	if (m_accountName == "") {		m_accountName = "named";	}}void CBINDInstallDlg::DoDataExchange(CDataExchange* pDX) {	CDialog::DoDataExchange(pDX);	//{{AFX_DATA_MAP(CBINDInstallDlg)	DDX_Text(pDX, IDC_TARGETDIR, m_targetDir);	DDX_Text(pDX, IDC_VERSION, m_version);	DDX_Text(pDX, IDC_ACCOUNT_NAME, m_accountName);	DDX_Text(pDX, IDC_ACCOUNT_PASSWORD, m_accountPassword);	DDX_Text(pDX, IDC_ACCOUNT_PASSWORD_CONFIRM, m_accountPasswordConfirm);	DDX_Check(pDX, IDC_AUTO_START, m_autoStart);	DDX_Check(pDX, IDC_KEEP_FILES, m_keepFiles);	DDX_Text(pDX, IDC_CURRENT, m_current);	DDX_Check(pDX, IDC_START, m_startOnInstall);	//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CBINDInstallDlg, CDialog)	//{{AFX_MSG_MAP(CBINDInstallDlg)	ON_WM_PAINT()	ON_WM_QUERYDRAGICON()	ON_BN_CLICKED(IDC_BROWSE, OnBrowse)	ON_BN_CLICKED(IDC_INSTALL, OnInstall)	ON_BN_CLICKED(IDC_EXIT, OnExit)	ON_BN_CLICKED(IDC_UNINSTALL, OnUninstall)	//}}AFX_MSG_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// CBINDInstallDlg message handlersBOOL CBINDInstallDlg::OnInitDialog() {	CDialog::OnInitDialog();	// Set the icon for this dialog.  The framework does this automatically	//  when the application's main window is not a dialog	SetIcon(m_hIcon, TRUE);			// Set big icon	SetIcon(m_hIcon, FALSE);		// Set small icon	char filename[MAX_PATH];	char dirname[MAX_PATH];	char *fptr = &filename[0];	GetModuleFileName(NULL, filename, MAX_PATH);	char *dptr = strrchr(filename,'\\');	int index = dptr - fptr;	strncpy(dirname, filename, index);	dirname[index] = '\0';	CString Dirname(dirname);	m_currentDir = Dirname;		CVersionInfo bindInst(filename);	if(bindInst.IsValid())		m_version.Format(IDS_VERSION, bindInst.GetFileVersionString());	else		m_version.LoadString(IDS_NO_VERSION);	DWORD dwBufLen = MAX_PATH;	char buf[MAX_PATH];	HKEY hKey;	m_startOnInstall = CheckBINDService();	/* See if we are installed already */	if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, BIND_SUBKEY, 0, KEY_READ, &hKey)			== ERROR_SUCCESS) {		m_installed = TRUE;		memset(buf, 0, MAX_PATH);		// Get the install directory		if (RegQueryValueEx(hKey, "InstallDir", NULL, NULL, (LPBYTE)buf,			&dwBufLen) == ERROR_SUCCESS)			if (strcmp(buf, ""))				m_defaultDir = buf;				RegCloseKey(hKey);	}	m_targetDir = m_defaultDir;	// Set checkbox defaults	m_autoStart = TRUE;	m_keepFiles = TRUE;	UpdateData(FALSE);	return (TRUE); /* return(TRUE) unless you set the focus to a control */}/* *  If you add a minimize button to your dialog, you will need the code below *  to draw the icon.  For MFC applications using the document/view model, *  this is automatically done for you by the framework. */void CBINDInstallDlg::OnPaint() {	if (IsIconic())	{		CPaintDC dc(this); // device context for painting		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);		// Center icon in client rectangle		int cxIcon = GetSystemMetrics(SM_CXICON);		int cyIcon = GetSystemMetrics(SM_CYICON);		CRect rect;		GetClientRect(&rect);		int x = (rect.Width() - cxIcon + 1) / 2;		int y = (rect.Height() - cyIcon + 1) / 2;		// Draw the icon		dc.DrawIcon(x, y, m_hIcon);	}	else {		CDialog::OnPaint();	}}// The system calls this to obtain the cursor to display while the user drags//  the minimized window.HCURSOR CBINDInstallDlg::OnQueryDragIcon() {	return((HCURSOR)m_hIcon);}void CBINDInstallDlg::OnBrowse() {	CDirBrowse browse;	if (browse.DoModal() == IDOK) 	{		//m_targetDir = browse.m_selectedDir;		UpdateData(FALSE);	}}/* * User pressed the exit button */void CBINDInstallDlg::OnExit() {	EndDialog(0);	}/* * User pressed the uninstall button.  Make it go. */void CBINDInstallDlg::OnUninstall() {	UpdateData();		if (MsgBox(IDS_UNINSTALL, MB_YESNO) == IDYES) {		if (CheckBINDService())			StopBINDService();		SC_HANDLE hSCManager = OpenSCManager(NULL, NULL,					SC_MANAGER_ALL_ACCESS);		if (!hSCManager) {			MsgBox(IDS_ERR_OPEN_SCM, GetErrMessage());			return;		}				SC_HANDLE hService = OpenService(hSCManager, BIND_SERVICE_NAME,					      SERVICE_ALL_ACCESS);		if (!hService && GetLastError() != ERROR_SERVICE_DOES_NOT_EXIST){			MsgBox(IDS_ERR_OPEN_SERVICE, GetErrMessage());			return;		}		SERVICE_STATUS ss;		QueryServiceStatus(hService, &ss);		if (ss.dwCurrentState == SERVICE_RUNNING) {			BOOL rc = ControlService(hService,					         SERVICE_CONTROL_STOP, &ss);			if (rc == FALSE || ss.dwCurrentState != SERVICE_STOPPED) {				MsgBox(IDS_ERR_STOP_SERVICE, GetErrMessage());				return;			}		}		CloseServiceHandle(hService);		CloseServiceHandle(hSCManager);				// Directories		m_etcDir = m_targetDir + "\\etc";		m_binDir = m_targetDir + "\\bin";		UninstallTags();		UnregisterMessages(TRUE);		UnregisterService(TRUE);		DeleteFiles(TRUE);		if (m_keepFiles == FALSE)			RemoveDirs(TRUE);		else			GetDlgItem(IDC_CREATE_DIR)->SetWindowText("Not Removed");				// Delete registry keys for named		RegDeleteKey(HKEY_LOCAL_MACHINE, BIND_SESSION_SUBKEY);		RegDeleteKey(HKEY_LOCAL_MACHINE, BIND_SUBKEY);		RegDeleteKey(HKEY_LOCAL_MACHINE, BIND_UNINSTALL_SUBKEY);			ProgramGroup(FALSE);		SetCurrent(IDS_UNINSTALL_DONE);		MsgBox(IDS_UNINSTALL_DONE);	}}/* * User pressed the install button.  Make it go. */void CBINDInstallDlg::OnInstall() {	BOOL success = FALSE;	if (CheckBINDService())		StopBINDService();	InstallTags();	UpdateData();	/* Check that the Passwords entered match */ 	if (m_accountPassword != m_accountPasswordConfirm) {		MsgBox(IDS_ERR_PASSWORD);		return;	}	/* Check the entered account name */	if (ValidateServiceAccount() == FALSE)		return;	/* For Registration we need to know if account was changed */	if(m_accountName != m_currentAccount)		m_accountUsed = FALSE;	/* Directories */	m_etcDir = m_targetDir + "\\etc";	m_binDir = m_targetDir + "\\bin";

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆成人久久精品二区三区| 成人丝袜高跟foot| 亚洲男同性视频| 国产精品九色蝌蚪自拍| 精品国产sm最大网站免费看| 欧美一区二区三区四区在线观看 | 日韩在线a电影| 午夜国产不卡在线观看视频| 婷婷丁香激情综合| 日本中文字幕一区二区视频| 视频一区免费在线观看| 日本三级韩国三级欧美三级| 看国产成人h片视频| 狠狠色狠狠色综合日日91app| 国产在线乱码一区二区三区| 国产伦精一区二区三区| 国产99久久久国产精品潘金| 91免费观看在线| 欧美日韩中文国产| 欧美xxxxx裸体时装秀| 久久久欧美精品sm网站| 中文字幕在线一区免费| 亚洲风情在线资源站| 精品亚洲国内自在自线福利| kk眼镜猥琐国模调教系列一区二区| 91免费观看在线| 91精品国产综合久久精品麻豆| 精品sm在线观看| 中文字幕在线观看不卡视频| 午夜精品久久久久久久久久| 狠狠色丁香久久婷婷综合_中| 99视频在线观看一区三区| 欧美丝袜第三区| 久久中文字幕电影| 一区二区三区在线观看网站| 美女精品一区二区| 91日韩精品一区| 精品噜噜噜噜久久久久久久久试看| 欧美国产综合色视频| 亚洲r级在线视频| 国产美女精品一区二区三区| 91久久国产最好的精华液| 日韩精品一区二区三区四区视频| 欧美国产1区2区| 偷窥少妇高潮呻吟av久久免费| 国产精品 欧美精品| 在线观看日韩一区| 国产精品久久国产精麻豆99网站| 蜜桃视频在线一区| 欧美综合久久久| 国产精品国产a| 久久99这里只有精品| 欧美色精品天天在线观看视频| 国产日韩成人精品| 美女视频一区在线观看| 在线观看三级视频欧美| 国产精品久久久久久久久晋中| 美女脱光内衣内裤视频久久影院| 日本精品免费观看高清观看| 国产精品伦理一区二区| 国产精品亚洲午夜一区二区三区 | 国产成人亚洲精品狼色在线| 91麻豆精品国产91久久久久久久久 | 国产精品久久久久婷婷| 久久精品国产第一区二区三区| 色综合久久久久| 中文字幕日韩精品一区| 国产不卡视频一区| 久久蜜臀中文字幕| 狠狠色丁香久久婷婷综| 精品美女在线观看| 美国三级日本三级久久99| 欧美日精品一区视频| 夜夜夜精品看看| 色婷婷精品大视频在线蜜桃视频 | 亚洲尤物在线视频观看| 一本大道久久a久久精品综合| 国产精品国产馆在线真实露脸| 国产成人在线观看免费网站| 国产清纯白嫩初高生在线观看91| 国产成人自拍网| 久久久久九九视频| 懂色av一区二区三区免费观看 | 在线亚洲一区二区| 亚洲六月丁香色婷婷综合久久| 91在线精品秘密一区二区| 国产精品毛片无遮挡高清| www.欧美亚洲| 一区二区三区四区激情 | 亚洲国产精品久久久久婷婷884 | 又紧又大又爽精品一区二区| 在线观看免费视频综合| 丝袜美腿亚洲综合| 精品福利一二区| av日韩在线网站| 亚洲精品你懂的| 91麻豆精品国产91久久久久久久久 | 亚洲国产视频a| 欧美区视频在线观看| 日本不卡不码高清免费观看| 久久久国产一区二区三区四区小说| 国产91对白在线观看九色| 亚洲狼人国产精品| 777久久久精品| 国产一本一道久久香蕉| 综合欧美一区二区三区| 555夜色666亚洲国产免| 国产成人精品一区二| 亚洲黄色小说网站| 欧美精品一区二| 91福利国产精品| 国产综合一区二区| 一级做a爱片久久| 久久综合精品国产一区二区三区| 色猫猫国产区一区二在线视频| 蜜臀久久99精品久久久久久9| 国产精品蜜臀av| 欧美岛国在线观看| 一本色道**综合亚洲精品蜜桃冫| 日本不卡视频在线| 亚洲精品视频在线看| 久久久噜噜噜久久人人看| 欧美日韩精品免费观看视频 | 日本韩国精品在线| 蜜臀av在线播放一区二区三区| 亚洲桃色在线一区| 久久久三级国产网站| 91精品国产综合久久久蜜臀图片 | 亚洲成av人在线观看| 中文字幕亚洲区| 久久影院视频免费| 欧美日韩国产美| 91福利在线导航| av成人免费在线观看| 精品无人区卡一卡二卡三乱码免费卡 | 亚洲精品高清在线| 国产精品国产三级国产aⅴ入口 | 日本一区中文字幕| 亚洲卡通动漫在线| 亚洲欧美视频一区| 国产精品福利一区| 日本一区二区免费在线观看视频| 日韩色在线观看| 欧美日韩国产成人在线免费| 色综合久久综合中文综合网| 不卡一卡二卡三乱码免费网站| 久久精品999| 另类小说综合欧美亚洲| 蜜乳av一区二区| 老司机免费视频一区二区三区| 日本亚洲电影天堂| 日产国产欧美视频一区精品| 日韩精品色哟哟| 日韩av午夜在线观看| 欧美aaaaa成人免费观看视频| 亚洲午夜视频在线| 亚洲成人综合视频| 天天色综合成人网| 日本不卡不码高清免费观看| 日本网站在线观看一区二区三区| 天天影视色香欲综合网老头| 麻豆成人久久精品二区三区小说| 六月丁香婷婷久久| 国产成人综合在线播放| 成人精品高清在线| 色综合久久久久综合99| 欧美三区在线观看| 日韩精品中文字幕一区| 久久久久97国产精华液好用吗| 欧美激情一区三区| 亚洲欧美色图小说| 青娱乐精品视频| 国产成人亚洲综合a∨婷婷图片| www.日本不卡| 欧美日韩国产另类一区| 精品福利一区二区三区| 国产精品国产精品国产专区不片| 一区二区三区小说| 精品在线播放免费| av在线不卡免费看| 欧美一区二区黄| 国产精品萝li| 视频在线观看一区二区三区| 国产精品456| 欧美亚一区二区| 精品国产凹凸成av人导航| 亚洲三级在线免费| 久久精品二区亚洲w码| 91小视频在线免费看| 欧美一级黄色录像| 中文字幕一区二区日韩精品绯色| 日日夜夜精品视频天天综合网| 成人午夜看片网址| 欧美一区二区性放荡片| 中文字幕五月欧美| 韩国女主播一区二区三区| 色综合久久久久| 国产欧美日韩一区二区三区在线观看| 亚洲国产日韩一区二区| 成人晚上爱看视频|