windows-nt/Source/XPSP1/NT/net/ias/sdo/sdoias/sdouser.cpp
2020-09-26 16:20:57 +08:00

68 lines
1.7 KiB
C++

/////////////////////////////////////////////////////////////////////////////
//
// Copyright(C) 1997-1998 Microsoft Corporation all rights reserved.
//
// Module: sdouser.cpp
//
// Project: Everest
//
// Description: IAS Server Data Object - User Object Implementation
//
// Author: TLP 1/23/98
//
/////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "sdouser.h"
//////////////////////////////////////////////////////////////////////////////
HRESULT CSdoUser::FinalInitialize(
/*[in]*/ bool fInitNew,
/*[in]*/ ISdoMachine* pAttachedMachine
)
{
// Should always have a data store object associated with a user
//
_ASSERT( ! fInitNew );
// Load the persistent User object properties (including the name)
//
HRESULT hr = LoadProperties();
// Don't allow the client application to modify or persist the user name
//
PropertyMapIterator p = m_PropertyMap.find(PROPERTY_SDO_NAME);
_ASSERT( p != m_PropertyMap.end() );
DWORD dwFlags = ((*p).second)->GetFlags();
dwFlags |= (SDO_PROPERTY_NO_PERSIST | SDO_PROPERTY_READ_ONLY);
((*p).second)->SetFlags(dwFlags);
return hr;
}
//////////////////////////////////////////////////////////////////////////////
STDMETHODIMP CSdoUser::Apply()
{
if (m_pDSObject)
{
m_pDSObject->Restore();
}
return CSdo::Apply();
}
/////////////////////////////////////////////////////////////////////////////
HRESULT CSdoUser::ValidateProperty(
/*[in]*/ PSDOPROPERTY pProperty,
/*[in]*/ VARIANT* pValue
)
{
if ( VT_EMPTY == V_VT(pValue) )
return S_OK;
else
return pProperty->Validate(pValue);
}