diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IBindCtx.cs b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IBindCtx.cs index 3dd1f7c8..2100447b 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IBindCtx.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IBindCtx.cs @@ -1,11 +1,8 @@ // Copyright (c) DGP Studio. All rights reserved. // Licensed under the MIT license. - -// Copyright (c) DGP Studio. All rights reserved. -// Licensed under the MIT license. - using Snap.Hutao.Win32.Foundation; +using System.Runtime.CompilerServices; namespace Snap.Hutao.Win32.System.Com; @@ -15,6 +12,28 @@ internal unsafe struct IBindCtx private Vftbl* thisPtr; + public unsafe HRESULT QueryInterface(ref readonly Guid riid, out TInterface* pvObject) + where TInterface : unmanaged + { + fixed (Guid* riid2 = &riid) + { + fixed (TInterface** ppvObject = &pvObject) + { + return thisPtr->IUnknownVftbl.QueryInterface((IUnknown*)Unsafe.AsPointer(ref this), riid2, (void**)ppvObject); + } + } + } + + public uint AddRef() + { + return thisPtr->IUnknownVftbl.AddRef((IUnknown*)Unsafe.AsPointer(ref this)); + } + + public uint Release() + { + return thisPtr->IUnknownVftbl.Release((IUnknown*)Unsafe.AsPointer(ref this)); + } + internal readonly struct Vftbl { internal readonly IUnknown.Vftbl IUnknownVftbl; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IEnumMoniker.cs b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IEnumMoniker.cs index 897e09b7..89a59bd4 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IEnumMoniker.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IEnumMoniker.cs @@ -1,11 +1,8 @@ // Copyright (c) DGP Studio. All rights reserved. // Licensed under the MIT license. - -// Copyright (c) DGP Studio. All rights reserved. -// Licensed under the MIT license. - using Snap.Hutao.Win32.Foundation; +using System.Runtime.CompilerServices; namespace Snap.Hutao.Win32.System.Com; @@ -15,6 +12,28 @@ internal unsafe struct IEnumMoniker private Vftbl* thisPtr; + public unsafe HRESULT QueryInterface(ref readonly Guid riid, out TInterface* pvObject) + where TInterface : unmanaged + { + fixed (Guid* riid2 = &riid) + { + fixed (TInterface** ppvObject = &pvObject) + { + return thisPtr->IUnknownVftbl.QueryInterface((IUnknown*)Unsafe.AsPointer(ref this), riid2, (void**)ppvObject); + } + } + } + + public uint AddRef() + { + return thisPtr->IUnknownVftbl.AddRef((IUnknown*)Unsafe.AsPointer(ref this)); + } + + public uint Release() + { + return thisPtr->IUnknownVftbl.Release((IUnknown*)Unsafe.AsPointer(ref this)); + } + internal readonly struct Vftbl { internal readonly IUnknown.Vftbl IUnknownVftbl; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IEnumString.cs b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IEnumString.cs index 95b90bb4..d80669b0 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IEnumString.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IEnumString.cs @@ -1,11 +1,8 @@ // Copyright (c) DGP Studio. All rights reserved. // Licensed under the MIT license. - -// Copyright (c) DGP Studio. All rights reserved. -// Licensed under the MIT license. - using Snap.Hutao.Win32.Foundation; +using System.Runtime.CompilerServices; namespace Snap.Hutao.Win32.System.Com; @@ -15,6 +12,28 @@ internal unsafe struct IEnumString private Vftbl* thisPtr; + public unsafe HRESULT QueryInterface(ref readonly Guid riid, out TInterface* pvObject) + where TInterface : unmanaged + { + fixed (Guid* riid2 = &riid) + { + fixed (TInterface** ppvObject = &pvObject) + { + return thisPtr->IUnknownVftbl.QueryInterface((IUnknown*)Unsafe.AsPointer(ref this), riid2, (void**)ppvObject); + } + } + } + + public uint AddRef() + { + return thisPtr->IUnknownVftbl.AddRef((IUnknown*)Unsafe.AsPointer(ref this)); + } + + public uint Release() + { + return thisPtr->IUnknownVftbl.Release((IUnknown*)Unsafe.AsPointer(ref this)); + } + internal readonly struct Vftbl { internal readonly IUnknown.Vftbl IUnknownVftbl; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IMoniker.cs b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IMoniker.cs index 7efb1a8a..99637283 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IMoniker.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IMoniker.cs @@ -2,6 +2,7 @@ // Licensed under the MIT license. using Snap.Hutao.Win32.Foundation; +using System.Runtime.CompilerServices; namespace Snap.Hutao.Win32.System.Com; @@ -11,6 +12,28 @@ internal unsafe struct IMoniker private Vftbl* thisPtr; + public unsafe HRESULT QueryInterface(ref readonly Guid riid, out TInterface* pvObject) + where TInterface : unmanaged + { + fixed (Guid* riid2 = &riid) + { + fixed (TInterface** ppvObject = &pvObject) + { + return thisPtr->IPersistStreamVftbl.IPersistVftbl.IUnknownVftbl.QueryInterface((IUnknown*)Unsafe.AsPointer(ref this), riid2, (void**)ppvObject); + } + } + } + + public uint AddRef() + { + return thisPtr->IPersistStreamVftbl.IPersistVftbl.IUnknownVftbl.AddRef((IUnknown*)Unsafe.AsPointer(ref this)); + } + + public uint Release() + { + return thisPtr->IPersistStreamVftbl.IPersistVftbl.IUnknownVftbl.Release((IUnknown*)Unsafe.AsPointer(ref this)); + } + internal readonly struct Vftbl { internal readonly IPersistStream.Vftbl IPersistStreamVftbl; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IPersist.cs b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IPersist.cs index 55101839..5075fcb8 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IPersist.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IPersist.cs @@ -1,11 +1,8 @@ // Copyright (c) DGP Studio. All rights reserved. // Licensed under the MIT license. - -// Copyright (c) DGP Studio. All rights reserved. -// Licensed under the MIT license. - using Snap.Hutao.Win32.Foundation; +using System.Runtime.CompilerServices; namespace Snap.Hutao.Win32.System.Com; @@ -15,6 +12,28 @@ internal unsafe struct IPersist private Vftbl* thisPtr; + public unsafe HRESULT QueryInterface(ref readonly Guid riid, out TInterface* pvObject) + where TInterface : unmanaged + { + fixed (Guid* riid2 = &riid) + { + fixed (TInterface** ppvObject = &pvObject) + { + return thisPtr->IUnknownVftbl.QueryInterface((IUnknown*)Unsafe.AsPointer(ref this), riid2, (void**)ppvObject); + } + } + } + + public uint AddRef() + { + return thisPtr->IUnknownVftbl.AddRef((IUnknown*)Unsafe.AsPointer(ref this)); + } + + public uint Release() + { + return thisPtr->IUnknownVftbl.Release((IUnknown*)Unsafe.AsPointer(ref this)); + } + internal unsafe readonly struct Vftbl { internal readonly IUnknown.Vftbl IUnknownVftbl; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IPersistStream.cs b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IPersistStream.cs index ea7a43a1..d9f77876 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IPersistStream.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IPersistStream.cs @@ -1,11 +1,8 @@ // Copyright (c) DGP Studio. All rights reserved. // Licensed under the MIT license. - -// Copyright (c) DGP Studio. All rights reserved. -// Licensed under the MIT license. - using Snap.Hutao.Win32.Foundation; +using System.Runtime.CompilerServices; namespace Snap.Hutao.Win32.System.Com; @@ -15,6 +12,28 @@ internal unsafe struct IPersistStream private Vftbl* thisPtr; + public unsafe HRESULT QueryInterface(ref readonly Guid riid, out TInterface* pvObject) + where TInterface : unmanaged + { + fixed (Guid* riid2 = &riid) + { + fixed (TInterface** ppvObject = &pvObject) + { + return thisPtr->IPersistVftbl.IUnknownVftbl.QueryInterface((IUnknown*)Unsafe.AsPointer(ref this), riid2, (void**)ppvObject); + } + } + } + + public uint AddRef() + { + return thisPtr->IPersistVftbl.IUnknownVftbl.AddRef((IUnknown*)Unsafe.AsPointer(ref this)); + } + + public uint Release() + { + return thisPtr->IPersistVftbl.IUnknownVftbl.Release((IUnknown*)Unsafe.AsPointer(ref this)); + } + internal readonly struct Vftbl { internal readonly IPersist.Vftbl IPersistVftbl; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IRunningObjectTable.cs b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IRunningObjectTable.cs index a2dcdb24..c3173c54 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IRunningObjectTable.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IRunningObjectTable.cs @@ -1,11 +1,8 @@ // Copyright (c) DGP Studio. All rights reserved. // Licensed under the MIT license. - -// Copyright (c) DGP Studio. All rights reserved. -// Licensed under the MIT license. - using Snap.Hutao.Win32.Foundation; +using System.Runtime.CompilerServices; namespace Snap.Hutao.Win32.System.Com; @@ -15,6 +12,28 @@ internal unsafe struct IRunningObjectTable private Vftbl* thisPtr; + public unsafe HRESULT QueryInterface(ref readonly Guid riid, out TInterface* pvObject) + where TInterface : unmanaged + { + fixed (Guid* riid2 = &riid) + { + fixed (TInterface** ppvObject = &pvObject) + { + return thisPtr->IUnknownVftbl.QueryInterface((IUnknown*)Unsafe.AsPointer(ref this), riid2, (void**)ppvObject); + } + } + } + + public uint AddRef() + { + return thisPtr->IUnknownVftbl.AddRef((IUnknown*)Unsafe.AsPointer(ref this)); + } + + public uint Release() + { + return thisPtr->IUnknownVftbl.Release((IUnknown*)Unsafe.AsPointer(ref this)); + } + internal readonly struct Vftbl { internal readonly IUnknown.Vftbl IUnknownVftbl; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/ISequentialStream.cs b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/ISequentialStream.cs index 344de825..aeb2dac9 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/ISequentialStream.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/ISequentialStream.cs @@ -1,11 +1,8 @@ // Copyright (c) DGP Studio. All rights reserved. // Licensed under the MIT license. - -// Copyright (c) DGP Studio. All rights reserved. -// Licensed under the MIT license. - using Snap.Hutao.Win32.Foundation; +using System.Runtime.CompilerServices; namespace Snap.Hutao.Win32.System.Com; @@ -15,6 +12,28 @@ internal unsafe struct ISequentialStream private Vftbl* thisPtr; + public unsafe HRESULT QueryInterface(ref readonly Guid riid, out TInterface* pvObject) + where TInterface : unmanaged + { + fixed (Guid* riid2 = &riid) + { + fixed (TInterface** ppvObject = &pvObject) + { + return thisPtr->IUnknownVftbl.QueryInterface((IUnknown*)Unsafe.AsPointer(ref this), riid2, (void**)ppvObject); + } + } + } + + public uint AddRef() + { + return thisPtr->IUnknownVftbl.AddRef((IUnknown*)Unsafe.AsPointer(ref this)); + } + + public uint Release() + { + return thisPtr->IUnknownVftbl.Release((IUnknown*)Unsafe.AsPointer(ref this)); + } + internal readonly struct Vftbl { internal readonly IUnknown.Vftbl IUnknownVftbl; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IStream.cs b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IStream.cs index 5662b608..58975ddc 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IStream.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/System/Com/IStream.cs @@ -1,11 +1,8 @@ // Copyright (c) DGP Studio. All rights reserved. // Licensed under the MIT license. - -// Copyright (c) DGP Studio. All rights reserved. -// Licensed under the MIT license. - using Snap.Hutao.Win32.Foundation; +using System.Runtime.CompilerServices; namespace Snap.Hutao.Win32.System.Com; @@ -15,6 +12,28 @@ internal unsafe struct IStream private Vftbl* thisPtr; + public unsafe HRESULT QueryInterface(ref readonly Guid riid, out TInterface* pvObject) + where TInterface : unmanaged + { + fixed (Guid* riid2 = &riid) + { + fixed (TInterface** ppvObject = &pvObject) + { + return thisPtr->ISequentialStreamVftbl.IUnknownVftbl.QueryInterface((IUnknown*)Unsafe.AsPointer(ref this), riid2, (void**)ppvObject); + } + } + } + + public uint AddRef() + { + return thisPtr->ISequentialStreamVftbl.IUnknownVftbl.AddRef((IUnknown*)Unsafe.AsPointer(ref this)); + } + + public uint Release() + { + return thisPtr->ISequentialStreamVftbl.IUnknownVftbl.Release((IUnknown*)Unsafe.AsPointer(ref this)); + } + internal readonly struct Vftbl { internal readonly ISequentialStream.Vftbl ISequentialStreamVftbl; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IFileDialogEvents.cs b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IFileDialogEvents.cs index b04d1f5a..c9d1e186 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IFileDialogEvents.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IFileDialogEvents.cs @@ -3,6 +3,7 @@ using Snap.Hutao.Win32.Foundation; using Snap.Hutao.Win32.System.Com; +using System.Runtime.CompilerServices; namespace Snap.Hutao.Win32.UI.Shell; @@ -12,6 +13,28 @@ internal unsafe struct IFileDialogEvents private Vftbl* thisPtr; + public unsafe HRESULT QueryInterface(ref readonly Guid riid, out TInterface* pvObject) + where TInterface : unmanaged + { + fixed (Guid* riid2 = &riid) + { + fixed (TInterface** ppvObject = &pvObject) + { + return thisPtr->IUnknownVftbl.QueryInterface((IUnknown*)Unsafe.AsPointer(ref this), riid2, (void**)ppvObject); + } + } + } + + public uint AddRef() + { + return thisPtr->IUnknownVftbl.AddRef((IUnknown*)Unsafe.AsPointer(ref this)); + } + + public uint Release() + { + return thisPtr->IUnknownVftbl.Release((IUnknown*)Unsafe.AsPointer(ref this)); + } + internal readonly struct Vftbl { internal readonly IUnknown.Vftbl IUnknownVftbl; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IModalWindow.cs b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IModalWindow.cs index 4b45f472..da1916f3 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IModalWindow.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IModalWindow.cs @@ -3,6 +3,7 @@ using Snap.Hutao.Win32.Foundation; using Snap.Hutao.Win32.System.Com; +using System.Runtime.CompilerServices; using System.Runtime.Versioning; namespace Snap.Hutao.Win32.UI.Shell; @@ -14,6 +15,28 @@ internal unsafe struct IModalWindow private readonly Vftbl* thisPtr; + public unsafe HRESULT QueryInterface(ref readonly Guid riid, out TInterface* pvObject) + where TInterface : unmanaged + { + fixed (Guid* riid2 = &riid) + { + fixed (TInterface** ppvObject = &pvObject) + { + return thisPtr->IUnknownVftbl.QueryInterface((IUnknown*)Unsafe.AsPointer(ref this), riid2, (void**)ppvObject); + } + } + } + + public uint AddRef() + { + return thisPtr->IUnknownVftbl.AddRef((IUnknown*)Unsafe.AsPointer(ref this)); + } + + public uint Release() + { + return thisPtr->IUnknownVftbl.Release((IUnknown*)Unsafe.AsPointer(ref this)); + } + internal unsafe readonly struct Vftbl { internal readonly IUnknown.Vftbl IUnknownVftbl; diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IShellItemFilter.cs b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IShellItemFilter.cs index 058b8495..edbbb681 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IShellItemFilter.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/UI/Shell/IShellItemFilter.cs @@ -3,6 +3,7 @@ using Snap.Hutao.Win32.Foundation; using Snap.Hutao.Win32.System.Com; +using System.Runtime.CompilerServices; using System.Runtime.Versioning; namespace Snap.Hutao.Win32.UI.Shell; @@ -14,6 +15,28 @@ internal unsafe struct IShellItemFilter private Vftbl* thisPtr; + public unsafe HRESULT QueryInterface(ref readonly Guid riid, out TInterface* pvObject) + where TInterface : unmanaged + { + fixed (Guid* riid2 = &riid) + { + fixed (TInterface** ppvObject = &pvObject) + { + return thisPtr->IUnknownVftbl.QueryInterface((IUnknown*)Unsafe.AsPointer(ref this), riid2, (void**)ppvObject); + } + } + } + + public uint AddRef() + { + return thisPtr->IUnknownVftbl.AddRef((IUnknown*)Unsafe.AsPointer(ref this)); + } + + public uint Release() + { + return thisPtr->IUnknownVftbl.Release((IUnknown*)Unsafe.AsPointer(ref this)); + } + internal readonly struct Vftbl { internal readonly IUnknown.Vftbl IUnknownVftbl;