www.pudn.com > doc2pdf-0_7_1.rar > doc2pdf_reg.cpp


///////////////////////////////////////////////////////////////////////////// 
//  
// Project:		Doc2pdf 
// 
// File:		doc2pdf_reg.cpp 
// 
// Author(s):	Matt Peterson  
// 
// Description:	Classes used to store configuration information 
// 
///////////////////////////////////////////////////////////////////////////// 
 
#include "doc2pdf_reg.h" 
 
Doc2pdfRegistry::Doc2pdfRegistry() 
{ 
	m_Reg.Create(HKEY_CURRENT_USER,"Software\\Doc2pdf"); 
	m_DirReg.Create(HKEY_CURRENT_USER,"Software\\Doc2pdf\\Directories"); 
	m_MailboxReg.Create(HKEY_CURRENT_USER,"Software\\Doc2pdf\\Mailboxes"); 
} 
 
Doc2pdfRegistry::~Doc2pdfRegistry() 
{ 
	m_Reg.Close(); 
	m_DirReg.Close(); 
	m_MailboxReg.Close(); 
} 
 
int Doc2pdfRegistry::GetDirectoryInfo(const CString& id, Doc2pdfDirectoryInfo& dirinfo) 
{ 
	CHAR		str[MAX_PATH]; 
	DWORD		strsize; 
	CRegKey		subkey; 
	int			result; 
 
	CString idTemp = id; 
	idTemp.Replace( '\\', '@' ); 
 
	result = subkey.Open(m_DirReg,idTemp); 
	if(result != ERROR_SUCCESS) 
	{ 
		goto END; 
	} 
 
	strsize = MAX_PATH; 
	result = subkey.QueryValue(str,"sourcedir",&strsize); 
	if(result != ERROR_SUCCESS) 
	{ 
		goto END; 
	} 
	dirinfo.m_Sourcedir = str; 
	 
	strsize = MAX_PATH; 
	result = subkey.QueryValue(str,"destdir",&strsize); 
	if(result != ERROR_SUCCESS) 
	{ 
		goto END; 
	} 
	dirinfo.m_Destdir = str; 
		 
END: 
 
	return result; 
} 
 
int Doc2pdfRegistry::GetMailboxInfo(const CString& id, Doc2pdfMailboxInfo& mboxinfo) 
{ 
	CHAR		str[MAX_PATH]; 
	DWORD		strsize; 
	CRegKey		subkey; 
	int			result; 
 
	result = subkey.Open(m_MailboxReg,id); 
	if(result != ERROR_SUCCESS) 
	{ 
		goto END; 
	} 
 
	strsize = MAX_PATH; 
	result = subkey.QueryValue(str,"pop3host",&strsize); 
	if(result != ERROR_SUCCESS) 
	{ 
		goto END; 
	} 
	mboxinfo.m_Pop3host = str; 
	 
	strsize = MAX_PATH; 
	result = subkey.QueryValue(str,"pop3user",&strsize); 
	if(result != ERROR_SUCCESS) 
	{ 
		goto END; 
	} 
	mboxinfo.m_Pop3user = str; 
	 
	strsize = MAX_PATH; 
	result = subkey.QueryValue(str,"pop3passwd",&strsize); 
	if(result != ERROR_SUCCESS) 
	{ 
		goto END; 
	} 
	mboxinfo.m_Pop3passwd = str; 
	 
	strsize = MAX_PATH; 
	result = subkey.QueryValue(str,"smpthost",&strsize); 
	if(result != ERROR_SUCCESS) 
	{ 
		goto END; 
	} 
	mboxinfo.m_Smtphost = str; 
	 
	strsize = MAX_PATH; 
	result = subkey.QueryValue(str,"myaddress",&strsize); 
	if(result != ERROR_SUCCESS) 
	{ 
		goto END; 
	} 
	mboxinfo.m_Myaddress = str; 
	if(mboxinfo.m_Myaddress.Left(1) != "<") 
	{ 
		mboxinfo.m_Myaddress.Insert(0,'<'); 
		mboxinfo.m_Myaddress += ">"; 
	} 
	 
END: 
 
	return result; 
} 
 
int Doc2pdfRegistry::GetSpoolDir(CString& spooldir) 
{ 
	CHAR	str[MAX_PATH]; 
	DWORD	strsize; 
	int		result; 
	 
	spooldir.Empty(); 
 
	strsize = MAX_PATH; 
	result = m_Reg.QueryValue(str,"spooldir",&strsize); 
	if(result == ERROR_SUCCESS) 
	{ 
		spooldir = str; 
	} 
 
	return result; 
} 
 
int Doc2pdfRegistry::GetGhostscriptDir(CString& ghostscriptdir) 
{ 
	CHAR	str[MAX_PATH]; 
	DWORD	strsize; 
	int		result; 
 
	ghostscriptdir.Empty(); 
 
	strsize = MAX_PATH; 
	result = m_Reg.QueryValue(str,"ghostscriptdir",&strsize); 
	if(result == ERROR_SUCCESS) 
	{ 
		ghostscriptdir = str; 
	} 
 
	return result; 
} 
 
 
int Doc2pdfRegistry::GetLogFilename(CString& logfilename) 
{ 
	CHAR	str[MAX_PATH]; 
	DWORD	strsize; 
	int		result; 
 
	logfilename.Empty(); 
 
	strsize = MAX_PATH; 
	result = m_Reg.QueryValue(str,"logfilename",&strsize); 
	if(result == ERROR_SUCCESS) 
	{ 
		logfilename = str; 
	} 
 
	return result; 
} 
 
