资源简介
这是Redrain仿酷狗音乐播放器的完整代码,目的是帮助更多使用DuiLib的朋友学习这个库,如果代码有bug,或者对程序有疑问,可以联系我个人QQ或者QQ群,我经常在DuiLib QQ群活动,这个代码中包含了webkit内核浏览器、音乐播放类、菜单类、换肤功能等等。
qq:491646717
博客:http://blog.csdn.net/zhuhongshu?viewmode=contents
代码片段和文件信息
#include “duilib.h“
CDropTargetEx::CDropTargetEx(CframeWnd *pMainWnd):
m_pMainWnd(pMainWnd)
tb_RefCount(0)
m_hTargetWnd(0)
m_AcceptKeyState(0)
m_piDropHelper(NULL)
m_bUseDnDHelper(false)
m_pDropCallBack(NULL)
{
// Create an instance of the shell DnD helper object.
if ( SUCCEEDED( CoCreateInstance ( CLSID_DragDropHelper NULL
CLSCTX_INPROC_SERVER
IID_IDropTargetHelper
(void**) &m_piDropHelper ) ))
{
m_bUseDnDHelper = true;
}
}
CDropTargetEx::~CDropTargetEx()
{
if ( NULL != m_piDropHelper )
m_piDropHelper->Release();
}
BOOL CDropTargetEx::DragDropRegister(HWND hWnd DWORD AcceptKeyState)
{
if(!IsWindow(hWnd))return false;
HRESULT s = ::RegisterDragDrop (hWndthis);
if(SUCCEEDED(s))
{
m_hTargetWnd = hWnd;
m_AcceptKeyState = AcceptKeyState;
if (m_pMainWnd->GetLeftListPos(m_rcList))
return true;
return false;
}
else
{
return false;
}
}
HRESULT STDMETHODCALLTYPE CDropTargetEx::QueryInterface(REFIID iid void ** ppvobject)
{
*ppvobject = NULL;
if (iid == IID_IDropTarget)
*ppvobject = static_cast(this);
if( *ppvobject != NULL )
AddRef();
return *ppvobject == NULL ? E_NOINTERFACE : S_OK;
}
ULONG STDMETHODCALLTYPE CDropTargetEx::AddRef(void)
{
InterlockedIncrement(&tb_RefCount);
return tb_RefCount;
}
ULONG STDMETHODCALLTYPE CDropTargetEx::Release(void)
{
ULONG ulRefCount = InterlockedDecrement(&tb_RefCount);
return ulRefCount;
}
HRESULT STDMETHODCALLTYPE CDropTargetEx::DragOver(DWORD grfKeyStatePOINTL pt DWORD *pdwEffect)
{
ScreenToClient(m_hTargetWnd (LPPOINT)&pt);
if( grfKeyState != m_AcceptKeyState || pt.x < m_rcList.left || pt.x > m_rcList.right || pt.y < m_rcList.top || pt.y > m_rcList.bottom)
{
*pdwEffect = DROPEFFECT_NONE;
}
else
{
*pdwEffect = DROPEFFECT_COPY ;
}
if ( m_bUseDnDHelper )
{
m_piDropHelper->DragOver((LPPOINT)&pt *pdwEffect);
}
return S_OK;
}
HRESULT STDMETHODCALLTYPE CDropTargetEx::DragEnter(IDataobject * pDataobjectDWORD grfKeyState POINTL pt DWORD * pdwEffect)
{
if( grfKeyState != m_AcceptKeyState )
{
*pdwEffect = DROPEFFECT_NONE;
return S_OK;
}
//我这里只关心CE_HDROP类型,如果需要,可以调用EnumDragData函数来枚举所有类型
FORMATETC cFmt = {(CLIPFORMAT) CF_HDROP NULL DVASPECT_CONTENT -1 TYMED_HGLOBAL};
GetDragData(pDataobject cFmt);
*pdwEffect = DROPEFFECT_COPY;
if ( m_bUseDnDHelper )
{
m_piDropHelper->DragEnter ( m_hTargetWnd pDataobject (LPPOINT)&pt *pdwEffect );
}
return S_OK;
}
HRESULT STDMETHODCALLTYPE CDropTargetEx::DragLeave(void)
{
int temp = m_Array.size();
for(UINT i = 0;i < m_Array.size(); i++)
{
LPDRAGDATA pData = m_Array[i];
::ReleaseStgMedium(&pData->stgMedium);
delete pData;
m_Array.clear();
}
if ( m_bUseDnDHelper )
{
m_piDropHelper->DragLeave();
}
return S_OK;
}
HRESULT STDMETHODCALLTYPE CDropTargetEx::Drop(IDataobject *pDataObjDWORD grfKeyState
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3081 2014-07-24 13:15 Redrain仿酷狗播放器\cloneKuGou\cloneKuGou.filters
文件 143 2014-05-03 09:31 Redrain仿酷狗播放器\cloneKuGou\cloneKuGou.user
文件 4421 2014-07-31 08:38 Redrain仿酷狗播放器\cloneKuGou\cloneKuGou.vcproj
文件 8306 2014-11-12 07:40 Redrain仿酷狗播放器\cloneKuGou\cloneKuGou.vcxproj
文件 6544 2014-11-12 07:40 Redrain仿酷狗播放器\cloneKuGou\cloneKuGou.vcxproj.filters
文件 5409 2014-09-09 08:31 Redrain仿酷狗播放器\cloneKuGou\ControlNames.h
文件 6163 2014-09-01 09:09 Redrain仿酷狗播放器\cloneKuGou\Controls\PopupWidget.cpp
文件 2110 2014-09-08 15:34 Redrain仿酷狗播放器\cloneKuGou\Controls\PopupWidget.h
文件 2252 2014-08-20 17:41 Redrain仿酷狗播放器\cloneKuGou\Controls\SkinPickerPictureItem.cpp
文件 1485 2014-08-11 14:12 Redrain仿酷狗播放器\cloneKuGou\Controls\SkinPickerPictureItem.h
文件 12177 2014-08-26 21:32 Redrain仿酷狗播放器\cloneKuGou\Controls\UIColorPalette.cpp
文件 2426 2014-08-24 07:04 Redrain仿酷狗播放器\cloneKuGou\Controls\UIColorPalette.h
文件 934 2014-09-01 10:26 Redrain仿酷狗播放器\cloneKuGou\Controls\UIHotButton.cpp
文件 428 2014-09-01 10:23 Redrain仿酷狗播放器\cloneKuGou\Controls\UIHotButton.h
文件 27985 2014-11-02 14:36 Redrain仿酷狗播放器\cloneKuGou\Controls\UIMenu.cpp
文件 7042 2014-09-22 18:36 Redrain仿酷狗播放器\cloneKuGou\Controls\UIMenu.h
文件 23542 2014-09-09 08:20 Redrain仿酷狗播放器\cloneKuGou\Controls\UIMusicList.cpp
文件 4434 2014-09-09 08:20 Redrain仿酷狗播放器\cloneKuGou\Controls\UIMusicList.h
文件 2565 2014-08-27 23:03 Redrain仿酷狗播放器\cloneKuGou\Controls\UIRadioList.cpp
文件 1553 2014-08-27 16:08 Redrain仿酷狗播放器\cloneKuGou\Controls\UIRadioList.h
文件 363 2014-07-19 17:04 Redrain仿酷狗播放器\cloneKuGou\Discard\CreateControlEx.h
文件 5405 2014-07-24 15:14 Redrain仿酷狗播放器\cloneKuGou\Discard\CustomWebEventHandler.h
文件 5277 2014-09-09 12:55 Redrain仿酷狗播放器\cloneKuGou\DropTargetEx.cpp
文件 1554 2014-09-08 13:50 Redrain仿酷狗播放器\cloneKuGou\DropTargetEx.h
文件 158844 2014-09-11 18:52 Redrain仿酷狗播放器\cloneKuGou\Duilib.aps
文件 1136 2014-09-08 15:23 Redrain仿酷狗播放器\cloneKuGou\duilib.h
文件 9662 2014-08-27 23:31 Redrain仿酷狗播放器\cloneKuGou\duilib.ico
文件 2614 2014-09-11 18:52 Redrain仿酷狗播放器\cloneKuGou\Duilib.rc
文件 98512 2014-06-11 08:49 Redrain仿酷狗播放器\cloneKuGou\Duilib.res
文件 31711 2014-11-09 15:35 Redrain仿酷狗播放器\cloneKuGou\fr
............此处省略236个文件信息
相关资源
- duilib webkit内核浏览器控件修复select标
- 嵌入式系统——采用公开源代码和S
- 斯坦福开源CFD SU2 3.2.9版源码
- 简单详细,开源的helloChart 图表开发
- DSmall多商户B2B2C开源商城源码 3.1.1
- stm32+uCOS-II+uCGUI3.98+FatFS完整开源程序
- 开源ucgui3.98完整版
- 微擎1.7.9商业版去后门去授权开源纯净
- 若比特Robotell开源资料
- 免费开源ERP odoo实施应用手册 最新版
- 智慧农场小程序1.4.3开源.zip
- duilib 类似qq的图片查看器
- DTcms5.0_NET开源CMS_模板_适用微信开发
- 开源GIS与空间数据库实战教程(清华
- openrefine 开源数据清洗工具
- 基于SSM框架开发的因酷开源网络课堂
- MPC-HC播放器源代码
- 商家联盟V1.0.2全开源解密版.zip
- 免费开源.net的pdf操作控件PdfiumViewer
- 蘑菇街开源的 IM 项目 TeamTalkiOS clien
- Google GPS轨迹记录软件 MyTracks源码整理
- 开源GIS与空间数据库实战教程-csdn
- World Wind 1.4源代码
- BrnShop开源网上商城2.1版本源码已改为
- SX1308、SX1301开源的硬件原理图,和p
- 短视频完美开源源码 后台+APP双端源码
- 荧光管VFD时钟PCB+SCH+源码开源
- 百度手环开源项目全套资料(设计文
- 开源项目PLC通信工具 HslCommunication 测
- 同城聚合平台28.8.0+小程序前端+全开源
评论
共有 条评论