開発者向け Outlook の新機能
このドキュメントでは、Microsoft Outlook 2013 の追加機能や拡張された機能 (メール アプリ、天気予報バー用のサード パーティの天気データ サービス、インライン返信を含む) について開発者向けの概要情報を提供します。また、Outlook Social Connector および Office Mobile Service の変更点、Outlook 2013 を前のバージョンの Outlook と共存させる機能のサポート、アドインに対する新しいパフォーマンス基準についても説明します。Outlook プラットフォームでの開発をすぐに始めたい開発者の皆様は、このドキュメントをお読みになれば、Outlook 2013 でコーディングを始めるために十分な情報を得ることができます。
概要
Outlook 2013 では、いくつかの新機能をプログラム可能にするサポートが提供されています。開発者は、Office アドインという新しいプラットフォームを土台にし、HTML や JavaScript などの Web ベースのツールを使用して、Outlook の閲覧ウィンドウや [インスペクター] ウィンドウ内に表示されるアプリを作成できます。従来の COM アドインとは異なり、DLL をユーザーのコンピューターにインストールしたり、既存の DLL を更新したりする必要がありません。ユーザーによってメール アプリが初期化されると、Office アドインの JavaScript オブジェクト モデルを使用して Outlook リッチ クライアントや Outlook Web App 内で選択されているメッセージに関するコンテキスト情報がメール アプリから提供されす。このアプリは Web サーバーで実行されており、その Web コンテンツを変更すると、Outlook クライアントで実行されているアプリに直ちに反映されます。
アプリのほかに、新しい天気予報バーのサポートが拡張され、Outlook Social Connector プロバイダーの拡張や Office Mobile Services に対する Outlook 2013 のサポートが変更されました。Outlook の共存やアドインのパフォーマンス モニターなど、その他の機能はオブジェクト モデルに直接関係することはありませんが、ソリューションの設計や構築の方法に影響を与えます。
開発者に関係する Outlook 2013 の重要な変更点は次のとおりです。
メール アプリ
天気予報バー用のカスタム天気サービス
インライン返信やその他の Outlook オブジェクト モデルの機能拡張
Outlook Social Connector の機能拡張
Office Mobile Service のサポートの打ち切り
以前のバージョンの Outlook との共存
アドインを有効に保つためのパフォーマンス基準
注意
この記事で紹介しているオブジェクト、プロパティ、メソッド、およびイベントは、Outlook 2013 の RTM リリースの時点で変更になる可能性があります。また、Outlook 2013 の RTM リリースの前に、オブジェクト モデルにその他の機能が導入される可能性もあります。開発したソリューションをリリースする前に、Outlook 2013 の RTM バージョンを入手して、コードの変更を必ずテストするようにしてください。
メール アプリ
Office アドインは、従来の Outlook アドインを作成して展開する必要なしに、Web サービスを直接 Outlook に組み込むことのできる新しい機能です。Outlook 2013 では、Outlook または Outlook Web App のユーザーにリッチで魅力的なエクスペリエンスを提供するメール アプリを、単一のコード ベースを使用して作成できます。メール アプリでは、Outlook の閲覧ウィンドウに隣接したアプリ ウィンドウ、または [インスペクター] ウィンドウが表示され、表示されているメッセージや予定に合わせた Web コンテンツが提供されます。アプリは、HTML や JavaScript などの広く普及した Web テクノロジを使用して作成します。なお、メール アプリには Exchange 2013 が必須であり、Exchange 2013 より前のバージョンの Exchange アカウントを持つユーザーや、POP3 または IMAP アカウントを持つユーザーはこのメール アプリを使用できません。
以下のセクションで、メール アプリのアーキテクチャ、アクティブ化ルール、およびセキュリティ モデルについて簡単に説明します。これらのセクションは総合的な技術リファレンスを意図したものではありません。マニフェスト スキーマ、ルールの条件、組み込みのエンティティとカスタム正規表現、JavaScript オブジェクト モデル、メール アプリの Office ストアへの提出に関する詳細は、「Office 用アプリの作成」を参照してください。
アーキテクチャ
メール アプリ プラットフォームのアーキテクチャは、美しいまでに簡潔です。Outlook リッチ クライアントまたは Outlook Web App などの Exchange クライアントは、Exchange サーバーからメール アプリのマニフェストをダウンロードします。その XML マニフェストはクライアントで実行され、ユーザーがメール メッセージまたは予定のどちらを選択した状態でアプリをアクティブ化したかを判断するための一連のルールを指定します。アクティブ化ルールが満たされると、アプリ ボタンがアプリ バーに表示されます。たとえば、図 1 では、選択したメール メッセージの内容に基づいて [Bing 地図] および [実施項目] の各メール アプリがアクティブ化され、アプリ バーに表示されています。
図 1. Outlook でコンテキストに応じて表示されるメール アプリ「Bing 地図」
メール アプリは、「アプリ ボタンがアプリ バーに表示された時点でアクティブ化された」と言うことができます。ユーザーがアプリ ボタンを選択すると、アプリ ウィンドウが表示され、Web サーバーによってホストされた Web ページにある JavaScript コード内の Initialize イベント ハンドラーが実行されます。図 2 は、Outlook クライアントが起動し、ユーザーが Outlook 内の項目を選択したときに実行されるプロセスを示しています。
図 2. メール アプリのアーキテクチャとスタートアップ プロセス
メール アプリの JavaScript コードからは、選択されているメッセージまたは予約アイテムのプロパティにアクセスできます。さらに、アプリは、アプリが要求したアクセス許可に応じて、カスタム プロパティ、列挙エンティティ (住所や提案された会議など)、または正規表現の一致にアクセスしたり、Exchange Web Service (EWS) 呼び出しを実行したりできます。
アクティブ化ルール
アクティブ化ルールは、メール アプリが Outlook クライアントのユーザー インターフェイスでアクティブ化されるタイミングを制御します。ルールは、XML マニフェストの中で定義し、閲覧ウィンドウまたは [インスペクター] ウィンドウで選択されているアイテムに対してルール評価エンジンによって適用されます。ルールが true に評価された場合、アプリ ボタンがアプリ バーに表示されます。ルールに関して、以下の点に注意してください。
複数のルールを結合すると、アクティブ化に関して複雑なニーズに対応できます。
論理演算子 And または Or を適用できます。
正規表現を使用してルールを定義できます。
ルールからは、電話番号、URL、住所などの既知のエンティティにアクセスできます。
ルールには、以下の種類があります。
ルールの種類 |
説明 |
---|---|
アイテムが特定のタイプ (予定、メッセージ、またはカスタム メッセージ クラス) であることを確認するルールです。たとえば、次のように指定します。 ```xml ``` |
|
アイテムが特定のエンティティを持っているかどうかを確認するルールです。たとえば、次のように指定します。 ```xml ``` |
|
指定した正規表現に対する一致があるかどうかを確認するルールです。 |
|
複数のルールで構成されたルール (And または Or を使用して結合する) を定義します。 |
なお、ルールでは、アプリ マニフェストで定義した既知のエンティティやカスタム正規表現を認識できることに注意してください。
"既知のエンティティ" とは何でしょうか? 既知のエンティティは、メッセージの転送中に Exchange サーバーによって解析され、ルール評価エンジンで使用できるようにメッセージにスタンプされます。次の表に、アクティブ化ルールを作成するために使用できるいくつかの既知のエンティティを示します。
既知のエンティティの種類 |
アクティブ化の条件 |
---|---|
Address |
米国の住所。例: 1 Microsoft Way, Redmond, WA 07722 |
Contact |
他のエンティティに関連付けられた個人の名前。例: Steve Ballmer, Microsoft, 1 Microsoft Way, Redmond, WA 98052 |
EmailAddress |
SMTP メール アドレス。例: someone@contoso.com |
MeetingSuggestion |
イベントまたは会議への参照。例: 次の火曜日に昼食で会いましょう。 |
PhoneNumber |
米国の電話番号。例: (425) 555-1212 |
TaskSuggestion |
メールに含まれる実行可能な文。例: 私のコンピューターに Office 2013 をインストールしてください。 |
Url |
ファイル名または Web アドレス。例: https://microsoft.com |
セキュリティ モデル
メールボックスには、ユーザーの秘密情報が含まれます。会社の設定であれば、メールボックスにはお客様、供給業者、会社の同僚との間の秘密情報が入っています。Outlook はその情報を保護し、メール アプリに対してその情報のセキュリティを保護することを要求します。ユーザーは、メール アプリを入手した時点で、アプリのマニフェストの中で要求されているアクセス許可レベルを許可する必要があります。ユーザーがアクセス許可を許可しない場合、アプリはユーザーの Exchange メールボックスにインストールされません。メール アプリでは 3 層のセキュリティ モデルが使用されます。アプリが実行できる処理は、アプリのマニフェストの中で要求されているアクセス許可に基づいてエンド ユーザーまたは管理者が許可したセキュリティに応じて決まります。[メールボックスの読み取り/書き込み] アクセス許可を必要とするアプリは、エンド ユーザーがインストールできないことに注意してください。[メールボックスの読み取り/書き込み] アクセス許可を要求するアプリは、システム管理者がインストールする必要があります。
図 3. メール アプリでの 3 層のセキュリティ モデル
図 3 とその下の表で、3 つのアクセス許可レベルについて説明します。既定のアクセス許可である [制限あり] では、現在選択されているメッセージから個人を特定できる情報 (Personally Identifiable Information: PII) をアプリがアクセスすることは制限されます。ユーザーが [項目の読み取り] などの昇格されたアクセス許可をアプリに許可した場合、そのアプリはメッセージの送信者や受信者などの情報を取得できます。[メールボックスの読み取り/書き込み] アクセス許可がある場合、アプリは、ユーザーのメールボックスにある項目を作成または修正できるなど、強力な EWS 関数のサブセットを呼び出せます。
実行者 |
マニフェストにあるアクセス権限 |
アクセス |
---|---|---|
信頼性の低いメール アプリをインストールするエンド ユーザー |
Restricted |
メッセージにある既知のエンティティのサブセット: Address、PhoneNumber、Url |
信頼性の低いメール アプリをインストールするエンド ユーザー |
ReadItem |
メッセージにあるすべての既知のエンティティ: Address、Contact、EmailAddress、MeetingSuggestion、PhoneNumber、TaskSuggestion、Url メッセージ本文からのカスタム正規表現の一致 JSOM:
|
信頼性の高いメール アプリをインストールする Exchange 管理者 |
ReadWriteMailbox |
ReadItem のアクセス許可に加えて、次の項目:
EWS: EWS API のサブセット |
天気予報バー用のカスタム天気データ サービス
Outlook 2013 の新しい天気予報バーでは、ユーザーが選択した場所の天気予報を MSN 天気を使用して提供します。サード パーティの天気データ サービスを Outlook にプラグインとして組み込み、同様の天気予報を提供することもできます。図 4 は、ニューヨークの天気予報を表示している天気予報バーを示しています。
図 4. ニューヨークの天気予報を表示している天気予報バー
Outlook の天気予報バーにプラグインとして組み込むには、天気データ サービスをシンプルな 2 つのパートをもつプロトコルをサポートする Web サービスとして実装します。
天気データ サービスは、Web サービスに対してベース URL をサポートします。例: http://service.contoso.com/data.aspx。
パート 1: Web サービスでは、Outlook から以下のパラメーターをベース URL に追加することにより、ユーザーが選択した場所に対応する場所コードを要求できます。
outputview=search、要求が場所の検索であることを示します。
weasearchstr=city、ここで city はユーザーが選択した天気情報の場所を示します。
culture=LCID、ここで LCID はユーザーに対してインストールされている Office のバージョンのカルチャを示します。この値は、「[RFC4646] 言語を識別するタグ」で定義されています。
src=outlook、サービスを要求しているクライアント アプリケーションが Outlook であることを示します。
Web サービスの応答は、Outlook Weather Location XML Schemaに適合している必要があります。
図 5 は、ユーザーが選択した場所の場所コードを要求して応答するプロトコルのパート 1 を要約したものです。
図 5. 場所コードの要求と応答を行う Web サービス
パート 2: Web サービスは、Outlook から以下のパラメーターを追加することにより、パート 1 で取得した場所コードの天気予報情報を要求する処理もサポートします。
wealocations=code、ここで code はパート 1 で取得した場所コードです。
weadegreetype=degreetype、ここで degreetype は、温度の単位をメートル法に指定する c か、英単位系に指定する f のいずれかです。
culture=LCID、ここで LCID はユーザーに対してインストールされている Office のバージョンのカルチャを示します (パート 1 の同じパラメーターと同様です)。
src=outlook、サービスを要求しているクライアント アプリケーションが Outlook であることを示します (パート 1 と同様)。
Web サービスの応答は、Outlook Weather Information XML Schemaに適合している必要があります。
図 6 は、ユーザーが選択した場所の天気データを要求して応答するプロトコルのパート 2 を要約したものです。
図 6. 天気情報を要求して応答する Web サービス
詳細については、「Outlook の天気予報バーの拡張」を参照してください。
Outlook のオブジェクト モデルの変更
Outlook 2013 の新機能をプログラム可能にするため、Outlook オブジェクト モデルに新しいオブジェクト、プロパティ、メソッド、イベント、および列挙値が追加されました。また、開発者からしばしば寄せられる Outlook プラットフォームの変更の要望におこたえするため、オブジェクト モデルの改良も行われました。
既存の Outlook オブジェクトに対する機能拡張
次の表に、前のバージョンの Outlook で利用可能だったオブジェクト、コレクション、および列挙に対する機能拡張を示します。「新しいメンバー」 列には、新しいメソッド、プロパティ、イベント、および列挙値のみを記載します。
表 1. Outlook オブジェクト モデルの機能拡張
オブジェクトまたは列挙 |
新しいメンバー |
---|---|
ReadComplete イベント |
|
ReadComplete イベント |
|
ReadComplete イベント |
|
ReadComplete イベント |
|
ActiveInlineResponse プロパティ ActiveInlineResponseWordEditor プロパティ InlineResponse イベント InlineResponseClose イベント |
|
ReadComplete イベント |
|
ReadComplete イベント |
|
ReadComplete イベント |
|
olEas 列挙値 |
|
olWorkingElsewhere 列挙値 |
|
olClassPeopleView 列挙値 |
|
olSearchScopeCurrentStore 列挙値 |
|
olPeopleView 列挙値 |
|
ReadComplete イベント |
|
ReadComplete イベント |
|
ReadComplete イベント |
|
ReadComplete イベント |
|
ReadComplete イベント |
|
ReadComplete イベント |
|
ReadComplete イベント |
|
ReadComplete イベント |
|
ReadComplete イベント |
新しいオブジェクト
次の表に、Outlook 2013 で導入された新しいオブジェクトを示します。すべてのオブジェクト メンバーを 「プロパティ」 列と 「メソッド」 列に記載します。
表 2. Outlook オブジェクト モデルへの追加
オブジェクト |
プロパティ |
メソッド |
---|---|---|
使用されていないオブジェクトおよびメンバー
今回のリリースでの Outlook オブジェクト モデルの主な廃止予定は次のとおりです。
To Do バーのサポート
Outlook 2013 のユーザー インターフェイスで To Do バーはサポートされなくなったため、Explorer.ShowPane(olToDoBar) を使用して To Do バーを表示または非表示にしようとすると、エラーが返されます。既存のコードを変更してこのエラーを処理するようにするか、Outlook 2013 で実行するコードでは olToDoBar 定数を指定して ShowPane を呼び出すことを避けてください。
連絡先リンクのサポート
連絡先リンク機能と、それに対応するオブジェクト モデルのサポート (Link オブジェクトと Links オブジェクトによる) は使用されなくなりました。各アイテム オブジェクトの Links プロパティは Null (Visual Basic では Nothing) を返すようになったため、この動作を処理するように既存のコードを変更してください。
MobileItem オブジェクト。詳細については、「Office Mobile Service のサポートの打ち切り」セクションを参照してください。
次の表に、Outlook 2013 で使用されなくなったオブジェクト、メンバー、列挙値を示します。「使用されなくなったメンバー」 列には、使用されなくなったオブジェクト メンバーおよび列挙値のみを記載します。Visual Basic では、使用されなくなったメンバーはオブジェクト ブラウザーで表示されませんが、使用されなくなった列挙または列挙値は表示されます。いずれにしても、それらの列挙や列挙値をコードで使用しないようにする必要があります。
オブジェクト、コレクション、または列挙 |
使用されなくなったメンバーまたは列挙値 |
---|---|
AppointmentItem |
Links プロパティ |
DayWeekFont プロパティ DayWeekTimeFont プロパティ MonthFont プロパティ |
|
ContactItem |
Links プロパティ |
DistListItem |
Links プロパティ |
DocumentItem |
Links プロパティ |
ItemProperties プロパティ |
|
JournalItem |
Links プロパティ |
Link |
ApplicationClass プロパティ Item プロパティ Name プロパティ Parent プロパティ Session プロパティ Type プロパティ |
Links |
ApplicationClass プロパティ Count プロパティ Parent プロパティ Session プロパティ AddItem メソッド Remove メソッド |
MailItem |
Links プロパティ |
MeetingItem |
Links プロパティ |
MobileItem |
プロパティ Actions プロパティ Application プロパティ Attachments プロパティ BillingInformation プロパティ Body プロパティ Categories プロパティ Class プロパティ Companies プロパティ ConversationIndex プロパティ ConversationTopic プロパティ CreationTime プロパティ Count プロパティ EntryID プロパティ FormDescription プロパティ GetInspector プロパティ HTMLBody プロパティ Importance プロパティ ItemProperties プロパティ LastModificationTime プロパティ MessageClass プロパティ Mileage プロパティ MobileFormat プロパティ NoAging プロパティ OutlookInternalVersion プロパティ OutlookVersion プロパティ Parent プロパティ PropertyAccessor プロパティ ReceivedByEntryID プロパティ ReceivedByName プロパティ ReceivedTime プロパティ Recipients プロパティ ReplyRecipientNames プロパティ ReplyRecipients プロパティ Saved プロパティ SenderEmailAddress プロパティ SenderEmailType プロパティ SenderName プロパティ SendUsingAccount プロパティ Sensitivity プロパティ Sent プロパティ SentOn プロパティ Session プロパティ Size プロパティ SMILBody プロパティ Subject プロパティ Submitted プロパティ To プロパティ UnRead プロパティ UserProperties プロパティ メソッド Close メソッド Copy メソッド Delete メソッド Display メソッド Forward メソッド Move メソッド Reply メソッド ReplyAll メソッド Save メソッド SaveAs メソッド Send メソッド イベント AttachmentAdd イベント AttachmentReadAttachmentRemove イベント BeforeAttachmentAdd イベント BeforeAttachmentPreview イベント BeforeAttachmentRead イベント BeforeAttachmentSave イベント BeforeAttachmentWriteToTempFile イベント BeforeAutoSave イベント BeforeCheckNames イベント BeforeDelete イベント Close イベント CustomAction イベント CustomPropertyChange イベント Forward イベント Open イベント PropertyChange イベント Read イベント ReadComplete イベント Reply イベント ReplyAll イベント Send イベント UnloadWrite イベント |
NoteItem |
Links プロパティ |
olLink 列挙値 olLinks 列挙値 olMobile 列挙値 |
|
olToDoBar 列挙値 |
|
PostItem |
Links プロパティ |
RemoteItem |
Links プロパティ |
ReportItem |
Links プロパティ |
TaskItem |
Links プロパティ |
TaskRequestAcceptItem |
Links プロパティ |
TaskRequestDeclineItem |
Links プロパティ |
TaskRequestItem |
Links プロパティ |
TaskRequestUpdateItem |
Links プロパティ |
インライン返信の処理
Outlook 2013 にインライン返信の機能が導入されました。これは、ユーザーが新しい [インスペクター] ウィンドウを開かずに、閲覧ウィンドウ内で返信を作成できる機能です。ソリューションで、メモの作成リボンに Office Fluent UI コントロールを追加する必要がある場合、または返信メッセージを送信する前にビジネス ロジックまたはカスタム機能を返信メッセージに適用する必要がある場合は、Explorer オブジェクトに新しい InlineResponse イベントを使用するようにソリューションを変更してください。
注意
インライン返信を使用するには、エクスプローラーの [ビュー] メニューで閲覧ウィンドウを表示することを選択しておく必要があります。
InlineResponse イベントは、Inspectors コレクション オブジェクトの NewInspector イベントに相当するインライン版です。NewInspector イベントは、新しい [インスペクター] ウィンドウが開く時点で発生します。InlineResponse イベントは、図 7 に示すとおり、閲覧ウィンドウにインライン返信が表示されるアクションをユーザーが実行した時点で発生します。
図 7. インライン返信はユーザーが返信アクションを選択したときに作成される
インライン返信に対するオブジェクト モデルのサポート
インライン返信機能をプログラム可能にするサポートを提供するため、Explorer オブジェクトに以下のメンバーが追加されました。
メンバー |
説明 |
---|---|
ActiveInlineResponse プロパティ |
閲覧ウィンドウ内のアクティブなインライン返信アイテムを表すアイテム オブジェクトを返します。値の取得のみ可能です。 |
閲覧ウィンドウに表示されているアクティブなインライン返信の Word Document オブジェクトを返します。値の取得のみ可能です。 |
|
InlineResponse イベント |
閲覧ウィンドウにインライン返信が表示されるアクションをユーザーが実行したときに発生します。 |
InlineResponse イベントの使用方法
作成しているコードで、返信、全員に返信、および転送など、ユーザーが作成するすべてのメッセージに免責事項を挿入する必要があるというシナリオを考えてみましょう。インライン返信は Outlook 2013 の既定の返信モードであるため、Explorer オブジェクトの InlineResponse イベントに対するイベント ハンドラーにフックアップする必要があります。次の C# コードでは、OutlookExplorer クラスの InlineResponse イベントのイベント ハンドラーにフックアップしています。このコード例で、OutlookExplorer は、Explorer オブジェクトのコレクションに対するラッパー クラスです。
public OutlookExplorer(Outlook.Explorer explorer)
{
m_Window = explorer;
// Hook up InlineResponse event
m_Window.InlineResponse +=
new Outlook.ExplorerEvents_10_InlineResponseEventHandler
(m_Window_InlineResponse);
// Hook up other events if applicable.
}
InlineResponse イベントが発生すると、サンプル コードでは MailItem のインスタンスである m_Mail を作成し、その MailItem オブジェクトの PropertyChange イベントをリッスンします。m_Mail は、アドインで必要とされる任意のビジネス ロジックを実装するために使用できるイベント対応のインスタンス変数です。
サンプル コードでは、MailItem.Size プロパティを 0 と比較して、インライン返信が新規か既存の下書きかを判別します。ActiveInlineResponseWordEditor プロパティが返す Word.Document オブジェクト doc は、アクティブな Explorer のアクティブなインライン返信を表しています。コードでは、Word のオブジェクト モデルを使用して、この doc オブジェクトの先頭に免責事項を追加します。
// InlineResponse fires when the user creates an inline response item
void m_Window_InlineResponse(object Item)
{
if (Item is Outlook.MailItem)
{
m_Mail = Item as Outlook.MailItem;
// Hook up event-aware instance variable.
// Use the variable to implement any business logic
// required by your add-in.
m_Mail.PropertyChange +=
new Outlook.ItemEvents_10_PropertyChangeEventHandler(
m_Mail_PropertyChange);
// Implement any business logic.
// Use mail.Size to determine if item is new
// or is a draft inline response.
// Size == 0 indicates a new inline response.
if (m_Mail.Size == 0)
{
{
Word.Document doc =
m_Window.ActiveInlineResponseWordEditor as Word.Document;
Word.Application wdApp = doc.Application as Word.Application;
Word.Range rng = wdApp.ActiveDocument.Range(Start: 1);
rng.InsertBefore("My Disclaimer...");
}
}
else
{
// Do nothing.
}
}
}
ActiveInlineResponse プロパティは、アクティブなインライン返信アイテムを表す MailItem オブジェクトを返すことに注意してください。このアイテムに対しては、MailItem オブジェクトと同じプロパティとメソッドを使用できますが、以下のプロパティとメソッドは除きます。
MailItem.Actions プロパティ
MailItem.Close メソッド
MailItem.Copy メソッド
MailItem.Delete メソッド
MailItem.Forward メソッド
MailItem.Move メソッド
MailItem.Reply メソッド
MailItem.ReplyAll メソッド
MailItem.Send メソッド
他方、アクティブなインライン返信がない場合、ActiveInlineResponseWordEditor プロパティおよび ActiveInlineResponse プロパティは null を返します。
[ツールの作成] コンテキスト タブにカスタム コントロールを追加する
実行可能なもう 1 つのシナリオは、インライン返信のために Outlook のユーザー インターフェイスを拡張することです。Outlook のユーザー インターフェイスを拡張するには、この記事では詳細に説明しない Office Fluent UI の拡張機能を使用する必要があります。Outlook のユーザー インターフェイスを拡張することに関する追加情報は、この記事の末尾にあるリンクを参照してください。Outlook 2013 にインライン返信が表示されると、Office Fluent リボンに [ツールの作成] コンテキスト タブが表示されます。[ツールの作成] コンテキスト タブにコントロールを追加するには、リボンの XML の <contextualTabs> </contextualTabs> セクションにカスタム コントロールを追加し、RibbonID が "Microsoft.Outlook.Explorer" に等しい IRibbonExtensibility インターフェイスの GetCustomUI メソッドにその XML を渡します。idMso 属性に該当する値 (この場合は "TabComposeTools") が指定された tabSet 要素を識別する必要があります。次のリボン XML は、図 7 にある MyButton コントロールを作成します。
<contextualTabs>
<tabSet idMso="TabComposeTools">
<tab idMso="TabMessage">
<group label="MyGroup" id="MyComposeToolsGroup">
<button id="MyButtonInlineResponse"
size="large"
label="MyButton"
imageMso="MagicEightBall"
onAction="OnInlineResponseButtonClick" />
</group>
</tab>
</tabSet>
</contextualTabs>
ユーザーが MyButton コントロールを選択すると、OnInlineResponseButtonClick ハンドラーが呼び出されます。次のコード例では、ActiveInlineResponseWordEditor プロパティを使用して Word.Document オブジェクトのインスタンスを取得しています。その後は、Word.Document オブジェクトの全機能を使用して、シナリオで必要なテキストを挿入し、書式設定できます。
// Callback for inline response custom button.
public void OnInlineResponseButtonClick(Office.IRibbonControl control)
{
if (control.Context is Outlook.Explorer)
{
Outlook.Explorer myExplorer =
control.Context as Outlook.Explorer;
Word.Document doc =
myExplorer.ActiveInlineResponseWordEditor as Word.Document;
Word.Application wdApp = doc.Application as Word.Application;
Word.Range rng = wdApp.ActiveDocument.Range(Start: 1,
End: wdApp.ActiveDocument.Characters.Count);
rng.InsertBefore("\n" + "My Disclaimer...");
}
}
Outlook Social Connector プロバイダーの拡張機能に対する変更
Office 2013 では、Outlook Social Connector (OSC) の有効範囲が拡張されました。Outlook だけでなく、ユーザー プレゼンスと連絡先カードの表示をサポートしているすべての Office クライアント アプリケーションで、プロフェッショナル サイトまたはソーシャル ネットワーク サイトで適用されたソーシャル情報の更新を集約して表示することができます。それに加えて、SharePoint Server、SharePoint Workspace、および Lync クライアントでも OSC がサポートされます。
Outlook 2013 で OSC プロバイダーの拡張機能に加えられた大きな変更点の 1 つは、アクティビティがアクティビティ キャッシュを使用して同期されなくなった点です。OSC プロバイダーがアクティビティの表示をサポートしている場合は、最新のアクティビティを表示するためにプロバイダーがオンデマンドでアクティビティを同期する必要があります。
さらに、プロバイダーは人に関する追加のメタデータを通信するために OSC XML スキーマを使用できるようになりました。例: askmeabout、businessAddress、interests、skills、schools、website。
詳細については、「プロバイダーでの新機能します。(機械翻訳)」を参照してください。
Office Mobile Service のサポートの打ち切り
Office 2010 では、Office Mobile Service (OMS) 用の Web サービスを作成することにより、Outlook および SharePoint のモバイル機能をモバイル デバイスと統合することができます。Office 2013 では、SharePoint だけが OMS のサポートを続行します。また、Outlook 2013 では、MobileItem オブジェクトとそのメンバーも使用されなくなりました。Application.CreateItem を使用して MobileItem を作成しようとすると、E_INVALIDARG が返されます。
以前のバージョンの Outlook との共存
共存とは、Outlook 2007 または Outlook 2010 が存在するのと同じコンピューター上に Outlook 2013 をクリック実行によって配信できる機能を指します。また、"共存" は "サイド バイ サイド インストール" という意味でもあり、ユーザーは以前のバージョンの Outlook をアンインストールせずに Outlook 2013 を試用することができます。クリック実行は、Outlook 2013 の既定の配信メカニズムです。Outlook 2013 がコンピューターに配信された後、ユーザーは Outlook 2013 を実行することも、コンピューターにインストールされている旧バージョンの Outlook を実行することもできます。共存は、Outlook の 2 つのバージョンを同時に実行できるという意味ではないことに注意してください。2 つのバージョンの Outlook を同時に実行することはサポートされておらず、ユーザーが Outlook 2013 を実行中に旧バージョンの Outlook を実行しようとすると、Outlook はエラー ダイアログを表示します。
注意
Outlook 2007 より前のバージョンと Outlook 2013 との共存はサポートされていません。
サポートされるバージョンの一覧
このセクションでは、Outlook 2013 と共存できる、旧バージョンの Outlook のビット数とインストール モードについて説明します。次の点に注意してください。
MSI とは、旧バージョンの Outlook の Microsoft インストーラー (MSI) によるインストールを指します。
Office 2013 がサポートしている Windows のバージョンは Windows 7 と Windows 8 のみです。
Windows Server では、クリック実行はサポートされません。
Outlook 2013 は、Outlook 2003 またはそれより前のバージョンとの共存をサポートしていません。
Outlook 2013 は、同じバージョンの Outlook との共存をサポートしていません。つまり、MSI による Outlook 2013 のインストールと、クリック実行による Outlook 2013 の配信を、同じコンピューター上で行うことはサポートされていません。
ビット数の異なるバージョンの共存はサポートされません。ユーザーがクリック実行によってインストールするバージョンは、下位レベルの MSI インストールと同じビット数にする必要があります。
バージョン |
Outlook 2007 MSI |
Outlook 2010 x86 MSI |
Outlook 2010 x64 MSI |
---|---|---|---|
Outlook 2013 C2R x86 |
はい |
はい |
いいえ |
Outlook 2013 C2R x64 |
いいえ |
いいえ |
はい |
バージョンに依存するプロファイル
共存をサポートするため、Outlook 2013 は Outlook プロファイルを Windows レジストリ内の別個のハイブに格納します。旧バージョンの Outlook からのプロファイルは、Outlook 2013 を最初に起動した時点で Outlook 2013 のプロファイルに移行されます。その後に、旧バージョンの Outlook のプロファイルに追加または変更を行っても、その後の Outlook 2013 の起動時にそれらの変更が移行されることはありません。
Windows レジストリ内のプロファイルのハイブ
旧バージョンの Outlook では、プロファイルの格納先がバージョンに関わらずに HKCU\Software\Microsoft\Windows NT\Windows Messaging Subsystem\Profiles でしたが、Outlook 2013 では、バージョンを区別した次のキーの下にプロファイルを格納します。
HKEY_CURRENT_USER\Software\Microsoft\Office\<バージョン>\Outlook\Profiles
ここで、<バージョン> は、メジャー バージョン xx.0 を表す文字列です。たとえば、Outlook 2013 の場合は 15.0 です。
MAPI プロファイル API の呼び出し
アプリケーションがプロファイルのハイブからプロファイル データを読み取る方法に変更はありません。MAPI を (アプリケーションの要件に応じて、下位レベルのバージョンまたは最新の MAPI バージョンのいずれかに) 初期化した後、アプリケーションは共通の MAPI プロファイル API を使用して該当するプロファイルのハイブから値を読み取ることができます。
アプリケーションが Outlook 2013 用に MAPI を初期化した場合、MAPI プロファイル API はバージョンを区別したハイブに対してプロファイル データを読み書きします。アプリケーションが旧バージョンの Outlook 用に MAPI を初期化した場合、MAPI プロファイル API はバージョンを区別しないハイブに対してプロファイル データを読み書きします。
アプリ パスの登録
下位レベルのアプリケーションが間違った MAPI バージョンを読み込まないようにするため、Outlook 2013 はレジストリにあるアプリ パスの登録を変更します。下位レベルのバージョンのアプリケーションが間違った MAPI バージョンを読み込むと、アプリケーションは MAPI を読み込もうとしてクラッシュします。通常、旧バージョンの Outlook では、Outlook のアプリ パスを次のキーに書き込んでいました。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\OUTLOOK.EXE
旧バージョンのクリック実行では、Outlook のアプリ パスは変更されませんでした。Outlook 2013 をクリック実行によって配信すると、アプリ パスが次のように変更されます。
Outlook 2007 または Outlook 2010 にパッチがインストールされ、アプリ パスへの依存が解消されます。
アプリ パスが、Outlook 2013 の Outlook.exe へのパスを指すように変更されます。
Outlook 2013 の Outlook.exe への既定のパスは、C:\Program Files\Microsoft Office 15\root\office15 です。
MAPI のバージョン管理
MAPI を使用するアプリケーションは MAPIInitialize 関数を呼び出して MAPI セッションを初期化します。既定では、MAPI を初期化するアプリケーションは Outlook 2013 によって提供される MAPI のバージョンを使用します。異なるバージョンの MAPI を使用する必要がある場合は、「Outlook 2013 MAPI リファレンス」にある以下のトピックを参照してください。
簡易 MAPI
簡易 MAPI とは、アプリケーションが添付ファイル付きのメールを MAPISendMail API を使用して、または Windows 8 で導入された新しい MAPISendMailW API を使用して送信できる API を指します。
サポートされる MAPI API は、MAPISendMail (Windows 7) または MapiSendMailW (Windows 8) のみです。
開発者は、既存の簡易 MAPI コードを MAPISendMailW (Windows 8) または MAPISendMailHelper (Windows 7) を使用するように変更し、Unicode の完全なサポートと、モードレスの Outlook インスペクターを表示する機能を使用するかどうかを検討する必要があります。
Outlook が実行されていない場合、または Outlook 2013 が実行されている場合は、MAPISendMail または MAPISendMailW を呼び出すと Outlook 2013 のインスペクターが表示されます。
旧バージョンの Outlook が実行されている場合は、MAPISendMail または MAPISendMailW を呼び出すと次のエラーが表示されます。
旧バージョンの Outlook では、この操作はサポートされていません。
プロトコル ハンドラー
インストール時に、Outlook 2013 は次の表に示した一般的なプロトコルの既定のプロトコル ハンドラーとして登録されます。Outlook 2013、Outlook 2010、および Outlook 2007 はこれらのプロトコルをサポートしています。
プロトコル |
説明 |
---|---|
feed:、feeds: |
RSS フィードのハンドラー |
mailto: |
Outlook インスペクターを表示する MailTo リンクのハンドラー |
stssync: |
SharePoint 同期のハンドラー |
outlook: |
Outlook プロトコルは、Outlook アイテムの本体またはフォルダー ホーム ページからのみ使用できます |
webcal: |
webcal プロトコルのハンドラー |
Outlook 2013 が古いバージョンの Outlook と一緒に同じコンピューター上に存在する場合は、次の点に注意してください。
- 旧バージョンの Outlook が実行されていない場合は、プロトコル ハンドラーを呼び出すと、Outlook 2013 が起動してプロトコル ハンドラーの要求を処理します。
旧バージョンの Outlook が実行されている場合は、プロトコル ハンドラーを呼び出すと、コマンド ライン ハンドオフを使用して旧バージョンの Outlook が呼び出され、要求を処理します。
ファイルの関連付け
インストール中に、次の表に示した一般的なファイルの関連付けについて、Outlook 2013 が既定のハンドラーとして登録されます。Outlook 2013、Outlook 2010、および Outlook 2007 は、これらすべてのファイル拡張子をサポートしています。
ファイルの関連付け |
説明 |
---|---|
.eml |
電子メール メッセージ |
.fdm |
Outlook のフォーム定義 |
.hol |
Outlook の祝日 |
.ics |
iCalendar ファイル |
.msg |
Outlook のメッセージ アイテム |
.oft |
Outlook のアイテム テンプレート |
.pst |
Outlook のデータ ファイル |
.vcf |
vCard ファイル |
.vcs |
vCalendar ファイル |
Outlook 2013 が古いバージョンの Outlook と一緒に同じコンピューター上に存在する場合は、次の点に注意してください。
旧バージョンの Outlook が実行されていない場合は、ファイル システムからアイテムを開くと、Outlook 2013 でアイテムが開かれます。Outlook 2013 がまだ実行されていない場合は、この操作によってそれが起動します。
旧バージョンの Outlook が実行されている場合は、ファイル システムからアイテムを開くと、Outlook 2013 が起動し、要求を旧バージョンの Outlook にハンドオフします。
Outlook アプリケーション オブジェクトの共同作成
アドインでは、OnConnection イベント (ネイティブ アドイン) または ThisAddin_Startup イベント (Visual Studio Tools for Office を使用して作成したマネージ アドイン) で返されたApplication オブジェクトを使用する必要があります。アプリケーションで、CreateObject を使用して、または Outlook.Application のインスタンスを共同作成する機能を提供する別の関数を使用して Outlook.Application オブジェクトを共同作成する場合は、共存環境に関する以下の点に注意してください。
Outlook が実行されていない場合、または Outlook 2013 が実行されている場合は、CreateObject(“Outlook.Application”) を呼び出すと、Outlook 2013 を表す Outlook.Application オブジェクトが返されます。
旧バージョンの Outlook が実行されている場合は、CreateObject を呼び出すと、旧バージョンの Outlook を表す Outlook.Application オブジェクトが返されます。
実行されている Outlook のバージョンを判別するには、Application.Version プロパティを調べます。
クリック実行の検出
クリック実行環境に Outlook が存在することを検出するには、次のレジストリ キーに VirtualOutlook キーが存在することを確認します。
HKLM\Software\Microsoft\Office\15.0\Common\InstallRoot\Virtual\VirtualOutlook
VirtualOutlook キーが存在する場合は、Outlook がクリック実行アプリケーションとして既に配信されています。
作成したソリューションが共存環境で実行可能なことを確認する
共存は既定の配信モードであるため、作成したソリューションは Outlook 2013 および旧バージョンの Outlook に対してテストし、想定される以下の問題点について確認する必要があります。
アドインは、Windows レジストリ内のバージョンを区別しない次のハイブに登録されます。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Outlook\Addins
または
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Outlook\Addins
アドインの登録ではバージョンが区別されないため、作成したアドインは、Outlook 2013 が実行されている場合も、旧バージョンの Outlook が実行されている場合も、正常に実行できる必要があります。アップデートしたバージョンのアドインは、必ず Outlook 2013 および旧バージョンの Outlook に対してテストしてください。アドインでは、Application.Version を使用して Outlook のバージョンを検出し、実行されている Outlook のバージョンに応じて適切に調整する必要があります。
アプリ パスに依存する処理をコードから削除します。
Windows レジストリを使用してプロファイルを列挙することは避け、代わりに MAPI プロファイル API を使用します。
アドインを有効に保つためのパフォーマンス基準
Outlook 2010 のアドインの弾力性の柱が拡張され、Outlook 2013 ではアドインの起動、シャットダウン、フォルダー切り替え、アイテムのオープン、起動の頻度などのアドイン パフォーマンス指標がモニターされます。Outlook は、パフォーマンス モニターの各指標について経過時間をミリ秒単位で記録します。
たとえば、スタートアップの指標では、接続された各アドインが Outlook のスタートアップ時に必要とした時間が測定され、連続した 5 回のスタートアップ時間の中央値が算出されます。スタートアップ時間の中央値が 1000 ミリ秒 (1 秒) を超えると、Outlook はそのアドインを無効にし、アドインが無効にされたという通知をユーザーに表示します。ユーザーはアドインを常に有効にするというオプションを選択できます。その場合は、アドインが 1000 ミリ秒というパフォーマンスしきい値を超えても Outlook はアドインを無効にしません。
既定の無効化のためにモニターされるアドインのパフォーマンス
Outlook は、アドインを無効にする必要があるかどうかを判別するため、以下の基準を使用します。ユーザーは、アドインを常に有効にするオプションを選択することができ、そのアドインにはアドインを無効化する基準が適用されません。
基準 |
しきい値 (ミリ秒) |
説明 |
---|---|---|
スタートアップ |
1000 |
IDTExtensibility2_OnConnection イベントを使用してスタートアップを完了するためにアドインが要した時間をミリ秒単位で測定します。既定では、連続した 5 回の時間の中央値がパフォーマンスしきい値を超えると、Outlook はそのアドインを無効にします。 |
シャットダウン |
500 |
IDTExtensibility2_OnDisconnection イベントを使用してシャットダウンを完了するためにアドインが要した時間を測定します。これは、低速シャットダウンを要求するアドインにのみ適用されます。高速シャットダウンを使用するアドインは、この基準の対象にはなりません。連続した 5 回の時間の中央値がパフォーマンスしきい値を超えると、Outlook はそのアドインを次の Outlook のスタートアップ時に無効にします。 |
フォルダーの切り替え |
500 |
Explorer オブジェクトの BeforeFolderSwitch イベントと FolderSwitch イベントを使用してアドインがフォルダーを切り替えるために必要とした時間をミリ秒単位で測定します。既定では、連続した 5 回の時間の中央値がパフォーマンスしきい値を超えると、Outlook はそのアドインを無効にします。 |
アイテムを開く |
500 |
アイテムの Open イベントを使用してアイテムを開く処理を完了するためにアドインが必要とした時間をミリ秒単位で測定します。既定では、連続した 5 回の時間の中央値がパフォーマンスしきい値を超えると、Outlook はそのアドインを無効にします。 |
起動の頻度 |
1000 |
アドインが連続した 10,000 回の呼び出しを実行する間に必要とした時間をミリ秒単位で測定します。既定では、10,000 回の呼び出しから次の呼び出しまでの間隔がパフォーマンスしきい値を下回っている場合に、Outlook はアドインを無効にします。他の 4 つの基準とは異なり、この基準では中央値がとられることはありません。 |
システム管理者によるアドインの制御
ユーザーは自分のコンピューターでどのアドインが実行されるかを制御できます。Outlook 2013 では、システム管理者がグループ ポリシーを使用してアドインを制御できる度合いが高くなっています。グループ ポリシーは常にユーザーによる設定をオーバーライドします。また、[管理対象アドインの一覧] グループ ポリシーによって構成されたアドインの設定をユーザーは変更できません。ポリシーのキーは次のとおりです。
キー |
HKCU\Software\Policies\Microsoft\Office\15.0\Outlook\Resiliency\AddinList |
名前 |
管理対象アドインの一覧 |
説明 |
このポリシー設定では、常に有効にするアドイン、常に無効にする (ブロックする) アドイン、ユーザーによる構成を可能にするアドインを指定できます。 > [!NOTE] >この場合の「管理対象 (managed)」という用語は、グループ ポリシーによって操作されるアドインのことを指しており、マネージ コードを使用するプログラミング言語でアドインが開発されたかどうかとは無関係です。 |
このポリシー設定によって管理しないアドインをブロックするには、[非管理対象のアドインをすべてブロックする] ポリシー設定も構成する必要があります。
このポリシー設定を有効にするには、各アドインに対して以下の情報を提供します。
"値の名前" としては、COM アドインのプログラム識別子 (ProgID) を指定します。
アドインの ProgID を入手するには、アドインがインストールされているクライアント コンピューターでレジストリ エディターを使用して以下のキー名を探してください。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Outlook\Addins
または
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Outlook\Addins
"値" としては、以下の値を指定します。
アドインを常に無効にする (ブロックする) には、0 を指定します。
アドインを常に有効にするには、1 を指定します。
アドインをユーザーが構成できるようにし、[非管理対象のアドインをすべてブロックする] ポリシー設定が有効にされたときにブロックされないようにするには、2 を指定します。
このポリシー設定を無効にする (つまり有効にしない) と、管理対象アドインの一覧は削除されます。その場合に [非管理対象のアドインをすべてブロックする] ポリシー設定を有効にすると、すべてのアドインがブロックされます。
このポリシーによって無効になっているアドインは、Outlook のアドイン無効化機能 (パフォーマンス、弾力性、または信頼性の理由からアドインを無効にする機能) によって無効になることはありません。
アドイン無効化機能のユーザー インターフェイス
アドインがパフォーマンスしきい値を超えると、Outlook は図 8 のような通知バーを表示して、1 つ以上のアドインが無効になったことをユーザーに通知します。
図 8. アドインが自動的に無効になると Outlook に通知バーが表示される
通知バーにある [無効になったアドインの表示] ボタンをクリックすると、[無効になったアドイン] ダイアログが表示されます (図 9 を参照)。
図 9. [このアドインを常に有効にする] ボタンをクリックすると、そのアドインが有効になり、アドイン無効化機能の対象から除外される
アドインによるパフォーマンス低下をユーザーが許容範囲であると考える場合、ユーザーはそのアドインを常に有効にすることを選択できます。常に有効に設定したアドインは、パフォーマンス基準に基づいて Outlook によって自動的に無効になることがありません。なお、後に何らかの理由でそのアドインをアドイン無効化機能の管理下に戻す必要が生じた場合は、[無効になったアドイン] ダイアログからそのアドインを無効にすることもできます (図 10 を参照)。
図 10. [このアドインを無効にする] ボタンを選択してアドインを無効にする
アドインが無効にならないようにする
大部分のアドインはアドイン無効化機能によって無効になることはありませんが、特定のアドインを一貫して無効化されないように保持したい場合は、アドインのパフォーマンスを改善するための以下の提案を参考にしてください。
マネージ コードのアドインよりも、ネイティブ COM アドインを優先します。マネージ アドインには、Outlook のスタートアップ中に .NET Framework を読み込むオーバーヘッドがあります。
負荷のかかるデータベース接続を行うなど、長時間実行されるタスクがある場合は、それらのタスクをスタートアップの後で実行するようにします。
可能であれば、エクスプローラーの FolderSwitch イベントと BeforeFolderSwitch イベント、またはアイテムの Open イベントで、負荷のかかるネットワーク呼び出しを行う代わりにデータをローカルにキャッシュします。
ポーリングは負荷のかかる操作なので、ポーリングよりもイベント ドリブン モデルを常に優先します。
Outlook オブジェクト モデルに対するすべての呼び出しが Outlook のメイン フォアグラウンド スレッドで実行されることに留意してください。可能であれば、Outlook オブジェクト モデルに対する実行時間の長い呼び出しを避けます。なお、Outlook 2013 の Outlook オブジェクト モデルに対する呼び出しでは、バックグラウンド スレッドから Outlook オブジェクト モデルを呼び出すと E_RPC_WRONG_THREAD が返されることに注意してください。
特に、Visual Studio の Office デベロッパー ツールを使用してマネージ アドインを作成する場合は、CLR をロードする最初のアドインでパフォーマンスに負荷がかかる傾向があることに留意してください。以下の手段を検討します。詳細については、このドキュメントの末尾にある追加の参照資料をご覧ください。
マネージ アドインのオンデマンド読み込み。
CLR の遅延読み込み。
ClickOnce の代わりに MSI 展開パッケージを使用します。
該当する場合は、スキーマの検証、マニフェストのデジタル署名の検証、更新プログラムの自動確認をバイパスする高速パスを使用します。高速パスの使用に関する詳細は、ブログ投稿「近日公開のサービス パックでパフォーマンスを改善する (Stephen Peters)」を参照してください。
アドインでリボンを拡張したり、大きなライブラリにリンクしたりする場合は、リボンのリフレクションをオーバーライドします。
まとめ
メール アプリは、Web サービスやコンテキストに応じた Web ドリブンの UI を Outlook および Outlook Web App に直接組み込むという、たいへん興味をそそられる機会を開発者に提供します。私たちは、「一度書けば、どこででも実行できる」という私たちのビジョンを Exchange および Outlook の開発者の皆様にお届けしてきました。今回、拡張手段として 2 本の柱が提供されたことになります。最初の柱は Office 2000 で導入された Office COM アドインを土台とするものであり、2 番目の柱はメール アプリ プラットフォームを土台とするものです。COM アドイン モデルは Outlook クライアントのみとの深い統合をサポートするものですが、ソリューションをインストールするときはデスクトップの隅々まで手を加える必要があります。既存のアドイン ソリューションをお持ちの場合は、インライン返信、共存、およびアドイン無効化機能に対応するようにアドインを更新することを検討する必要があります。Outlook および Outlook Web App を使用している非常に大きなユーザー層にリーチを伸ばす新しい機会をお探しなら、メール アプリを作成することをお勧めします。Web からのシンプルな展開と、Web サービスを Outlook の UI に直接統合する機能を活用できます。どちらの道を選ぶとしても (もちろん両方を選ぶこともできます)、コーディングをお楽しみください!
その他の技術情報
Office アドイン
天気予報バー
Outlook および Office のオブジェクト モデル
Outlook Social Connector
共存と MAPI
Visual Studio における Office アドインのパフォーマンスと開発
その他