获取outlook中所有房间的列表

时间:2013-02-13 12:25:33

标签: c# outlook exchange-server outlook-vba mapi

我正在写一些应用程序,我需要在我的组织内获得所有可用的房间。 (我们在Outlook中打开“添加房间”对话框时获得的相同列表) 我假设虽然我们通过outlook来做它对一些交换服务器,但问题是有没有办法将outlook用作我与交换服务器之间的“代理”?

我对交流没有任何了解,对outlook的互操作知之甚少......

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我不知道这是否适合您,但查看带有OutlookSpy的“All Rooms”容器,PR_CONTAINER_FLAGS属性包含一个未记录的位0x200。我没有看到任何其他容器的相同位设置。 是否有类似以下的工作?

PR_CONTAINER_FLAGS = "http://schemas.microsoft.com/mapi/proptag/0x36000003"
set rooms = Nothing
set lists = Application.Session.AddressLists
for each list in lists
  containerFlags = list.PropertyAccessor.GetProperty(PR_CONTAINER_FLAGS)
  if (containerFlags And &H0200) <> 0 Then
    set rooms = list
    Exit For
  End If
next
if (rooms Is Nothing) Then
  MsgBox "Room container not found"
Else
  MsgBox "Room container was found, its name is " & rooms.Name
  for each room in rooms.AddressEntries
     Debug.Print room.Name & " - " & room.Address
   next
End If