Я создал код для импорта контакта из Outlook.Созданное приложение в .net framework с версией 4.0 на C #.
код выглядит следующим образом -
OutLook._Application outlookObj = new OutLook.Application();
outlookObj.ActiveExplorer();
OutLook.MAPIFolder contactsFolder = (OutLook.MAPIFolder)outlookObj.Session
.GetDefaultFolder(OutLook.OlDefaultFolders.olFolderContacts);
comboDelimiter.Properties.Items.Clear();
if (!comboDelimiter.Properties.Items.Contains("Default"))
{
comboDelimiter.SelectedText = "Default";
comboDelimiter.Properties.Items.Add("Default");
}
//VERIFYING THE CUSTOM FOLDER IN OUT LOOK .
foreach (OutLook.MAPIFolder subFolder in contactsFolder.Folders)
{
if (!comboDelimiter.Properties.Items.Contains(subFolder.Name))
{
comboDelimiter.Properties.Items.Add(subFolder.Name);
}
}
Эта функция используется для чтения контактов из определенной папки контакта outlook -
private DataSet GetContactsFromFolder(string folderName)
{
object missing = System.Reflection.Missing.Value;
DataSet ds = new DataSet();
//create instance of Outlook application and Outlook Contacts folder.
try
{
OutLook.MAPIFolder fldContacts = null;
OutLook._Application outlookObj = new OutLook.Application();
if (folderName == "Default")
{
fldContacts = (OutLook.MAPIFolder)outlookObj.Session
.GetDefaultFolder(OutLook.OlDefaultFolders.olFolderContacts);
}
else
{
OutLook.MAPIFolder contactsFolder = (OutLook.MAPIFolder)outlookObj.Session
.GetDefaultFolder(OutLook.OlDefaultFolders.olFolderContacts);
//VERIFYING THE CUSTOM FOLDER IN OUT LOOK .
foreach (OutLook.MAPIFolder subFolder in contactsFolder.Folders)
{
if (subFolder.Name == folderName)
{
fldContacts = subFolder;
break;
}
}
}
DataTable dt = new DataTable();
for (int i = 0; i < 12; i++)
{
dt.Columns.Add("Col" + i,Type.GetType ("System.String"));
}
foreach (Microsoft.Office.Interop.Outlook._ContactItem contactItem in fldContacts.Items)
{
{
DataRow dr = dt.NewRow();
dr[0] = Convert.ToString(contactItem.FirstName);
dr[1] = Convert.ToString(contactItem.LastName);
dr[2] = Convert.ToString(contactItem.MobileTelephoneNumber);
if (!string.IsNullOrEmpty(contactItem.Email1Address))
dr[3] = contactItem.Email1Address;
else
dr[3] = contactItem.Email2Address;
dr[4] = Convert.ToString(contactItem.HomeAddress);
dr[5] = Convert.ToString(contactItem.BusinessTelephoneNumber);
dr[6] = Convert.ToString(contactItem.HomeTelephoneNumber);
dr[7] = Convert.ToString(contactItem.CompanyName);
dr[8] = Convert.ToString(contactItem.Birthday);
dr[9] = Convert.ToString(contactItem.Anniversary);
dr[10] = Convert.ToString(contactItem.JobTitle);
dr[11] = Convert.ToString(contactItem.HomeFaxNumber);
dt.Rows.Add(dr);
}
}
ds.Tables.Add(dt);
}
catch (System.Exception ex)
{
Console.WriteLine(ex);
}
return ds;
}
Я добавил для этого dll, имеет значение Microsoft.Office.Interop.Outlook with version 9.2
Description
, равное Microsoft.Office 11.0 Object Library
Импортирует контакт из версии Outlook 2007, но
, когда я импортирую контакт из Outlook2010, то это не импортирует контакт.
Как решить эту проблему?