C# Outlook项目c的拖放覆盖事件#

C# Outlook项目c的拖放覆盖事件#,c#,drag-and-drop,outlook,outlook-addin,C#,Drag And Drop,Outlook,Outlook Addin,我到处找这个东西,但还没找到。 我有一个外接程序(用于outlook),它对outlook项目(约会项目、任务)执行多个操作。 我只想在将文件拖到项目主体上并显示在项目主体上时覆盖该事件。我只希望附加该项目(将其存储在我选择的目录中(&S))。 如何链接事件?? 不过我发现了一件事 但在这个例子中,总是有一种形式。我没有特定的表单,因为它是外接程序:( 我找到了其余的详细信息,但找不到要覆盖的事件 请帮忙。 提前谢谢 有关信息: 我已经浏览了这些链接: 编辑: 我添加约会的代码是: public

我到处找这个东西,但还没找到。 我有一个外接程序(用于outlook),它对outlook项目(约会项目、任务)执行多个操作。 我只想在将文件拖到项目主体上并显示在项目主体上时覆盖该事件。我只希望附加该项目(将其存储在我选择的目录中(&S))。 如何链接事件?? 不过我发现了一件事

但在这个例子中,总是有一种形式。我没有特定的表单,因为它是外接程序:(

我找到了其余的详细信息,但找不到要覆盖的事件

请帮忙。 提前谢谢

有关信息: 我已经浏览了这些链接:

编辑:

我添加约会的代码是:

public bool getAppointments(IList<IAppointmentData> list)
        {
            Microsoft.Office.Interop.Outlook.Application outlookApp = new Microsoft.Office.Interop.Outlook.Application();
            Microsoft.Office.Interop.Outlook.Explorer expl =  outlookApp.ActiveExplorer();

            try
            {
                if (list.Count != 0)
                {
                    deleteExisting();
                    foreach (IAppointmentData appointmentData in list)
                    {
                        Microsoft.Office.Interop.Outlook._AppointmentItem appt = (Microsoft.Office.Interop.Outlook.AppointmentItem)
                            outlookApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olAppointmentItem);
                        appt = setMeetingDetails(appt, appointmentData);

                        appt.Recipients.ResolveAll();
                        appt.Save();
                    }
                }

            }
            catch (System.Exception e)
            {
                System.Windows.Forms.MessageBox.Show(e.ToString());
                return false;
            }

            return true;
        }
public bool getappointment(IList列表)
{
Microsoft.Office.Interop.Outlook.Application outlookApp=新的Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook.Explorer expl=outlookApp.ActiveExplorer();
尝试
{
如果(list.Count!=0)
{
删除现有的();
foreach(IAppointData任命列表中的数据)
{
Microsoft.Office.Interop.Outlook.\u AppointmentItem appt=(Microsoft.Office.Interop.Outlook.AppointmentItem)
outlookApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olAppointmentItem);
appt=设置会议详细信息(appt,任命数据);
appt.Recipients.ResolveAll();
appt.Save();
}
}
}
捕获(System.e例外)
{
System.Windows.Forms.MessageBox.Show(例如ToString());
返回false;
}
返回true;
}
我需要一些机制,当有人将文件放入约会项主体时,将上面列出的事件附加到该主体。
我该怎么做?

没有官方支持的API可以做到这一点。我只能考虑降低到Windows API级别:您可以找到编辑器控件的窗口句柄,然后使用RegisterDragDrop()安装您自己的拖放处理程序不确定你是否能在C++中做这件事…它在C++或Delphi中是可行的。< /P>你可以发布Outlook Addiin代码作为参考点吗?你发布的代码(标准拖放处理器)这不是问题所在。您正在尝试找出如何将其附加到Outlook addin。我正在尝试覆盖拖放事件,就是这样。是否可能?我有通过代码添加约会的正常代码。我现在将编辑我的帖子。好的,非常感谢您的回复。我想我必须尝试一些不同的方法,m可以使用标准的“文件打开”对话框附加文件。
public bool getAppointments(IList<IAppointmentData> list)
        {
            Microsoft.Office.Interop.Outlook.Application outlookApp = new Microsoft.Office.Interop.Outlook.Application();
            Microsoft.Office.Interop.Outlook.Explorer expl =  outlookApp.ActiveExplorer();

            try
            {
                if (list.Count != 0)
                {
                    deleteExisting();
                    foreach (IAppointmentData appointmentData in list)
                    {
                        Microsoft.Office.Interop.Outlook._AppointmentItem appt = (Microsoft.Office.Interop.Outlook.AppointmentItem)
                            outlookApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olAppointmentItem);
                        appt = setMeetingDetails(appt, appointmentData);

                        appt.Recipients.ResolveAll();
                        appt.Save();
                    }
                }

            }
            catch (System.Exception e)
            {
                System.Windows.Forms.MessageBox.Show(e.ToString());
                return false;
            }

            return true;
        }