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.
|
|
/*++
Copyright (c) 1996 Microsoft Corporation
Module Name:
faxdataobj.h
Abstract:
This header prototypes my implementation of IDataObject.
Environment:
WIN32 User Mode
Author:
Darwin Ouyang (t-darouy) 30-Sept-1997
--*/
#ifndef __FAXDATAOBJECT_H_
#define __FAXDATAOBJECT_H_
#include "resource.h"
class CInternalNode; // Forward declarations
class CFaxComponentData;
class CFaxDataObject : public CComObjectRoot, public IDataObject {
public:
// ATL Map
DECLARE_NOT_AGGREGATABLE(CFaxDataObject)
BEGIN_COM_MAP(CFaxDataObject) COM_INTERFACE_ENTRY(IDataObject) END_COM_MAP()
// constructor and destructor
CFaxDataObject(); ~CFaxDataObject();
//
// IDataObject
//
virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetDataHere( /* [unique][in] */ FORMATETC __RPC_FAR *pformatetc, /* [out][in] */ STGMEDIUM __RPC_FAR *pmedium);
// these are not implemented
virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetData( /* [unique][in] */ FORMATETC __RPC_FAR *pformatetcIn, /* [out] */ STGMEDIUM __RPC_FAR *pmedium) { return E_NOTIMPL; }
virtual HRESULT STDMETHODCALLTYPE QueryGetData( /* [unique][in] */ FORMATETC __RPC_FAR *pformatetc) { return E_NOTIMPL; }
virtual HRESULT STDMETHODCALLTYPE GetCanonicalFormatEtc( /* [unique][in] */ FORMATETC __RPC_FAR *pformatectIn, /* [out] */ FORMATETC __RPC_FAR *pformatetcOut) { return E_NOTIMPL; }
virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetData( /* [unique][in] */ FORMATETC __RPC_FAR *pformatetc, /* [unique][in] */ STGMEDIUM __RPC_FAR *pmedium, /* [in] */ BOOL fRelease) { return E_NOTIMPL; }
virtual HRESULT STDMETHODCALLTYPE EnumFormatEtc( /* [in] */ DWORD dwDirection, /* [out] */ IEnumFORMATETC __RPC_FAR *__RPC_FAR *ppenumFormatEtc) { return E_NOTIMPL; }
virtual HRESULT STDMETHODCALLTYPE DAdvise( /* [in] */ FORMATETC __RPC_FAR *pformatetc, /* [in] */ DWORD advf, /* [unique][in] */ IAdviseSink __RPC_FAR *pAdvSink, /* [out] */ DWORD __RPC_FAR *pdwConnection) { return E_NOTIMPL; }
virtual HRESULT STDMETHODCALLTYPE DUnadvise( /* [in] */ DWORD dwConnection) { return E_NOTIMPL; }
virtual HRESULT STDMETHODCALLTYPE EnumDAdvise( /* [out] */ IEnumSTATDATA __RPC_FAR *__RPC_FAR *ppenumAdvise) { return E_NOTIMPL; }
//
// Non-interface member functions
//
public: ULONG_PTR GetCookie() { return m_ulCookie; } // cast the owner to a cookie.
void SetCookie( ULONG_PTR cookie ) { m_ulCookie = cookie; }
CInternalNode * GetOwner() { return pOwner; } // this functino sets the owner of the dataobject
// as well as registers the node specific clipboard formats
void SetOwner( CInternalNode* pO );
DATA_OBJECT_TYPES GetContext( void ) { return m_Context; } void SetContext( DATA_OBJECT_TYPES context ) { m_Context = context; }
private: HRESULT _WriteInternal(IStream *pstm); HRESULT _WriteDisplayName(IStream *pstm); HRESULT _WriteNodeType(IStream *pstm); HRESULT _WriteClsid(IStream *pstm);
ULONG m_cRefs; // object refcount
ULONG_PTR m_ulCookie; // what this obj refers to
CInternalNode * pOwner; // used for getting info from the creator class
DATA_OBJECT_TYPES m_Context; // context in which this was created
#ifdef DEBUG
static long DataObjectCount; // debug DataObjectCount
#endif
public: // At a minimum we have to implement these clipboard formats
// to keep MMC happy. We will assert if we don't
static UINT s_cfInternal; // Our custom clipboard format
static UINT s_cfDisplayName; static UINT s_cfNodeType; static UINT s_cfSnapinClsid; };
#endif
|