int Doc2pdfRegistry::GetMailboxPollInterval(DWORD& pollinterval) 
{ 
	pollinterval = 0; 
	return  m_Reg.QueryValue(pollinterval,"mailpollinterval"); 
} 
 
int Doc2pdfRegistry::GetDirectoryPollInterval(DWORD& pollinterval) 
{ 
	pollinterval = 0; 
	return  m_Reg.QueryValue(pollinterval,"dirpollinterval"); 
} 
 
int Doc2pdfRegistry::SetDirectoryInfo(const CString& id, const Doc2pdfDirectoryInfo& dirinfo) 
{ 
	CRegKey	subkey; 
	int		result; 
	CString idTemp = id; 
	idTemp.Replace( '\\', '@' ); 
 
	result = subkey.Create(m_DirReg,idTemp); 
	if(result != ERROR_SUCCESS) 
	{ 
		goto END; 
	} 
 
	result = subkey.SetValue(dirinfo.m_Sourcedir,"sourcedir"); 
	if(result != ERROR_SUCCESS) 
	{ 
		goto END; 
	} 
 
	result = subkey.SetValue(dirinfo.m_Destdir,"destdir"); 
	if(result != ERROR_SUCCESS) 
	{ 
		goto END; 
	} 
 
END: 
 
	return result; 
} 
 
int Doc2pdfRegistry::SetMailboxInfo(const CString& id, const Doc2pdfMailboxInfo& mboxinfo) 
{ 
	CRegKey	subkey; 
	int		result; 
 
	result = subkey.Create(m_MailboxReg,id); 
	if(result != ERROR_SUCCESS) 
	{ 
		goto END; 
	} 
 
	result = subkey.SetValue(mboxinfo.m_Pop3host,"pop3host"); 
	if(result != ERROR_SUCCESS) 
	{ 
		goto END; 
	} 
 
	result = subkey.SetValue(mboxinfo.m_Pop3user,"pop3user"); 
	if(result != ERROR_SUCCESS) 
	{ 
		goto END; 
	} 
 
	result = subkey.SetValue(mboxinfo.m_Pop3passwd,"pop3passwd"); 
	if(result != ERROR_SUCCESS) 
	{ 
		goto END; 
	} 
 
	result = subkey.SetValue(mboxinfo.m_Smtphost,"smpthost"); 
	if(result != ERROR_SUCCESS) 
	{ 
		goto END; 
	} 
 
	result = subkey.SetValue(mboxinfo.m_Myaddress,"myaddress"); 
	if(result != ERROR_SUCCESS) 
	{ 
		goto END; 
	} 
 
END: 
 
	return result; 
} 
 
int Doc2pdfRegistry::SetSpoolDir(const CString& spooldir) 
{ 
	return m_Reg.SetValue(spooldir,"spooldir"); 
} 
 
int Doc2pdfRegistry::SetGhostscriptDir(const CString& ghostscriptdir) 
{ 
	return m_Reg.SetValue(ghostscriptdir,"ghostscriptdir"); 
} 
 
int Doc2pdfRegistry::SetLogFilename(const CString& logfilename) 
{ 
	return m_Reg.SetValue(logfilename,"logfilename"); 
} 
 
int Doc2pdfRegistry::SetMailboxPollInterval(DWORD pollinterval) 
{ 
	return m_Reg.SetValue(pollinterval,"mailpollinterval"); 
} 
 
int Doc2pdfRegistry::SetDirectoryPollInterval(DWORD pollinterval) 
{ 
	return m_Reg.SetValue(pollinterval,"dirpollinterval"); 
} 
 
int Doc2pdfRegistry::RemoveMailboxInfo(const CString& id) 
{ 
	return m_MailboxReg.DeleteSubKey(id); 
} 
 
int Doc2pdfRegistry::RemoveDirectoryInfo(const CString& id) 
{ 
	CString idTemp = id; 
	idTemp.Replace( '\\', '@' ); 
	return m_DirReg.DeleteSubKey(idTemp); 
} 
 
int Doc2pdfRegistry::GetAllDirectoryIds(CStringList* ids) 
{ 
	int			i=0; 
	char		id[MAX_PATH]; 
	DWORD		idsize = MAX_PATH; 
	FILETIME	writetime; 
 
	while(RegEnumKeyEx(m_DirReg, 
					   i, 
					   id, 
					   &idsize, 
					   NULL, 
					   NULL, 
					   NULL, 
					   &writetime) == ERROR_SUCCESS) 
	{ 
		if(ids) 
		{ 
			CString idTemp = id; 
			idTemp.Replace( '@', '\\' ); 
			ids->AddTail(idTemp); 
		} 
		idsize = MAX_PATH; 
		i++; 
	} 
	 
	return i; 
} 
	 
int Doc2pdfRegistry::GetAllMailboxIds(CStringList* ids) 
{ 
	int			i=0; 
	char		id[MAX_PATH]; 
	DWORD		idsize = MAX_PATH; 
	FILETIME	writetime; 
 
	while(RegEnumKeyEx(m_MailboxReg, 
					   i, 
					   id, 
					   &idsize, 
					   NULL, 
					   NULL, 
					   NULL, 
					   &writetime) == ERROR_SUCCESS) 
	{ 
		if(ids) 
		{ 
			ids->AddTail(id); 
		} 
		idsize = MAX_PATH; 
		i++; 
	} 
	 
	return i; 
}