2

私たちの製品が作成するファイル タイプのプロパティ ハンドラーを作成しようとしていますが、ほとんどの場合、ハンドラーは IPropertyStore::GetValue を介してデータを返すことができません。

トレース/デバッグにより、Initialise メソッドが呼び出され、ストアに値が入力されていることを確認できます。

しかし、ストアでキーが見つかったにもかかわらず、GetValue が呼び出されるたびに、バリアントにデータが含まれていないことがわかります。その時点で私が次のようなことをした場合:

 InitPropVariantFromString(L"BLANK", pPropVar);

outval に入ると、すべてが機能し、InfoTip に BLANK が表示されます。

不思議なことに、SHGetPropertyStoreFromParsingName を使用するテスト アプリを作成し、プロパティを要求すると、正しいデータが返されます。

少し困惑しました、誰か?

ティア

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 に答える