Windows IPropertyStore处理程序扩展不返回属性值

时间:2012-11-07 23:04:41

标签: windows-shell ipropertystorage

我正在尝试为我们的产品创建的文件类型编写属性处理程序我主要在那里,但处理程序无法通过IPropertyStore :: GetValue返回任何数据。

我可以通过跟踪/调试看到正在调用Initialise方法并用值填充存储。

但我可以看到,每当调用GetValue时,虽然在商店中找到了密钥,但变量中没有数据!如果在那一点上我做了类似的事情:

 InitPropVariantFromString(L"BLANK", pPropVar);

进入outval然后一切正常,BLANK将出现在InfoTip上。

奇怪的是,如果我编写一个使用SHGetPropertyStoreFromParsingName的测试应用程序并询问该属性,我会得到正确的数据。

有点难过,有人吗?

TIA

1 个答案:

答案 0 :(得分:1)

修正了 - 我的傻瓜。

我错误地定义了我的属性键。看来整个属性密钥联盟需要“填充”

喜欢这样

const PROPERTYKEY PK_TING = {{0x96892702,0xc272,0x4792,0xa2,0x7,0xdf,0xe7,0xd5,0x60,0xd6,0xb8},THE_PID};

正在使用PROPERTYKEY UNION的guid和pid。

sweetasanut。