<PackageReference Include="System.Drawing.Common" Version="10.0.0-rc.1.25451.107" />

IDragSourceHelper2

using System; using System.CodeDom.Compiler; using System.Drawing; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using Windows.Win32.Foundation; using Windows.Win32.System.Com; namespace Windows.Win32.UI.Shell { [Guid("83E07D0D-0C5F-4163-BF1A-60B274051E40")] [SupportedOSPlatform("windows6.0.6000")] [GeneratedCode("Microsoft.Windows.CsWin32", "0.3.151+58e949951d.RR")] internal struct IDragSourceHelper2 : IVTable<IDragSourceHelper2, IDragSourceHelper2.Vtbl>, IVTable, IComIID { internal struct Vtbl { internal IntPtr QueryInterface_1; internal IntPtr AddRef_2; internal IntPtr Release_3; internal IntPtr InitializeFromBitmap_4; internal IntPtr InitializeFromWindow_5; internal IntPtr SetFlags_6; } [ComImport] [Guid("83E07D0D-0C5F-4163-BF1A-60B274051E40")] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [SupportedOSPlatform("windows6.0.6000")] internal interface Interface : IDragSourceHelper.Interface { [PreserveSig] new unsafe HRESULT InitializeFromBitmap(SHDRAGIMAGE* pshdi, IDataObject* pDataObject); [PreserveSig] new unsafe HRESULT InitializeFromWindow(HWND hwnd, Point* ppt = default(Point*), IDataObject* pDataObject); [PreserveSig] HRESULT SetFlags(uint dwFlags); } private unsafe void** lpVtbl; internal static readonly Guid IID_Guid = new Guid(2212527373, 3167, 16739, 191, 26, 96, 178, 116, 5, 30, 64); [IsReadOnly] static unsafe ref Guid IComIID.Guid { [MethodImpl(MethodImplOptions.AggressiveInlining)] [return: IsReadOnly] get { return ref Unsafe.As<byte, Guid>(ref MemoryMarshal.GetReference(new ReadOnlySpan<byte>(&global::<PrivateImplementationDetails>.C5EDDBEB722C88AE17C3BE7F5BEB0EDE23AD72905A8E21B01CE3701D780DC737, 16))); } } internal unsafe HRESULT QueryInterface([In] [IsReadOnly] ref Guid riid, out void* ppvObject) { fixed (void** ppvObject2 = &ppvObject) { fixed (Guid* riid2 = &riid) { return QueryInterface(riid2, ppvObject2); } } } public unsafe HRESULT QueryInterface(Guid* riid, void** ppvObject) { IntPtr intPtr = (IntPtr)(*lpVtbl); return (HRESULT); } public unsafe uint AddRef() { IntPtr intPtr = (IntPtr)lpVtbl[1]; return (uint); } public unsafe uint Release() { IntPtr intPtr = (IntPtr)lpVtbl[2]; return (uint); } internal unsafe HRESULT InitializeFromBitmap([In] [IsReadOnly] ref SHDRAGIMAGE pshdi, IDataObject* pDataObject) { fixed (SHDRAGIMAGE* pshdi2 = &pshdi) { return InitializeFromBitmap(pshdi2, pDataObject); } } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT InitializeFromBitmap(IDragSourceHelper2* pThis, SHDRAGIMAGE* pshdi, IDataObject* pDataObject) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDragSourceHelper2, Interface>(pThis, out object); if (!result.Failed) return object.InitializeFromBitmap(pshdi, pDataObject); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT InitializeFromBitmap(SHDRAGIMAGE* pshdi, IDataObject* pDataObject) { IntPtr intPtr = (IntPtr)lpVtbl[3]; return (HRESULT); } internal unsafe HRESULT InitializeFromWindow(HWND hwnd, Point? ppt, IDataObject* pDataObject) { Point valueOrDefault = ppt.GetValueOrDefault(); return InitializeFromWindow(hwnd, (Point*)(long)(ppt.HasValue ? ((IntPtr)(&valueOrDefault)) : ((IntPtr)(void*)null)), pDataObject); } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT InitializeFromWindow(IDragSourceHelper2* pThis, HWND hwnd, Point* ppt = default(Point*), IDataObject* pDataObject) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDragSourceHelper2, Interface>(pThis, out object); if (!result.Failed) return object.InitializeFromWindow(hwnd, ppt, pDataObject); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT InitializeFromWindow(HWND hwnd, Point* ppt = default(Point*), IDataObject* pDataObject) { IntPtr intPtr = (IntPtr)lpVtbl[4]; return (HRESULT); } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT SetFlags(IDragSourceHelper2* pThis, uint dwFlags) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDragSourceHelper2, Interface>(pThis, out object); if (!result.Failed) return object.SetFlags(dwFlags); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT SetFlags(uint dwFlags) { IntPtr intPtr = (IntPtr)lpVtbl[5]; return (HRESULT); } internal unsafe HRESULT QueryInterface<[IsUnmanaged] T>(out T* ppv) where T : struct { Guid riid = typeof(T).GUID; void* ppvObject; HRESULT result = QueryInterface(ref riid, out ppvObject); if (result.Succeeded) ppv = (T*)ppvObject; else ppv = null; return result; } public unsafe static void PopulateVTable(Vtbl* vtable) { vtable->InitializeFromBitmap_4 = (IntPtr)(void*); vtable->InitializeFromWindow_5 = (IntPtr)(void*); vtable->SetFlags_6 = (IntPtr)(void*); } unsafe void IVTable<IDragSourceHelper2, Vtbl>.PopulateVTable(Vtbl* vtable) { this.PopulateVTable(vtable); } } }