Microsoft Outlook アドイン (Visual Studio 2012、C#、COM アドイン、VSTO なし、Outlook 2010/2013/2016) を作成しています。ここで、1) ユーザーは、マップする必要があるさまざまなフィールドを作成および読み取ることができる必要があります。 /メッセージが Microsoft Exchange を出入りするときの MIME ヘッダーから、および 2) フィールドは、Outlook ビューの列として、検索式などで使用されるネイティブの Outlook フィールドとして使用できる必要があります。
1) を取得するために、アドインは PS_INTERNET_HEADERS 名前空間の (MAPI) フィールドを読み書きします。アドインが最初に読み込まれると、Exchange が受信メッセージの MIME ヘッダーと MAPI プロパティ間のマッピングを強制されるようにするダミーの隠しメッセージが作成されます (名前付きプロパティ、X ヘッダー、およびユーザーで説明されている問題に対処します) 。 . それはうまくいきます。
2) を取得するために、次のようなエントリを含む昔ながらの Outlook フォーム構成ファイル (フォーム構成ファイルの作成) を作成しました。
[Property.MMHSFoo]
Type=31
NmidPropset={00020386-0000-0000-C000-000000000046}
NmidString=MMHS-Foo
DisplayName=Foo
次に、Outlook Redemption を使用して、アドインの読み込み時にフォームを登録します。ユーザーはフィールド Foo を他の Outlook フィールドとして使用できるようになりました。
さて、私の問題は、Outlook フォーム デザイナーを使用してフォーム領域を作成するときに、フィールド Foo を追加しようとすると、「操作に失敗しました」というエラーが表示されることです。NmidPropset 値を PS_INTERNET_HEADERS (00020386-0000-0000-C000-000000000046) から PS_PUBLIC_STRINGS (00020329-0000-0000-C000-000000000046) に変更すると、フィールド Foo を追加できますが、1) は機能しません。
したがって、私の質問は次のとおりです。要件 1) と 2) の両方が満たされるように、名前空間 PS_INTERNET_HEADERS から Outlook フォーム領域にフィールドを追加するにはどうすればよいですか?