我的.NET应用程序(能够标记文档的文件管理器)必须能够在Word文档中读取和写入自定义属性。
应用程序必须能够在Word中打开文档和Word未运行时执行此操作。
(它必须对Excel和Powerpoint文档执行相同的操作,而不仅仅是Word文档。)
我的问题是如何解决这个问题。
更新:以下是我认为可以解决的问题:
1)要处理Word中未打开文档的情况:应用程序将通过the openXml api将自定义属性直接写入文档文件。但是如果文档是.doc而不是.docx呢?我应该使用什么Api?
2)处理在Word中打开文档的情况:我将创建一个Word加载项,然后应用程序将向加载项发送消息(通过命名管道),告诉&#34 ;将此自定义属性添加到文档"。然后,加载项将添加属性,如解释here。
您认为上述架构存在问题吗?
感谢您的任何建议。
答案 0 :(得分:0)
以下是问题(1)的答案,我在此期间发现:
为了在旧的.doc文件(office 2003)中读写自定义属性,我使用了dsofile.dll。
然后
regsvr32 DSOFile.dll
然后,在visual studio项目中,添加对dsofile.dll的引用。
然后编写代码。
难点在于该库仅适用于32位。对于64位,区别在于:我必须找到64位编译版本(link)。然后我不得不
regsvr32 DSOFile.dll
然后我在我的vstudio项目中添加了一个引用而不是到该dll,但是添加到Interop.DSOFile.dll。