受信者の共有の予定表を表示する

この例では、CreateRecipient(String) メソッドと GetSharedDefaultFolder(Recipient, OlDefaultFolders) メソッドを使用して、受信者の共有の予定表を表示する方法を示します。

注意

次のコード サンプルは、『Programming Applications for Microsoft Office Outlook 2007』からの抜粋です。

MailItem オブジェクトなどの送信可能なアイテムは、常に Recipients プロパティを公開します。このプロパティを使用することで、送信可能なアイテムの Recipients コレクションにアクセスできます。アイテムの Recipients コレクションにバインドされていない Recipient オブジェクトを作成するには、 NameSpace オブジェクトの CreateRecipient(String) メソッドを使用します。次に、このバインドされていない Recipient オブジェクトを GetSharedDefaultFolder(Recipient, OlDefaultFolders) メソッドに渡すと、このメソッドから共有の Exchange フォルダーが返されます。これで、共有の Exchange フォルダーを開き、エクスプローラー ウィンドウにそのフォルダーを表示することができます。 GetSharedDefaultFolder は、代理人が委任元のフォルダーへのアクセスを許可されている Exchange 代理シナリオで使用します。 Recipient オブジェクトは、 GetSharedDefaultFolder メソッドに渡す前に解決しておく必要があります。 Recipient オブジェクトを解決するには、そのオブジェクトの Resolve() メソッドを呼び出します。

次のコード例では、DisplayManagerCalendar が、CreateRecipientGetSharedDefaultFolder を呼び出して、現在のユーザーのマネージャーの予定表フォルダーを開き、表示します。ユーザーにマネージャーの予定表フォルダーを開く権限がない、またはエラーが発生すると、通知ダイアログ ボックスが表示されます。

注意

Namespace オブジェクトの CreateRecipient メソッド、または Recipients コレクションの Add(String) メソッドを使用して Recipient オブジェクトを作成する場合は、受信者の名前を提供する必要があります。 Recipient は、この名前に対して解決されます。 受信者の名前は、次のいずれかの形式をにすることができます。

  • 表示名
  • エイリアス
  • 簡易メール転送プロトコル (SMTP) アドレス

Visual Studio を使用してこのコード例をテストする場合、Microsoft.Office.Interop.Outlook 名前空間をインポートするときに、まず Microsoft Outlook 15.0 オブジェクト ライブラリ コンポーネントへの参照を追加し、Outlook 変数を指定します。 using ステートメントは、コード例の関数の前に直接置くことはできません。パブリッククラス宣言の前に追加する必要があります。 次のコード行は、C# でインポートおよび割り当てを行う方法を示しています。

using Outlook = Microsoft.Office.Interop.Outlook;
private void DisplayManagerCalendar()
{
    Outlook.AddressEntry addrEntry =
        Application.Session.CurrentUser.AddressEntry;
    if (addrEntry.Type == "EX")
    {
        Outlook.ExchangeUser manager =
            Application.Session.CurrentUser.
            AddressEntry.GetExchangeUser().GetExchangeUserManager();
        if (manager != null)
        {
            Outlook.Recipient recip =
                Application.Session.CreateRecipient(manager.Name);
            if (recip.Resolve())
            {
                try
                {
                    Outlook.Folder folder =
                        Application.Session.GetSharedDefaultFolder(
                        recip, Outlook.OlDefaultFolders.olFolderCalendar)
                        as Outlook.Folder;
                    folder.Display();
                }
                catch
                {
                    MessageBox.Show("Could not open manager's calendar.",
                        "GetSharedDefaultFolder Example",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Error);
                }
            }
        }
    }
}

関連項目