Leaked source code of windows server 2003
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.
 
 
 
 
 
 

88 lines
2.4 KiB

#ifndef _SAMPDATAOBJECT_H_
#define _SAMPDATAOBJECT_H_
#include <mmc.h>
#include "delebase.h"
class CDataObject : public IDataObject
{
private:
ULONG m_cref;
MMC_COOKIE m_lCookie;
DATA_OBJECT_TYPES m_context;
public:
CDataObject( MMC_COOKIE cookie, DATA_OBJECT_TYPES context );
~CDataObject();
///////////////////////////////
// Interface IUnknown
///////////////////////////////
STDMETHODIMP QueryInterface(REFIID riid, LPVOID *ppv);
STDMETHODIMP_(ULONG) AddRef();
STDMETHODIMP_(ULONG) Release();
///////////////////////////////
// IDataObject methods
///////////////////////////////
STDMETHODIMP GetDataHere ( FORMATETC *pformatetc, STGMEDIUM *pmedium );
//
// The rest are not implemented
//
STDMETHODIMP GetData (LPFORMATETC lpFormatetcIn, LPSTGMEDIUM lpMedium)
{ return E_NOTIMPL; };
STDMETHODIMP EnumFormatEtc (DWORD dwDirection, LPENUMFORMATETC* ppEnumFormatEtc)
{ return E_NOTIMPL; };
STDMETHODIMP QueryGetData (LPFORMATETC lpFormatetc)
{ return E_NOTIMPL; };
STDMETHODIMP GetCanonicalFormatEtc (LPFORMATETC lpFormatetcIn, LPFORMATETC lpFormatetcOut)
{ return E_NOTIMPL; };
STDMETHODIMP SetData (LPFORMATETC lpFormatetc, LPSTGMEDIUM lpMedium, BOOL bRelease)
{ return E_NOTIMPL; };
STDMETHODIMP DAdvise (LPFORMATETC lpFormatetc, DWORD advf, LPADVISESINK pAdvSink, LPDWORD pdwConnection)
{ return E_NOTIMPL; };
STDMETHODIMP DUnadvise (DWORD dwConnection)
{ return E_NOTIMPL; };
STDMETHODIMP EnumDAdvise (LPENUMSTATDATA* ppEnumAdvise)
{ return E_NOTIMPL; };
///////////////////////////////
// Custom Methods
///////////////////////////////
CDelegationBase *GetBaseNodeObject()
{
return (CDelegationBase *)m_lCookie;
}
DATA_OBJECT_TYPES GetContext()
{
return m_context;
}
public:
//
// Clipboard formats
//
static UINT s_cfSZNodeType;
static UINT s_cfDisplayName;
static UINT s_cfNodeType;
static UINT s_cfSnapinClsid;
static UINT s_cfInternal;
};
HRESULT ExtractFromDataObject( IDataObject *lpDataObject, UINT cf, ULONG cb, HGLOBAL *phGlobal );
CDataObject* GetOurDataObject( IDataObject *lpDataObject );
BOOL IsMMCMultiSelectDataObject( IDataObject *lpDataObject );
#endif _SAMPDATAOBJECT_H_