• 大小: 17.89MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-07-10
  • 语言: 其他
  • 标签: 开源  仿酷狗  DuiLib  

资源简介

这是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\frameWnd.cpp

............此处省略236个文件信息

评论

共有 条评论