Dsofile.dll 文件,您可以编辑 Office 文档属性时您没有安装的 Office

文章翻译 文章翻译
文章编号: 224351 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

Dsofile.dll 示例文件是使用 Microsoft Visual Basic.NET 或 Microsoft.NET Framework 的程序员的进程内 ActiveX 组件。读取并编辑与 Microsoft Office 文件中,如下所示的 OLE 文档属性,可以使用自定义应用程序中此:
  • Microsoft Excel 工作簿
  • Microsoft PowerPoint 演示文稿
  • Microsoft Word 文档
  • Microsoft Project 的项目
  • Microsoft Visio 绘图
  • OLE 结构化存储格式保存其他文件
Dsofile.dll 示例文件写入的 Microsoft Visual C++。Dsofile.dll 文件示例演示如何使用 OLE32 IPropertyStorage接口访问 OLE 结构化存储文件的扩展的属性。该组件将数据转换为更易于使用的编程语言 (如 Visual Basic 6.0,Visual Basic.NET 中,和 C# 的高级别的自动化友好的数据类型。Dsofile.dll 示例文件中给定的完整源代码,包括用 Visual Basic 6.0 和 Visual Basic.NET 2003 (7.1) 编写的示例客户端。

更多信息

下载 ActiveX 组件示例

下面是一些可从 MicrosoftDownload 中心下载:
收起这个图片展开这个图片
下载
立即下载 DsoFileSetup_KB224351_x86.exe 软件包。
您可以使用、 修改、 再现,以及 Dsofile.dll 示例文件组件而以任何方式对您有用的 c + + 源代码文件分发版税的权利。这是假设您同意 Microsoft 已没有担保、 没有义务和供其使用或提供的信息不承担责任。仅供教学使用免费的并被认为是一个示例提供了组件和源的代码。如果您想要使用该组件或其任何部分,在生产解决方案中,您有责任审查,以便进行修改,以进行测试,并支持组件的自己。

警告Dsofile.dll、 源代码和相关联的示例是"按原样"提供而无需任何形式的担保,任何明示或暗示的担保,包括但不是限于) 适销性和针对特定用途的适用性的暗示保证。使用需要您自担风险。

注意要读取并编辑 Office 2007 文档使用此示例,您必须安装 Office 2007 兼容包。有关详细信息,请参见"资源"部分。

有关 OLE 文档属性信息

每个 OLE 复合文档可以持久属性集合中存储文档的附加信息。这些统称为"文档摘要属性。这些属性集由"OLE/COM"管理,以便第三方客户端可以读取此不借助负责文件的主应用程序的信息。

为了帮助开发人员感兴趣阅读文档属性,我们提供了以下两个接口来管理属性集:
  • IPropertySetStorage
  • IPropertyStorage
但是,一些高级的编程语言可能会有使用这些接口,因为接口不是自动化兼容的问题。若要解决此问题,开发人员可以使用 ActiveX DLL 中,这种"DsoFile 样本"读取和写入 OLE 复合文档所使用的最常见属性。这适用于特别是在那些所使用的 Microsoft Office 应用程序。

使用 DsoFile 组件从自定义应用程序

Dsofile.dll 示例文件读取和写入任何"OLE 结构化存储"文件中的标准属性和自定义属性。这包括但不限于以下:
  • Word 文档
  • Excel 工作簿
  • PowerPoint 演示文稿
由于大小和速度的 Dsofile.dll 示例文件,该 DLL 可以比 office 自动化读取文档属性尝试要高效得多。

若要使用该组件,设置名为"DSO OLE 文档属性读取 2.1。"Dsofile 类型库的引用该组件可用于两个后期的调用和早期绑定的 calls.the Dsofile.dll 示例文件都有一个对象,它可以创建。该对象被命名为DSOFile.OleDocumentPropertiesDSOFile.OleDocumentProperties对象提供了对 OLE 文档属性,则使用Open方法加载的文件的访问权限。所有属性中读取并打开缓存。所有属性都可通过OleDocumentProperties对象以便进行编辑。属性是只写回文件保存在您调用时。完成后编辑文件时,调用关闭以释放该文件锁定。

SummaryProperties属性,可以获得标准 OLE 属性和标准办公室摘要属性。自定义属性集合中列出自定义属性。每个自定义属性都有一个唯一的名称。每个自定义属性是集合中该名称的访问。您可以添加或删除单个属性。此外,可以遍历整个集合枚举通过使用 Visual Basic.NET 中的"为每个"语法。

调用Open方法时,名为 Dsofile 的OleDocumentProperties对象将尝试打开文档进行读访问和写访问权限。如果该文件已被标记为只读,或者文件位于 NTFS 共享只提供读取访问权限,则调用可能会失败。您可能会收到以下错误消息:
被拒绝的错误 70:Permission
如果您想要打开的文件的读访问权限,对于只读参数传递Open方法上。此外,如果您希望 Dsofile 再试着打开该文件进行编辑时,可以在它们的dsoOptionOpenReadOnlyIfNoWriteAccess标志传递。但是,如果 Dsofile 无法获得访问权限,因为文件是只读的或由另一个进程已锁定,打开只读副本。然后,您可以验证是否打开文档只读的方法是使用IsReadOnly属性。

一旦被更改或修改属性,可以使用IsDirty属性以验证具有要保存的属性集。所做的更改无法写入文件,直到保存调用。如果不调用保存关闭, 丢失所做的更改。

