• 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

佚名通过本文主要向大家介绍了sem结构化面试问题,结构化面试问题,结构化面试问题及答案,结构化问题,幼儿园面试结构化问题等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 关于结构化存储的问题
描述:

我用ATL编写了一个程序,完成对word的开发。现在对word文档的结构做一些改动,添加自定义的流,出现了很头痛的问题:
1、为什么在Word文档中自己创建的存储对象和流对象在文档修改过之后保存或另存为时全部丢失了。不知道Word的保存机制是什么,我在哪里可以查到相关方面的资料呢。
2、Word在保存文档之后是否给我们开发人员提供了接口,来处理保存之后的事件。因为我想在文档保存后知道它在保存之前的文档名。我现在只能做到响应保存之前的DocumentBeforeSave()函数。


解决方案1:

这个问题俺以前遇到过,
印象中你的控件要实现 IPersistStreamInit或者类似的接口
word文件在保存的时候,会自动调用该接口的几个方法,
你可以在接口方法中把你的数据写入到传递来的Stream对象中。
参考Knowledge Base Q241936,PRB: ATL Control Properties Do Not Persist when Embedded in Word。

解决方案2:

Try DocumentBeforeClose(), it may work.
/////
    interface IApplicationEvents2 : IDispatch {
        [id(0x00000001), restricted, hidden]
        HRESULT Startup();
        [id(0x00000002), helpcontext(0x00061a82)]
        HRESULT Quit();
        [id(0x00000003), helpcontext(0x00061a83)]
        HRESULT DocumentChange();
        [id(0x00000004), helpcontext(0x00061a84)]
        HRESULT DocumentOpen([in] Document* Doc);
        [id(0x00000006), helpcontext(0x00061a85)]
        HRESULT DocumentBeforeClose(
                        [in] Document* Doc, 
                        [in] VARIANT_BOOL* Cancel);
        [id(0x00000007), helpcontext(0x00061a86)]
        HRESULT DocumentBeforePrint(
                        [in] Document* Doc, 
                        [in] VARIANT_BOOL* Cancel);
        [id(0x00000008), helpcontext(0x00061a87)]
        HRESULT DocumentBeforeSave(
                        [in] Document* Doc, 
                        [in] VARIANT_BOOL* SaveAsUI, 
                        [in] VARIANT_BOOL* Cancel);
        [id(0x00000009), helpcontext(0x00061a88)]
        HRESULT NewDocument([in] Document* Doc);
        [id(0x0000000a), helpcontext(0x00061a89)]
        HRESULT WindowActivate(
                        [in] Document* Doc, 
                        [in] Window* Wn);
        [id(0x0000000b), helpcontext(0x003d090a)]
        HRESULT WindowDeactivate(
                        [in] Document* Doc, 
                        [in] Window* Wn);
        [id(0x0000000c), helpcontext(0x003d090b)]
        HRESULT WindowSelectionChange([in] Selection* Sel);
        [id(0x0000000d), helpcontext(0x003d090c)]
        HRESULT WindowBeforeRightClick(
                        [in] Selection* Sel, 
                        [in] VARIANT_BOOL* Cancel);
        [id(0x0000000e), helpcontext(0x003d090d)]
        HRESULT WindowBeforeDoubleClick(
                        [in] Selection* Sel, 
                        [in] VARIANT_BOOL* Cancel);
    };


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

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

  • COM传递结构问题
  • 关于结构化存储的问题
  • 结构化存储问题(超难)

相关文章

  • 2017-06-05 求大神发一段加载js脚本的代码
  • 2017-06-04 关于loadlibrary返回126的问题
  • 2017-06-04 急急的请教高手一个关于IStorage的问题!
  • 2017-06-05 vc++中如何调用dll里的函数,请说详细一点,多谢
  • 2017-06-04 线程的全局函数能成为一个类的成员函数吗?
  • 2017-06-05 线程中使用PostMessage的一个问题
  • 2017-06-04 过年好!一个关于Ado和Com的问题,绝对高手请进入
  • 2017-06-04 怎么做类似word的基于服务的程序
  • 2017-06-05 win32DLL问题?
  • 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
  • 微信公众号

最近更新的内容

    • 请问启动一个线程后如何结束它,具体怎么写?如果调用函数的话参数应该怎么写?
    • 引用stlport库出现stlport_vc464dll为无效的windows映像提示
    • 如何获得某进程使用多少cpu时间?
    • 谈一谈Moniker吧!
    • 通过mscomm接收到gps数据之后到底怎么处理成经纬度
    • 怎样知道目录或文件的拥有者是谁呢(WIN32API)?
    • 登录框后再弹出对话框,如何消毁登录框?
    • 调DLL中的函数引起的异常是不是一定会导致整个程序的崩溃?能否在DLL外处理?
    • mfc单文档或多文档程序中如何嵌入wps表格
    • 是否可以调用被集合的内部组件?

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

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