XNA Game Studioは、「インポーター」と「プロセッサー」という2つの新しいコンボボックスを使用して、VisualStudioのプロパティウィンドウを拡張しました。これらのコンボボックスには、現在のソリューションのコードで定義されている使用可能なインポーターとプロセッサーが含まれており、これらのフィールドが変更されると、設定はプロジェクトファイルの対応するアイテムのメタデータに保存されました。
彼らがこれをどのように達成したのか興味がありますか?任意の情報をいただければ幸いです。
XNA Game Studioは、「インポーター」と「プロセッサー」という2つの新しいコンボボックスを使用して、VisualStudioのプロパティウィンドウを拡張しました。これらのコンボボックスには、現在のソリューションのコードで定義されている使用可能なインポーターとプロセッサーが含まれており、これらのフィールドが変更されると、設定はプロジェクトファイルの対応するアイテムのメタデータに保存されました。
彼らがこれをどのように達成したのか興味がありますか?任意の情報をいただければ幸いです。
それがどのように行われるかの背後にある原則を説明する古いが良い記事があります。基本的には、IExtenderProvider
インターフェイスを実装しCanExtendMethod
、オブジェクトの CATID を使用して を介して拡張するオブジェクトを決定することになります。拡張するオブジェクトについては、GetExtender
メソッドを使用してエクステンダーを返します。エクステンダーは としてマークする必要があることに注意してくださいComVisible
。
エクステンダー プロバイダーは、レジストリに静的に登録されるか、コードを使用して動的に登録されます。ドキュメントは非常に薄いですが、このページには、エクステンダーがプロパティを追加したり、既存のプロパティを非表示にしたり変更したりできると書かれています。