次の方法で共有


プロジェクト サブタイプによって拡張されるプロパティとメソッド

プロジェクト サブタイプは、ベース プロジェクトのアグリゲーターとして構築されるため、プロジェクトの動作に大きな影響力があります。 このセクションでは、プロジェクト サブタイプによって拡張または変更できる機能の一部についてまとめています。

アグリゲーションによって得られる機能

プロジェクト サブタイプでは、アグリゲーションによって、次の表にまとめた多くのメソッドをベース プロジェクトでオーバーライドすることが可能になります。

アグリゲーションによってオーバーライドされるメソッド プロジェクト サブタイプ
IVsHierarchy から:

GetProperty

SetProperty

GetGuidProperty

SetGuidProperty
プロジェクト サブタイプを有効化する目的

- プロジェクト ノードのキャプションとアイコンを変更する。
- プロジェクトの Browse オブジェクトを完全にオーバーライドする。
- プロジェクトの名前を変更できるかどうかを制御する。
- 並べ替え順序を制御する。
- ダイナミック ヘルプのユーザー コンテキストを制御する。
IVsProject から:

GetItemContext
プロジェクト サブタイプで、デザイナーやエディターに提供されるコンテキスト サービスを制御できるようにします。
IOleCommandTarget から:

QueryStatus

Exec

QueryStatusCommand

ExecCommand
プロジェクト サブタイプを有効化する目的

- プロジェクト コマンドのコマンド ルーティングに参加する。
- プロジェクト アンビエント コマンドとソリューション エクスプローラー アクティブ コマンドの両方を追加、削除、または無効化する。
IVsFilterAddProjectItemDlg2 [新しい項目の追加] ダイアログ ボックスでユーザーへの表示をフィルター処理するために、プロジェクト サブタイプを有効にします。
IVsSingleFileGeneratorFactory プロジェクト サブタイプを有効化する目的

- ファイル拡張子を指定して既定のジェネレーターを決定する。
- 人間が判読できるジェネレーター名を COM オブジェクトにマップする。

プロジェクト サブタイプで使用されるプロパティ

次の表で詳しく説明する __VSSPROPID および __VSSPROPID2 列挙のプロパティを環境およびベース プロジェクト システムで使用すると、プロジェクト システムのさまざまな機能をプロジェクト サブタイプで制御できるようになります。

VSHPROPID プロパティ プロジェクト サブタイプ
AddItemTemplatesGuid プロジェクト サブタイプで、[項目の追加] ダイアログ ボックスの内容を制御できるようにします。 プロジェクト サブタイプでは、テンプレート ディレクトリの新しい仕様の指定、新しい種類の項目の追加、既存の項目の削除、項目のサブセットの再編成を、ベース プロジェクトの [項目の追加] ダイアログ ボックスで実行できます。
PropertyPagesCLSIDList プロジェクト サブタイプで、構成から独立したプロパティ ページを追加または削除できるようにします。
CfgPropertyPagesCLSIDList プロジェクト サブタイプで、構成に依存したプロパティ ページを追加または削除できるようにします。
ExtObjectCATID プロジェクト サブタイプで、エクステンダー CATID を知ることによってプロジェクトまたはプロジェクト項目オブジェクトに対してオートメーション エクステンダーを提供できるようにします。 たとえば、プロジェクト サブタイプはカスタムの Project.Extender("<subtype>") オブジェクトを提供できます。
BrowseObjectCATID プロジェクト サブタイプで、エクステンダー CATID を知ることによって Browse オブジェクトに対してオートメーション エクステンダーを提供できるようにします。 たとえば、プロジェクト サブタイプは、追加のプロパティを Properties コレクションに追加できます。
CfgBrowseObjectCATID プロジェクト サブタイプで、プロジェクト構成ブラウズ オブジェクトに対してオートメーション エクステンダーを提供できるようにします。 たとえば、プロジェクト サブタイプは、追加のプロパティを Properties コレクションに追加できます。
CfgExtObjectCATID プロジェクト サブタイプで、構成オブジェクトに対してオートメーション エクステンダーを提供できるようにします。
DefaultPlatformName プロジェクト サブタイプで、プロジェクトの構成オブジェクトに対してプラットフォーム名を決定できるようにします。

ベース プロジェクトは、上記のプロパティの既定の実装を提供します。 ベース プロジェクトは、最も外側のプロジェクト サブタイプで IVsHierarchyQueryInterface を呼び出してこれらを取得し、プロジェクト サブタイプでプロパティの実装をオーバーライドできるようにします。

関連項目