gpt4 book ai didi

winapi - PROPERTYKEY::pid 含义

转载 作者:行者123 更新时间:2023-12-04 12:52:55 40 4
gpt4 key购买 nike

谁能解释一下 PROPERTYKEY 中的 pid 字段是什么?结构是? Microsoft 表示只要不使用 01 就可以了,但是当我需要在我的代码。 pid 是否应该是 key 的一部分,因此可能存在具有相同 fmtid 但不同 pid 的多个值?或者它应该被忽略,所以 GetValue 应该返回任何具有匹配 fmtid 的值,忽略 pid

最佳答案

这个 fmtid+pid 组合在历史上与 OLE 相关(是的,那很古老)。

那时候,fmtid(格式id)就像一个类别,pid(属性id)就是类别中的属性标识。例如,您在这里定义了第一个 FMTID:Predefined Property Set Format Identifiers .这些属性仍然用于 Office 文档(作者、关键字等)所以每个类别都有很多属性(很多属性的 fmtid 很少),但是 fmtid 和 pid 的组合总是使属性在空间和星系。

其他FMTID出现之后,你可以在Windows SDK的propkey.h中查看:FMTID_AudioSummaryInformation, FMTID_Volume, FMTID_ShellDetails, etc...

今天,对于一些新属性,FMTID 不再有任何意义。例如,System.Contact.Birthday fmtid为176DC63C-2688-4E89-8143-A347800F25E9,id为47,但是fmtid没有特殊含义,也没有具体定义,所以实际上可以单独用于 key 。

因此,对于给定的属性,您必须考虑键仍然是两者的组合(因此结构名称:PROPERTYKEY),但您可以将 pid 定义为大于或等于 2 的值(如官方doc 指定)和 fmtid 作为新的 guid(如果您愿意)。我个人还是更喜欢为一组属性定义一个通用的 FMTID。

关于winapi - PROPERTYKEY::pid 含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15388184/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com