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

IBindCtx

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("0000000E-0000-0000-C000-000000000046")] [SupportedOSPlatform("windows5.0")] [GeneratedCode("Microsoft.Windows.CsWin32", "0.3.151+58e949951d.RR")] internal struct IBindCtx : IVTable<IBindCtx, IBindCtx.Vtbl>, IVTable, IComIID { internal struct Vtbl { internal IntPtr QueryInterface_1; internal IntPtr AddRef_2; internal IntPtr Release_3; internal IntPtr RegisterObjectBound_4; internal IntPtr RevokeObjectBound_5; internal IntPtr ReleaseBoundObjects_6; internal IntPtr SetBindOptions_7; internal IntPtr GetBindOptions_8; internal IntPtr GetRunningObjectTable_9; internal IntPtr RegisterObjectParam_10; internal IntPtr GetObjectParam_11; internal IntPtr EnumObjectParam_12; internal IntPtr RevokeObjectParam_13; } [ComImport] [Guid("0000000E-0000-0000-C000-000000000046")] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [SupportedOSPlatform("windows5.0")] internal interface Interface { [PreserveSig] unsafe HRESULT RegisterObjectBound(IUnknown* punk); [PreserveSig] unsafe HRESULT RevokeObjectBound(IUnknown* punk); [PreserveSig] HRESULT ReleaseBoundObjects(); [PreserveSig] unsafe HRESULT SetBindOptions(BIND_OPTS* pbindopts); [PreserveSig] unsafe HRESULT GetBindOptions(BIND_OPTS* pbindopts); [PreserveSig] unsafe HRESULT GetRunningObjectTable(IRunningObjectTable** pprot); [PreserveSig] unsafe HRESULT RegisterObjectParam(PWSTR pszKey, IUnknown* punk); [PreserveSig] unsafe HRESULT GetObjectParam(PWSTR pszKey, IUnknown** ppunk); [PreserveSig] unsafe HRESULT EnumObjectParam(IEnumString** ppenum); [PreserveSig] HRESULT RevokeObjectParam(PWSTR pszKey); } private unsafe void** lpVtbl; internal static readonly Guid IID_Guid = new Guid(14, 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>.8DAF95B5600AF123DEBA8DCCBAF174789E422EA3F584889D5E8562AC22D19BBE, 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 RegisterObjectBound(IBindCtx* pThis, IUnknown* punk) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IBindCtx, Interface>(pThis, out object); if (!result.Failed) return object.RegisterObjectBound(punk); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT RegisterObjectBound(IUnknown* punk) { IntPtr intPtr = (IntPtr)lpVtbl[3]; return (HRESULT); } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT RevokeObjectBound(IBindCtx* pThis, IUnknown* punk) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IBindCtx, Interface>(pThis, out object); if (!result.Failed) return object.RevokeObjectBound(punk); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT RevokeObjectBound(IUnknown* punk) { IntPtr intPtr = (IntPtr)lpVtbl[4]; return (HRESULT); } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT ReleaseBoundObjects(IBindCtx* pThis) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IBindCtx, Interface>(pThis, out object); if (!result.Failed) return object.ReleaseBoundObjects(); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT ReleaseBoundObjects() { IntPtr intPtr = (IntPtr)lpVtbl[5]; return (HRESULT); } internal unsafe HRESULT SetBindOptions([In] [IsReadOnly] ref BIND_OPTS pbindopts) { fixed (BIND_OPTS* bindOptions = &pbindopts) { return SetBindOptions(bindOptions); } } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT SetBindOptions(IBindCtx* pThis, BIND_OPTS* pbindopts) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IBindCtx, Interface>(pThis, out object); if (!result.Failed) return object.SetBindOptions(pbindopts); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT SetBindOptions(BIND_OPTS* pbindopts) { IntPtr intPtr = (IntPtr)lpVtbl[6]; return (HRESULT); } internal unsafe HRESULT GetBindOptions(ref BIND_OPTS pbindopts) { fixed (BIND_OPTS* pbindopts2 = &pbindopts) { return GetBindOptions(pbindopts2); } } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT GetBindOptions(IBindCtx* pThis, BIND_OPTS* pbindopts) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IBindCtx, Interface>(pThis, out object); if (!result.Failed) return object.GetBindOptions(pbindopts); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT GetBindOptions(BIND_OPTS* pbindopts) { IntPtr intPtr = (IntPtr)lpVtbl[7]; return (HRESULT); } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT GetRunningObjectTable(IBindCtx* pThis, IRunningObjectTable** pprot) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IBindCtx, Interface>(pThis, out object); if (!result.Failed) return object.GetRunningObjectTable(pprot); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT GetRunningObjectTable(IRunningObjectTable** pprot) { IntPtr intPtr = (IntPtr)lpVtbl[8]; return (HRESULT); } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT RegisterObjectParam(IBindCtx* pThis, PWSTR pszKey, IUnknown* punk) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IBindCtx, Interface>(pThis, out object); if (!result.Failed) return object.RegisterObjectParam(pszKey, punk); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT RegisterObjectParam(PWSTR pszKey, IUnknown* punk) { IntPtr intPtr = (IntPtr)lpVtbl[9]; return (HRESULT); } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT GetObjectParam(IBindCtx* pThis, PWSTR pszKey, IUnknown** ppunk) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IBindCtx, Interface>(pThis, out object); if (!result.Failed) return object.GetObjectParam(pszKey, ppunk); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT GetObjectParam(PWSTR pszKey, IUnknown** ppunk) { IntPtr intPtr = (IntPtr)lpVtbl[10]; return (HRESULT); } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT EnumObjectParam(IBindCtx* pThis, IEnumString** ppenum) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IBindCtx, Interface>(pThis, out object); if (!result.Failed) return object.EnumObjectParam(ppenum); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT EnumObjectParam(IEnumString** ppenum) { IntPtr intPtr = (IntPtr)lpVtbl[11]; return (HRESULT); } [UnmanagedCallersOnly(CallConvs = new Type[] { typeof(CallConvStdcall) })] private unsafe static HRESULT RevokeObjectParam(IBindCtx* pThis, PWSTR pszKey) { try { Interface object; HRESULT result = ComHelpers.UnwrapCCW<IBindCtx, Interface>(pThis, out object); if (!result.Failed) return object.RevokeObjectParam(pszKey); return result; } catch (Exception ex) { return (HRESULT)ex.HResult; } } public unsafe HRESULT RevokeObjectParam(PWSTR pszKey) { IntPtr intPtr = (IntPtr)lpVtbl[12]; 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->RegisterObjectBound_4 = (IntPtr)(void*); vtable->RevokeObjectBound_5 = (IntPtr)(void*); vtable->ReleaseBoundObjects_6 = (IntPtr)(void*); vtable->SetBindOptions_7 = (IntPtr)(void*); vtable->GetBindOptions_8 = (IntPtr)(void*); vtable->GetRunningObjectTable_9 = (IntPtr)(void*); vtable->RegisterObjectParam_10 = (IntPtr)(void*); vtable->GetObjectParam_11 = (IntPtr)(void*); vtable->EnumObjectParam_12 = (IntPtr)(void*); vtable->RevokeObjectParam_13 = (IntPtr)(void*); } unsafe void IVTable<IBindCtx, Vtbl>.PopulateVTable(Vtbl* vtable) { this.PopulateVTable(vtable); } } }