1

2 つの部分を持つアプリケーションがあり、両方が Outlook アイテムの同じフィールドにアクセスできるようにしたいと考えています。フィールドとは、アイテムに格納できる任意のタイプのキー値タイプのデータを意味します。明らかに複数の種類があるように見えるからです。したがって、アプリケーションの 2 つの部分は次のとおりです。

  • MS が提供する公式 EWS ライブラリを使用する Java アプリケーション
  • VBScript を使用した Outlook フォーム

Java アプリから Outlook アイテムにアクセスでき、いわゆる拡張プロパティを保存および取得することもできます。ただし、同じ API を介して保存されたもののみ。私の知る限り、このコードは C# でも非常によく似ています。

ExtendedPropertyCollection epc = appointment.getExtendedProperties();
for (ExtendedProperty ep : epc) {
    // these do not print anything, epc.getCount() returns 0
    System.out.println(" extendedpropC: " + ep.getClass());
    System.out.println(" extendedpropV: " + ep.getValue());
}

Outlook フォームでは、ここで説明されている方法でテキスト ボックスをフィールドにマッピングすることで、テキスト ボックスの値をフィールドに格納できます。そのため、アイテムを保存して再度開くと、カスタム テキスト ボックスにフィールドの値が入力されます。しかし、EWS を介してこれらの値にアクセスしようとすると、それらの値が存在しないだけであり、その逆も同様です。

複数の API/言語のこれらの拡張プロパティ用に複数の「スロット」がありますか?

または、質問を広げるために、キー値型のデータを Outlook アイテムに使用するメソッド/API は何ですか? Java から何らかの方法でアクセスできる必要がありますか?

4

1 に答える 1

1

AppointmentItem.PropertyAccessor.GetProperty を使用して、任意の MAPI プロパティにアクセスできます。

プロパティとその DASL 名 (GetProperty を呼び出すときに使用する必要があります) をOutlookSpyで確認できます。予定を選択し、[IMessage] ボタンをクリックして、問題のプロパティを選択し、DASL 編集ボックスを確認します。

于 2013-10-07T17:00:16.860 に答える