From f8e8e6f545ef90a3a2a646b03c9dbf1e7b66b3ac Mon Sep 17 00:00:00 2001 From: dahall Date: Sun, 27 Dec 2020 17:31:40 -0700 Subject: [PATCH] Changed IDropTarget methods to use MouseButtonState param value instead of uint. Fixed dependencies. --- PInvoke/Ole/Ole32/OleIdl.cs | 6 +++--- Windows.Shell/ShellExtensions/ShellDropTarget.cs | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/PInvoke/Ole/Ole32/OleIdl.cs b/PInvoke/Ole/Ole32/OleIdl.cs index 0d6a06fe..6d3e8eb8 100644 --- a/PInvoke/Ole/Ole32/OleIdl.cs +++ b/PInvoke/Ole/Ole32/OleIdl.cs @@ -747,7 +747,7 @@ namespace Vanara.PInvoke // https://docs.microsoft.com/en-us/windows/desktop/api/oleidl/nf-oleidl-idroptarget-dragenter HRESULT DragEnter( IDataObject // *pDataObj, DWORD grfKeyState, POINTL pt, DWORD *pdwEffect ); [PreserveSig] - HRESULT DragEnter([In] IDataObject pDataObj, [In] uint grfKeyState, [In] Point pt, [In, Out] ref DROPEFFECT pdwEffect); + HRESULT DragEnter([In] IDataObject pDataObj, [In] MouseButtonState grfKeyState, [In] Point pt, [In, Out] ref DROPEFFECT pdwEffect); /// /// Provides target feedback to the user and communicates the drop's effect to the DoDragDrop function so it can communicate the @@ -853,7 +853,7 @@ namespace Vanara.PInvoke // https://docs.microsoft.com/en-us/windows/desktop/api/oleidl/nf-oleidl-idroptarget-dragover HRESULT DragOver( DWORD // grfKeyState, POINTL pt, DWORD *pdwEffect ); [PreserveSig] - HRESULT DragOver([In] uint grfKeyState, [In] Point pt, [In, Out] ref DROPEFFECT pdwEffect); + HRESULT DragOver([In] MouseButtonState grfKeyState, [In] Point pt, [In, Out] ref DROPEFFECT pdwEffect); /// Removes target feedback and releases the data object. /// @@ -956,7 +956,7 @@ namespace Vanara.PInvoke // https://docs.microsoft.com/en-us/windows/desktop/api/oleidl/nf-oleidl-idroptarget-drop HRESULT Drop( IDataObject *pDataObj, // DWORD grfKeyState, POINTL pt, DWORD *pdwEffect ); [PreserveSig] - HRESULT Drop([In] IDataObject pDataObj, [In] uint grfKeyState, [In] Point pt, [In, Out] ref DROPEFFECT pdwEffect); + HRESULT Drop([In] IDataObject pDataObj, [In] MouseButtonState grfKeyState, [In] Point pt, [In, Out] ref DROPEFFECT pdwEffect); } /// diff --git a/Windows.Shell/ShellExtensions/ShellDropTarget.cs b/Windows.Shell/ShellExtensions/ShellDropTarget.cs index 25c19513..0a922564 100644 --- a/Windows.Shell/ShellExtensions/ShellDropTarget.cs +++ b/Windows.Shell/ShellExtensions/ShellDropTarget.cs @@ -128,7 +128,7 @@ namespace Vanara.Windows.Shell public event DragEventHandler DragOver; /// - HRESULT IDropTarget.DragEnter(IDataObject pDataObj, uint grfKeyState, Point pt, ref DROPEFFECT pdwEffect) + HRESULT IDropTarget.DragEnter(IDataObject pDataObj, MouseButtonState grfKeyState, Point pt, ref DROPEFFECT pdwEffect) { System.Diagnostics.Debug.WriteLine($"IDropTarget.DragEnter: effect={pdwEffect}"); var drgevent = CreateDragEventArgs(pDataObj, grfKeyState, pt, pdwEffect); @@ -147,7 +147,7 @@ namespace Vanara.Windows.Shell } /// - HRESULT IDropTarget.DragOver(uint grfKeyState, Point pt, ref DROPEFFECT pdwEffect) + HRESULT IDropTarget.DragOver(MouseButtonState grfKeyState, Point pt, ref DROPEFFECT pdwEffect) { System.Diagnostics.Debug.WriteLine($"IDropTarget.DragOver: effect={pdwEffect}"); var drgevent = CreateDragEventArgs(null, grfKeyState, pt, pdwEffect); @@ -157,7 +157,7 @@ namespace Vanara.Windows.Shell } /// - HRESULT IDropTarget.Drop(IDataObject pDataObj, uint grfKeyState, Point pt, ref DROPEFFECT pdwEffect) + HRESULT IDropTarget.Drop(IDataObject pDataObj, MouseButtonState grfKeyState, Point pt, ref DROPEFFECT pdwEffect) { System.Diagnostics.Debug.WriteLine($"IDropTarget.Drop: effect={pdwEffect}"); var drgevent = CreateDragEventArgs(pDataObj, grfKeyState, pt, pdwEffect); @@ -167,7 +167,7 @@ namespace Vanara.Windows.Shell return HRESULT.S_OK; } - private DragEventArgs CreateDragEventArgs(IDataObject pDataObj, uint grfKeyState, Point pt, DROPEFFECT pdwEffect) + private DragEventArgs CreateDragEventArgs(IDataObject pDataObj, MouseButtonState grfKeyState, Point pt, DROPEFFECT pdwEffect) { var data = pDataObj == null ? lastDataObject : new DataObject(pDataObj); var drgevent = new DragEventArgs(data, (int)grfKeyState, pt.X, pt.Y, (DragDropEffects)pdwEffect, (DragDropEffects)lastEffect);