Мое требование - получить подробную информацию об элементах, которые перетаскиваются из Outlook 2007.
Я использовал Windows API для регистрации события перетаскивания в Outlook 2007 следующим образом... (public static extern int RegisterDragDrop(IntPtr hwnd, IOleDropTarget target);
) и использовал интерфейс IOleDropTarget
для получения информации при возникновении событий перетаскивания.
Вот что я сделал до сих пор
Интерфейс IOleDropTarget
[ComImport, Guid("00000122-0000-0000-C000-000000000046"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IOleDropTarget
{
[PreserveSig]
int OleDragEnter([In, MarshalAs(UnmanagedType.Interface)] object pDataObj, [In, MarshalAs(UnmanagedType.U4)] int grfKeyState, [In, MarshalAs(UnmanagedType.U8)] long pt, [In, Out] ref int pdwEffect);
[PreserveSig]
int OleDragOver([In, MarshalAs(UnmanagedType.U4)] int grfKeyState, [In, MarshalAs(UnmanagedType.U8)] long pt, [In, Out] ref int pdwEffect);
[PreserveSig]
int OleDragLeave();
[PreserveSig]
int OleDrop([In, MarshalAs(UnmanagedType.Interface)] object pDataObj, [In, MarshalAs(UnmanagedType.U4)] int grfKeyState, [In, MarshalAs(UnmanagedType.U8)] long pt, [In, Out] ref int pdwEffect);
}
В случае перетаскивания элемента из Outlook срабатывает следующий метод со всеми параметрами, переданными в метод.
int IOleDropTarget.OleDragEnter(object pDataObj, int grfKeyState, long pt, ref int pdwEffect)
{
retirn 0;
}
Можно ли получить информацию о перетаскиваемом элементе с помощью pDataObj
?
До сих пор я пытался получить информацию об этом объекте, который не дал мне информации о перетаскиваемом элементе.
Type myType = pDataObj.GetType();
Есть ли другие вещи, которые нужно сделать, чтобы получить информацию, которую я хочу?
Примеры кода будут оценены
Спасибо