0

I searched all over for this thing but no luck yet. I have an add-in (for outlook) which performs several operations on the Outlook Items(Appointment Item, task). I just want to override the event when you drag a file onto the body of item and it gets displayed on the body of the item. I just want that item to be attached (& store it at a dir of my choice). How do I link the event ?? I found one event though.

but in the example, there is a form always. I don't have a specific form as it's an add-in :(

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");

            }
        }
    }

I found the rest of the details but I am unable to find the event to override.

Please help. Thanks in advance.

for info : I already gone through these links: 1, 2, 3 .

EDIT:

My code of adding the appointment is :

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

I need some mechanism to attach the event listed above to the appointment item body when someone drops a file into the body. How do I do it?

Community
  • 1
  • 1
Aditya Peshave
  • 667
  • 9
  • 26
  • Maybe you can post the Outlook addin code you have as a point of reference? The code you posted (a standard drag drop handler) is not the issue here. You're trying to find out how to attach that to an Outlook addin. – Trevor Elliott Oct 30 '13 at 16:26
  • I am trying to override the the drag and drop event , that's it. is it possible?? I have the normal code of adding the appointment through the code. i will edit my post now. – Aditya Peshave Oct 30 '13 at 16:45

1 Answers1

0

There is no officially supported API to do that. I can only think of dropping down to the Windows API level: you can find the window handle of the editor control, then install your own drag/drop handler using RegisterDragDrop(). Not sure if you can do that in C#... It is definitely doable in C++ or Delphi.

Dmitry Streblechenko
  • 62,942
  • 4
  • 53
  • 78
  • ok, Thank you so much for the reply. I guess I have to try something different then, maybe attaching the file using standard file open dialog box. – Aditya Peshave Oct 30 '13 at 17:40