そこで、Windows 7 SDK サンプルから RecipePropertyHandler を作成し、regsvr32 を実行して、PROPDESC ファイルを登録しました。Difficulty
これにより、詳細ペインの 3 つの状態のドロップダウン ボックスを使用して、タイプ のファイルで名前が付けられたカスタム プロパティを編集できるように.recipe
なり、そのプロパティをエクスプローラの詳細ビューの列として追加するオプションも提供されます。
ここまでは順調ですね。ただし、この MSDN スレッドの指示に従おうとしていますが、奇妙なことがいくつか見られます。
まず、彼らが言及している 3 つのレジストリ エントリのいずれも表示されません。具体的には:
- HKLM\Software\Microsoft\Windows\CurrentVersion\PropertySystem\PropertySchema\
- HKLM\Software\Microsoft\Windows\CurrentVersion\PropertySystem\PropertyHandlers.recipe
- HKLM\Software\Classes\CLSID{50D9450f-2a80-4f08-93b9-2eb526477d1a} [実際にはこれは Vista SDK からのもので、CLSID が変更されたように見えますが、新しいものはレジストリにもありません。]
彼らは他のスレッドで .reg ファイルについて言及していますが、もうそのようには機能しないと思います。価値があるのは、下にエントリが表示されることHKEY_CLASSES_ROOT\.recipe
です。次のように prop.exe ユーティリティを使用して、インストールされたプロパティを確認することもできます。
C:\tools>prop.exe schema describe Microsoft.SampleRecipe.Difficulty
Microsoft.SampleRecipe.Difficulty
----------------------------------
Property Key: {1794C9FE-74A9-497F-9C69-B31F03CE7EF9} 100
Canonical Name: Microsoft.SampleRecipe.Difficulty
Property Type: VT_LPWSTR
Display Name: Recipe difficulty
Edit Invitation: Specify recipe difficulty
Type Flags: PDTF_CANGROUPBY | PDTF_CANSTACKBY | PDTF_ISVIEWABLE | PDTF_ISQUERYABLE
View Flags:
Default Column Width: 20
Display Type: PDDT_ENUMERATED
Column State: SHCOLSTATE_TYPE_STR
Grouping Range: PDGR_ENUMERATED
Relative Desc. Type: PDRDT_GENERAL
Sort Description: PDSD_A_Z
Sort Desc. Labels: A on top/Z on top
Aggregation Type: PDAT_DEFAULT
Condition Type: PDCOT_STRING
Condition Operation: COP_WORD_EQUAL
Enumerated Types: 4
0 PET_DISCRETEVALUE: Easy VT_LPWSTR/[Easy]
1 PET_DISCRETEVALUE: Medium VT_LPWSTR/[Medium]
2 PET_DISCRETEVALUE: Hard VT_LPWSTR/[Hard]
3 PET_DISCRETEVALUE: Really, Really Hard VT_LPWSTR/[ReallyReallyHard]
Search Info Flags: PDSIF_ISCOLUMN | PDSIF_ISCOLUMNSPARSE
Column Index Type: PDCIT_ONDISK
Projection String Microsoft.SampleRecipe.Difficulty
Max Size: 512
とにかく、主な問題は、Windows エクスプローラーの検索 UI で正規名またはニーモニック名のいずれかを使用して、このプロパティをクエリできないかということです。それは私にはうまくいかないようで、サポートされているかどうかは他のスレッドからは明らかではありません。ただし、Vista と Windows 7 ではこの情報が別の場所に保存される場合があります。
ただし、少なくとも 1 つの非カスタム プロパティが高度な検索クエリ構文を使用してサポートされていることに気付きました。つまりMicrosoft.IE.VisitCount
、ie9props.propdesc で定義されています。だから、これを行う方法がなければならないと思います。Advanced Query Syntaxpropertyname:value
を使用して入力すると、エクスプローラーの検索バーに青いテキストが表示されます。詳細ペインでカスタム編集 UI がサポートされているかどうかはわかります。プロパティがクエリ可能であれば、エクスプローラー UI に小さな検索フィルターが表示されます。