アイテムが削除済みアイテムフォルダーに追加されたときに機能するOutlook用のC#プラグインに取り組んでいます。大まかに言えば、コードは次のようになります。メソッドを追加するとログベントが表示されますが、アイテムを削除しても、他のログイベントは発生しません。私は何が欠けていますか?
public void OnConnection(object application, Extensibility.ext_ConnectMode connectMode, object addInInst, ref System.Array custom)
{
try
{
Outlook._Application olApp = new Outlook.ApplicationClass();
Outlook._NameSpace olNS = olApp.GetNamespace("MAPI");
Outlook.MAPIFolder deletedFolder = olNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderDeletedItems);
deletedFolder.Items.ItemAdd += new Outlook.ItemsEvents_ItemAddEventHandler(DeletedItems_ItemAdd);
log("addDeletedItemEventHandler method added", LogLevel.Debug);
}
catch (Exception e)
{
log("Exception in addDeletedItemEventHandler: " + e.Message, LogLevel.Error);
}
}
private void DeletedItems_ItemAdd(object Item)
{
log("DeletedItems_ItemAdd - Fired", LogLevel.Debug);
}
ドミトリーの解決策は正しかった。この問題を解決しようとしている他の人のために:
私はクラスレベルで以下を定義しました:Outlook.Items oiDeletedFolderItems;
そして、OnConnectionメソッドで、次を追加/変更しました。oiDeletedFolderItems = deleteFolder.Items; oiDeletedFolderItems.ItemAdd + = new Outlook.ItemsEvents_ItemAddEventHandler(DeletedItems_ItemAdd);