0

私はジェイコブライブラリを使用しています。jacob ライブラリを使用し、このチュートリアルに従って、Outlook に連絡先を追加できます。ここで、ジェイコブを使用してその連絡先を削除および更新したいと考えています。ジェイコブを使用して Outlook の連絡先を削除する方法はありますか。

このコードを使用して、Outlook に連絡先を追加しています。ここでメールIDは一意のIDです。

        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");
4

1 に答える 1

1

JACOB は COM IDispatch 呼び出しの非常に薄いラッパーであるため、Outlook で特定のタスクを実行する方法を知りたい場合はOutlook オブジェクト モデルの公式ドキュメントが出発点となります。

連絡先を見つけて削除する特定のケースは、次の方法で実行されます

namespace = outlookApplication.GetNamespace("MAPI")
contactsFolder = namespace.GetDefaultFolder(olFolderContacts)
contact = contactsFolder.items.find( "[Email1Address] = 'mail@server.com' )

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

作業の後半は、これらの呼び出しを JACOB 語に翻訳することです。連絡先アイテムを見つけたと仮定すると、コードは次のようになります

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");
}
于 2013-06-28T10:54:01.813 に答える