#include #include #include #include BOOL MailReg::getRecipients(Block &recipients) { DWORD itemIndex(0); RegKey regKey; String recipient; recipients.remove(); if(!regKey.openKey(STRING_MAILRECIPIENTSKEYNAME))return FALSE; while(regKey.enumValue(itemIndex++,String(STRING_RECIPIENTS),recipient))recipients.insert(&recipient); return (recipients.size()?TRUE:FALSE); } void MailReg::setRecipients(const Block &recipients) { String namePrefix; RegKey regKey; if(!regKey.openKey(STRING_MAILRECIPIENTSKEYNAME)) { regKey.createKey(STRING_MAILRECIPIENTSKEYNAME,""); regKey.openKey(STRING_MAILRECIPIENTSKEYNAME); } for(int lineIndex=0;lineIndex&)recipients)[lineIndex])); } } BOOL MailReg::addRecipient(const String &recipient) { Block recipients; String namePrefix; RegKey regKey; if(recipient.isNull())return FALSE; getRecipients(recipients); if(isInBlock(recipient,recipients)){setRecipients(recipients);return FALSE;} ::sprintf(namePrefix,"R%02d",recipients.size()); if(!regKey.openKey(STRING_MAILRECIPIENTSKEYNAME)) { regKey.createKey(STRING_MAILRECIPIENTSKEYNAME,""); regKey.openKey(STRING_MAILRECIPIENTSKEYNAME); } regKey.setValue(namePrefix,recipient); return TRUE; } BOOL MailReg::getReversePaths(Block &reversePaths) { DWORD itemIndex(0); RegKey regKey; String reversePath; reversePaths.remove(); if(!regKey.openKey(STRING_MAILREVERSEPATHKEYNAME))return FALSE; while(regKey.enumValue(itemIndex++,String(STRING_REVERSEPATH),reversePath))reversePaths.insert(&reversePath); return (reversePaths.size()?TRUE:FALSE); } void MailReg::setReversePaths(const Block &reversePaths) { String namePrefix; RegKey regKey; if(!regKey.openKey(STRING_MAILREVERSEPATHKEYNAME)) { regKey.createKey(STRING_MAILREVERSEPATHKEYNAME,""); regKey.openKey(STRING_MAILREVERSEPATHKEYNAME); } for(int lineIndex=0;lineIndex&)reversePaths)[lineIndex])); } } BOOL MailReg::addReversePath(const String &reversePath) { Block reversePaths; String namePrefix; RegKey regKey; if(reversePath.isNull())return FALSE; getReversePaths(reversePaths); if(isInBlock(reversePath,reversePaths)){setReversePaths(reversePaths);return FALSE;} ::sprintf(namePrefix,"R%02d",reversePaths.size()); if(!regKey.openKey(STRING_MAILREVERSEPATHKEYNAME)) { regKey.createKey(STRING_MAILREVERSEPATHKEYNAME,""); regKey.openKey(STRING_MAILREVERSEPATHKEYNAME); } regKey.setValue(namePrefix,reversePath); return TRUE; } BOOL MailReg::isInBlock(const String &string,Block &strings) { for(int itemIndex=0;itemIndex