【发布时间】:2012-01-02 01:55:57
【问题描述】:
我是一名 C++ 开发人员,正在努力更新已广泛使用 IStorage 接口从内存存储(通过 ILockBytes)打开 Office 2007 之前的文档的应用程序。
如果您到目前为止还关注我,您可能知道新的 Office 文档格式与 IStorage 容器不兼容。我尝试更新的应用程序依赖于所有 Office 应用程序都具有的 IPersistStorage 接口,并且编写的代码调用 IPersistStorage 的 load 方法从 IStorage 接口读取文档。
所以问题是:
我可以使用哪些 COM 接口从内存容器中读取 Office 2007 文档?
【问题讨论】:
-
在俄罗斯 Delphi 社区中,建议使用以下调用顺序: GlobalAlloc(GMEM_MOVEABLE, Stream.Size) => GlobalLock => CreateILockBytesOnHGlobal => StgOpenStorageOnILockBytes => OleLoad => IOleObject.DoVerb(0, nil,零, 0, 0, 矩形(0, 0, 0, 0))