除了标准的自动化错误消息,Dsofile 可以返回以下的自定义错误消息之一时出现问题:
错误-2147217151 (& H80041101): 您必须打开的文档,以执行请求的操作。
错误-2147217150 (& H80041102): 您必须打开一个新的同一个对象中之前关闭当前文档。
错误-2147217149 (& H80041103): 文档的另一个程序正在使用,无法打开进行读写访问权限。
错误-2147217148 (& H80041104): 该文档不是 OLE 文件,和不支持扩展的文档属性。
错误-2147217147 (& H80041105): 该命令不可用,因为文档以只读模式打开。
错误-2147217146 (& H80041106): 命令不可用于 OLE 结构化存储的文件。
错误-2147217145 (& H80041107): 该对象未连接到文档 (它已被删除或已关闭的文档)。
错误-2147217144 (& H80041108): 无法访问属性,因为它属于一组不存在。
错误-2147217143 (& H80041109): 集合中不存在请求的属性。
错误-2147217142 (& H8004110A): 集合中已存在该名称的项。

Unicode 属性集

OLE 属性集可以存储的字符串,这两种 Unicode 格式或多字节字符字符串 (MBCS) 格式与指定的代码页。Dsofile 可以读取和写入任何类型的属性集。默认情况下,Dsofile Unicode 时选择 Dsofile 创建新集,如向文件中添加属性时,也没有。如果您希望 Dsofile 来创建一组针对字符串使用 MBCS 格式,可以传入Open方法dsoOptionUseMBCStringsForNewSets标志。

由于现有的属性集可以使用 MBCS 格式,Dsofile 必须在一个存储过程相同的格式存储的字符串。如果您尝试添加不能映射到代码页属性设置为一个字符串,该操作可能会失败。因此,将限制您已知存在造成文件系统的代码页中的字符的字符串。此外,请确保所有属性集都是 Unicode 格式之前编辑这些属性。

注意Dsofile 不会转换现有 MBCS 属性设置为 Unicode。您必须修改示例,如果您想要添加此功能。

若要设置和测试 DLL 的步骤

自解压缩安装程序安装,并将 DsoFile.dll 组件注册所需的位置。自解压缩安装程序还将安装两个 Visual Basic.NET 测试应用程序演示如何使用组件和所有的源代码。

如果将该 DLL 移到另一个位置或另一台计算机,则必须重新注册 DLL,然后才能再次使用。若要执行此操作,请键入 regsvr32 [filepath]\dsofile.dll运行对话框中的开始菜单上。

若要运行该示例,请执行以下步骤:

有关演示 Visual Basic 6.0

  1. 打开 Visual Basic 6.0 示例项目称为,如下所示:

    .\Source\Vb6Demo\PropDemo.vbp
  2. 请确保已正确引用 Dsofile.dll。若要执行此操作,请在项目菜单中选取参照。验证是否将引用设置为DSO OLE 文档属性读取器 2.1
  3. 按 f5 键以运行该项目。
  4. 当提示您打开复合文档文件时,选择适当的文件,请注意它的文档属性显示。

对于 Visual Basic 2003 (7.1) 或 Visual Basic 2005 (8.0) 演示

  1. 打开 Visual Basic 7.1 项目称为,如下所示:

    .\Source\Vb7Demo\FilePropDemoVB7.sln

    可以在任何一个 Visual Basic 7.1 或 Visual Studio 2005年中的 Visual Basic 8.0 Visual Studio.NET 2003年中打开此项目。
  2. 如果系统提示您将该解决方案自动转换为 8.0 格式时,请单击,并按照向导转换项目。
  3. 按 f5 键以编译并运行 Visual Basic 项目。
  4. 当窗体出现时,单击打开
  5. 选择相应的 Office 文件,然后单击确定

    请注意,在对话框中显示的 Office 文件的文档属性。您可以编辑文档属性。

参考

若要读取和编辑文档属性为 Microsoft Office 2007年文件如果您还要安装 Office 2007 兼容包,Dsofile.dll 组件已被更新。要下载并安装兼容包,请访问下面的 Microsoft 网站:
http://www.microsoft.com/downloads/details.aspx?FamilyID=941b3470-3ae9-4aee-8f43-c6bb74cd1466
有关如何从 Visual C++ 读取文档属性的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
186898 如何通过VC + + 直接读取复合文档属性

属性

文章编号: 224351 - 最后修改: 2014年2月9日 - 修订: 11.0
这篇文章中的信息适用于:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 标准版
  • Microsoft Visual .NET 2002 标准版
  • Microsoft Visual Basic 6.0 专业版
  • Microsoft Visual Studio 6.0 企业版
  • Microsoft Office Excel 2007
  • Microsoft Office PowerPoint 2007
  • Microsoft Office Word 2007
  • Microsoft Office Visio Professional 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft Office Visio Professional 2003
  • Microsoft Office Project Professional 2003
  • Microsoft Excel 2002 标准版
  • Microsoft PowerPoint 2002 标准版
  • Microsoft Word 2002 标准版
  • Microsoft Visio 2002 简体中文专业版
  • Microsoft Project 2002 标准版
关键字:?
kbdownload kbautomation kbfile kbinfo kbpersistst kbmt KB224351 KbMtzh
机器翻译
重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。
点击这里察看该文章的英文版: 224351
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com