// 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;
}



Hosted by www.Geocities.ws

1