VC源码 粘贴板操作文件对象

当前位置: 首页 >> 技术支持

分享到:
2013-07-04 20:34:53

VOID ClipboardCopyFiles(char *lpBuffer,UINT uBufLen){
    UINT uDropEffect;
    DROPFILES dropFiles;
    UINT uGblLen,uDropFilesLen;
    HGLOBAL hGblFiles,hGblEffect;
    char *szData,*szFileList;

    DWORD *dwDropEffect;

    uDropEffect=RegisterClipboardFormat("Preferred DropEffect");
    hGblEffect=GlobalAlloc(GMEM_ZEROINIT|GMEM_MOVEABLE|GMEM_DDESHARE,sizeof(DWORD));
    dwDropEffect=(DWORD*)GlobalLock(hGblEffect);
    *dwDropEffect=DROPEFFECT_COPY;    
    GlobalUnlock(hGblEffect);

    uDropFilesLen=sizeof(DROPFILES);
    dropFiles.pFiles =uDropFilesLen;
    dropFiles.pt.x=0;
    dropFiles.pt.y=0;
    dropFiles.fNC =FALSE;
    dropFiles.fWide =TRUE;

    uGblLen=uDropFilesLen+uBufLen*2+8;
    hGblFiles= GlobalAlloc(GMEM_ZEROINIT|GMEM_MOVEABLE|GMEM_DDESHARE, uGblLen);
    szData=(char*)GlobalLock(hGblFiles);
    memcpy(szData,(LPVOID)(&dropFiles),uDropFilesLen);
    szFileList=szData+uDropFilesLen;

    MultiByteToWideChar(CP_ACP,MB_COMPOSITE,
            lpBuffer,uBufLen,(WCHAR *)szFileList,uBufLen);
    
    GlobalUnlock(hGblFiles);

    if( OpenClipboard(NULL) )
    {
        EmptyClipboard();
        SetClipboardData( CF_HDROP, hGblFiles );
        SetClipboardData(uDropEffect,hGblEffect);
        CloseClipboard();
    }
}     

{LastAndNextNews}
自助服务
用户名:
密 码:

在线咨询

客服1:732055019

客服2:784578232

合作: 343365976


推荐产品
手机版 关于维泰 客户留言 在线报名
维泰网络 联系电话:400-660-6590 维护