1

Outlook への最初のプラグインを作成しています。コードhereに従って、次のコードをイベント ハンドラーに追加することになっています。

new Microsoft.Office.Interop
  .Outlook.InspectorsEvents_NewInspectorEventHandler(foo);

入力すると、構文が機能し (赤いアンダースコアなし)、コードがコンパイルされます。ただし、何らかの理由で、インテリセンスはその特定のオプションを提示しません。つまり、自分ですべて入力する必要があります。それで私は悲しくなった。

さらに悪いことに、プロジェクトを実行すると、リスナー イベントが発生しますmailItem、以下の行ではオブジェクトが発生しませんnull

Outlook.MailItem mailItem = inspector as Outlook.MailItem;
  1. のインテリセンスがないのはなぜ.Outlook.InspectorsEvents_NewInspectorEventHandler(foo);ですか?
  2. どうにかして有効にすることはできますか?
  3. 新しく作成されたメッセージ フレームにアクセスするにはどうすればよいですか?

私の賭けは、それが参照に関係していることでありハンドラー追加操作の前後の両方でフィールドがゼロに等しいInteropため、実際には機能しないと思われます。Countinspectors

null以下の行を実行すると、 のインスタンスではなく、のみが返されます。ただしMailItem、新しいメール ウィンドウが開きます (もちろん変更はありません)。入力パラメーターinspectorは とは異なりますがnull、as-'化はそれを無効にしているようです。

VS10/.NET4 を実行しています。

4

1 に答える 1

0

は、 Outlook アイテムInspectorを含むウィンドウを表します。ウィンドウに含まれるアイテムにアクセスするには、次を使用する必要があります。Inspector.CurrentItem

Outlook.MailItem mailItem = inspector.CurrentItem as Outlook.MailItem;

インテリセンスの問題については、次の using ステートメントを試してください。

using Outlook = Microsoft.Office.Interop.Outlook;
inspectors.NewInspector += new Outlook.InspectorsEvents_NewInspectorEventHandler(foo);
于 2012-09-06T17:18:46.430 に答える