如何获取outlook联系人的头像?

Mar*_*hke 5 .net c# mapi outlook interop

我正在尝试获取联系人的头像图像。

using Microsoft.Office.Interop.Outlook;

public sealed class OutlookAvatarFetcher
{
    private static void FetchAvatars()
    {
        var outlook = new Application();
        var folder = outlook.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderContacts);
        var items = folder.Items;

        for (var i = 0; i < items.Count; ++i)
        {
            var contact = items[i + 1] as ContactItem;
            if (contact == null)
                continue;


            if (contact.HasPicture)
            {
                // TODO store the picture somehow.
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但不幸的是我找不到图片访问器。

Gra*_*ICA 4

您可以使用attachments以下属性ContactItem

contact.Attachments["ContactPicture.jpg"]
Run Code Online (Sandbox Code Playgroud)

例如,如果您想将文件保存到磁盘,您可以执行以下操作:

contact.Attachments["ContactPicture.jpg"].SaveAsFile(@"{some_path}\ContactPicture.jpg")
Run Code Online (Sandbox Code Playgroud)