2013-03-19 35 views
0

我試圖在Outlook 2010中的聯繫人創建一個右鍵菜單查看返回的所有電話號碼的聯繫人VSTO for 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 

問題出在這裏 - 而且我什麼也得不到。例如,我需要獲得理想的「商務電話」。

回答

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); 
     } 
    } 
} 
+0

謝謝你這麼多:) – Ian 2013-03-20 09:30:44

+0

對於VB: 昏暗選爲Outlook.Selection = TryCast(control.Context,Outlook.Selection) 昏暗x As形成System.Collections.IEnumerator = selected.GetEnumerator X。 MoveNext() Dim card As Outlook.ContactItem = TryCast(x.Current,Outlook.ContactItem) MsgBox(card.FirstName) – Ian 2013-03-20 09:31:54

相關問題