私の要件は、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();
必要な情報を得るために他にすべきことはありますか?
コード例は高く評価されます
ありがとうございました