【MoreWindows工作笔记10】OleGetClipboard 访问剪切板上的文件信息
2013-12-31 16:00
288 查看
当我们复制文件时,会将文件的信息存储在剪贴板中,这个文件信息并不是文件路径的字符串。而是HDROP类型,这个类型可以参考之前《Windows界面编程系列》的《Windows界面编程第七篇 文件拖拽(文件拖放)》(地址:/article/1392160.html)。下面是完整的源代码:
文章中的OleInitialize、OleUninitialize、FORMATETC、STGMEDIUM等等剪贴板操作可以参考前一篇《【MoreWindows工作笔记9】OleGetClipboard 访问剪切板的文本内容》地址/article/1422648.html
本文地址:http://blog.csdn.net/morewindows/article/details/17655057 转载请标明出处,谢谢。欢迎关注微博:http://weibo.com/MoreWindows
// 【MoreWindows工作笔记10】OleGetClipboard 访问剪切板上的文件信息 // /article/1422647.html // By MoreWindows( http://blog.csdn.net/MoreWindows ) #include <Windows.h> #include <ObjBase.h> #include <iostream> using namespace std; void DisplayDataObject(IDataObject *pDataObject) { FORMATETC fmtetc = {CF_HDROP, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL}; STGMEDIUM stgmedium; if (pDataObject->GetData(&fmtetc, &stgmedium) == S_OK) { cout<<" 剪切板数据格式上为CF_HDROP, 数据内容如下:"<<endl; HDROP hdrop = (HDROP)GlobalLock(stgmedium.hGlobal); int count = DragQueryFile(hdrop, 0xFFFFFFFF, NULL, 0); for(int i = 0; i < count; ++i) { char path[_MAX_PATH]; DragQueryFile(hdrop, i, path, _MAX_PATH); cout<<path<<endl; } GlobalUnlock(stgmedium.hGlobal); ReleaseStgMedium(&stgmedium); } else { cout<<"Error! 剪切板数据格式不为CF_HDROP"<<endl; } } int main() { printf(" 【MoreWindows工作笔记10】OleGetClipboard 访问剪切板的文本内容\n"); printf(" - /article/1422648.html -\n"); printf(" -- By MoreWindows( http://blog.csdn.net/MoreWindows ) --\n\n"); if (OleInitialize(0) != S_OK) return 0; IDataObject *pDataObject; if (OleGetClipboard(&pDataObject) == S_OK) { DisplayDataObject(pDataObject); pDataObject->Release(); } OleUninitialize(); return 0; }复制一些文件,然后运行程序,运行结果如下所示:
文章中的OleInitialize、OleUninitialize、FORMATETC、STGMEDIUM等等剪贴板操作可以参考前一篇《【MoreWindows工作笔记9】OleGetClipboard 访问剪切板的文本内容》地址/article/1422648.html
本文地址:http://blog.csdn.net/morewindows/article/details/17655057 转载请标明出处,谢谢。欢迎关注微博:http://weibo.com/MoreWindows
相关文章推荐
- 【MoreWindows工作笔记9】OleGetClipboard 访问剪切板的文本内容
- 【MoreWindows工作笔记2】 查看当前系统使用的字符集 GetSystemDefaultLocaleName
- GetFileAttributesEx获取无法访问到的网络路径上的文件信息,会等待很长时间。
- 【MoreWindows工作笔记4】 获取文件图标,类型名称,属性 SHGetFileInfo
- 【MoreWindows工作笔记12】WM_DRAWCLIPBOARD 监视剪切板
- Java基础之访问文件与目录——获取与文件存储有关的信息(GetFileStores)
- 黑马程序员_学习笔记10——引用类型与值类型,继承,访问修饰符,里氏转换
- 工作笔记1-通过async-http-client上传文件给java服务器
- 如何审计访问共享文件的客户端电脑以及清除在Windows下访问共享文件夹时的登录信息
- Windows 10:快速访问助您工作事半功倍
- php远程获取图片或文件信息(get_headers,fsocketopen,curl)
- Caffe学习笔记10:图像数据生成caffe需要的(laveldb和lmdb)数据文件
- 《APUE》笔记-第六章-系统数据文件和信息
- VB.NET-用Socket类写个POST/GET程序.在服务器返回中的信息里,中文件为何变成了编码??
- 【MoreWindows工作笔记7】PathIsPrefix 判断路径的包含关系
- QT学习笔记10资源文件
- Web 在线文件管理器学习笔记与总结(1)初始文件以及获取首层目录信息
- 软件调试笔记53 - 调试符号 : 目标文件中的调试信息
- 当程序用ado的jet4.0方式连接的时候,对于设有access数据库密码的mdb的访问居然报错“无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开”,而用odbc方式不报错,小阴沟里翻船,郁闷中然后查文档解决之
- Python3基础 getatime getctime getmtime 获取一个文件的最近访问时间 创建时间 最新修改时间