STDMETHODIMP InterfaceLanguage::get_String(BSTR EnglishString, BSTR *pVal) { try { if (!language_) return GetAccessDenied(); HM::String sText = language_->GetString(EnglishString); *pVal = sText.AllocSysString(); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } }
STDMETHODIMP InterfaceUtilities::SHA256(BSTR Input, BSTR *Output) { try { HM::String sInput(Input); HM::String sOutput = HM::Crypt::Instance()->EnCrypt(sInput, HM::Crypt::ETSHA256); *Output = sOutput.AllocSysString(); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } }
STDMETHODIMP InterfaceTCPIPPort::get_Address(BSTR *pVal) { try { if (!m_pObject) return GetAccessDenied(); HM::String sIPAddress = m_pObject->GetAddressString(); *pVal = sIPAddress.AllocSysString(); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } }
STDMETHODIMP InterfaceLanguage::get_Name(BSTR *pVal) { try { if (!language_) return GetAccessDenied(); HM::String sName = language_->GetName(); *pVal = sName.AllocSysString(); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } }
STDMETHODIMP InterfaceIMAPFolder::get_Name(BSTR *pVal) { try { if (!m_pObject) return GetAccessDenied(); HM::String sUnicode = HM::ModifiedUTF7::Decode(m_pObject->GetFolderName()); *pVal = sUnicode.AllocSysString(); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } }
STDMETHODIMP InterfaceDistributionListRecipient::get_RecipientAddress(BSTR *pVal) { try { if (!m_pObject) return GetAccessDenied(); HM::String sVal = m_pObject->GetAddress(); *pVal = sVal.AllocSysString(); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } }
STDMETHODIMP InterfaceAntiSpam::TestSpamAssassinConnection(BSTR hostname, long port, BSTR *messageText, VARIANT_BOOL *pResult) { try { if (!m_pConfig) return GetAccessDenied(); HM::SpamAssassinTestConnect testClient; HM::String text; *pResult = testClient.TestConnect(hostname, port, text) ? VARIANT_TRUE : VARIANT_FALSE; *messageText = text.AllocSysString(); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } }
STDMETHODIMP InterfaceAntiVirus::TestClamAVScanner(BSTR hostname, long port, BSTR *messageText, VARIANT_BOOL *pResult) { try { if (!GetIsServerAdmin()) return GetAccessDenied(); HM::VirusScannerTester testClient; HM::String text; *pResult = testClient.TestClamAVConnect(hostname, port, text) ? VARIANT_TRUE : VARIANT_FALSE; *messageText = text.AllocSysString(); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } }
STDMETHODIMP InterfaceAntiVirus::TestClamWinScanner(BSTR clamWinExecutable, BSTR clamWinDatabase, BSTR *messageText, VARIANT_BOOL *pResult) { try { if (!GetIsServerAdmin()) return GetAccessDenied(); HM::VirusScannerTester testClient; HM::String text; *pResult = testClient.TestClamWinVirusScanner(clamWinExecutable, clamWinDatabase, text) ? VARIANT_TRUE : VARIANT_FALSE; *messageText = text.AllocSysString(); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } }
STDMETHODIMP InterfaceDatabase::get_DatabaseName(BSTR *pVal) { try { if (!config_) return GetAccessDenied(); if (!GetIsServerAdmin()) return GetAccessDenied(); HM::String sServerName = ini_file_settings_->GetDatabaseName(); *pVal = sServerName.AllocSysString(); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } }
STDMETHODIMP InterfaceBackupSettings::get_LogFile(BSTR *pVal) { try { if (!config_) return GetAccessDenied(); HM::String sLogDir = ini_file_settings_->GetLogDirectory(); if (sLogDir.Right(1) != _T("\\")) sLogDir += "\\"; sLogDir += "hmailserver_backup.log"; *pVal = sLogDir.AllocSysString(); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } }