显示收件人的共享日历

此代码示例展示了如何使用 CreateRecipient(String)GetSharedDefaultFolder(Recipient, OlDefaultFolders) 方法显示收件人的共享日历。

示例

注意

下面的代码示例摘录自 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。 收件人姓名可采用下列任一格式:

  • 显示名称
  • Alias
  • 简单邮件传输协议 (SMTP) 地址

如果使用 Visual Studio 测试此代码示例,必须先添加对 Microsoft Outlook 15.0 对象库组件的引用,并在导入 Microsoft.Office.Interop.Outlook 命名空间时指定 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);
                }
            }
        }
    }
}

另请参阅