diff --git a/reactos/subsys/system/explorer/shell/shellbrowser.h b/reactos/subsys/system/explorer/shell/shellbrowser.h index 43e3f52f726..7db8f6be4c9 100644 --- a/reactos/subsys/system/explorer/shell/shellbrowser.h +++ b/reactos/subsys/system/explorer/shell/shellbrowser.h @@ -58,8 +58,7 @@ struct BrowserCallback /// Implementation of IShellBrowserImpl interface in explorer child windows struct ShellBrowser : public IShellBrowserImpl #ifndef __MINGW32__ // IShellFolderViewCB missing in MinGW (as of 25.09.2005) - , public IComSrvBase, - public SimpleComObject + , public IComSrvBase, public SimpleComObject #endif { ShellBrowser(HWND hwnd, HWND left_hwnd, WindowHandle& right_hwnd, ShellPathInfo& create_info, diff --git a/reactos/subsys/system/explorer/shell/webchild.h b/reactos/subsys/system/explorer/shell/webchild.h index 38c0658b343..4347dc7e8bb 100644 --- a/reactos/subsys/system/explorer/shell/webchild.h +++ b/reactos/subsys/system/explorer/shell/webchild.h @@ -530,9 +530,9 @@ interface FixedDWebBrowserEvents2 : public IDispatch #endif }; -struct ANSUNC DWebBrowserEvents2Impl : public SimpleComObject, - public IComSrvBase, - public DWebBrowserEvents2IF +struct ANSUNC DWebBrowserEvents2Impl + : public IComSrvBase, public SimpleComObject, + public DWebBrowserEvents2IF { typedef IComSrvBase super; diff --git a/reactos/subsys/system/explorer/utility/dragdropimpl.cpp b/reactos/subsys/system/explorer/utility/dragdropimpl.cpp index f763a47e1ff..92f7ed559f5 100644 --- a/reactos/subsys/system/explorer/utility/dragdropimpl.cpp +++ b/reactos/subsys/system/explorer/utility/dragdropimpl.cpp @@ -22,7 +22,8 @@ ////////////////////////////////////////////////////////////////////// IDataObjectImpl::IDataObjectImpl(IDropSourceImpl* pDropSource) - : m_pDropSource(pDropSource), + : super(IID_IDataObject), + m_pDropSource(pDropSource), m_cRefCount(0) { } @@ -33,37 +34,6 @@ IDataObjectImpl::~IDataObjectImpl() ReleaseStgMedium(it->_medium); } -STDMETHODIMP IDataObjectImpl::QueryInterface(/* [in] */ REFIID riid, -/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject) -{ - *ppvObject = NULL; - if (IID_IUnknown==riid || IID_IDataObject==riid) - *ppvObject=this; - /*if (riid == IID_IAsyncOperation) - *ppvObject=(IAsyncOperation*)this;*/ - if (NULL!=*ppvObject) - { - ((LPUNKNOWN)*ppvObject)->AddRef(); - return S_OK; - } - return E_NOINTERFACE; -} - -STDMETHODIMP_(ULONG) IDataObjectImpl::AddRef() -{ - return ++m_cRefCount; -} - -STDMETHODIMP_(ULONG) IDataObjectImpl::Release() -{ - long nTemp = --m_cRefCount; - - if (nTemp == 0) - delete this; - - return nTemp; -} - STDMETHODIMP IDataObjectImpl::GetData( /* [unique][in] */ FORMATETC __RPC_FAR *pformatetcIn, /* [out] */ STGMEDIUM __RPC_FAR *pmedium) @@ -255,38 +225,6 @@ HRESULT STDMETHODCALLTYPE IDataObjectImpl::EnumDAdvise( // IDropSourceImpl Class ////////////////////////////////////////////////////////////////////// -STDMETHODIMP IDropSourceImpl::QueryInterface(/* [in] */ REFIID riid, - /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject) -{ - *ppvObject = NULL; - if (IID_IUnknown==riid || IID_IDropSource==riid) - *ppvObject=this; - - if (*ppvObject != NULL) - { - ((LPUNKNOWN)*ppvObject)->AddRef(); - return S_OK; - } - return E_NOINTERFACE; -} - -STDMETHODIMP_(ULONG) IDropSourceImpl::AddRef() -{ - return ++m_cRefCount; -} - -STDMETHODIMP_(ULONG) IDropSourceImpl::Release() -{ - long nTemp = --m_cRefCount; - - assert(nTemp >= 0); - - if (nTemp == 0) - delete this; - - return nTemp; -} - STDMETHODIMP IDropSourceImpl::QueryContinueDrag( /* [in] */ BOOL fEscapePressed, /* [in] */ DWORD grfKeyState) @@ -314,7 +252,8 @@ STDMETHODIMP IDropSourceImpl::GiveFeedback( ////////////////////////////////////////////////////////////////////// EnumFormatEtcImpl::EnumFormatEtcImpl(const FormatArray& ArrFE) - : m_cRefCount(0), + : super(IID_IEnumFORMATETC), + m_cRefCount(0), m_iCur(0) { for(FormatArray::const_iterator it=ArrFE.begin(); it!=ArrFE.end(); ++it) @@ -322,45 +261,15 @@ EnumFormatEtcImpl::EnumFormatEtcImpl(const FormatArray& ArrFE) } EnumFormatEtcImpl::EnumFormatEtcImpl(const StorageArray& ArrFE) - : m_cRefCount(0), + : super(IID_IEnumFORMATETC), + m_cRefCount(0), m_iCur(0) { for(StorageArray::const_iterator it=ArrFE.begin(); it!=ArrFE.end(); ++it) m_pFmtEtc.push_back(*it->_format); } -STDMETHODIMP EnumFormatEtcImpl::QueryInterface(REFIID refiid, void** ppv) -{ - *ppv = NULL; - if (IID_IUnknown==refiid || IID_IEnumFORMATETC==refiid) - *ppv=this; - - if (*ppv != NULL) - { - ((LPUNKNOWN)*ppv)->AddRef(); - return S_OK; - } - return E_NOINTERFACE; -} - -STDMETHODIMP_(ULONG) EnumFormatEtcImpl::AddRef(void) -{ - return ++m_cRefCount; -} - -STDMETHODIMP_(ULONG) EnumFormatEtcImpl::Release(void) -{ - long nTemp = --m_cRefCount; - - assert(nTemp >= 0); - - if (nTemp == 0) - delete this; - - return nTemp; -} - -STDMETHODIMP EnumFormatEtcImpl::Next( ULONG celt,LPFORMATETC lpFormatEtc, ULONG* pceltFetched) +STDMETHODIMP EnumFormatEtcImpl::Next(ULONG celt,LPFORMATETC lpFormatEtc, ULONG* pceltFetched) { if (pceltFetched != NULL) *pceltFetched=0; diff --git a/reactos/subsys/system/explorer/utility/dragdropimpl.h b/reactos/subsys/system/explorer/utility/dragdropimpl.h index dac71b46405..6a59c67a078 100644 --- a/reactos/subsys/system/explorer/utility/dragdropimpl.h +++ b/reactos/subsys/system/explorer/utility/dragdropimpl.h @@ -4,7 +4,7 @@ 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 + Author: Leon Finker 11/2000 Modifications: replaced ATL by STL, Martin Fuchs 7/2003 **************************************************************************/ @@ -24,60 +24,64 @@ typedef vector StorageArray; /// implementation of IEnumFORMATETC interface -class EnumFormatEtcImpl : public IEnumFORMATETC +class EnumFormatEtcImpl + : public IComSrvBase, public SimpleComObject { - private: - ULONG m_cRefCount; - FormatArray m_pFmtEtc; - size_t m_iCur; + typedef IComSrvBase super; - public: - EnumFormatEtcImpl(const FormatArray& ArrFE); +private: + ULONG m_cRefCount; + FormatArray m_pFmtEtc; + size_t m_iCur; + +public: + EnumFormatEtcImpl(const FormatArray& ArrFE); EnumFormatEtcImpl(const StorageArray& ArrFE); virtual ~EnumFormatEtcImpl() {} - //IUnknown members - virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, void**); - virtual ULONG STDMETHODCALLTYPE AddRef(void); - virtual ULONG STDMETHODCALLTYPE Release(void); - - //IEnumFORMATETC members - virtual HRESULT STDMETHODCALLTYPE Next(ULONG, LPFORMATETC, ULONG*); - virtual HRESULT STDMETHODCALLTYPE Skip(ULONG); - virtual HRESULT STDMETHODCALLTYPE Reset(void); - virtual HRESULT STDMETHODCALLTYPE Clone(IEnumFORMATETC**); + //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 IDropSource +class IDropSourceImpl + : public IComSrvBase, public SimpleComObject { + typedef IComSrvBase super; + long m_cRefCount; public: bool m_bDropped; - IDropSourceImpl::IDropSourceImpl() : m_cRefCount(0), m_bDropped(false) {} + IDropSourceImpl() + : super(IID_IDropSource), + m_cRefCount(0), + m_bDropped(false) + { + } + virtual ~IDropSourceImpl() {} - //IUnknown - virtual HRESULT STDMETHODCALLTYPE QueryInterface( - /* [in] */ REFIID riid, - /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject); - virtual ULONG STDMETHODCALLTYPE AddRef(); - virtual ULONG STDMETHODCALLTYPE Release(); - //IDropSource - virtual HRESULT STDMETHODCALLTYPE QueryContinueDrag( - /* [in] */ BOOL fEscapePressed, - /* [in] */ DWORD grfKeyState); + virtual HRESULT STDMETHODCALLTYPE QueryContinueDrag( + /* [in] */ BOOL fEscapePressed, + /* [in] */ DWORD grfKeyState); - virtual HRESULT STDMETHODCALLTYPE GiveFeedback( - /* [in] */ DWORD dwEffect); + virtual HRESULT STDMETHODCALLTYPE GiveFeedback( + /* [in] */ DWORD dwEffect); }; /// implementation of IDataObject interface -class IDataObjectImpl : public IDataObject//,public IAsyncOperation +class IDataObjectImpl + : public IComSrvBase, public SimpleComObject + //public IAsyncOperation { + typedef IComSrvBase super; + IDropSourceImpl* m_pDropSource; long m_cRefCount; @@ -89,79 +93,72 @@ public: void CopyMedium(STGMEDIUM* pMedDest, STGMEDIUM* pMedSrc, FORMATETC* pFmtSrc); - //IUnknown - virtual HRESULT STDMETHODCALLTYPE QueryInterface( - /* [in] */ REFIID riid, - /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject); - virtual ULONG STDMETHODCALLTYPE AddRef(); - virtual ULONG STDMETHODCALLTYPE Release(); - //IDataObject virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetData( - /* [unique][in] */ FORMATETC __RPC_FAR *pformatetcIn, - /* [out] */ STGMEDIUM __RPC_FAR *pmedium); + /* [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 /* [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 QueryGetData( + /* [unique][in] */ FORMATETC __RPC_FAR *pformatetc); - virtual HRESULT STDMETHODCALLTYPE GetCanonicalFormatEtc( - /* [unique][in] */ FORMATETC __RPC_FAR *pformatectIn, - /* [out] */ FORMATETC __RPC_FAR *pformatetcOut); + 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 /* [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 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 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 DUnadvise( + /* [in] */ DWORD dwConnection); - virtual HRESULT STDMETHODCALLTYPE EnumDAdvise( - /* [out] */ IEnumSTATDATA __RPC_FAR *__RPC_FAR *ppenumAdvise); + virtual HRESULT STDMETHODCALLTYPE EnumDAdvise( + /* [out] */ IEnumSTATDATA __RPC_FAR *__RPC_FAR *ppenumAdvise); //IAsyncOperation - //virtual HRESULT STDMETHODCALLTYPE SetAsyncMode( - // /* [in] */ BOOL fDoOpAsync) + //virtual HRESULT STDMETHODCALLTYPE SetAsyncMode( + // /* [in] */ BOOL fDoOpAsync) //{ // return E_NOTIMPL; //} - // - //virtual HRESULT STDMETHODCALLTYPE GetAsyncMode( - // /* [out] */ BOOL __RPC_FAR *pfIsOpAsync) + // + //virtual HRESULT STDMETHODCALLTYPE GetAsyncMode( + // /* [out] */ BOOL __RPC_FAR *pfIsOpAsync) //{ // return E_NOTIMPL; //} - // - //virtual HRESULT STDMETHODCALLTYPE StartOperation( - // /* [optional][unique][in] */ IBindCtx __RPC_FAR *pbcReserved) + // + //virtual HRESULT STDMETHODCALLTYPE StartOperation( + // /* [optional][unique][in] */ IBindCtx __RPC_FAR *pbcReserved) //{ // return E_NOTIMPL; //} - // - //virtual HRESULT STDMETHODCALLTYPE InOperation( - // /* [out] */ BOOL __RPC_FAR *pfInAsyncOp) + // + //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) + // + //virtual HRESULT STDMETHODCALLTYPE EndOperation( + // /* [in] */ HRESULT hResult, + // /* [unique][in] */ IBindCtx __RPC_FAR *pbcReserved, + // /* [in] */ DWORD dwEffects) //{ // return E_NOTIMPL; //}*/ @@ -195,22 +192,22 @@ public: virtual ULONG STDMETHODCALLTYPE AddRef() {return ++m_cRefCount;} virtual ULONG STDMETHODCALLTYPE Release(); - bool QueryDrop(DWORD grfKeyState, LPDWORD pdwEffect); + 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); + /* [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 @@ -222,10 +219,10 @@ public: DragSourceHelper() { if (FAILED(CoCreateInstance(CLSID_DragDropHelper, - NULL, - CLSCTX_INPROC_SERVER, - IID_IDragSourceHelper, - (void**)&pDragSourceHelper))) + NULL, + CLSCTX_INPROC_SERVER, + IID_IDragSourceHelper, + (void**)&pDragSourceHelper))) pDragSourceHelper = NULL; } @@ -239,7 +236,7 @@ public: } // IDragSourceHelper - HRESULT InitializeFromBitmap(HBITMAP hBitmap, + HRESULT InitializeFromBitmap(HBITMAP hBitmap, POINT& pt, // cursor position in client coords of the window RECT& rc, // selected item's bounding rect IDataObject* pDataObject, @@ -249,19 +246,19 @@ public: 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); + 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) + HRESULT InitializeFromWindow(HWND hwnd, POINT& pt,IDataObject* pDataObject) { if (pDragSourceHelper == NULL) return E_FAIL;