Outlookアドインを開発しています。その一部は、特定のフォルダーで予定を整理することです。要素が削除された場合にキャプチャしたい(この場合、「my」フォルダから移動すると削除されたと見なされます)。
記事https://stackoverflow.com/questions/10579240/how-to-capture-ac-sharp-outlook-addin-appointment-delete-eventと彼/彼女の解決策が大いに役立ったことがわかりましたが、私には大きな問題があります:イベントは、Outlookからフォルダオブジェクトを取得したときではなく、フォルダが作成されたその「セッション」でのみ発生します。
私のコードは次のようになります。
private Outlook.MAPIFolder _CalendarMAPIFolder = null;
private Outlook.MAPIFolderEvents_12_Event _CalendarFolder = null;
private Outlook.Items _CalendarItems = null;
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
Outlook.MAPIFolder calendarFolder =
this.Application.GetNamespace("mapi").GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);
// get my-Folder (if not found, create it)
try
{
_CalendarMAPIFolder = calendarFolder.Folders["my-Folder"];
}
catch
{
_CalendarMAPIFolder = calendarFolder.Folders.Add("my-Folder");
}
_CalendarItems = _CalendarMAPIFolder.Items;
_CalendarFolder = _CalendarMAPIFolder as Outlook.MAPIFolderEvents_12_Event;
if (_CalendarFolder == null)
{
MessageBox.Show("can not cast MAPIFolder to Folder");
}
_CalendarFolder.BeforeItemMove += new Outlook.MAPIFolderEvents_12_BeforeItemMoveEventHandler(Folder_BeforeItemMove);
Debug.Print("events registered");
}
public void Folder_BeforeItemMove(
Object Item,
Outlook.MAPIFolder MoveTo,
ref bool Cancel)
{
Outlook.AppointmentItem aitem = Item as Outlook.AppointmentItem;
string s = "";
if (aitem != null) s = aitem.Subject;
//Cancel = false;
MessageBox.Show("Test! " + s);
}
誰かが解決策を持っていますか?
ありがとうございました ;)
編集:私はまだ手がかりがありません:(((((((