// TheCoCollection.cpp : Implementation of CTheCoCollection
#include "stdafx.h"
#include "CollectionServer.h"
#include "TheCoCollection.h"
/////////////////////////////////////////////////////////////////////////////
// CTheCoCollection
STDMETHODIMP CTheCoCollection::createData(VARIANT* v, IData ** dest )
{
CComObject<CTheCoData> *pData=NULL;
CComObject<CTheCoData>::CreateInstance(&pData);
if( pData==NULL )
return E_OUTOFMEMORY;
HRESULT h=pData->QueryInterface(IID_IData,(void **)dest);
if( !SUCCEEDED(h) ) return h;
(*dest)->putID(currentID);
currentID++;
(*dest)->putData(v);
return S_OK;
}
STDMETHODIMP CTheCoCollection::modifyData(VARIANT* v, IData* d )
{
d->putData(v);
return S_OK;
}
STDMETHODIMP CTheCoCollection::putData(IData *data)
{
if( holdOn!=NULL )
holdOn->Release();
data->AddRef();
holdOn=data;
return S_OK;
}
STDMETHODIMP CTheCoCollection::getData(IData **data)
{
if( holdOn==NULL )
return S_FALSE;
*data=holdOn;
holdOn->AddRef();
return S_OK;
}