VSTOでOutlookにサイドバーとしてWPFコントロールを付ける。
Outlookにサイドバーみたいなものを付けたい。
さっそくVSTOのプロジェクトを作成し、新しい項目からそれらしきモノを探してみる。
Outlookフォーム領域
これじゃないかと選択したのがOutlookフォーム領域。以下参考記事。
MSDNの記事
ちょっと古いですがエヴァンジェリスト松崎さんの記事
メールの送信まで解説
Part1,2でフォーム領域について一通り解説
- Microsoft Office Outlook Programming Using VSTO 3.0 and C#: Part 1 - PacketPublishing
- Microsoft Office Outlook Programming Using VSTO 3.0 and C#: Part 2 - PacketPublishing
一通り何ができるかわかったところで結論としては「これじゃできねぇ」でしたorz
フォーム領域はその名の通り、フォーム入力時に使用できるカスタム領域であって、エクスプローラ領域には踏み込めない。
カスタム作業領域
まあ、最悪アンマネージコード使ってでもやってやらぁの意気で探してたら、以外に簡単な方法が提供されてました。てゆうか、僕は全然WindowsFormの事とか知らないから実はこっちに行き着く方が普通は早いのかも。
以下参考記事。
MSDNの記事
カスタム作業領域の作り方をわかりやすく解説
WinFormのUserControlを作成し、それをOutlookのExplorerオブジェクトのCustomTaskPanesに追加してしまえば、新しいCustomTaskPaneとしてエクスプローラ画面に追加してくれる。
// OutlookのAddInの基本クラス。 public partial class ThisAddIn { Microsoft.Office.Tools.CustomTaskPane taskPane; Outlook.Explorer explorer; private void ThisAddIn_Startup(object sender, System.EventArgs e) { // OutlookのExplorerオブジェクトを取得し、新しいCutomTaskPaneとしてUserControlを追加 explorer = this.Application.ActiveExplorer(); taskPane = Globals.ThisAddIn.CustomTaskPanes.Add(new TaskPanel(), " New Task Title", explorer); } } // TaskPanelはユーザーコントロールとして作られている public partial class TaskPanel : UserControl { // 略 }