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

この例では、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);
                }
            }
        }
    }
}

関連項目