VSTO for Outlook 2010什么都不返回,而不是联系?

时间:2013-03-19 10:17:39

标签: vb.net vsto outlook-2010

我正在尝试在Outlook 2010联系人视图上创建一个右键菜单,该视图会返回联系人的所有电话号码

我输入了以下XML:

<contextMenu idMso="ContextMenuContactItem">
  <button id="MyContextMenuContactItem"
      imageMso="AutoDial"
      label="Click to dial"
      onAction="OnMyButtonClick"/>
</contextMenu>

当我右键单击时,这会在联系人列表中正确显示右键单击项。到目前为止,我已将以下代码添加到onAction:

Public Sub OnMyButtonClick(ByVal control As Office.IRibbonControl)
    Dim card As Office.IMsoContactCard = TryCast(control.Context, Office.IMsoContactCard)
    If card Is Nothing Then
        MsgBox("Nothing")
    Else
        MsgBox("We have a card")
    End If
End Sub

问题出在这里 - 我一无所获。例如,理想情况下,我需要以“商务电话”为例。

1 个答案:

答案 0 :(得分:0)

以下是一些访问您在“联系人”文件夹中选择的ContactItem对象的C#代码。我意识到你的是VB,但由于他们都可以访问相同的对象模型,所以应该只是改变语法。

public void OnMyButtonClick(Office.IRibbonControl control)
{ 
    if (control.Context is Outlook.Selection)
    {
        Outlook.Selection selected = control.Context as Outlook.Selection;

        var x = selected.GetEnumerator();
        x.MoveNext();
        if (x.Current is Outlook.ContactItem)
        {
            Outlook.ContactItem card = x.Current as Outlook.ContactItem;
            Debug.Print(card.FirstName + "'s phone number: " + card.BusinessTelephoneNumber);
        }
    }
}