private static int DragEnter(IntPtr thisPtr, IntPtr pDataObj, uint grfKeyState, Point pt, uint *pdwEffect)
            {
                Ole32.IDropTarget inst = ComInterfaceDispatch.GetInstance <Ole32.IDropTarget>((ComInterfaceDispatch *)thisPtr);
                var dataObject         = WinFormsComWrappers.Instance.GetOrCreateObjectForComInstance(pDataObj, CreateObjectFlags.Unwrap);

                return((int)inst.DragEnter(dataObject, grfKeyState, pt, ref *pdwEffect));
            }
 private static int DragEnter(IntPtr thisPtr, IntPtr pDataObj, uint grfKeyState, Point pt, uint *pdwEffect)
 {
     try
     {
         Ole32.IDropTarget instance = ComInterfaceDispatch.GetInstance <Ole32.IDropTarget>((ComInterfaceDispatch *)thisPtr);
         var dataObject             = WinFormsComWrappers.Instance.GetOrCreateObjectForComInstance(pDataObj, CreateObjectFlags.Unwrap);
         return((int)instance.DragEnter(dataObject, grfKeyState, pt, ref *pdwEffect));
     }
     catch (Exception ex)
     {
         Debug.WriteLine(ex);
         return(ex.HResult);
     }
 }