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