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);
}
}
}