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

时间:2013-10-30 16:13:57

标签: c# drag-and-drop outlook outlook-addin

我搜遍了这件事,但还没有运气。 我有一个加载项(用于outlook),它对Outlook项目(约会项目,任务)执行多项操作。 我只想在将文件拖到项目主体上时覆盖该事件,并将其显示在项目的主体上。我只想要附加该项目(并将其存储在我选择的目录中)。 我如何链接事件? 我发现了一件事。

但在示例中,始终有一个表单。我没有特定的表单,因为它是一个加载项:(

private void Body_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
    {
        // Ensure that the list item index is contained in the data. 
        if (e.Data.GetDataPresent(typeof(System.String)))
        {

            Object item = (object)e.Data.GetData(typeof(System.String));

            // Perform drag-and-drop, depending upon the effect. 
            if (e.Effect == DragDropEffects.Copy ||
                e.Effect == DragDropEffects.Move)
            {

                // Insert the item. 
                System.Windows.Forms.MessageBox.Show("there");

            }
        }
    }

我找到了其余的细节,但我无法找到要覆盖的事件。

请帮忙。 提前谢谢。

获取信息: 我已经浏览过这些链接:123

编辑:

我添加约会的代码是:

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;
        }

当有人将文件放入正文时,我需要一些机制将上面列出的事件附加到约会项目正文。 我该怎么做?

1 个答案:

答案 0 :(得分:0)

没有官方支持的API可以做到这一点。我只能想到下降到Windows API级别:您可以找到编辑器控件的窗口句柄,然后使用RegisterDragDrop()安装自己的拖放处理程序。不确定你是否可以在C#中做到这一点......它绝对可以在C ++或Delphi中使用。