Windows Shell编程——获取文件的缩略图

本文介绍了如何通过Windows Shell编程获取Excel文件的预览缩略图。通过调用IExtractImage接口,从Shell文件夹中请求并提取文件的缩略图,然后在应用程序窗口上显示。提供的代码示例展示了具体实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
       前些天在论坛上发帖,询问有关Windows文件夹中显示Excel文件预览的问题。在Excel保存文件之前选择【文件】——>【属性】——>【保存文件预览】,这样保存成的Excel文件在Window文件夹左面的详细信息面板中可以看到预览图片,向JPG图片一样。安装了PDF阅读软件也一样。
       有人回复说使用IFileViewer,于是花了两天时间调研Windows shell编程,下了好几本有关Windows Shell编程的书籍,都没有找到IFileViewer的使用方法,本人对COM技术懂一些,但没有太多的时间系统的学习一下Windows Shell。于是问题滞留不前。
       有一天忽然间发现在文件夹中以缩略图的方式浏览,也可以看到预览图片,于是就想到换一种方法,得到Windows的文件缩略图,然后将其显示在窗口上。事实证明该方法确实有效。原来的想法是,用IFileViewer加载一个文件,然后传进去一个窗口句柄,就可以显示该文件的预览图片了。
       下面介绍获得Windows文件缩略图的方法:
HRESULT CShortCutDlg::CreateThumbnail(DWORD dwWidth, DWORD dwHeight, HBITMAP* pThumbnail
     LPITEMIDLIST pidlItems = NULL, pidlURL = NULL, pidlWorkDir = NULL
     ULONG   ulParseLen = 0;
     HRESULT hr
     WCHAR pszPath[MAX_PATH]; 
     DWORD dwPriority = 0, dwFlags = IEIFLAG_ASPECT
     SIZE size = { dwWidth, dwHeight }; 
     IExtractImage* peiURL = NULL;    // nterface is used to request a thumbnail image from a Shell folder
     IShellFolder* psfDesktop = NULL
     IShellFolder* psfWorkDir = NULL
     IMalloc*  pMalloc = NULL;
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值