Outlook 约会会议组织者信息不一致



我正在开发一个用于 Outlook 的 VSTO 加载项,该加载项是用 C# 编写的 WFP 应用程序,并且在 Outlook 为当前所选约会提供的数据中遇到了不一致的问题。

我的加载项从约会对话框中的按钮执行。以下是我用于从对话框中访问信息的主要声明:

Outlook.Application app = Globals.MyAddInApp.Application;
Outlook.AppointmentItem appt =
app.ActiveInspector().CurrentItem as Outlook.AppointmentItem;

如果我打开现有会议并查看appt中的信息,appt.Organizer会按预期为我提供会议组织者的名称。但是,如果我检查appt.Recipients

string organizer;
foreach (Outlook.Recipient attendee in appt.Recipients)
{
switch ((Outlook.OlMeetingRecipientType)attendee.Type)
{
case Outlook.OlMeetingRecipientType.olOrganizer:
organizer = attendee.Name;
break;
case Outlook.OlMeetingRecipientType.olRequired:
// ...
break;
case Outlook.OlMeetingRecipientType.olOptional:
// ...
break;
case Outlook.OlMeetingRecipientType.olResource:
// ...
break;
}
}

我发现会议组织者有一种类型olRequired而不是键入olOrganizer。上述代码中的organizer字符串未设置为组织者的名称。约会对话框"日程安排助理"清楚地指示了组织者,所以我对Type如何显示为olRequired而不是olOrganizer感到困惑。

对我来说,我不能只使用Type字段来确定与会者的名册,这对我来说似乎很奇怪。我真的必须根据Recipients中的名称检查Organizer属性才能检测Recipients列表中的组织者吗?

根本不使用收件人类型olOrganizer(0)。您只能拥有收件人/抄送/密件抄送收件人(映射到约会的olRequired/olOptional/olResource)。

在 MAPI 级别,组织者由收件人上设置的PR_RECIPIENT_FLAGS中的recipOrganizer位 (2) 标记。您可以在OutlookSpy中看到该属性(我是其作者) - 选择约会,单击IMessage按钮,转到GetRecipientTable选项卡,选择组织者,选择PR_RECIPIENT_FLAGS属性,右键单击"查看属性"。

我也遇到过这个问题,正在调查。 对我来说,这绝对看起来像 Outlook 中的一个错误。我已经打开了一个用户之声(对于这个和另一个)。让我们看看Microsoft是否会修复它。 https://outlook.uservoice.com/forums/322590-outlook-for-windows-desktop-application/suggestions/42151741-outlook-vba-wrong-recipient-type-for-organizer-olm

最新更新