Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (C) 1993-1999 Microsoft Corporation
Module Name:
iperpbag.cpp
Abstract:
Implementation of the IPersistPropertyBag interface exposed on the Polyline object.
--*/
#include "polyline.h"
#include "unkhlpr.h"
/*
* CImpIPersistPropertyBag interface implementation */
IMPLEMENT_CONTAINED_INTERFACE(CPolyline, CImpIPersistPropertyBag)
/*
* CImpIPersistPropertyBag::GetClassID * * Purpose: * Returns the CLSID of the object represented by this interface. * * Parameters: * pClsID LPCLSID in which to store our CLSID. */
STDMETHODIMP CImpIPersistPropertyBag::GetClassID( OUT LPCLSID pClsID ) { HRESULT hr = S_OK;
if (pClsID == NULL) { return E_POINTER; }
try { *pClsID = m_pObj->m_clsID; } catch (...) { hr = E_POINTER; }
return hr; }
/*
* CImpIPersistPropertyBag::InitNew * * Purpose: * Informs the object that it is being created new instead of * loaded from a persistent state. This will be called in lieu * of IPersistStreamInit::Load. * * Parameters: * None */
STDMETHODIMP CImpIPersistPropertyBag::InitNew(void) { //Nothing for us to do
return NOERROR; }
/*
* CImpIPersistPropertyBag::Load * * Purpose: * Instructs the object to load itself from a previously saved * IPropertyBag that was handled by Save in another object lifetime. * This function should not hold on to pIPropertyBag. * * This function is called in lieu of IPersistStreamInit::InitNew * when the object already has a persistent state. * * Parameters: * pIPropBag IPropertyBag* from which to load our data. * pIError IErrorLog* for storing errors. NULL if caller not interested in errors. */
STDMETHODIMP CImpIPersistPropertyBag::Load ( IPropertyBag* pIPropBag, IErrorLog* pIError ) { HRESULT hr = S_OK;
if (NULL == pIPropBag) { return (E_POINTER); }
try { //Read all the data into the control structure.
hr = m_pObj->m_pCtrl->LoadFromPropertyBag ( pIPropBag, pIError ); } catch (...) { hr = E_POINTER; } return hr; }
/*
* CImpIPersistPropertyBag::Save * * Purpose: * Saves the data for this object to an IPropertyBag. * * Parameters: * pIPropBag IPropertyBag* in which to save our data. * fClearDirty BOOL indicating if this call should clear * the object's dirty flag (TRUE) or leave it * unchanged (FALSE). * fSaveAllProps BOOL indicating if this call should save all properties. */
STDMETHODIMP CImpIPersistPropertyBag::Save ( IN IPropertyBag* pIPropBag, IN BOOL fClearDirty, IN BOOL fSaveAllProps ) { HRESULT hr = S_OK;
if (NULL == pIPropBag) { return (E_POINTER); }
try { hr = m_pObj->m_pCtrl->SaveToPropertyBag ( pIPropBag, fSaveAllProps ); } catch (...) { hr = E_POINTER; }
if (SUCCEEDED(hr)) { if (fClearDirty) { m_pObj->m_fDirty=FALSE; } }
return hr; }
|