<PackageReference Include="System.Drawing.Common" Version="10.0.0-preview.1.25080.3" />

IDataObject

using System; using System.CodeDom.Compiler; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using Windows.Win32.Foundation; namespace Windows.Win32.System.Com { [Guid("0000010E-0000-0000-C000-000000000046")] [SupportedOSPlatform("windows5.0")] [GeneratedCode("Microsoft.Windows.CsWin32", "0.3.151+58e949951d.RR")] internal struct IDataObject : IVTable<IDataObject, IDataObject.Vtbl>, IVTable, IComIID { internal struct Vtbl { internal IntPtr QueryInterface_1; internal IntPtr AddRef_2; internal IntPtr Release_3; internal IntPtr GetData_4; internal IntPtr GetDataHere_5; internal IntPtr QueryGetData_6; internal IntPtr GetCanonicalFormatEtc_7; internal IntPtr SetData_8; internal IntPtr EnumFormatEtc_9; internal IntPtr DAdvise_10; internal IntPtr DUnadvise_11; internal IntPtr EnumDAdvise_12; } [ComImport] [Guid("0000010E-0000-0000-C000-000000000046")] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [SupportedOSPlatform("windows5.0")] internal interface Interface { [PreserveSig] unsafe HRESULT GetData(FORMATETC* pformatetcIn, STGMEDIUM* pmedium); [PreserveSig] unsafe HRESULT GetDataHere(FORMATETC* pformatetc, STGMEDIUM* pmedium); [PreserveSig] unsafe HRESULT QueryGetData(FORMATETC* pformatetc); [PreserveSig] unsafe HRESULT GetCanonicalFormatEtc(FORMATETC* pformatectIn, FORMATETC* pformatetcOut); [PreserveSig] unsafe HRESULT SetData(FORMATETC* pformatetc, STGMEDIUM* pmedium, BOOL fRelease); [PreserveSig] unsafe HRESULT EnumFormatEtc(uint dwDirection, IEnumFORMATETC** ppenumFormatEtc); [PreserveSig] unsafe HRESULT DAdvise(FORMATETC* pformatetc, uint advf, IAdviseSink* pAdvSink, uint* pdwConnection); [PreserveSig] HRESULT DUnadvise(uint dwConnection); [PreserveSig] unsafe HRESULT EnumDAdvise(IEnumSTATDATA** ppenumAdvise); } private unsafe void** lpVtbl; internal static readonly Guid IID_Guid = new Guid(270, 0, 0, 192, 0, 0, 0, 0, 0, 0, 70); [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>.7ECF84A066EF2D56FCAAEEFF0FA0324431695933B3A53FE018FC9E9D2322C877, 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 GetData([In] [IsReadOnly] ref FORMATETC pformatetcIn, out STGMEDIUM pmedium) { fixed (STGMEDIUM* pmedium2 = &pmedium) { fixed (FORMATETC* pformatetcIn2 = &pformatetcIn) { return GetData(pformatetcIn2, pmedium2); } } } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT GetData(IDataObject* pThis, FORMATETC* pformatetcIn, STGMEDIUM* pmedium) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDataObject, Interface>(pThis, out object); if (!result.Failed) return object.GetData(pformatetcIn, pmedium); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT GetData(FORMATETC* pformatetcIn, STGMEDIUM* pmedium) { IntPtr intPtr = (IntPtr)lpVtbl[3]; return (HRESULT); } internal unsafe HRESULT GetDataHere([In] [IsReadOnly] ref FORMATETC pformatetc, ref STGMEDIUM pmedium) { fixed (STGMEDIUM* pmedium2 = &pmedium) { fixed (FORMATETC* pformatetc2 = &pformatetc) { return GetDataHere(pformatetc2, pmedium2); } } } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT GetDataHere(IDataObject* pThis, FORMATETC* pformatetc, STGMEDIUM* pmedium) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDataObject, Interface>(pThis, out object); if (!result.Failed) return object.GetDataHere(pformatetc, pmedium); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT GetDataHere(FORMATETC* pformatetc, STGMEDIUM* pmedium) { IntPtr intPtr = (IntPtr)lpVtbl[4]; return (HRESULT); } internal unsafe HRESULT QueryGetData([In] [IsReadOnly] ref FORMATETC pformatetc) { fixed (FORMATETC* pformatetc2 = &pformatetc) { return QueryGetData(pformatetc2); } } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT QueryGetData(IDataObject* pThis, FORMATETC* pformatetc) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDataObject, Interface>(pThis, out object); if (!result.Failed) return object.QueryGetData(pformatetc); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT QueryGetData(FORMATETC* pformatetc) { IntPtr intPtr = (IntPtr)lpVtbl[5]; return (HRESULT); } internal unsafe HRESULT GetCanonicalFormatEtc([In] [IsReadOnly] ref FORMATETC pformatectIn, out FORMATETC pformatetcOut) { fixed (FORMATETC* pformatetcOut2 = &pformatetcOut) { fixed (FORMATETC* pformatectIn2 = &pformatectIn) { return GetCanonicalFormatEtc(pformatectIn2, pformatetcOut2); } } } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT GetCanonicalFormatEtc(IDataObject* pThis, FORMATETC* pformatectIn, FORMATETC* pformatetcOut) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDataObject, Interface>(pThis, out object); if (!result.Failed) return object.GetCanonicalFormatEtc(pformatectIn, pformatetcOut); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT GetCanonicalFormatEtc(FORMATETC* pformatectIn, FORMATETC* pformatetcOut) { IntPtr intPtr = (IntPtr)lpVtbl[6]; return (HRESULT); } internal unsafe HRESULT SetData([In] [IsReadOnly] ref FORMATETC pformatetc, [In] [IsReadOnly] ref STGMEDIUM pmedium, BOOL fRelease) { fixed (STGMEDIUM* pmedium2 = &pmedium) { fixed (FORMATETC* pformatetc2 = &pformatetc) { return SetData(pformatetc2, pmedium2, fRelease); } } } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT SetData(IDataObject* pThis, FORMATETC* pformatetc, STGMEDIUM* pmedium, BOOL fRelease) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDataObject, Interface>(pThis, out object); if (!result.Failed) return object.SetData(pformatetc, pmedium, fRelease); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT SetData(FORMATETC* pformatetc, STGMEDIUM* pmedium, BOOL fRelease) { IntPtr intPtr = (IntPtr)lpVtbl[7]; return (HRESULT); } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT EnumFormatEtc(IDataObject* pThis, uint dwDirection, IEnumFORMATETC** ppenumFormatEtc) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDataObject, Interface>(pThis, out object); if (!result.Failed) return object.EnumFormatEtc(dwDirection, ppenumFormatEtc); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT EnumFormatEtc(uint dwDirection, IEnumFORMATETC** ppenumFormatEtc) { IntPtr intPtr = (IntPtr)lpVtbl[8]; return (HRESULT); } internal unsafe HRESULT DAdvise([In] [IsReadOnly] ref FORMATETC pformatetc, uint advf, IAdviseSink* pAdvSink, out uint pdwConnection) { fixed (uint* pdwConnection2 = &pdwConnection) { fixed (FORMATETC* pformatetc2 = &pformatetc) { return DAdvise(pformatetc2, advf, pAdvSink, pdwConnection2); } } } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT DAdvise(IDataObject* pThis, FORMATETC* pformatetc, uint advf, IAdviseSink* pAdvSink, uint* pdwConnection) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDataObject, Interface>(pThis, out object); if (!result.Failed) return object.DAdvise(pformatetc, advf, pAdvSink, pdwConnection); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT DAdvise(FORMATETC* pformatetc, uint advf, IAdviseSink* pAdvSink, uint* pdwConnection) { IntPtr intPtr = (IntPtr)lpVtbl[9]; return (HRESULT); } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT DUnadvise(IDataObject* pThis, uint dwConnection) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDataObject, Interface>(pThis, out object); if (!result.Failed) return object.DUnadvise(dwConnection); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT DUnadvise(uint dwConnection) { IntPtr intPtr = (IntPtr)lpVtbl[10]; return (HRESULT); } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT EnumDAdvise(IDataObject* pThis, IEnumSTATDATA** ppenumAdvise) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDataObject, Interface>(pThis, out object); if (!result.Failed) return object.EnumDAdvise(ppenumAdvise); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT EnumDAdvise(IEnumSTATDATA** ppenumAdvise) { IntPtr intPtr = (IntPtr)lpVtbl[11]; 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->GetData_4 = (IntPtr)(void*); vtable->GetDataHere_5 = (IntPtr)(void*); vtable->QueryGetData_6 = (IntPtr)(void*); vtable->GetCanonicalFormatEtc_7 = (IntPtr)(void*); vtable->SetData_8 = (IntPtr)(void*); vtable->EnumFormatEtc_9 = (IntPtr)(void*); vtable->DAdvise_10 = (IntPtr)(void*); vtable->DUnadvise_11 = (IntPtr)(void*); vtable->EnumDAdvise_12 = (IntPtr)(void*); } unsafe void IVTable<IDataObject, Vtbl>.PopulateVTable(Vtbl* vtable) { this.PopulateVTable(vtable); } } }