【问题标题】:Outlook VSTO is it possible to use the address book control?Outlook VSTO 是否可以使用通讯录控件?
【发布时间】:2013-03-15 21:52:53
【问题描述】:

我需要在 Outlook VSTO 项目中模拟通讯簿控件。使用真正的控件会简单得多,不是吗?

那么,您当然知道一种公开地址簿控件并获取其中选择的内容的方法吗?

编辑:没关系,重新创建控件的基本版本会更容易。

【问题讨论】:

    标签: outlook vsto


    【解决方案1】:

    解决方案:第三方Redemption库提供此功能。

    RedemptionLoader.RDOSession.AddressBook.ShowAddressBook(...)

    【讨论】:

      【解决方案2】:

      您不需要使用第三方插件。你可以这样做:

      http://msdn.microsoft.com/en-us/library/office/ff868361.aspx

      下面这段代码是用 VBA 编写的,但您可以轻松地将其转换为 C#:

      Sub SelectRecipients() 
      Dim oMsg As MailItem 
      Set oMsg = Application.CreateItem(olMailItem) 
      Dim oDialog As SelectNamesDialog 
      Set oDialog = Application.Session.GetSelectNamesDialog 
      With oDialog 
      .InitialAddressList = _ 
      Application.Session.GetGlobalAddressList 
      .Recipients = oMsg.Recipients 
       If .Display Then 
       'Recipients Resolved 
       oMsg.Subject = "Hello" 
       oMsg.Send 
       End If 
       End With 
      End Sub 
      

      【讨论】:

      • 确实如此,但当时我必须符合 Outlook 2003,并且 Redemption 在这个项目上多次挽救了我们的生命,值得我们花在它上面的每一分钱。
      • 还请记住,Outlook 不允许您在显示通讯簿时指定父窗口句柄,因此 Outlook 主窗口将位于您的窗口顶部。 Redemption 允许您在调用 ShowAddressBook 时传递父窗口句柄。
      • 根据 Dmitry 的评论,我遇到了父窗口问题,这种问题很臭,因此赎回绝对是更好的选择。我在尝试让 Redemption 工作时遇到了其他问题(根据我的 cmets 关于这个问题:stackoverflow.com/questions/15423081/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多