次の方法で共有


プロジェクト モデルのコア コンポーネント

次の表は、プロジェクト モデルについて詳しく記しています。 この表では、モデルで識別されるインターフェイスおよびサービスと、特定のオブジェクトに関連付けられているインターフェイスおよびサービスについて簡単に説明します。 また、表には、特定のプロジェクト タイプの要件に応じて、プロジェクトの作成とメンテナンスでオプションとなる他のインターフェイスの詳細も示されます。

詳細については、「シンボル参照ツールのサポート」を参照してください。

パッケージ オブジェクト

インターフェイス Comments
IVsPackage IDE で VSPackage を初期化し、そのサービスを IDE で使用できるようにします。

プロジェクト ファクトリ オブジェクト

インターフェイス Comments
IVsProjectFactory 新しいプロジェクトの作成と、既存のプロジェクトの開始を管理します。

プロジェクトオブジェクト

インターフェイス Comments
IVsProject3 プロジェクト項目の追加と削除を管理し、エディターを開き、各ドキュメント モニカーと VSITEMID の間のマッピングを維持します。 IVsProjectIVsProject2 から継承されます。
IVsHierarchy ナビゲーションと表示のプロパティを管理し、イベントを提供します。
IVsUIHierarchy ソリューション エクスプローラーにフォーカスがある場合にのみ適用される切り取りや名前の変更などのコマンドに対して、IOleCommandTarget のものに似たコマンドの実行を有効にします。
IOleCommandTarget プロジェクト階層の主要なコマンド ターゲット インターフェイスとして機能します。 これは、コマンドのステータスまたは状態のオブジェクトのクエリを実行し、コマンドを実行するための標準インターフェイスです。 プロジェクト ウィンドウでフォーカスされていない場合に使用できます。
IPersistFileFormat プロジェクトの状態の永続性を調整します。 通常、プロジェクトの状態はプロジェクト ファイルとして保存されますが、ファイルベースではないストレージ システムに適応させることができます。
IVsPersistHierarchyItem2 ディスク上のファイルまたは他のストレージ システムのオブジェクトのどちらかとして、プロジェクト項目の永続化のすべての側面をプロジェクトで管理できるようにします。 IVsPersistHierarchyItem2 インターフェイスは、IVsPersistDocData2 インターフェイスを実装しない項目に使用されます。
IVsSccProject2 ソース コード管理との相互作用を調整します。
IVsProjectFlavorCfgProvider プロジェクトで構成情報を管理できるようにします。
IVsCfgProvider2 デバッグ/リリース構成など、プロジェクト構成オブジェクトを管理します。 ビルド、デプロイ、デバッグの各操作は、プロジェクト構成オブジェクトを使用して調整されます。
IVsHierarchyDeleteHandler 階層項目の削除 (破壊) オプションまたは除去 (非破壊的) オプションを制御するために、階層によって実装されます。 IVsHierarchy インターフェイスから IVsHierarchyDeleteHandler インターフェイスでのクエリ インターフェイスを呼び出し ます。
IVsGetCfgProvider IVsHierarchy インターフェイスを実装するプロジェクト オブジェクトとは異なる COM ID で IVsCfgProvider2 インターフェイスをサポートするオブジェクトを持つというオプションを提供します。
IVsProjectStartupServices 他の開発者がプロジェクトを拡張できるようにするために実装された省略可能なインターフェイス。 IVsProjectStartupServices インターフェイスを使用すると、プロジェクトが読み込まれるたびに、サードパーティのサービス GUID をプロジェクト ファイルに読み込んで、その GUID に対して QueryService を呼び出せるように、サードパーティの VSPackage で、プロジェクト ファイルに保存する GUID を登録できます。
IVsUIHierWinClipboardHelperEvents 切り取り、コピー、貼り付けなどのクリップボード操作を調整するために、UIHierarchy ウィンドウでソース階層によって実装されます。 クリップボード イベントを登録するには、AdviseClipboardHelperEvents インターフェイスを使用します。
IVsHierarchyDropDataSource2 UI 階層ウィンドウでのドラッグ アンド ドロップ操作中に、データ ソースに対して相対的な、ドラッグされた項目に関する情報を提供します。 IVsHierarchy インターフェイスから呼び出されます。
IVsHierarchyDropDataTarget UI 階層ウィンドウでのドラッグ アンド ドロップ操作中に、ドロップ ターゲットに対して相対的な、ドラッグされた項目に関する情報を提供します。 IVsHierarchy インターフェイスから呼び出されます。

