• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > @@@@亟待解决:读写文件摘要的问题!!!!!!!!

@@@@亟待解决:读写文件摘要的问题!!!!!!!!

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了亟待解决,亟待解决的意思,亟待解决怎么读,亟待解决的问题,亟待解决的近义词等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: @@@@亟待解决:读写文件摘要的问题!!!!!!!!
描述:

一般的文件都有文件摘要属性页,它包括了作者、标题、评论等内容。我在VC下用以下代码实现了除了图片文件以外的其他文件的文件摘要信息的写入。执行完毕后,如果是非bmp、jpg等图片文件,那么在文件的右键属性页中出现刚才写入的摘要信息。但是图片文件不显示摘要信息。
而且,此时如果,把文件的后缀名改为其他的,比如“.txt”,摘要信息就看得到了。这个是为什么呢?
请高手相助,很急啊!!!!!!!!!!!!!!!!!!!!!!!!!!
IPropertySetStorage *pPropSetStg = NULL;
IPropertyStorage *pPropStg = NULL;
PROPSPEC propspec[4]; 
PROPVARIANT propWrite[4]; 
HRESULT hr = S_OK;
USES_CONVERSION;
hr = StgOpenStorageEx( szFilePath,
STGM_DIRECT |STGM_SHARE_EXCLUSIVE|STGM_READWRITE,
STGFMT_ANY,
0,
NULL,
NULL,
IID_IPropertySetStorage,
reinterpret_cast<void**>(&pPropSetStg) );
DWORD Result = 0;
if( FAILED(hr) ) 
{
Result = GetLastError();
return; // if not ntfs , it will be error.
throw L"Failed StgOpenStorageEx";
}
hr = pPropSetStg->Create( FMTID_SummaryInformation, NULL, PROPSETFLAG_DEFAULT,
STGM_CREATE|STGM_READWRITE|STGM_SHARE_EXCLUSIVE,
&pPropStg );
    if( FAILED(hr) ) 
throw L"Failed IPropertySetStorage::Open";
//we can identify any property through its Name or its ID
//    propspec.ulKind = PRSPEC_LPWSTR;
//    propspec.lpwstr = L"Title";
    propspec[0].ulKind = PRSPEC_PROPID;
    propspec[0].propid  = 0x00000002;
    propWrite[0].vt = VT_LPWSTR;
    propWrite[0].pwszVal = LPTSTR(LPCTSTR(szTitle));
propspec[1].ulKind = PRSPEC_PROPID;
    propspec[1].propid  = 0x00000003;
    propWrite[1].vt = VT_LPWSTR;
    propWrite[1].pwszVal = LPTSTR(LPCTSTR(szSubject));
propspec[2].ulKind = PRSPEC_PROPID;
    propspec[2].propid  = 0x00000004;
    propWrite[2].vt = VT_LPWSTR;
    propWrite[2].pwszVal = LPTSTR(LPCTSTR(szAuthor));
propspec[3].ulKind = PRSPEC_PROPID;
    propspec[3].propid  = 0x00000006;
    propWrite[3].vt = VT_LPWSTR;
propWrite[3].pwszVal = LPTSTR(LPCTSTR(szComment));
hr = pPropStg->WriteMultiple(4, propspec, propWrite, PID_DICTIONARY);
    if( FAILED(hr) ) 
throw L"Failed IPropertyStorage::WriteMultiple";
pPropStg->Release(); 
pPropStg = NULL;
pPropSetStg->Release();
pPropSetStg = NULL;


解决方案1:

我只知道jpg的摘要会插入到在图象数据的前面,以Unicode存放,不了解jpg文件结构,没法帮你了。你到网上找找有没有jpg图象处理的源代码看看。

解决方案2:

我只是让你尝试读取不同的文件属性,仅仅为了验证你添加的概要信息是否有效,不是让你去写自定义属性,自定义属性是图片创建者写入的,并且直接保存在文件内容中,你说的其它软件其实就是图片创建者,它知道文件格式,也知道自定义属性是写在哪的。我劝你不要尝试了,除非你完全了解jpg的格式,重写jpg文件,但是这样做会降低你的代码的通用性,因为你不知道操作系统到底对哪些格式的文件显示自定义属性。

解决方案3:

再多说一点,NTFS文件系统中,每个文件可以有多个数据属性,默认的数据属性就是文件内容,摘要是另一种数据属性,你的这段代码就是写这个数据属性的。在资源管理器里面点鼠标右键选择属性看到的摘要信息,与摘要数据属性并不是一定要对应的。一些类型(按扩展名来分)的文件,例如图片、视频、文档等文件的摘要信息是从文件内容中取得的,对于这些类型的文件,系统不再使用摘要数据属性,这些类型的文件储存在FAT32文件系统中依然可以看到摘要信息,而其它类型文件只有储存在NTFS文件系统中才能有摘要信息。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 我有个问题急待解决
  • 关于设置多线程的菜鸟问题,急待解决,请大家帮忙!!!
  • msvcrtddll中无效页面的错误,急待解决
  • 100分求助:文件拷贝问题,急待解决!!!!!
  • 急待解决!。。。。。。。。
  • @@@@亟待解决:读写文件摘要的问题!!!!!!!!

相关文章

  • 2017-06-04 多文档封装起来,在对话框程序中调用,能实现吗?
  • 2017-06-04 高手来看-------------调用一个语音聊的客户端控件时,总出现IE,应用程序错误。
  • 2017-06-04 有个事情没想明白,接口1的输出参数是接口2时,接口2通常怎么创建实例?
  • 2017-06-05 ExitProcess与发送WM_QUIT消息推出程序的区别?
  • 2017-06-05 高声呼救::怎么编写对PCI数据读写的dll??在线等!!!
  • 2017-06-04 ASP如何传递字符串给COM,以及如何得到COM的返回值的字符串?
  • 2017-06-04 能给一个用vc编写的com程序吗,能说明问题就行?
  • 2017-06-04 ActiveX控件提示安装后,为什么没有注册上?必须手动注册才行。。。
  • 2017-06-04 ATL的对话框与MFC的对话框兼容性问题
  • 2017-06-04 ActiveX的键盘控制问题

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 用VB调用dll竟然找不到文件
    • 请教各位大侠关于dll文件合并的问题,解决立即结帐
    • 怎么使用com文件?
    • OPENCV封装成DLL的问题
    • 看MSDN里的消息队列和线程的关系有些不太懂,请教
    • 谁知道临界区域是什么意识。线程用的
    • dll怎么发送数据给windowsservice?
    • 用OpenCV244但是编译无法打开文件“opencv_core231dlib”
    • 用vc创建一个ISAPI扩展,可以在vc程序中调用吗
    • 如何实现QueryInterface,求最简单的Api实现例子不用MFC。

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有