// Copyright (c) 2010 Martin Knafve / hMailServer.com. // http://www.hmailserver.com #include "stdafx.h" #include "InterfaceIncomingRelay.h" #include "../Common/Persistence/PersistentIncomingRelay.h" #include "../Common/BO/IncomingRelays.h" #include "../Common/BO/IncomingRelay.h" #include "COMError.h" STDMETHODIMP InterfaceIncomingRelay::Save() { try { if (!object_) return GetAccessDenied(); if (!authentication_->GetIsServerAdmin()) return authentication_->GetAccessDenied(); if (HM::PersistentIncomingRelay::SaveObject(object_)) { // Add to parent collection AddToParentCollection(); return S_OK; } return COMError::GenerateError("Failed to save object. See hMailServer error log."); } catch (...) { return COMError::GenerateGenericMessage(); } } STDMETHODIMP InterfaceIncomingRelay::get_ID(long *pVal) { try { if (!object_) return GetAccessDenied(); *pVal = (long) object_->GetID(); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } } STDMETHODIMP InterfaceIncomingRelay::get_LowerIP(BSTR *pVal) { try { if (!object_) return GetAccessDenied(); *pVal = object_->GetLowerIPString().AllocSysString(); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } } STDMETHODIMP InterfaceIncomingRelay::put_LowerIP(BSTR newVal) { try { if (!object_) return GetAccessDenied(); object_->SetLowerIPString(newVal); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } } STDMETHODIMP InterfaceIncomingRelay::get_UpperIP(BSTR *pVal) { try { if (!object_) return GetAccessDenied(); *pVal = object_->GetUpperIPString().AllocSysString(); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } } STDMETHODIMP InterfaceIncomingRelay::put_UpperIP(BSTR newVal) { try { if (!object_) return GetAccessDenied(); object_->SetUpperIPString(newVal); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } } STDMETHODIMP InterfaceIncomingRelay::get_Name(BSTR *pVal) { try { if (!object_) return GetAccessDenied(); *pVal = object_->GetName().AllocSysString(); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } } STDMETHODIMP InterfaceIncomingRelay::put_Name(BSTR newVal) { try { if (!object_) return GetAccessDenied(); object_->SetName(newVal); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } } STDMETHODIMP InterfaceIncomingRelay::Delete() { try { if (!object_) return GetAccessDenied(); if (!authentication_->GetIsServerAdmin()) return authentication_->GetAccessDenied(); if (!parent_collection_) return HM::PersistentIncomingRelay::DeleteObject(object_) ? S_OK : S_FALSE; parent_collection_->DeleteItemByDBID(object_->GetID()); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } }