JACOB Java Com Bridge を介して Outlook からすべての連絡先を取得する Java アプリケーションを開発しています。Outlook には、標準フォルダ "Meine Kontakte" / "My Contacts" と関連するサブ フォルダ "Kontakte" / "Contacts" があります。すべてが正常に機能し、すべての連絡先を取得しています。しかし、「Test」などの別のサブフォルダーを作成すると、このフォルダー内の連絡先が Java アプリケーションに表示されません。デフォルトのフォルダの連絡先だけが取得されるようです...しかし、私はすべての連絡先が必要です。誰かが解決策を知っていますか?
コードは次のとおりです。
final int olFolderContacts = 10;
contact = new Vector<Contact>();
ActiveXComponent ol = new ActiveXComponent("Outlook.Application");
@SuppressWarnings("unused")
Dispatch dsp = new Dispatch();
Dispatch olo = ol.getObject();
Dispatch myNamespace = Dispatch.call(olo, "GetNamespace", "MAPI")
.toDispatch();
Dispatch myFolder = Dispatch.call(myNamespace, "GetDefaultFolder",
new Integer(olFolderContacts)).toDispatch();
Dispatch items = Dispatch.get(myFolder, "Items").toDispatch();
int count = Dispatch.call(items, "Count").toInt();
for (int i = 1; i <= count; i++) {
Dispatch item;
item = Dispatch.call(items, "Item", new Integer(i)).toDispatch();
String fullName = Dispatch.get(item, "Fullname").toString();
String birthday = Dispatch.get(item, "Birthday").toString();
System.out.print(fullName);
DateFormat dateFormat = new SimpleDateFormat(
"EEE MMM dd HH:mm:ss Z yyyy");
Calendar cal_current = Calendar.getInstance();
// Calendar birthday !!!
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(
"EEE MMM dd HH:mm:ss Z yyyy", Locale.ENGLISH);
try {
cal.setTime(sdf.parse(birthday));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
@SuppressWarnings("unused")
int monthCurrent = cal_current.get(Calendar.MONTH);
@SuppressWarnings("unused")
int month = cal.get(Calendar.MONTH);
....