Outlook アドインの開発は初めてです。メールがドラッグされたフォルダーの名前を出力する簡単なアプリケーションを作成していました。IE: 受信トレイから受信トレイのサブフォルダーへ。私が抱えている問題は、正しい MailItem.Parent.Name が返されることがありますが、ほとんどの場合、宛先ではなくソースフォルダーです。宛先の ItemAdd に対してイベントが発生する必要があるため、これがなぜなのかわかりません。
ここにいくつかのコードがあります:
public Microsoft.Office.Interop.Outlook.Application OutlookApplication;
public Inspectors OutlookInspectors;
public Inspector OutlookInspector;
public MailItem OutlookMailItem;
private MAPIFolder inboxFolder;
private MailItem msg;
private Folder fdr;
public void OnConnection(object application, Extensibility.ext_ConnectMode connectMode, object addInInst, ref System.Array custom)
{
OutlookApplication = application as Microsoft.Office.Interop.Outlook.Application;
OutlookInspectors = OutlookApplication.Inspectors;
OutlookInspectors.NewInspector += new Microsoft.Office.Interop.Outlook.InspectorsEvents_NewInspectorEventHandler(OutlookInspectors_NewInspector);
inboxFolder = this.OutlookApplication.Session.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
foreach (Folder f in inboxFolder.Folders)
{
f.Items.ItemAdd += new ItemsEvents_ItemAddEventHandler(InboxItems_ItemAdd);
}
}
void InboxItems_ItemAdd(object Item)
{
msg = Item as MailItem;
fdr = msg.Parent as Folder;
MessageBox.Show("Folder Name: " + fdr.Name);
}