// Copyright (c) 2010 Martin Knafve / hMailServer.com. // http://www.hmailserver.com #include "stdafx.h" #include "InterfaceAlias.h" #include "../Common/BO/Aliases.h" #include "../Common/Persistence/PersistentAlias.h" #include "COMError.h" #ifdef _DEBUG long InterfaceAlias::counter = 0; #endif STDMETHODIMP InterfaceAlias::InterfaceSupportsErrorInfo(REFIID riid) { try { static const IID* arr[] = { &IID_IInterfaceAlias, }; for (int i=0;iGetIsActive() ? VARIANT_TRUE : VARIANT_FALSE; return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } } STDMETHODIMP InterfaceAlias::put_Active(VARIANT_BOOL newVal) { try { if (!object_) return GetAccessDenied(); object_->SetIsActive(newVal == VARIANT_TRUE); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } } STDMETHODIMP InterfaceAlias::get_DomainID(long *pVal) { try { if (!object_) return GetAccessDenied(); *pVal = (long) object_->GetDomainID(); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } } STDMETHODIMP InterfaceAlias::put_DomainID(LONG newVal) { try { if (!object_) return GetAccessDenied(); // Only here for backwards compatibility (4.x) return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } } STDMETHODIMP InterfaceAlias::get_Name(BSTR *pVal) { try { if (!object_) return GetAccessDenied(); *pVal = object_->GetName().AllocSysString(); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } } STDMETHODIMP InterfaceAlias::put_Name(BSTR newVal) { try { if (!object_) return GetAccessDenied(); object_->SetName(newVal); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } } STDMETHODIMP InterfaceAlias::get_Value(BSTR *pVal) { try { if (!object_) return GetAccessDenied(); *pVal = object_->GetValue().AllocSysString(); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } } STDMETHODIMP InterfaceAlias::put_Value(BSTR newVal) { try { if (!object_) return GetAccessDenied(); object_->SetValue(newVal); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } } STDMETHODIMP InterfaceAlias::Delete() { try { if (!object_) return GetAccessDenied(); HM::PersistentAlias::DeleteObject(object_); return S_OK; } catch (...) { return COMError::GenerateGenericMessage(); } } STDMETHODIMP InterfaceAlias::Save() { try { if (!object_) return GetAccessDenied(); HM::String sErrorMessage; if (HM::PersistentAlias::SaveObject(object_, sErrorMessage, HM::PersistenceModeNormal)) { // Add to parent collection AddToParentCollection(); return S_OK; } return COMError::GenerateError("Failed to save object. " + sErrorMessage); } catch (...) { return COMError::GenerateGenericMessage(); } }