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

IAdviseSink

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("0000010F-0000-0000-C000-000000000046")] [SupportedOSPlatform("windows5.0")] [GeneratedCode("Microsoft.Windows.CsWin32", "0.3.151+58e949951d.RR")] internal struct IAdviseSink : IVTable<IAdviseSink, IAdviseSink.Vtbl>, IVTable, IComIID { internal struct Vtbl { internal IntPtr QueryInterface_1; internal IntPtr AddRef_2; internal IntPtr Release_3; internal IntPtr OnDataChange_4; internal IntPtr OnViewChange_5; internal IntPtr OnRename_6; internal IntPtr OnSave_7; internal IntPtr OnClose_8; } [ComImport] [Guid("0000010F-0000-0000-C000-000000000046")] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [SupportedOSPlatform("windows5.0")] internal interface Interface { [PreserveSig] unsafe void OnDataChange(FORMATETC* pFormatetc, STGMEDIUM* pStgmed); [PreserveSig] void OnViewChange(uint dwAspect, int lindex); [PreserveSig] unsafe void OnRename(IMoniker* pmk); [PreserveSig] void OnSave(); [PreserveSig] void OnClose(); } private unsafe void** lpVtbl; internal static readonly Guid IID_Guid = new Guid(271, 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>.9F5A67D9E87AE580EF3BA64329B15CE339099C54B0A91CF7869E06B559F7CCC2, 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 void OnDataChange([In] [IsReadOnly] ref FORMATETC pFormatetc, [In] [IsReadOnly] ref STGMEDIUM pStgmed) { fixed (STGMEDIUM* pStgmed2 = &pStgmed) { fixed (FORMATETC* pFormatetc2 = &pFormatetc) { OnDataChange(pFormatetc2, pStgmed2); } } } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static void OnDataChange(IAdviseSink* pThis, FORMATETC* pFormatetc, STGMEDIUM* pStgmed) { try { ComHelpers.UnwrapCCW<IAdviseSink, Interface>(pThis, out Interface object).ThrowOnFailure((IntPtr)0); object.OnDataChange(pFormatetc, pStgmed); } catch (Exception exception) { Environment.FailFast("COM object threw an exception from a non-HRESULT returning method.", exception); throw; } } public unsafe void OnDataChange(FORMATETC* pFormatetc, STGMEDIUM* pStgmed) { IntPtr intPtr = (IntPtr)lpVtbl[3]; ; } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static void OnViewChange(IAdviseSink* pThis, uint dwAspect, int lindex) { try { ComHelpers.UnwrapCCW<IAdviseSink, Interface>(pThis, out Interface object).ThrowOnFailure((IntPtr)0); object.OnViewChange(dwAspect, lindex); } catch (Exception exception) { Environment.FailFast("COM object threw an exception from a non-HRESULT returning method.", exception); throw; } } public unsafe void OnViewChange(uint dwAspect, int lindex) { IntPtr intPtr = (IntPtr)lpVtbl[4]; ; } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static void OnRename(IAdviseSink* pThis, IMoniker* pmk) { try { ComHelpers.UnwrapCCW<IAdviseSink, Interface>(pThis, out Interface object).ThrowOnFailure((IntPtr)0); object.OnRename(pmk); } catch (Exception exception) { Environment.FailFast("COM object threw an exception from a non-HRESULT returning method.", exception); throw; } } public unsafe void OnRename(IMoniker* pmk) { IntPtr intPtr = (IntPtr)lpVtbl[5]; ; } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static void OnSave(IAdviseSink* pThis) { try { ComHelpers.UnwrapCCW<IAdviseSink, Interface>(pThis, out Interface object).ThrowOnFailure((IntPtr)0); object.OnSave(); } catch (Exception exception) { Environment.FailFast("COM object threw an exception from a non-HRESULT returning method.", exception); throw; } } public unsafe void OnSave() { IntPtr intPtr = (IntPtr)lpVtbl[6]; ; } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static void OnClose(IAdviseSink* pThis) { try { ComHelpers.UnwrapCCW<IAdviseSink, Interface>(pThis, out Interface object).ThrowOnFailure((IntPtr)0); object.OnClose(); } catch (Exception exception) { Environment.FailFast("COM object threw an exception from a non-HRESULT returning method.", exception); throw; } } public unsafe void OnClose() { IntPtr intPtr = (IntPtr)lpVtbl[7]; ; } 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->OnDataChange_4 = (IntPtr)(void*); vtable->OnViewChange_5 = (IntPtr)(void*); vtable->OnRename_6 = (IntPtr)(void*); vtable->OnSave_7 = (IntPtr)(void*); vtable->OnClose_8 = (IntPtr)(void*); } unsafe void IVTable<IAdviseSink, Vtbl>.PopulateVTable(Vtbl* vtable) { this.PopulateVTable(vtable); } } }