Source code of Windows XP (NT5)
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.
|
|
//+-------------------------------------------------------------------
// File: idataobj.cxx
//
// Contents: IDataObject methods of CTestEmbed class.
//
// Classes: CTestEmbed - IDataObject implementation
//
// History: 7-Dec-92 DeanE Created
//---------------------------------------------------------------------
#pragma optimize("",off)
#include <windows.h>
#include <ole2.h>
#include "testsrv.hxx"
//+-------------------------------------------------------------------
// Member: CDataObject::CDataObject()
//
// Synopsis: The constructor for CDataObject.
//
// Arguments: None
//
// History: 7-Dec-92 DeanE Created
//--------------------------------------------------------------------
CDataObject::CDataObject(CTestEmbed *pteObject) { _cRef = 1; _pDAHolder = NULL; _pteObject = pteObject; }
//+-------------------------------------------------------------------
// Member: CDataObject::~CDataObject()
//
// Synopsis: The destructor for CDataObject.
//
// History: 7-Dec-92 DeanE Created
//--------------------------------------------------------------------
CDataObject::~CDataObject() { // _cRef count should be 1
if (1 != _cRef) { // BUGBUG - Log error
// Someone hasn't released one of these - Log error
} return; }
//+-------------------------------------------------------------------
// Method: CDataObject::QueryInterface
//
// Synopsis: Forward this to the object we're associated with
//
// Parameters: [iid] - Interface ID to return.
// [ppv] - Pointer to pointer to object.
//
// Returns: S_OK if iid is supported, or E_NOINTERFACE if not.
//
// History: 7-Dec-92 DeanE Created
//--------------------------------------------------------------------
STDMETHODIMP CDataObject::QueryInterface(REFIID iid, void FAR * FAR *ppv) { return(_pteObject->QueryInterface(iid, ppv)); }
//+-------------------------------------------------------------------
// Method: CDataObject::AddRef
//
// Synopsis: Forward this to the object we're associated with
//
// Returns: New reference count.
//
// History: 7-Dec-92 DeanE Created
//--------------------------------------------------------------------
STDMETHODIMP_(ULONG) CDataObject::AddRef(void) { ++_cRef; return(_pteObject->AddRef()); }
//+-------------------------------------------------------------------
// Method: CDataObject::Release
//
// Synopsis: Forward this to the object we're associated with
//
// Returns: New reference count.
//
// History: 7-Dec-92 DeanE Created
//--------------------------------------------------------------------
STDMETHODIMP_(ULONG) CDataObject::Release(void) { --_cRef; return(_pteObject->Release()); }
//+-------------------------------------------------------------------
// Method: CDataObject::GetData
//
// Synopsis: See spec 2.00.09 p129. Retrieve data for this object
// using the FORMATETC passed.
//
// Parameters: [pformatetcIn] - The format caller wants returned data
// [pmedium] - Returned data
//
// Returns: S_OK, or E_FORMAT if we don't support the format requested
//
// History: 7-Dec-92 DeanE Created
//--------------------------------------------------------------------
STDMETHODIMP CDataObject::GetData( LPFORMATETC pformatetcIn, LPSTGMEDIUM pmedium) { // BUGBUG - NYI
return(E_FAIL); }
//+-------------------------------------------------------------------
// Method: CDataObject::GetDataHere
//
// Synopsis: See spec 2.00.09 p130. Like GetData, but the pmedium is
// allocated and ready for us to use.
//
// Parameters: [pformatetc] - The format caller wants returned data
// [pmedium] - STGMEDIUM object ready for our use
//
// Returns: S_OK, E_FORMAT
//
// History: 7-Dec-92 DeanE Created
//--------------------------------------------------------------------
STDMETHODIMP CDataObject::GetDataHere( LPFORMATETC pformatetc, LPSTGMEDIUM pmedium) { // BUGBUG - NYI
return(E_FAIL); }
//+-------------------------------------------------------------------
// Method: CDataObject::QueryGetData
//
// Synopsis: See spec 2.00.09 p130. Answer if the format requested
// would be honored by GetData.
//
// Parameters: [pformatetc] - The format being queried about
//
// Returns: S_OK or S_FALSE
//
// History: 7-Dec-92 DeanE Created
//--------------------------------------------------------------------
STDMETHODIMP CDataObject::QueryGetData(LPFORMATETC pformatetc) { // BUGBUG - NYI
return(E_FAIL); }
//+-------------------------------------------------------------------
// Method: CDataObject::GetCanonicalFormatEtc
//
// Synopsis: See spec 2.00.09 p131
//
// Parameters: [pformatetc] -
// [pformatetcOut] -
//
// Returns: S_OK
//
// History: 7-Dec-92 DeanE Created
//--------------------------------------------------------------------
STDMETHODIMP CDataObject::GetCanonicalFormatEtc( LPFORMATETC pformatetc, LPFORMATETC pformatetcOut)
{ // BUGBUG - NYI
return(E_FAIL); }
//+-------------------------------------------------------------------
// Method: CDataObject::SetData
//
// Synopsis: See spec 2.00.09 p131.
//
// Parameters: [pformatetc] -
// [pmedium] -
// [fRelease] -
//
// Returns: S_OK
//
// History: 7-Dec-92 DeanE Created
//--------------------------------------------------------------------
STDMETHODIMP CDataObject::SetData( LPFORMATETC pformatetc, STGMEDIUM FAR *pmedium, BOOL fRelease) { // BUGBUG - NYI
return(DV_E_CLIPFORMAT); }
//+-------------------------------------------------------------------
// Method: CDataObject::EnumFormatEtc
//
// Synopsis: See spec 2.00.09 p131.
//
// Parameters: [dwDirection] -
// [ppenmFormatEtc] -
//
// Returns: S_OK
//
// History: 7-Dec-92 DeanE Created
//--------------------------------------------------------------------
STDMETHODIMP CDataObject::EnumFormatEtc( DWORD dwDirection, LPENUMFORMATETC FAR *ppenmFormatEtc) { // BUGBUG - NYI
*ppenmFormatEtc = NULL; return(E_FAIL); }
//+-------------------------------------------------------------------
// Method: CDataObject::DAdvise
//
// Synopsis: See spec 2.00.09 p132
//
// Parameters: [pFormatetc] -
// [advf] -
// [pAdvSink] -
// [pdwConnection] -
//
// Returns: S_OK
//
// History: 7-Dec-92 DeanE Created
//--------------------------------------------------------------------
STDMETHODIMP CDataObject::DAdvise( FORMATETC FAR *pFormatetc, DWORD advf, LPADVISESINK pAdvSink, DWORD FAR *pdwConnection) { if (NULL == _pDAHolder) { if (S_OK != CreateDataAdviseHolder(&_pDAHolder)) { return(E_OUTOFMEMORY); } }
return(_pDAHolder->Advise(this, pFormatetc, advf, pAdvSink, pdwConnection)); }
//+-------------------------------------------------------------------
// Method: CDataObject::DUnadvise
//
// Synopsis: See spec 2.00.09 p133
//
// Parameters: [dwConnection] -
//
// Returns: S_OK
//
// History: 7-Dec-92 DeanE Created
//--------------------------------------------------------------------
STDMETHODIMP CDataObject::DUnadvise(DWORD dwConnection) { if (NULL == _pDAHolder) { // Nobody is registered
return(E_INVALIDARG); }
return(_pDAHolder->Unadvise(dwConnection)); }
//+-------------------------------------------------------------------
// Method: CDataObject::EnumDAdvise
//
// Synopsis: See spec 2.00.09 p133
//
// Parameters: [ppenmAdvise] -
//
// Returns: S_OK
//
// History: 7-Dec-92 DeanE Created
//--------------------------------------------------------------------
STDMETHODIMP CDataObject::EnumDAdvise(LPENUMSTATDATA FAR *ppenmAdvise) { if (NULL == _pDAHolder) { return(E_FAIL); }
return(_pDAHolder->EnumAdvise(ppenmAdvise)); }
|