#pragma once #include "stdafx.h" #include "MBGroupChatFrame.h" class AFX_EXT_CLASS CMBAMShareDropTarget :public IDropTarget { public: CMBAMShareDropTarget(); virtual ~CMBAMShareDropTarget(); protected: int m_nRef; IDropTargetHelper* m_piDropHelper; IDataObject* m_pDataObj; DWORD m_dwAcceptKeyState; public: HWND m_hWnd; protected: // IUnknown virtual HRESULT STDMETHODCALLTYPE QueryInterface( /* [in] */ REFIID riid, /* [iid_is][out] */ __RPC__deref_out void __RPC_FAR *__RPC_FAR *ppvObject); virtual ULONG STDMETHODCALLTYPE AddRef(void); virtual ULONG STDMETHODCALLTYPE Release(void); virtual HRESULT STDMETHODCALLTYPE DragEnter( /* [unique][in] */ __RPC__in_opt IDataObject *pDataObj, /* [in] */ DWORD grfKeyState, /* [in] */ POINTL pt, /* [out][in] */ __RPC__inout DWORD *pdwEffect); virtual HRESULT STDMETHODCALLTYPE DragOver( /* [in] */ DWORD grfKeyState, /* [in] */ POINTL pt, /* [out][in] */ __RPC__inout DWORD *pdwEffect); virtual HRESULT STDMETHODCALLTYPE DragLeave(void); private: //ÉèÖÃÍϷŹý³ÌÖеÄÃèÊö ÐÅÏ¢ bool SetDropDescription(DROPIMAGETYPE nImageType, LPCWSTR lpszText, LPCWSTR lpszInsert=NULL); virtual void GetInsertMsg(std::wstring &szMessage,std::wstring &szInsert); // µÃµ½²åÈëÐÅÏ¢ }; class AFX_EXT_CLASS CMBAMShareDropTargetImpl: public CMBAMShareDropTarget { public: CMBAMShareDropTargetImpl(CMBGroupChatFrame *pChatFrame); ~CMBAMShareDropTargetImpl(void); private: CMBGroupChatFrame *m_pGroupChatFrame; private: virtual void GetInsertMsg(std::wstring &szMessage,std::wstring &szInsert); // µÃµ½²åÈëÐÅÏ¢ public: virtual HRESULT STDMETHODCALLTYPE Drop( /* [unique][in] */ __RPC__in_opt IDataObject *pDataObj, /* [in] */ DWORD grfKeyState, /* [in] */ POINTL pt, /* [out][in] */ __RPC__inout DWORD *pdwEffect); };