構成オブジェクト

インターフェイス Comments
IVsCfg 構成に関する情報を提供します。
IVsProjectCfg2 プロジェクトで構成情報を管理できるようにします。
IVsDebuggableProjectCfg デバッガーの制御下でプロジェクトを実行できるようにします。
IVsDeployableProjectCfg 他のプロジェクトのデプロイ操作を実行するデプロイ プロジェクトによって実装されます。

構成ビルダー オブジェクト

インターフェイス Comments
IVsBuildableProjectCfg プロジェクト構成のビルド操作を管理します。

追加のプロジェクト オブジェクト

インターフェイス Comments
IDispatch

ISpecifyPropertyPages
[プロパティ] ウィンドウに項目のプロパティを表示します。
IVsOutput2

IVsEnumOutputs
デプロイの出力を表示します。

次の表に、プロジェクトモデルで識別されるサービスの簡単な説明を示します。

サービス

サービス Comments
SVsRegisterProjectTypes プロジェクト タイプを実装して、存在するプロジェクト ファクトリを IDE に登録する VSPackage で使用されます。 VSPackage では、このサービスに対して QueryService を呼び出し、IVsPackage::SetSite メソッドが呼び出されたときにプロジェクト ファクトリを登録する必要があります。 SetSite メソッドが呼び出されない場合、プロジェクトのインスタンスは作成されません。
SVsSolution プロジェクトの列挙、新しいプロジェクトの作成、プロジェクトの変更への注目など、現在のソリューションに関する IDE 内部に組み込まれている概念にアクセスできるようにします。
SVsSccManager ソース管理に参加させるプロジェクトで呼び出されます。
SVsRunningDocumentTable 開いているドキュメントのテーブルを保持し、1 つ以上のプロジェクト項目が既に開かれているかどうかを判断します。
SVsUIShellOpenDocument 標準エディターまたは特定のエディターを使用して、プロジェクト項目を実際に開くために呼び出されるインターフェイスとメソッドが含まれます。
SVsTrackProjectDocuments 項目を追加、削除、または名前変更するときに、すべてのプロジェクトで呼び出される必要があります。
SVsFileChangeEx ファイルまたはディレクトリへの変更を管理し、選択したファイルがディスク上で変更されたときにクライアントに通知します。
SVsQueryEditQuerySave 項目をダーティにしたり保存したりする前に、すべてのプロジェクトとエディターで呼び出される必要があります。
SVsSolutionBuildManager プロジェクト構成のビルドおよびデプロイ操作の順序を管理します。
SVsShellDebugger ほとんどのデバッグ コントロールに使用される低レベルのデバッガー サービスへのアクセスを提供します。
SVsShellMonitorSelection 現在の選択に関する情報に VSpackage でアクセスできるようにし、[プロパティ] ウィンドウと通信できるようにします。
SVsUIShell ツール ウィンドウまたはドキュメント ウィンドウを作成および列挙する機能やユーザーにエラーを報告する機能など、UI に関連する基本的な IDE 機能を提供します。
SVsStatusbar IDE のステータス バーへのアクセスを提供します。
IVsExtensibility3 オートメーション モデルを実装するために使用されます。 プロジェクト モデルでは、そのオブジェクトのインスタンスを作成できるようにするプロパティ オブジェクトを返します。
SVsUIHierWinClipboardHelper 階層内のプロジェクト オブジェクトにクリップボード イベントを実装するために使用されます。 SVsUIHierWinClipboardHelper を使用すると、切り取り、コピー、貼り付けの各操作を正しく処理できます。

関連項目