ドキュメント データとドキュメント ビュー
カスタム エディターは、ドキュメント データオブジェクトとドキュメント ビュー オブジェクトの 2 つの部分から構成されます。 名前が示すように、ドキュメント データ オブジェクトは、表示される適すとデータを表します。 同様に、ドキュメント ビュー オブジェクト (または "ビュー") は、ドキュメント データ オブジェクトを表示する 1 つ以上のウィンドウを表します。
ドキュメント データ オブジェクト
ドキュメント データ オブジェクトは、テキスト バッファー内のテキストのデータ表現です。 これは、ドキュメント テキストやその他の情報を格納する COM オブジェクトです。 また、ドキュメント データ オブジェクトは、ドキュメントの永続化を処理し、データの複数のビューを有効にします。 詳細については、「
DocumentData[]」と「ドキュメント ウィンドウ」を参照してください。
カスタム エディターとデザイナーでは、VsTextBuffer オブジェクトを使用するか、独自のカスタム バッファーを使用するかを選択できます。 VsTextBuffer では、標準エディターの簡略化された埋め込みモデルに従い、複数のビューをサポートし、複数のビューを管理するために使用されるイベント インターフェイスを提供します。
ドキュメント ビュー オブジェクト
コードやその他のテキストを表示するウィンドウは、ドキュメント ビューまたはビューと呼ばれます。 エディターを作成するときに、単一のウィンドウにテキストを表示する単一ビューを選択することも、 複数のウィンドウにテキストを表示する複数ビューを選択することもできます。 どれを選択するかは用途によって異なります。 たとえば、サイドバイサイド編集が必要な場合は、複数ビューを選択します。 それぞれのビューは、統合開発環境 (IDE) の実行中のドキュメント テーブル (RDT) におけるエントリに関連付けられています。 ビュー ウィンドウは、プロジェクトまたは IVsHierarchy オブジェクトに属しています。
エディターが複数ビューのドキュメント データ オブジェクトをサポートしている場合は、ドキュメント データ オブジェクトとドキュメント ビュー オブジェクトが分かれている必要があります。 それ以外の場合は、これらは一緒にグループ化できます。 詳細については、「複数のドキュメント ビューのサポート」をご覧ください。
IDE では、実行中のドキュメント テーブル内のエントリごとに項目識別子 (ItemID) を照合して、イベント (たとえば、ドキュメントを含むソリューションが閉じられたとき) に関するビューを通知します。 詳細については、「ドキュメント テーブルの実行」を参照してください。
カスタム エディター用のビューを作成するオプションは 2 つあります。 1 つ目はインプレース アクティブ化モデルで、ここでは ActiveX コントロールかドキュメント データ オブジェクトのどちらかを使用して、ビューがウィンドウでホストされます。 2 つ目は、簡略化された埋め込みモデルで、ここではビューが Visual Studio でホストされ、ウィンドウ コマンドを処理するために IVsWindowPane が実装されます。 インプレース アクティブ化モデルの詳細については、インプレース アクティブ化に関するページを参照してください。 簡略化された埋め込みモデルの詳細については、簡略化された埋め込みに関するページを参照してください。