2013-06-28 1 views
0

Я использую библиотеку jacob. Используя библиотеку jacob и следуя инструкциям this, я могу добавить контакт в Outlook. Теперь я хочу удалить и обновить этот контакт с помощью jacob. Я хочу знать, есть ли способ удалить контакт Outlook с помощью jacob.Удалить и обновить контакт Outlook с помощью библиотеки jacob

Я использую этот код для добавления контакта в Outlook. здесь идентификатор электронной почты является уникальным идентификатором.

 ActiveXComponent axOutlook = new ActiveXComponent("Outlook.Application"); 
     Dispatch oOutlook = axOutlook.getObject(); 
     Dispatch createContact = Dispatch.call((Dispatch)oOutlook, "CreateItem", new Variant(2)).toDispatch(); 

     Dispatch.put(createContact,"LastName",cont.getLastName()); 
     Dispatch.put(createContact,"FirstName",cont.getFirstName()); 
     Dispatch.put(createContact,"Title",cont.getTitle()); 
     Dispatch.put(createContact,"Email1Address",cont.getPrimaryEmail()); 

     Dispatch.call(createContact, "Save"); 
+0

Я искал источник, чтобы найти ответ на ваш вопрос, но он выглядит очень плохо документированным. – JREN

+0

Мой вопрос плохо документирован ?? –

+0

Нет документации для библиотеки JACOB – JREN

ответ

1

JACOB очень тонкая оболочка вокруг COM IDispatch звонки, так что если вы хотите знать, как сделать любой конкретной задачи в Outlook, отправной точкой будет официальным Outlook Object Model documentation

Ваш частный случай, обнаружение и удаление контакта, осуществляются через

namespace = outlookApplication.GetNamespace("MAPI") 
contactsFolder = namespace.GetDefaultFolder(olFolderContacts) 
contact = contactsFolder.items.find("[Email1Address] = '[email protected]') 

if (contact != null) 
{ 
    contact.Delete 
} 

Вторая половина работы переводит эти вызовы Иаков-говорить. Предполагая, что вы нашли свой контактный элемент, код будет примерно

ActiveXComponent outlookApplication = new ActiveXComponent("Outlook.Application"); 
Dispatch namespace = outlookApplication.getProperty("Session").toDispatch(); 

Dispatch contactsFolder = Dispatch.call(namespace, "GetDefaultFolder", new Integer(10)).toDispatch(); 
Dispatch contactItems = Dispatch.get(contactsFolder, "items"); 
String filter = String.format("[Email1Address] = '%s'", cont.getPrimaryEmail()); 
Dispatch contact = Dispatch.call(contactItems, "find", filter); 

if (contact != null) 
{ 
    Dispatch.call(contactItem, "Delete"); 
} 
+0

Можете ли вы рассказать мне, как найти контакт из Outlook с помощью jacob ?? –

+0

Если вы продлеваете свой вопрос с помощью HOW (имя? Какое-то другое уникальное свойство? Вы сохранили идентификатор entry при добавлении контакта?), Вы хотите найти свой контакт, желательно с кодом OOM, я с удовольствием добавлю дополнительную информацию в этот ответ. –

+0

Я обновил вопрос –