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

IDataObjectAsyncCapability

using System; using System.CodeDom.Compiler; 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("3D8B0590-F691-11D2-8EA9-006097DF5BD4")] [SupportedOSPlatform("windows8.0")] [GeneratedCode("Microsoft.Windows.CsWin32", "0.3.151+58e949951d.RR")] internal struct IDataObjectAsyncCapability : IVTable<IDataObjectAsyncCapability, IDataObjectAsyncCapability.Vtbl>, IVTable, IComIID { internal struct Vtbl { internal IntPtr QueryInterface_1; internal IntPtr AddRef_2; internal IntPtr Release_3; internal IntPtr SetAsyncMode_4; internal IntPtr GetAsyncMode_5; internal IntPtr StartOperation_6; internal IntPtr InOperation_7; internal IntPtr EndOperation_8; } [ComImport] [Guid("3D8B0590-F691-11D2-8EA9-006097DF5BD4")] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [SupportedOSPlatform("windows8.0")] internal interface Interface { [PreserveSig] HRESULT SetAsyncMode(BOOL fDoOpAsync); [PreserveSig] unsafe HRESULT GetAsyncMode(BOOL* pfIsOpAsync); [PreserveSig] unsafe HRESULT StartOperation(IBindCtx* pbcReserved = default(IBindCtx*)); [PreserveSig] unsafe HRESULT InOperation(BOOL* pfInAsyncOp); [PreserveSig] unsafe HRESULT EndOperation(HRESULT hResult, IBindCtx* pbcReserved, uint dwEffects); } private unsafe void** lpVtbl; internal static readonly Guid IID_Guid = new Guid(1032521104, 63121, 4562, 142, 169, 0, 96, 151, 223, 91, 212); [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>.0DF14A13295FE8E012F31F17660BDFB674EC8BFCD443078FCBB3E04A2AAE6ED7, 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); } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT SetAsyncMode(IDataObjectAsyncCapability* pThis, BOOL fDoOpAsync) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDataObjectAsyncCapability, Interface>(pThis, out object); if (!result.Failed) return object.SetAsyncMode(fDoOpAsync); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT SetAsyncMode(BOOL fDoOpAsync) { IntPtr intPtr = (IntPtr)lpVtbl[3]; return (HRESULT); } internal unsafe HRESULT GetAsyncMode(out BOOL pfIsOpAsync) { fixed (BOOL* pfIsOpAsync2 = &pfIsOpAsync) { return GetAsyncMode(pfIsOpAsync2); } } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT GetAsyncMode(IDataObjectAsyncCapability* pThis, BOOL* pfIsOpAsync) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDataObjectAsyncCapability, Interface>(pThis, out object); if (!result.Failed) return object.GetAsyncMode(pfIsOpAsync); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT GetAsyncMode(BOOL* pfIsOpAsync) { IntPtr intPtr = (IntPtr)lpVtbl[4]; return (HRESULT); } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT StartOperation(IDataObjectAsyncCapability* pThis, IBindCtx* pbcReserved = default(IBindCtx*)) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDataObjectAsyncCapability, Interface>(pThis, out object); if (!result.Failed) return object.StartOperation(pbcReserved); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT StartOperation(IBindCtx* pbcReserved = default(IBindCtx*)) { IntPtr intPtr = (IntPtr)lpVtbl[5]; return (HRESULT); } internal unsafe HRESULT InOperation(out BOOL pfInAsyncOp) { fixed (BOOL* pfInAsyncOp2 = &pfInAsyncOp) { return InOperation(pfInAsyncOp2); } } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT InOperation(IDataObjectAsyncCapability* pThis, BOOL* pfInAsyncOp) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDataObjectAsyncCapability, Interface>(pThis, out object); if (!result.Failed) return object.InOperation(pfInAsyncOp); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT InOperation(BOOL* pfInAsyncOp) { IntPtr intPtr = (IntPtr)lpVtbl[6]; return (HRESULT); } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT EndOperation(IDataObjectAsyncCapability* pThis, HRESULT hResult, IBindCtx* pbcReserved, uint dwEffects) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IDataObjectAsyncCapability, Interface>(pThis, out object); if (!result.Failed) return object.EndOperation(hResult, pbcReserved, dwEffects); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT EndOperation(HRESULT hResult, IBindCtx* pbcReserved, uint dwEffects) { IntPtr intPtr = (IntPtr)lpVtbl[7]; 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->SetAsyncMode_4 = (IntPtr)(void*); vtable->GetAsyncMode_5 = (IntPtr)(void*); vtable->StartOperation_6 = (IntPtr)(void*); vtable->InOperation_7 = (IntPtr)(void*); vtable->EndOperation_8 = (IntPtr)(void*); } unsafe void IVTable<IDataObjectAsyncCapability, Vtbl>.PopulateVTable(Vtbl* vtable) { this.PopulateVTable(vtable); } } }