add the base .rbuild files
[reactos.git] / reactos / subsys / system / explorer / utility / dragdropimpl.h
diff --git a/reactos/subsys/system/explorer/utility/dragdropimpl.h b/reactos/subsys/system/explorer/utility/dragdropimpl.h
deleted file mode 100644 (file)
index 6a59c67..0000000
+++ /dev/null
@@ -1,267 +0,0 @@
-// IDataObjectImpl.h: interface for the CIDataObjectImpl class.
-/**************************************************************************
-   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.
-   Author: Leon Finker 11/2000
-   Modifications: replaced ATL by STL, Martin Fuchs 7/2003
-**************************************************************************/
-
-#include <vector>
-using std::vector;
-
-
-typedef vector<FORMATETC> FormatArray;
-
- /// structure containing information for one format of EnumFormatEtcImpl
-struct DataStorage {
-       FORMATETC*      _format;
-       STGMEDIUM*      _medium;
-};
-
-typedef vector<DataStorage> StorageArray;
-
-
- /// implementation of IEnumFORMATETC interface
-class EnumFormatEtcImpl
- :     public IComSrvBase<IEnumFORMATETC, EnumFormatEtcImpl>, public SimpleComObject
-{
-       typedef IComSrvBase<IEnumFORMATETC, EnumFormatEtcImpl> super;
-
-private:
-        ULONG                  m_cRefCount;
-        FormatArray    m_pFmtEtc;
-        size_t                 m_iCur;
-
-public:
-        EnumFormatEtcImpl(const FormatArray& ArrFE);
-        EnumFormatEtcImpl(const StorageArray& ArrFE);
-        virtual ~EnumFormatEtcImpl() {}
-
-        //IEnumFORMATETC members
-        virtual HRESULT STDMETHODCALLTYPE Next(ULONG, LPFORMATETC, ULONG*);
-        virtual HRESULT STDMETHODCALLTYPE Skip(ULONG);
-        virtual HRESULT STDMETHODCALLTYPE Reset(void);
-        virtual HRESULT STDMETHODCALLTYPE Clone(IEnumFORMATETC**);
-};
-
- /// implementation of IDropSource interface
-class IDropSourceImpl
- :     public IComSrvBase<IDropSource, IDropSourceImpl>, public SimpleComObject
-{
-       typedef IComSrvBase<IDropSource, IDropSourceImpl> super;
-
-       long m_cRefCount;
-
-public:
-       bool m_bDropped;
-
-       IDropSourceImpl()
-        :      super(IID_IDropSource),
-               m_cRefCount(0),
-               m_bDropped(false)
-       {
-       }
-
-       virtual ~IDropSourceImpl() {}
-
-       //IDropSource
-       virtual HRESULT STDMETHODCALLTYPE QueryContinueDrag(
-               /* [in] */ BOOL fEscapePressed,
-               /* [in] */ DWORD grfKeyState);
-
-       virtual HRESULT STDMETHODCALLTYPE GiveFeedback(
-               /* [in] */ DWORD dwEffect);
-};
-
- /// implementation of IDataObject interface
-class IDataObjectImpl
- :     public IComSrvBase<IDataObject, IDataObjectImpl>, public SimpleComObject
-       //public IAsyncOperation
-{
-       typedef IComSrvBase<IDataObject, IDataObjectImpl> super;
-
-       IDropSourceImpl* m_pDropSource;
-       long m_cRefCount;
-
-       StorageArray    _storage;
-
-public:
-       IDataObjectImpl(IDropSourceImpl* pDropSource);
-       virtual ~IDataObjectImpl();
-
-       void CopyMedium(STGMEDIUM* pMedDest, STGMEDIUM* pMedSrc, FORMATETC* pFmtSrc);
-
-       //IDataObject
-       virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetData(
-               /* [unique][in] */ FORMATETC __RPC_FAR *pformatetcIn,
-               /* [out] */ STGMEDIUM __RPC_FAR *pmedium);
-
-       virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetDataHere(
-               /* [unique][in] */ FORMATETC __RPC_FAR *pformatetc,
-               /* [out][in] */ STGMEDIUM __RPC_FAR *pmedium);
-
-       virtual HRESULT STDMETHODCALLTYPE QueryGetData(
-               /* [unique][in] */ FORMATETC __RPC_FAR *pformatetc);
-
-       virtual HRESULT STDMETHODCALLTYPE GetCanonicalFormatEtc(
-               /* [unique][in] */ FORMATETC __RPC_FAR *pformatectIn,
-               /* [out] */ FORMATETC __RPC_FAR *pformatetcOut);
-
-       virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetData(
-               /* [unique][in] */ FORMATETC __RPC_FAR *pformatetc,
-               /* [unique][in] */ STGMEDIUM __RPC_FAR *pmedium,
-               /* [in] */ BOOL fRelease);
-
-       virtual HRESULT STDMETHODCALLTYPE EnumFormatEtc(
-               /* [in] */ DWORD dwDirection,
-               /* [out] */ IEnumFORMATETC __RPC_FAR *__RPC_FAR *ppenumFormatEtc);
-
-       virtual HRESULT STDMETHODCALLTYPE DAdvise(
-               /* [in] */ FORMATETC __RPC_FAR *pformatetc,
-               /* [in] */ DWORD advf,
-               /* [unique][in] */ IAdviseSink __RPC_FAR *pAdvSink,
-               /* [out] */ DWORD __RPC_FAR *pdwConnection);
-
-       virtual HRESULT STDMETHODCALLTYPE DUnadvise(
-               /* [in] */ DWORD dwConnection);
-
-       virtual HRESULT STDMETHODCALLTYPE EnumDAdvise(
-               /* [out] */ IEnumSTATDATA __RPC_FAR *__RPC_FAR *ppenumAdvise);
-
-       //IAsyncOperation
-       //virtual HRESULT STDMETHODCALLTYPE SetAsyncMode(
-       //        /* [in] */ BOOL fDoOpAsync)
-       //{
-       //      return E_NOTIMPL;
-       //}
-       //
-       //virtual HRESULT STDMETHODCALLTYPE GetAsyncMode(
-       //        /* [out] */ BOOL __RPC_FAR *pfIsOpAsync)
-       //{
-       //      return E_NOTIMPL;
-       //}
-       //
-       //virtual HRESULT STDMETHODCALLTYPE StartOperation(
-       //        /* [optional][unique][in] */ IBindCtx __RPC_FAR *pbcReserved)
-       //{
-       //      return E_NOTIMPL;
-       //}
-       //
-       //virtual HRESULT STDMETHODCALLTYPE InOperation(
-       //        /* [out] */ BOOL __RPC_FAR *pfInAsyncOp)
-       //{
-       //      return E_NOTIMPL;
-       //}
-       //
-       //virtual HRESULT STDMETHODCALLTYPE EndOperation(
-       //        /* [in] */ HRESULT hResult,
-       //        /* [unique][in] */ IBindCtx __RPC_FAR *pbcReserved,
-       //        /* [in] */ DWORD dwEffects)
-       //{
-       //      return E_NOTIMPL;
-       //}*/
-};
-
- /// implementation of IDropTarget interface
-class IDropTargetImpl : public IDropTarget
-{
-       DWORD m_cRefCount;
-       bool m_bAllowDrop;
-       IDropTargetHelper* m_pDropTargetHelper;
-
-       FormatArray m_formatetc;
-       FORMATETC* m_pSupportedFrmt;
-
-protected:
-       HWND m_hTargetWnd;
-
-public:
-       IDropTargetImpl(HWND m_hTargetWnd);
-       virtual ~IDropTargetImpl();
-
-       void AddSuportedFormat(FORMATETC& ftetc) {m_formatetc.push_back(ftetc);}
-
-       //return values: true - release the medium. false - don't release the medium
-       virtual bool OnDrop(FORMATETC* pFmtEtc, STGMEDIUM& medium, DWORD *pdwEffect) = 0;
-
-       virtual HRESULT STDMETHODCALLTYPE QueryInterface(
-               /* [in] */ REFIID riid,
-               /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
-       virtual ULONG STDMETHODCALLTYPE AddRef() {return ++m_cRefCount;}
-       virtual ULONG STDMETHODCALLTYPE Release();
-
-       bool QueryDrop(DWORD grfKeyState, LPDWORD pdwEffect);
-       virtual HRESULT STDMETHODCALLTYPE DragEnter(
-               /* [unique][in] */ IDataObject __RPC_FAR *pDataObj,
-               /* [in] */ DWORD grfKeyState,
-               /* [in] */ POINTL pt,
-               /* [out][in] */ DWORD __RPC_FAR *pdwEffect);
-       virtual HRESULT STDMETHODCALLTYPE DragOver(
-               /* [in] */ DWORD grfKeyState,
-               /* [in] */ POINTL pt,
-               /* [out][in] */ DWORD __RPC_FAR *pdwEffect);
-       virtual HRESULT STDMETHODCALLTYPE DragLeave();
-       virtual HRESULT STDMETHODCALLTYPE Drop(
-               /* [unique][in] */ IDataObject __RPC_FAR *pDataObj,
-               /* [in] */ DWORD grfKeyState,
-               /* [in] */ POINTL pt,
-               /* [out][in] */ DWORD __RPC_FAR *pdwEffect);
-};
-
- /// implementation of IDragSourceHelper interface
-class DragSourceHelper
-{
-       IDragSourceHelper* pDragSourceHelper;
-
-public:
-       DragSourceHelper()
-       {
-               if (FAILED(CoCreateInstance(CLSID_DragDropHelper,
-                                               NULL,
-                                               CLSCTX_INPROC_SERVER,
-                                               IID_IDragSourceHelper,
-                                               (void**)&pDragSourceHelper)))
-                       pDragSourceHelper = NULL;
-       }
-
-       virtual ~DragSourceHelper()
-       {
-               if (pDragSourceHelper != NULL)
-               {
-                       pDragSourceHelper->Release();
-                       pDragSourceHelper=NULL;
-               }
-       }
-
-       // IDragSourceHelper
-       HRESULT InitializeFromBitmap(HBITMAP hBitmap,
-               POINT& pt,      // cursor position in client coords of the window
-               RECT& rc,       // selected item's bounding rect
-               IDataObject* pDataObject,
-               COLORREF crColorKey=GetSysColor(COLOR_WINDOW)// color of the window used for transparent effect.
-               )
-       {
-               if (pDragSourceHelper == NULL)
-                       return E_FAIL;
-
-                       SHDRAGIMAGE di;
-                       BITMAP          bm;
-                       GetObject(hBitmap, sizeof(bm), &bm);
-                       di.sizeDragImage.cx = bm.bmWidth;
-                       di.sizeDragImage.cy = bm.bmHeight;
-                       di.hbmpDragImage = hBitmap;
-                       di.crColorKey = crColorKey;
-                       di.ptOffset.x = pt.x - rc.left;
-                       di.ptOffset.y = pt.y - rc.top;
-               return pDragSourceHelper->InitializeFromBitmap(&di, pDataObject);
-       }
-
-       HRESULT InitializeFromWindow(HWND hwnd, POINT& pt,IDataObject* pDataObject)
-       {
-               if (pDragSourceHelper == NULL)
-                       return E_FAIL;
-               return pDragSourceHelper->InitializeFromWindow(hwnd, &pt, pDataObject);
-       }
-};