我很确定您的最佳答案是使用 OLE 复合文档。
微软可能已经停止使用它,但那是因为他们已经采用了 XML 文件格式。除非您愿意将当前的文件格式转换为 XML,否则我认为新的标签标准不会对您感兴趣。
您可以让您的应用程序保存两个文件,一个仅用于标记的 XML 文件和一个用于二进制数据的文件,但这只会让您的用户感到痛苦。OLE 复合文档格式的全部意义在于允许将多个“文件”绑定在一个文件中。
此外,如果现代 Windows 不支持内置的 OLE 复合文档,我会感到非常惊讶。我很确定早在十多年前的 Microsoft Word 6.0 中,文档就以这种 OLE 复合文档格式保存. 为什么 Windows XP 或更新版本需要额外的 .DLL 文件才能解析出标签?
使用 OLE 复合文档格式的最佳之处在于,用户标签将随文件一起出现,无论如何:如果用户将文件写入文件服务器,如果用户将文件放入电子邮件中,如果用户刻录文件到CD,无论如何。(我写的第一个答案,我删除了,很糟糕;即使它起作用了,它也会将用户标签放在文件之外,我越想它,我就越不高兴。)
因此,我建议您尝试创建一个 OLE 复合文档,然后在标准安装的 Windows XP 中的 Windows 资源管理器中查看该文件。看看您是否可以在不需要下载和安装 ActiveX .DLL 的情况下看到这些标签。我很确定它会起作用。(但我真的不再做 Windows 了,所以我不能方便地为你测试这个。)
编辑:好的,我刚刚做了一个测试。我在工作,我在这里有一台 Windows 电脑。我使用Word 2007 制作了一个文档,并将文档保存为Word 97 格式。我在 Windows 资源管理器中查看了文档属性;作者姓名在标签中可见。我在“评论”中添加了文本,然后在 Word 2007 中打开了该文件。然后我能够查看评论(单击左上角的“办公室”图标圆圈,选择“准备”,选择“属性”)。
So, my theory has some evidence to support it: I did not have to install any special software, my Windows Explorer just worked with the OLE compound document format Word file with the tags. (It could be that Microsoft Office installs some special .DLL to use the tags with Windows Explorer; I do have Microsoft Office 2007 installed on that computer. But your customers likely have Microsoft Office too, so even if that is the case, I still think this is the best solution.)
I suggest you Google search for "OLE compound document format" and see how to write this format. I found an example of how to read the tags here: http://support.microsoft.com/kb/186898