Outlook API在C#中获取会议详细信息

苏尼尔·巴布

我正在尝试使用c#Windows应用程序为Outlook创建API。为此,要获取所有AppointmentItem,我正在使用下面的代码,它正在工作。

Microsoft.Office.Interop.Outlook.Application oApp = null;
            Microsoft.Office.Interop.Outlook.NameSpace mapiNamespace = null;
            Microsoft.Office.Interop.Outlook.MAPIFolder CalendarFolder = null;
            Microsoft.Office.Interop.Outlook.MAPIFolder Inbox = null;
            Microsoft.Office.Interop.Outlook.Items outlookCalendarItems = null;

            oApp = new Microsoft.Office.Interop.Outlook.Application();
            mapiNamespace = oApp.GetNamespace("MAPI"); ;
            mapiNamespace.Logon("", "",true, true);
            CalendarFolder = mapiNamespace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderCalendar);
            CalendarFolder = oApp.Session.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderCalendar);
            DateTime startTime = DateTime.Now;
            DateTime endTime = startTime.AddDays(5);
            //string filter = "[Start] >= '"  + startTime.ToString("g")  + "' AND [End] <= '" + endTime.ToString("g") + "'";
            outlookCalendarItems = CalendarFolder.Items;
           // outlookCalendarItems.Restrict(filter);
           // outlookCalendarItems.Sort("Start");
            outlookCalendarItems.IncludeRecurrences = true;

            int i = 0;
            foreach (Microsoft.Office.Interop.Outlook.AppointmentItem item in outlookCalendarItems)
            {

                dataGridCalander.Rows.Add();
                dataGridCalander.Rows[i].Cells[0].Value = i + 1;

                if (item.Subject != null)
                {
                    dataGridCalander.Rows[i].Cells[1].Value = item.Subject;
                } 
}

类似地,我要获得在特定会议室的外观和状态中创建的可用会议室(是否可用)。提前致谢。

尤金·阿斯塔菲耶夫(Eugene Astafiev)

我注意到以下代码行:

 foreach (Microsoft.Office.Interop.Outlook.AppointmentItem item in outlookCalendarItems)

不要遍历循环中的所有Outlook项目。使用“查找/查找下一个”或“限制”方法来查找所需的子集。

或使用Folder类GetTable方法获得一个Table对象,该对象包含由Filter过滤的项目。如果Filter为空字符串或省略Filter参数,则GetTable返回一个Table,其中的行表示Folder中的所有项目。如果Filter为空字符串或省略Filter参数且TableContents为olHiddenItems,则GetTable返回一个Table,其中的行表示Folder中的所有隐藏项。

Sub DemoTable()  
  'Declarations  
  Dim Filter As String  
  Dim oRow As Outlook.Row  
  Dim oTable As Outlook.Table  
  Dim oFolder As Outlook.Folder  

  'Get a Folder object for the Inbox  
  Set oFolder = Application.Session.GetDefaultFolder(olFolderInbox)  

  'Define Filter to obtain items last modified after May 1, 2005  
   Filter = "[LastModificationTime] > '5/1/2005'"  
  'Restrict with Filter  
   Set oTable = oFolder.GetTable(Filter)  

  'Enumerate the table using test for EndOfTable  
   Do Until (oTable.EndOfTable)  
     Set oRow = oTable.GetNextRow()  
     Debug.Print (oRow("Subject"))  
     Debug.Print (oRow("LastModificationTime"))  
   Loop  
 End Sub

Outlook对象模型不为房间提供任何方法或属性。您可以使用Namespace类OpenSharedFolder方法打开房间的共享日历。

考虑改用EWS。有关更多信息请参见Exchange中的EWS托管API,EWS和Web服务

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Outlook API在C#中获取会议详细信息

来自分类Dev

会议详细信息在Outlook中

来自分类Dev

当使用Apple脚本打开会议窗口时,如何从MS Outlook获取会议详细信息

来自分类Dev

在c# dot net中如何获取outlook会议室容量属性?

来自分类Dev

根据别名Excel VBA检索Outlook详细信息

来自分类Dev

在Outlook 2010中查看其他人的日历详细信息

来自分类Dev

Outlook API-获取会议室日历

来自分类Dev

Outlook API-获取会议室日历

来自分类Dev

如何使用C#中的EWS托管API获取多个O365邮件ID的邮件详细信息

来自分类Dev

在Outlook 2010中延迟会议邀请-VBA

来自分类Dev

获取共享的 Outlook 日历事件 C#

来自分类Dev

如何从C#中的Outlook获取MailItem的最后回复?

来自分类Dev

限制Outlook日历的会议时间

来自分类Dev

RDCOMClient 和 Outlook:预订会议

来自分类Dev

Outlook提醒获取AppointmentItem

来自分类Dev

如何通过 C# 在 MS Visio 中获取组对象的详细信息

来自分类Dev

Outlook中的VBA搜索

来自分类Dev

从Outlook中删除格式

来自分类Dev

VPN中的Outlook代理

来自分类Dev

Outlook中的重复文本

来自分类Dev

Outlook中VBA的if语句

来自分类Dev

Outlook中的VBA搜索

来自分类Dev

Exception between C# and Outlook

来自分类Dev

Outlook召回消息C#

来自分类Dev

Google Fit:API仅获取数据源的详细信息,而不获取nodejs中卡路里的详细信息

来自分类Dev

Outlook API中的403 ErrorAccessDenied

来自分类Dev

获取JSP中的用户详细信息?

来自分类Dev

未在jsp中获取详细信息

来自分类Dev

如何从班级中获取详细信息