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; }