UI マネージャのサンプル
更新 : 2007 年 11 月
メモ : |
---|
このサンプルは Microsoft Office Outlook 2007 でのみ動作します。 |
このサンプルでは、アドインに機能拡張インターフェイスを実装することによって Microsoft Office Outlook 2007 のユーザー インターフェイス (UI) をカスタマイズする方法を示します。このサンプルは、機能拡張インターフェイスを使用して、リボンのカスタマイズ、カスタム作業ウィンドウ、およびカスタム フォーム領域を作成します。
このサンプルでは、インスペクタ ウィンドウのカスタム UI 要素を協調させる方法も示します。このサンプルのコードにより、インスペクタ ウィンドウ内のリボンのカスタマイズ、カスタム作業ウィンドウ、およびカスタム フォーム領域が正しく相互に通信できます。これらの UI 要素は、他のインスペクタで開いているカスタム UI 要素のインスタンスとは分離された状態で通信する必要があります。
たとえば、ユーザーが同時に複数のインスペクタを開き、それぞれにカスタム リボン、カスタム作業ウィンドウ、およびカスタム フォーム領域が含まれている場合があります。ユーザーがこれらの要素のいずれかを使用すると、別の要素が変更されることがあります。たとえば、リボン上のボタンをクリックすると、作業ウィンドウが非表示になることもあります。このような場合に、このサンプルのコードが、1 つのインスペクタの該当する要素だけが影響を受け、他のインスペクタでは同じカスタム UI 要素の他のインスタンスが影響を受けないようにします。
このサンプルでは、インスペクタとカスタム作業ウィンドウ オブジェクトをラップする一連のクラスを使用して、ユーザーがタスクや電子メール メッセージを開くたびに新しい作業ウィンドウが表示されるようにします。このサンプルは、各タスクまたは電子メール メッセージの作業ウィンドウの表示/非表示を切り替えるカスタム リボン ボタンも作成し、さらに各タスクにカスタム フォーム領域を表示します。このサンプルの構造の詳細については、「UI マネージャのサンプルのコンポーネント」を参照してください。
サンプル プロジェクトをコンピュータにインストールする方法については、「方法 : ヘルプにあるサンプル ファイルをインストールして使用する」を参照してください。
メモ : |
---|
このサンプルでは、機能拡張インターフェイスを使用して、リボンのカスタマイズ、カスタム作業ウィンドウ、およびフォーム領域を作成しますが、Visual Studio Tools for Office には機能拡張インターフェイスの代わりに使用できるクラスとデザイナが用意されています。これらのクラスとデザイナによって、このサンプルが作成する機能の操作手順が簡略化されます。詳細については、「リボン デザイナ」、「カスタム作業ウィンドウの概要」、および「Outlook フォーム領域の作成」を参照してください。 |
セキュリティに関するメモ : |
---|
このサンプル コードは概念を示すことが目的であり、その概念に関連する部分だけを示しています。このコードは実行環境のセキュリティ要件を満たしていない可能性があり、このままの状態で使用することはできません。セキュリティ関連のコードやエラー処理コードを追加し、プロジェクトのセキュリティと堅牢性を高めることをお勧めします。Microsoft は、このサンプル コードを "現状のまま" 提供しており、一切保証しません。 |
このサンプルを実行するには
F5 キーを押します。
Outlook で、新しい仕事を作成します。
仕事のリボン上の [アドイン] タブをクリックします。
[UI Manager] グループの [TaskPane] をクリックします。
仕事ウィンドウの隣に [SimpleControl] 作業ウィンドウが表示されることを確認します。
[表示] グループの [UIM] をクリックします。
仕事の閲覧ペインにカスタム フォーム領域が表示されることを確認します。このフォーム領域には、コーヒー豆のリストとコーヒーの注文数が表示されたテキスト ボックスがあります。
フォーム領域で、1 つまたは複数の種類のコーヒー豆を選択します。
選択したコーヒー豆の種類が [SimpleControl] 作業ウィンドウに表示されることを確認します。
リボンの [Add-in Services] グループにある [Send] ボタンをクリックします。
新しい電子メール メッセージが someone@example.com という受信者に送信されることを確認します。この電子メール メッセージには、フォーム領域で選択したコーヒー豆の種類がすべて記載されています。
この電子メール メッセージはコーヒーの注文書であるため、フォーム領域の注文数は発注のたびに増加します。
必要条件
このサンプルには、次のアプリケーションが必要です。
Visual Studio Tools for Office.
Microsoft Office Outlook 2007
使用例
このサンプルでは、次の概念を示します。
アドインへの Microsoft.Office.Core.IRibbonExtensibility インターフェイスの実装によるリボンのカスタマイズ
アドインへの Microsoft.Office.Core.ICustomTaskPaneConsumer インターフェイスの実装によるカスタム作業ウィンドウの作成
アドインへの Microsoft.Office.Interop.Outlook.FormRegionStartup インターフェイスの実装によるカスタム フォーム領域の作成
Outlook のさまざまな電子メール メッセージおよび仕事でのリボンのカスタマイズ、カスタム作業ウィンドウ、およびフォーム領域の管理と同期
UI マネージャのサンプルのコンポーネント
このサンプル ソリューションには次の 2 つのプロジェクトが含まれています。
Microsoft.Samples.Vsto.UiManager は、Outlook アドイン プロジェクトです。このプロジェクトには、機能拡張インターフェイスの実装と、それらの実装をサポートするクラスおよびファイルが含まれています。
Microsoft.Samples.Vsto.AddinUtilities は、Outlook アドイン プロジェクトで使用される UI 管理クラスおよびインターフェイスが含まれるクラス ライブラリです。
これらのプロジェクトは、カスタム作業ウィンドウ、リボンのカスタマイズ、およびフォーム領域を実装するコンポーネントと、これらの機能の同期および管理に役立つコンポーネントを提供します。
UI 管理コンポーネント
次の表に、リボンのカスタマイズのコードが含まれるプロジェクト ファイルを示します。
ファイル |
説明 |
---|---|
ThisAddIn.cs/vb |
RequestService メソッドのオーバーライドと、インスペクタ ウィンドウごとに新しいカスタム作業ウィンドウを作成するコードが含まれています。このメソッドの詳細については、「機能拡張インターフェイスによる UI 機能のカスタマイズ」を参照してください。 |
UserInterfaceContainer.cs/vb |
UserInterfaceContainer クラスが定義されています。各 UserInterfaceContainer オブジェクトが 1 つの電子メール メッセージまたは仕事のフォーム領域、作業ウィンドウ、およびリボンのカスタマイズを管理します。 |
UserInterfaceElements.cs/vb |
UserInterfaceElements クラスが定義されています。このクラスには、アドインが使用する UserInterfaceContainter オブジェクトのコレクションが含まれています。 |
IFormRegionControls.cs/vb IRibbonConnector.cs/vb |
Microsoft.Samples.Vsto.UiManager プロジェクトおよび Microsoft.Samples.Vsto.AddinUtilities プロジェクト内のさまざまなクラスが相互に通信するために使用するインターフェイスが定義されています。 |
カスタム作業ウィンドウのコンポーネント
次の表に、カスタム作業ウィンドウのコードが含まれるプロジェクト ファイルを示します。
ファイル |
説明 |
---|---|
TaskPaneConnector.cs/vb |
TaskPaneConnector クラスが定義されています。このクラスは、 Microsoft.Office.Core.ICustomTaskPaneConsumer インターフェイスを実装します。 |
SimpleControl.cs/vb |
カスタム作業ウィンドウの UI を提供する UserControl が定義されています。このコントロールには COM にコントロールを公開する属性があります。 |
リボンのコンポーネント
次の表に、リボンのカスタマイズのコードが含まれるプロジェクト ファイルを示します。
ファイル |
説明 |
---|---|
RibbonConnector.cs/vb |
RibbonConnector クラスが定義されています。このクラスは、 Microsoft.Office.Core.IRibbonExtensibility インターフェイスを実装します。 |
SimpleRibbon.xml TaskRibbon.xml |
Microsoft.Office.Core.IRibbonExtensibility インターフェイス実装の GetCustomUI メソッドが返すリボン XML 文字列が含まれています。 |
フォーム領域のコンポーネント
次の表に、仕事のインスペクタに表示されるカスタム フォーム領域のコードが含まれるプロジェクト ファイルを示します。
ファイル |
説明 |
---|---|
FormRegionConnector.cs/vb |
FormRegionConnector クラスが定義されています。このクラスは、 Microsoft.Office.Interop.Outlook.FormRegionStartup インターフェイスを実装します。 |
FormRegionControls.cs/vb |
各フォーム領域インスタンス上のコントロールを管理するクラスが定義されています。 |
PictureConverter.cs/vb |
Image を、フォーム領域にアイコンを表示する IPictureDisp に変換します。 |
SimpleFormRegion.ofs |
フォーム領域の UI が定義されています。 |
SimpleFormRegion.xml |
フォーム領域のマニフェストが含まれています。 |
SimpleFormRegion.reg |
フォーム領域の読み込みに必要なレジストリ エントリを作成します。 |
参照
処理手順
概念
複数のアプリケーション ウィンドウでカスタム作業ウィンドウを管理する