2

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

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

但是我可以看到,尽管在商店中找到了密钥,但每当调用 GetValue 时,变体中都没有数据!如果那时我做类似的事情:

 InitPropVariantFromString(L"BLANK", pPropVar);

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

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

真的有点难过,有人吗?

TIA

4

1 回答 1

1

固定 - 我的愚蠢。

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

像这样

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

正在使用 PROPERTYKEY UNION 的 guid 和 pid。

甜心。

于 2012-11-09T15:30:51.000 回答