DATAOBJ.H
/************************************************************************** 
   THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF 
   ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
   THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A 
   PARTICULAR PURPOSE. 
 
   Copyright 1997 Microsoft Corporation.  All Rights Reserved. 
**************************************************************************/ 
 
/************************************************************************** 
 
   File:          DataObj.h 
    
   Description:   CDataObject and CEnumForamtEtc definitions. 
 
**************************************************************************/ 
 
#ifndef DATAOBJECT_H 
#define DATAOBJECT_H 
 
/************************************************************************** 
   #include statements 
**************************************************************************/ 
 
#include "DOServer.h" 
 
#define CF_EMBEDSOURCE      TEXT("Embed Source") 
 
/************************************************************************** 
 
   CDataObject class defintion 
 
**************************************************************************/ 
 
class COleDocument; 
 
class CDataObject : public IDataObject 
{ 
private: 
COleDocument         *m_pOleDoc; 
   LPDATAADVISEHOLDER   m_pDataAdviseHolder; 
   UINT                 m_cfEmbedSource; 
 
public: 
CDataObject::CDataObject(COleDocument*); 
CDataObject::~CDataObject(void); 
 
//IUnknown methods 
STDMETHODIMP QueryInterface(REFIID, LPVOID*); 
STDMETHODIMP_(ULONG) AddRef(); 
STDMETHODIMP_(ULONG) Release(); 
 
//IDataObject methods 
STDMETHODIMP DAdvise(LPFORMATETC, DWORD, LPADVISESINK, LPDWORD); 
STDMETHODIMP DUnadvise(DWORD); 
STDMETHODIMP EnumDAdvise(LPENUMSTATDATA*); 
STDMETHODIMP EnumFormatEtc(DWORD, LPENUMFORMATETC*); 
STDMETHODIMP GetCanonicalFormatEtc(LPFORMATETC, LPFORMATETC); 
STDMETHODIMP GetData(LPFORMATETC, LPSTGMEDIUM); 
STDMETHODIMP GetDataHere(LPFORMATETC, LPSTGMEDIUM); 
STDMETHODIMP QueryGetData(LPFORMATETC); 
STDMETHODIMP SetData(LPFORMATETC, LPSTGMEDIUM, BOOL); 
 
}; 
 
/************************************************************************** 
 
   CEnumFormatEtc class defintion 
 
**************************************************************************/ 
 
class CEnumFormatEtc : public IEnumFORMATETC 
{ 
private:  
ULONG m_ObjRefCount; // Object reference count 
ULONG   m_iCur;        // Current element 
   UINT        m_cfEmbedSource; 
 
public:  
CEnumFormatEtc(void); 
~CEnumFormatEtc(void); 
 
// IUnknown members that delegate to m_pUnkOuter 
STDMETHODIMP         QueryInterface(REFIID, LPVOID*); 
STDMETHODIMP_(ULONG) AddRef(void); 
STDMETHODIMP_(ULONG) Release(void); 
 
// IEnumFORMATETC members 
STDMETHODIMP Next(ULONG, LPFORMATETC, ULONG*); 
STDMETHODIMP Skip(ULONG); 
STDMETHODIMP Reset(void); 
STDMETHODIMP Clone(LPENUMFORMATETC*); 
}; 
 
#endif   //DATAOBJECT_H