99 lines
2.4 KiB
C
99 lines
2.4 KiB
C
|
//
|
||
|
// Copyright 1997 - Microsoft
|
||
|
//
|
||
|
|
||
|
//
|
||
|
// DATAOBJ.H - A data object
|
||
|
//
|
||
|
|
||
|
#ifndef _DATAOBJ_H_
|
||
|
#define _DATAOBJ_H_
|
||
|
|
||
|
// QITable
|
||
|
BEGIN_QITABLE( CDsPropDataObj )
|
||
|
DEFINE_QI( IID_IDataObject, IDataObject , 9 )
|
||
|
END_QITABLE
|
||
|
|
||
|
LPVOID
|
||
|
CDsPropDataObj_CreateInstance(
|
||
|
HWND hwndParent,
|
||
|
IDataObject * pido,
|
||
|
GUID * pClassGUID,
|
||
|
BOOL fReadOnly,
|
||
|
LPWSTR pszObjPath,
|
||
|
LPWSTR bstrClass );
|
||
|
|
||
|
|
||
|
class CDsPropDataObj : public IDataObject
|
||
|
{
|
||
|
private:
|
||
|
DECLARE_QITABLE( CDsPropDataObj );
|
||
|
|
||
|
CDsPropDataObj::CDsPropDataObj( HWND hwndParent, IDataObject * pido, GUID * pClassGUID, BOOL fReadOnly);
|
||
|
~CDsPropDataObj(void);
|
||
|
|
||
|
HRESULT Init(LPWSTR pwszObjName, LPWSTR pwszClass);
|
||
|
|
||
|
public:
|
||
|
friend LPVOID CDsPropDataObj_CreateInstance(
|
||
|
HWND hwndParent,
|
||
|
IDataObject * pido,
|
||
|
GUID * pClassGUID,
|
||
|
BOOL fReadOnly,
|
||
|
LPWSTR pszObjPath,
|
||
|
LPWSTR bstrClass );
|
||
|
|
||
|
//
|
||
|
// IUnknown methods
|
||
|
//
|
||
|
STDMETHOD(QueryInterface)(REFIID riid, void ** ppvObject);
|
||
|
STDMETHOD_(ULONG, AddRef)(void);
|
||
|
STDMETHOD_(ULONG, Release)(void);
|
||
|
|
||
|
//
|
||
|
// Standard IDataObject methods
|
||
|
//
|
||
|
// Implemented
|
||
|
//
|
||
|
STDMETHOD(GetData)(FORMATETC * pformatetcIn, STGMEDIUM * pmedium);
|
||
|
|
||
|
STDMETHOD(GetDataHere)(FORMATETC * pFormatEtcIn, STGMEDIUM * pMedium);
|
||
|
|
||
|
STDMETHOD(EnumFormatEtc)(DWORD dwDirection,
|
||
|
IEnumFORMATETC ** ppenumFormatEtc);
|
||
|
|
||
|
// Not Implemented
|
||
|
private:
|
||
|
STDMETHOD(QueryGetData)(FORMATETC * pformatetc)
|
||
|
{ return E_NOTIMPL; };
|
||
|
|
||
|
STDMETHOD(GetCanonicalFormatEtc)(FORMATETC * pformatectIn,
|
||
|
FORMATETC * pformatetcOut)
|
||
|
{ return E_NOTIMPL; };
|
||
|
|
||
|
STDMETHOD(SetData)(FORMATETC * pformatetc, STGMEDIUM * pmedium,
|
||
|
BOOL fRelease)
|
||
|
{ return E_NOTIMPL; };
|
||
|
|
||
|
STDMETHOD(DAdvise)(FORMATETC * pformatetc, DWORD advf,
|
||
|
IAdviseSink * pAdvSink, DWORD * pdwConnection)
|
||
|
{ return E_NOTIMPL; };
|
||
|
|
||
|
STDMETHOD(DUnadvise)(DWORD dwConnection)
|
||
|
{ return E_NOTIMPL; };
|
||
|
|
||
|
STDMETHOD(EnumDAdvise)(IEnumSTATDATA ** ppenumAdvise)
|
||
|
{ return E_NOTIMPL; };
|
||
|
|
||
|
BOOL m_fReadOnly;
|
||
|
PWSTR m_pwszObjName;
|
||
|
PWSTR m_pwszObjClass;
|
||
|
GUID m_ClassGUID;
|
||
|
IDataObject * m_pPage;
|
||
|
unsigned long _cRef;
|
||
|
HWND m_hwnd;
|
||
|
};
|
||
|
|
||
|
typedef CDsPropDataObj * LPCDSPROPDATAOBJ;
|
||
|
|
||
|
#endif // _DATAOBJ_H_
|