Vb.net Outlook 2010的VSTO不返回任何内容而不返回联系人?

Vb.net Outlook 2010的VSTO不返回任何内容而不返回联系人?,vb.net,vsto,outlook-2010,Vb.net,Vsto,Outlook 2010,我正在尝试在Outlook 2010联系人视图上创建一个右键单击菜单,返回联系人的所有电话号码 我已经输入了以下XML: <contextMenu idMso="ContextMenuContactItem"> <button id="MyContextMenuContactItem" imageMso="AutoDial" label="Click to dial" onAction="OnMyButtonClick"/> <

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

我已经输入了以下XML:

<contextMenu idMso="ContextMenuContactItem">
  <button id="MyContextMenuContactItem"
      imageMso="AutoDial"
      label="Click to dial"
      onAction="OnMyButtonClick"/>
</contextMenu>
问题就在这里——我总是一无所获。理想情况下,我需要使用“商务电话”作为示例。

这里有一些C代码,可以访问您在Contacts文件夹中选择的ContactItem对象。我知道你的是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);
        }
    }
}

对于VB:Dim selected As Outlook.Selection=TryCast(control.Context,Outlook.Selection)Dim x As System.Collections.IEnumerator=selected.GetEnumerator x.MoveNext()Dim card As Outlook.ContactItem=TryCast(x.Current,Outlook.ContactItem)MsgBox(card.FirstName)
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);
        }
    }
}