/**************************************************************************
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