IRunningObjectTable
using System;
using System.CodeDom.Compiler;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.ComTypes;
using System.Runtime.Versioning;
using Windows.Win32.Foundation;
namespace Windows.Win32.System.Com
{
[Guid("00000010-0000-0000-C000-000000000046")]
[SupportedOSPlatform("windows5.0")]
[GeneratedCode("Microsoft.Windows.CsWin32", "0.3.151+58e949951d.RR")]
internal struct IRunningObjectTable : IVTable<IRunningObjectTable, IRunningObjectTable.Vtbl>, IVTable, IComIID
{
internal struct Vtbl
{
internal IntPtr QueryInterface_1;
internal IntPtr AddRef_2;
internal IntPtr Release_3;
internal IntPtr Register_4;
internal IntPtr Revoke_5;
internal IntPtr IsRunning_6;
internal IntPtr GetObject_7;
internal IntPtr NoteChangeTime_8;
internal IntPtr GetTimeOfLastChange_9;
internal IntPtr EnumRunning_10;
}
[ComImport]
[Guid("00000010-0000-0000-C000-000000000046")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[SupportedOSPlatform("windows5.0")]
internal interface Interface
{
[PreserveSig]
unsafe HRESULT Register(ROT_FLAGS grfFlags, IUnknown* punkObject, IMoniker* pmkObjectName, uint* pdwRegister);
[PreserveSig]
HRESULT Revoke(uint dwRegister);
[PreserveSig]
unsafe HRESULT IsRunning(IMoniker* pmkObjectName);
[PreserveSig]
unsafe HRESULT GetObject(IMoniker* pmkObjectName, IUnknown** ppunkObject);
[PreserveSig]
unsafe HRESULT NoteChangeTime(uint dwRegister, global::System.Runtime.InteropServices.ComTypes.FILETIME* pfiletime);
[PreserveSig]
unsafe HRESULT GetTimeOfLastChange(IMoniker* pmkObjectName, global::System.Runtime.InteropServices.ComTypes.FILETIME* pfiletime);
[PreserveSig]
unsafe HRESULT EnumRunning(IEnumMoniker** ppenumMoniker);
}
private unsafe void** lpVtbl;
internal static readonly Guid IID_Guid = new Guid(16, 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>.20236655D21C3FC1B73E43D010B8F27F58EA4DABA77E80BE366688E760D7DFE6, 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 Register(ROT_FLAGS grfFlags, IUnknown* punkObject, IMoniker* pmkObjectName, out uint pdwRegister)
{
fixed (uint* pdwRegister2 = &pdwRegister) {
return Register(grfFlags, punkObject, pmkObjectName, pdwRegister2);
}
}
[UnmanagedCallersOnly(CallConvs = new Type[] {
typeof(CallConvStdcall)
})]
private unsafe static HRESULT Register(IRunningObjectTable* pThis, ROT_FLAGS grfFlags, IUnknown* punkObject, IMoniker* pmkObjectName, uint* pdwRegister)
{
try {
Interface object;
HRESULT result = ComHelpers.UnwrapCCW<IRunningObjectTable, Interface>(pThis, out object);
if (!result.Failed)
return object.Register(grfFlags, punkObject, pmkObjectName, pdwRegister);
return result;
} catch (Exception ex) {
return (HRESULT)ex.HResult;
}
}
public unsafe HRESULT Register(ROT_FLAGS grfFlags, IUnknown* punkObject, IMoniker* pmkObjectName, uint* pdwRegister)
{
IntPtr intPtr = (IntPtr)lpVtbl[3];
return (HRESULT);
}
[UnmanagedCallersOnly(CallConvs = new Type[] {
typeof(CallConvStdcall)
})]
private unsafe static HRESULT Revoke(IRunningObjectTable* pThis, uint dwRegister)
{
try {
Interface object;
HRESULT result = ComHelpers.UnwrapCCW<IRunningObjectTable, Interface>(pThis, out object);
if (!result.Failed)
return object.Revoke(dwRegister);
return result;
} catch (Exception ex) {
return (HRESULT)ex.HResult;
}
}
public unsafe HRESULT Revoke(uint dwRegister)
{
IntPtr intPtr = (IntPtr)lpVtbl[4];
return (HRESULT);
}
[UnmanagedCallersOnly(CallConvs = new Type[] {
typeof(CallConvStdcall)
})]
private unsafe static HRESULT IsRunning(IRunningObjectTable* pThis, IMoniker* pmkObjectName)
{
try {
Interface object;
HRESULT result = ComHelpers.UnwrapCCW<IRunningObjectTable, Interface>(pThis, out object);
if (!result.Failed)
return object.IsRunning(pmkObjectName);
return result;
} catch (Exception ex) {
return (HRESULT)ex.HResult;
}
}
public unsafe HRESULT IsRunning(IMoniker* pmkObjectName)
{
IntPtr intPtr = (IntPtr)lpVtbl[5];
return (HRESULT);
}
[UnmanagedCallersOnly(CallConvs = new Type[] {
typeof(CallConvStdcall)
})]
private unsafe static HRESULT GetObject(IRunningObjectTable* pThis, IMoniker* pmkObjectName, IUnknown** ppunkObject)
{
try {
Interface object;
HRESULT result = ComHelpers.UnwrapCCW<IRunningObjectTable, Interface>(pThis, out object);
if (!result.Failed)
return object.GetObject(pmkObjectName, ppunkObject);
return result;
} catch (Exception ex) {
return (HRESULT)ex.HResult;
}
}
public unsafe HRESULT GetObject(IMoniker* pmkObjectName, IUnknown** ppunkObject)
{
IntPtr intPtr = (IntPtr)lpVtbl[6];
return (HRESULT);
}
internal unsafe HRESULT NoteChangeTime(uint dwRegister, [In] [IsReadOnly] ref global::System.Runtime.InteropServices.ComTypes.FILETIME pfiletime)
{
fixed (global::System.Runtime.InteropServices.ComTypes.FILETIME* pfiletime2 = &pfiletime) {
return NoteChangeTime(dwRegister, pfiletime2);
}
}
[UnmanagedCallersOnly(CallConvs = new Type[] {
typeof(CallConvStdcall)
})]
private unsafe static HRESULT NoteChangeTime(IRunningObjectTable* pThis, uint dwRegister, global::System.Runtime.InteropServices.ComTypes.FILETIME* pfiletime)
{
try {
Interface object;
HRESULT result = ComHelpers.UnwrapCCW<IRunningObjectTable, Interface>(pThis, out object);
if (!result.Failed)
return object.NoteChangeTime(dwRegister, pfiletime);
return result;
} catch (Exception ex) {
return (HRESULT)ex.HResult;
}
}
public unsafe HRESULT NoteChangeTime(uint dwRegister, global::System.Runtime.InteropServices.ComTypes.FILETIME* pfiletime)
{
IntPtr intPtr = (IntPtr)lpVtbl[7];
return (HRESULT);
}
internal unsafe HRESULT GetTimeOfLastChange(IMoniker* pmkObjectName, out global::System.Runtime.InteropServices.ComTypes.FILETIME pfiletime)
{
fixed (global::System.Runtime.InteropServices.ComTypes.FILETIME* pfiletime2 = &pfiletime) {
return GetTimeOfLastChange(pmkObjectName, pfiletime2);
}
}
[UnmanagedCallersOnly(CallConvs = new Type[] {
typeof(CallConvStdcall)
})]
private unsafe static HRESULT GetTimeOfLastChange(IRunningObjectTable* pThis, IMoniker* pmkObjectName, global::System.Runtime.InteropServices.ComTypes.FILETIME* pfiletime)
{
try {
Interface object;
HRESULT result = ComHelpers.UnwrapCCW<IRunningObjectTable, Interface>(pThis, out object);
if (!result.Failed)
return object.GetTimeOfLastChange(pmkObjectName, pfiletime);
return result;
} catch (Exception ex) {
return (HRESULT)ex.HResult;
}
}
public unsafe HRESULT GetTimeOfLastChange(IMoniker* pmkObjectName, global::System.Runtime.InteropServices.ComTypes.FILETIME* pfiletime)
{
IntPtr intPtr = (IntPtr)lpVtbl[8];
return (HRESULT);
}
[UnmanagedCallersOnly(CallConvs = new Type[] {
typeof(CallConvStdcall)
})]
private unsafe static HRESULT EnumRunning(IRunningObjectTable* pThis, IEnumMoniker** ppenumMoniker)
{
try {
Interface object;
HRESULT result = ComHelpers.UnwrapCCW<IRunningObjectTable, Interface>(pThis, out object);
if (!result.Failed)
return object.EnumRunning(ppenumMoniker);
return result;
} catch (Exception ex) {
return (HRESULT)ex.HResult;
}
}
public unsafe HRESULT EnumRunning(IEnumMoniker** ppenumMoniker)
{
IntPtr intPtr = (IntPtr)lpVtbl[9];
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->Register_4 = (IntPtr)(void*);
vtable->Revoke_5 = (IntPtr)(void*);
vtable->IsRunning_6 = (IntPtr)(void*);
vtable->GetObject_7 = (IntPtr)(void*);
vtable->NoteChangeTime_8 = (IntPtr)(void*);
vtable->GetTimeOfLastChange_9 = (IntPtr)(void*);
vtable->EnumRunning_10 = (IntPtr)(void*);
}
unsafe void IVTable<IRunningObjectTable, Vtbl>.PopulateVTable(Vtbl* vtable)
{
this.PopulateVTable(vtable);
}
}
}