1

目前我正在使用 VS2010 中的 C# 为 MS Outlook 2010 开发插件。当我们单击电子邮件 ID 时,这将在 ContextMenu 中创建一个额外的菜单。单击该菜单时,它将显示相应用户的寻呼机号码。

我已按照这些说明在 Outlook 2010 中扩展用户界面

我可以检索所有用户详细信息,例如地址、名字或电话号码等。但我无法检索寻呼机号码。

请参见下面的代码:

    public void OnGetEmpIdClick(Office.IRibbonControl control)
    {
        try
        {
            Office.IMsoContactCard card = control.Context as Office.IMsoContactCard;

            if (card != null)
            {
                MessageBox.Show(GetEmpId(card), "Employee Id", MessageBoxButtons.OK);
            }
            else
            {
                MessageBox.Show("Unable to access contact card");
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

    private string GetEmpId(Office.IMsoContactCard card)
    {
        if (card.AddressType == Office.MsoContactCardAddressType.msoContactCardAddressTypeOutlook)
        {
            Outlook.Application host = Globals.ThisAddIn.Application;
            Outlook.AddressEntry ae = host.Session.GetAddressEntryFromID(card.Address);

            if ((ae.AddressEntryUserType == Outlook.OlAddressEntryUserType.olExchangeUserAddressEntry || 
                ae.AddressEntryUserType == Outlook.OlAddressEntryUserType.olExchangeRemoteUserAddressEntry))
            {
                Outlook.ExchangeUser ex = ae.GetExchangeUser();
                return ex.BusinessTelephoneNumber;
            }
            else
            {
                throw new Exception("Valid address entry not found.");
            }
        }

        else
        {
            return card.Address;
        }
    }

但寻呼机号码属性不可用。请帮助我。

4

1 回答 1

1

我刚试过:

Outlook.ExchangeUser ex = ae.GetExchangeUser();
return ex.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3A21001F");

它对我有用。

有关其他邮件用户属性,请参阅https://msdn.microsoft.com/en-us/library/bb446002.aspx

于 2015-10-09T13:25:37.707 回答