使用win32 API使用Windows Property Store(元数据)创建文件

时间:2014-02-11 20:13:25

标签: winapi createfile system-properties

我想创建一个新的存根文件“test.mp3”,并为其添加一个Window属性(例如System.Author)。

该解决方案必须可用于文本,图片,视频等多个文件扩展名...

如果我只是创建一个文件并使用IShellItem2 :: GetPropertyStore,我会因无效参数而导致HRESULT失败。

在真正的音乐文件上使用IShellItem2 :: GetPropertyStore我可以读取和写入它的属性。

请先测试您的建议。

1 个答案:

答案 0 :(得分:2)

Property Stores通常在文件本身中访问和存储数据。在你的mp3文件的情况下,它将尝试读取和写入ID3标签。此外,Property Stores不存储在数据库中,也不能随意添加到不支持它的文件中。

你很可能需要implement your own property handlers去做你想要完成的事情。对于已有处理程序的类型,您必须使用自己的处理程序替换系统处理程序。

你的mp3测试失败的最可能原因是你有一个没有数据且没有有效ID3标签的空文件。