File: _generated\7\Microsoft.DiaSymReader.IMetadataImport.cs
Web Access
Project: src\src\symreader\src\Microsoft.DiaSymReader\Microsoft.DiaSymReader.csproj (Microsoft.DiaSymReader)
// <auto-generated />
#pragma warning disable CS0612, CS0618, CS0649, CS1591

[global::System.Runtime.InteropServices.StructLayoutAttribute(global::System.Runtime.InteropServices.LayoutKind.Sequential)]
file unsafe struct InterfaceImplementationVtable
{
    public delegate* unmanaged[MemberFunction]<void*, global::System.Guid*, void**, int> QueryInterface_0;
    public delegate* unmanaged[MemberFunction]<void*, uint> AddRef_1;
    public delegate* unmanaged[MemberFunction]<void*, uint> Release_2;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void*, void> CloseEnum_3;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void*, int*, int> CountEnum_4;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void*, int, int> ResetEnum_5;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void**, int*, int, int*, int> EnumTypeDefs_6;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void**, int, int*, int, int*, int> EnumInterfaceImpls_7;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void**, int*, int, int*, int> EnumTypeRefs_8;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, ushort*, int, int*, int> FindTypeDefByName_9;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, char*, int, int*, global::System.Guid*, int> GetScopeProps_10;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int*, int> GetModuleFromScope_11;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, char*, int, int*, global::System.Reflection.TypeAttributes*, int*, int> GetTypeDefProps_12;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, int*, int*, int> GetInterfaceImplProps_13;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, int*, char*, int, int*, int> GetTypeRefProps_14;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, global::System.Guid*, void**, int*, int> ResolveTypeRef_15;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void**, int, int*, int, int*, int> EnumMembers_16;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void**, int, ushort*, int*, int, int*, int> EnumMembersWithName_17;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void**, int, int*, int, int*, int> EnumMethods_18;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void**, int, ushort*, int*, int, int*, int> EnumMethodsWithName_19;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void**, int, int*, int, int*, int> EnumFields_20;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void**, int, ushort*, int*, int, int*, int> EnumFieldsWithName_21;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void**, int, int*, int, int*, int> EnumParams_22;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void**, int, int*, int, int*, int> EnumMemberRefs_23;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void**, int, int*, int*, int, int*, int> EnumMethodImpls_24;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void**, int, uint, int*, int, int*, int> EnumPermissionSets_25;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, ushort*, byte*, int, int*, int> FindMember_26;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, ushort*, byte*, int, int*, int> FindMethod_27;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, ushort*, byte*, int, int*, int> FindField_28;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, ushort*, byte*, int, int*, int> FindMemberRef_29;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, int*, char*, int, int*, global::System.Reflection.MethodAttributes*, byte**, int*, int*, global::System.Reflection.MethodImplAttributes*, int> GetMethodProps_30;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, int*, char*, int, int*, byte**, int*, int> GetMemberRefProps_31;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void**, int, int*, int, int*, int> EnumProperties_32;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void**, int, int*, int, int*, uint> EnumEvents_33;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, int*, char*, int, int*, int*, int*, int*, int*, int*, int*, int, int*, int> GetEventProps_34;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void**, int, int*, int, int*, int> EnumMethodSemantics_35;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, int, int*, int> GetMethodSemantics_36;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, int*, global::Microsoft.DiaSymReader.MetadataImportFieldOffset*, int, int*, int*, int> GetClassLayout_37;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, byte**, int*, int> GetFieldMarshal_38;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, int*, int*, int> GetRVA_39;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, uint*, byte**, int*, int> GetPermissionSetProps_40;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, byte**, int*, int> GetSigFromToken_41;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, char*, int, int*, int> GetModuleRefProps_42;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void**, int*, int, int*, int> EnumModuleRefs_43;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, byte**, int*, int> GetTypeSpecFromToken_44;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, byte*, int> GetNameFromToken_45;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void**, int*, int, int*, int> EnumUnresolvedMethods_46;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, char*, int, int*, int> GetUserString_47;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, int*, char*, int, int*, int*, int> GetPinvokeMap_48;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void**, int*, int, int*, int> EnumSignatures_49;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void**, int*, int, int*, int> EnumTypeSpecs_50;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void**, int*, int, int*, int> EnumUserStrings_51;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, int, int*, int> GetParamForMethodIndex_52;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, void**, int, int, int*, int, int*, int> EnumCustomAttributes_53;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, int*, int*, byte**, int*, int> GetCustomAttributeProps_54;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, ushort*, int*, int> FindTypeRef_55;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, int*, char*, int, int*, int*, byte**, int*, int*, int*, int*, byte**, int*, int> GetMemberProps_56;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, int*, char*, int, int*, int*, byte**, int*, int*, byte**, int*, int> GetFieldProps_57;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, int*, char*, int, int*, int*, byte**, int*, int*, byte**, int*, int*, int*, int*, int, int*, int> GetPropertyProps_58;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, int*, int*, char*, int, int*, int*, int*, byte**, int*, int> GetParamProps_59;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, ushort*, byte**, int*, int> GetCustomAttributeByName_60;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, int> IsValidToken_61;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, int*, int> GetNestedClassProps_62;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, byte*, int, int*, int> GetNativeCallConvFromSig_63;
    public delegate* unmanaged[MemberFunction]<global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*, int, int, int> IsGlobal_64;
}

file unsafe sealed class InterfaceInformation : global::System.Runtime.InteropServices.Marshalling.IIUnknownInterfaceType
{
    public static global::System.Guid Iid { get; } = new([7, 130, 172, 125, 174, 211, 117, 76, 155, 103, 146, 128, 26, 73, 125, 68]);
    public static void** ManagedVirtualMethodTable => (void**)global::System.Runtime.CompilerServices.Unsafe.AsPointer(in InterfaceImplementation.Vtable);
}

[global::System.Runtime.InteropServices.DynamicInterfaceCastableImplementationAttribute]
file unsafe interface InterfaceImplementation : global::Microsoft.DiaSymReader.IMetadataImport
{
    [global::System.Runtime.CompilerServices.FixedAddressValueTypeAttribute]
    public static readonly InterfaceImplementationVtable Vtable;

    static InterfaceImplementation()
    {
        global::System.Runtime.InteropServices.ComWrappers.GetIUnknownImpl(
            out *(nint*)&((InterfaceImplementationVtable*)global::System.Runtime.CompilerServices.Unsafe.AsPointer(ref Vtable))->QueryInterface_0,
            out *(nint*)&((InterfaceImplementationVtable*)global::System.Runtime.CompilerServices.Unsafe.AsPointer(ref Vtable))->AddRef_1,
            out *(nint*)&((InterfaceImplementationVtable*)global::System.Runtime.CompilerServices.Unsafe.AsPointer(ref Vtable))->Release_2);

        Vtable.CloseEnum_3 = &ABI_CloseEnum;
        Vtable.CountEnum_4 = &ABI_CountEnum;
        Vtable.ResetEnum_5 = &ABI_ResetEnum;
        Vtable.EnumTypeDefs_6 = &ABI_EnumTypeDefs;
        Vtable.EnumInterfaceImpls_7 = &ABI_EnumInterfaceImpls;
        Vtable.EnumTypeRefs_8 = &ABI_EnumTypeRefs;
        Vtable.FindTypeDefByName_9 = &ABI_FindTypeDefByName;
        Vtable.GetScopeProps_10 = &ABI_GetScopeProps;
        Vtable.GetModuleFromScope_11 = &ABI_GetModuleFromScope;
        Vtable.GetTypeDefProps_12 = &ABI_GetTypeDefProps;
        Vtable.GetInterfaceImplProps_13 = &ABI_GetInterfaceImplProps;
        Vtable.GetTypeRefProps_14 = &ABI_GetTypeRefProps;
        Vtable.ResolveTypeRef_15 = &ABI_ResolveTypeRef;
        Vtable.EnumMembers_16 = &ABI_EnumMembers;
        Vtable.EnumMembersWithName_17 = &ABI_EnumMembersWithName;
        Vtable.EnumMethods_18 = &ABI_EnumMethods;
        Vtable.EnumMethodsWithName_19 = &ABI_EnumMethodsWithName;
        Vtable.EnumFields_20 = &ABI_EnumFields;
        Vtable.EnumFieldsWithName_21 = &ABI_EnumFieldsWithName;
        Vtable.EnumParams_22 = &ABI_EnumParams;
        Vtable.EnumMemberRefs_23 = &ABI_EnumMemberRefs;
        Vtable.EnumMethodImpls_24 = &ABI_EnumMethodImpls;
        Vtable.EnumPermissionSets_25 = &ABI_EnumPermissionSets;
        Vtable.FindMember_26 = &ABI_FindMember;
        Vtable.FindMethod_27 = &ABI_FindMethod;
        Vtable.FindField_28 = &ABI_FindField;
        Vtable.FindMemberRef_29 = &ABI_FindMemberRef;
        Vtable.GetMethodProps_30 = &ABI_GetMethodProps;
        Vtable.GetMemberRefProps_31 = &ABI_GetMemberRefProps;
        Vtable.EnumProperties_32 = &ABI_EnumProperties;
        Vtable.EnumEvents_33 = &ABI_EnumEvents;
        Vtable.GetEventProps_34 = &ABI_GetEventProps;
        Vtable.EnumMethodSemantics_35 = &ABI_EnumMethodSemantics;
        Vtable.GetMethodSemantics_36 = &ABI_GetMethodSemantics;
        Vtable.GetClassLayout_37 = &ABI_GetClassLayout;
        Vtable.GetFieldMarshal_38 = &ABI_GetFieldMarshal;
        Vtable.GetRVA_39 = &ABI_GetRVA;
        Vtable.GetPermissionSetProps_40 = &ABI_GetPermissionSetProps;
        Vtable.GetSigFromToken_41 = &ABI_GetSigFromToken;
        Vtable.GetModuleRefProps_42 = &ABI_GetModuleRefProps;
        Vtable.EnumModuleRefs_43 = &ABI_EnumModuleRefs;
        Vtable.GetTypeSpecFromToken_44 = &ABI_GetTypeSpecFromToken;
        Vtable.GetNameFromToken_45 = &ABI_GetNameFromToken;
        Vtable.EnumUnresolvedMethods_46 = &ABI_EnumUnresolvedMethods;
        Vtable.GetUserString_47 = &ABI_GetUserString;
        Vtable.GetPinvokeMap_48 = &ABI_GetPinvokeMap;
        Vtable.EnumSignatures_49 = &ABI_EnumSignatures;
        Vtable.EnumTypeSpecs_50 = &ABI_EnumTypeSpecs;
        Vtable.EnumUserStrings_51 = &ABI_EnumUserStrings;
        Vtable.GetParamForMethodIndex_52 = &ABI_GetParamForMethodIndex;
        Vtable.EnumCustomAttributes_53 = &ABI_EnumCustomAttributes;
        Vtable.GetCustomAttributeProps_54 = &ABI_GetCustomAttributeProps;
        Vtable.FindTypeRef_55 = &ABI_FindTypeRef;
        Vtable.GetMemberProps_56 = &ABI_GetMemberProps;
        Vtable.GetFieldProps_57 = &ABI_GetFieldProps;
        Vtable.GetPropertyProps_58 = &ABI_GetPropertyProps;
        Vtable.GetParamProps_59 = &ABI_GetParamProps;
        Vtable.GetCustomAttributeByName_60 = &ABI_GetCustomAttributeByName;
        Vtable.IsValidToken_61 = &ABI_IsValidToken;
        Vtable.GetNestedClassProps_62 = &ABI_GetNestedClassProps;
        Vtable.GetNativeCallConvFromSig_63 = &ABI_GetNativeCallConvFromSig;
        Vtable.IsGlobal_64 = &ABI_IsGlobal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    void global::Microsoft.DiaSymReader.IMetadataImport.CloseEnum(void* enumHandle)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void*, void> )__vtable[3]);
        {
            {
                __target(__this, enumHandle);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static void ABI_CloseEnum(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void* enumHandle)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            @this.CloseEnum(enumHandle);
        }
        catch (global::System.Exception __exception)
        {
            global::System.Runtime.InteropServices.Marshalling.ExceptionAsVoidMarshaller.ConvertToUnmanaged(__exception);
        }
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.CountEnum(void* enumHandle, out int count)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void*, int*, int> )__vtable[4]);
        {
            count = default;
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (int* __count_native = &count)
            {
                __retVal = __target(__this, enumHandle, __count_native);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_CountEnum(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void* enumHandle, int* __count_native__param)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref int __count_native = ref *__count_native__param;
        int count = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.CountEnum(enumHandle, out count);
            // Marshal - Convert managed data to native data.
            __count_native = count;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.ResetEnum(void* enumHandle, int position)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void*, int, int> )__vtable[5]);
        {
            int __retVal;
            {
                __retVal = __target(__this, enumHandle, position);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_ResetEnum(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void* enumHandle, int position)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.ResetEnum(enumHandle, position);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.EnumTypeDefs(ref void* enumHandle, int* typeDefs, int bufferLength, int* count)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void**, int*, int, int*, int> )__vtable[6]);
        {
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (void** __enumHandle_native = &enumHandle)
            {
                __retVal = __target(__this, __enumHandle_native, typeDefs, bufferLength, count);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_EnumTypeDefs(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void** __enumHandle_native__param, int* typeDefs, int bufferLength, int* count)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref void* __enumHandle_native = ref *__enumHandle_native__param;
        void* enumHandle = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            enumHandle = __enumHandle_native;
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.EnumTypeDefs(ref enumHandle, typeDefs, bufferLength, count);
            // Marshal - Convert managed data to native data.
            __enumHandle_native = enumHandle;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.EnumInterfaceImpls(ref void* enumHandle, int typeDef, int* interfaceImpls, int bufferLength, int* count)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void**, int, int*, int, int*, int> )__vtable[7]);
        {
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (void** __enumHandle_native = &enumHandle)
            {
                __retVal = __target(__this, __enumHandle_native, typeDef, interfaceImpls, bufferLength, count);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_EnumInterfaceImpls(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void** __enumHandle_native__param, int typeDef, int* interfaceImpls, int bufferLength, int* count)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref void* __enumHandle_native = ref *__enumHandle_native__param;
        void* enumHandle = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            enumHandle = __enumHandle_native;
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.EnumInterfaceImpls(ref enumHandle, typeDef, interfaceImpls, bufferLength, count);
            // Marshal - Convert managed data to native data.
            __enumHandle_native = enumHandle;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.EnumTypeRefs(ref void* enumHandle, int* typeRefs, int bufferLength, int* count)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void**, int*, int, int*, int> )__vtable[8]);
        {
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (void** __enumHandle_native = &enumHandle)
            {
                __retVal = __target(__this, __enumHandle_native, typeRefs, bufferLength, count);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_EnumTypeRefs(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void** __enumHandle_native__param, int* typeRefs, int bufferLength, int* count)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref void* __enumHandle_native = ref *__enumHandle_native__param;
        void* enumHandle = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            enumHandle = __enumHandle_native;
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.EnumTypeRefs(ref enumHandle, typeRefs, bufferLength, count);
            // Marshal - Convert managed data to native data.
            __enumHandle_native = enumHandle;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.FindTypeDefByName(string name, int enclosingClass, out int typeDef)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, ushort*, int, int*, int> )__vtable[9]);
        {
            typeDef = default;
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (int* __typeDef_native = &typeDef)
            fixed (void* __name_native = &global::System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller.GetPinnableReference(name))
            {
                __retVal = __target(__this, (ushort*)__name_native, enclosingClass, __typeDef_native);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_FindTypeDefByName(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, ushort* __name_native, int enclosingClass, int* __typeDef_native__param)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        string name = default;
        ref int __typeDef_native = ref *__typeDef_native__param;
        int typeDef = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            name = global::System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller.ConvertToManaged(__name_native);
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.FindTypeDefByName(name, enclosingClass, out typeDef);
            // Marshal - Convert managed data to native data.
            __typeDef_native = typeDef;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetScopeProps(char* name, int bufferLength, int* nameLength, global::System.Guid* mvid)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, char*, int, int*, global::System.Guid*, int> )__vtable[10]);
        {
            int __retVal;
            {
                __retVal = __target(__this, name, bufferLength, nameLength, mvid);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetScopeProps(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, char* name, int bufferLength, int* nameLength, global::System.Guid* mvid)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetScopeProps(name, bufferLength, nameLength, mvid);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetModuleFromScope(out int moduleDef)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int*, int> )__vtable[11]);
        {
            moduleDef = default;
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (int* __moduleDef_native = &moduleDef)
            {
                __retVal = __target(__this, __moduleDef_native);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetModuleFromScope(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int* __moduleDef_native__param)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref int __moduleDef_native = ref *__moduleDef_native__param;
        int moduleDef = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetModuleFromScope(out moduleDef);
            // Marshal - Convert managed data to native data.
            __moduleDef_native = moduleDef;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetTypeDefProps(int typeDef, char* qualifiedName, int qualifiedNameBufferLength, int* qualifiedNameLength, global::System.Reflection.TypeAttributes* attributes, int* baseType)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, char*, int, int*, global::System.Reflection.TypeAttributes*, int*, int> )__vtable[12]);
        {
            int __retVal;
            {
                __retVal = __target(__this, typeDef, qualifiedName, qualifiedNameBufferLength, qualifiedNameLength, attributes, baseType);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetTypeDefProps(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int typeDef, char* qualifiedName, int qualifiedNameBufferLength, int* qualifiedNameLength, global::System.Reflection.TypeAttributes* attributes, int* baseType)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetTypeDefProps(typeDef, qualifiedName, qualifiedNameBufferLength, qualifiedNameLength, attributes, baseType);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetInterfaceImplProps(int interfaceImpl, int* typeDef, int* interfaceDefRefSpec)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, int*, int*, int> )__vtable[13]);
        {
            int __retVal;
            {
                __retVal = __target(__this, interfaceImpl, typeDef, interfaceDefRefSpec);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetInterfaceImplProps(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int interfaceImpl, int* typeDef, int* interfaceDefRefSpec)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetInterfaceImplProps(interfaceImpl, typeDef, interfaceDefRefSpec);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetTypeRefProps(int typeRef, int* resolutionScope, char* qualifiedName, int qualifiedNameBufferLength, int* qualifiedNameLength)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, int*, char*, int, int*, int> )__vtable[14]);
        {
            int __retVal;
            {
                __retVal = __target(__this, typeRef, resolutionScope, qualifiedName, qualifiedNameBufferLength, qualifiedNameLength);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetTypeRefProps(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int typeRef, int* resolutionScope, char* qualifiedName, int qualifiedNameBufferLength, int* qualifiedNameLength)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetTypeRefProps(typeRef, resolutionScope, qualifiedName, qualifiedNameBufferLength, qualifiedNameLength);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.ResolveTypeRef(int typeRef, ref global::System.Guid scopeInterfaceId, out object scope, out int typeDef)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, global::System.Guid*, void**, int*, int> )__vtable[15]);
        {
            bool __invokeSucceeded = default;
            scope = default;
            typeDef = default;
            void* __scope_native = default;
            int __retVal = default;
            try
            {
                // Pin - Pin data in preparation for calling the P/Invoke.
                fixed (int* __typeDef_native = &typeDef)
                fixed (global::System.Guid* __scopeInterfaceId_native = &scopeInterfaceId)
                {
                    __retVal = __target(__this, typeRef, __scopeInterfaceId_native, &__scope_native, __typeDef_native);
                }
    
                // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
                global::System.GC.KeepAlive(this);
                __invokeSucceeded = true;
                // Unmarshal - Convert native data to managed data.
                scope = global::System.Runtime.InteropServices.Marshalling.ComInterfaceMarshaller<object>.ConvertToManaged(__scope_native);
            }
            finally
            {
                if (__invokeSucceeded)
                {
                    // CleanupCalleeAllocated - Perform cleanup of callee allocated resources.
                    global::System.Runtime.InteropServices.Marshalling.ComInterfaceMarshaller<object>.Free(__scope_native);
                }
            }
    
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_ResolveTypeRef(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int typeRef, global::System.Guid* __scopeInterfaceId_native__param, void** __scope_native__param, int* __typeDef_native__param)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref global::System.Guid __scopeInterfaceId_native = ref *__scopeInterfaceId_native__param;
        global::System.Guid scopeInterfaceId = default;
        ref void* __scope_native = ref *__scope_native__param;
        object scope = default;
        ref int __typeDef_native = ref *__typeDef_native__param;
        int typeDef = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            scopeInterfaceId = __scopeInterfaceId_native;
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.ResolveTypeRef(typeRef, ref scopeInterfaceId, out scope, out typeDef);
            // Marshal - Convert managed data to native data.
            __typeDef_native = typeDef;
            __scope_native = (void*)global::System.Runtime.InteropServices.Marshalling.ComInterfaceMarshaller<object>.ConvertToUnmanaged(scope);
            __scopeInterfaceId_native = scopeInterfaceId;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.EnumMembers(ref void* enumHandle, int typeDef, int* memberDefs, int bufferLength, int* count)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void**, int, int*, int, int*, int> )__vtable[16]);
        {
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (void** __enumHandle_native = &enumHandle)
            {
                __retVal = __target(__this, __enumHandle_native, typeDef, memberDefs, bufferLength, count);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_EnumMembers(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void** __enumHandle_native__param, int typeDef, int* memberDefs, int bufferLength, int* count)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref void* __enumHandle_native = ref *__enumHandle_native__param;
        void* enumHandle = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            enumHandle = __enumHandle_native;
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.EnumMembers(ref enumHandle, typeDef, memberDefs, bufferLength, count);
            // Marshal - Convert managed data to native data.
            __enumHandle_native = enumHandle;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.EnumMembersWithName(ref void* enumHandle, int typeDef, string name, int* memberDefs, int bufferLength, int* count)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void**, int, ushort*, int*, int, int*, int> )__vtable[17]);
        {
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (void* __name_native = &global::System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller.GetPinnableReference(name))
            fixed (void** __enumHandle_native = &enumHandle)
            {
                __retVal = __target(__this, __enumHandle_native, typeDef, (ushort*)__name_native, memberDefs, bufferLength, count);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_EnumMembersWithName(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void** __enumHandle_native__param, int typeDef, ushort* __name_native, int* memberDefs, int bufferLength, int* count)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref void* __enumHandle_native = ref *__enumHandle_native__param;
        void* enumHandle = default;
        string name = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            name = global::System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller.ConvertToManaged(__name_native);
            enumHandle = __enumHandle_native;
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.EnumMembersWithName(ref enumHandle, typeDef, name, memberDefs, bufferLength, count);
            // Marshal - Convert managed data to native data.
            __enumHandle_native = enumHandle;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.EnumMethods(ref void* enumHandle, int typeDef, int* methodDefs, int bufferLength, int* count)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void**, int, int*, int, int*, int> )__vtable[18]);
        {
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (void** __enumHandle_native = &enumHandle)
            {
                __retVal = __target(__this, __enumHandle_native, typeDef, methodDefs, bufferLength, count);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_EnumMethods(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void** __enumHandle_native__param, int typeDef, int* methodDefs, int bufferLength, int* count)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref void* __enumHandle_native = ref *__enumHandle_native__param;
        void* enumHandle = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            enumHandle = __enumHandle_native;
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.EnumMethods(ref enumHandle, typeDef, methodDefs, bufferLength, count);
            // Marshal - Convert managed data to native data.
            __enumHandle_native = enumHandle;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.EnumMethodsWithName(ref void* enumHandle, int typeDef, string name, int* methodDefs, int bufferLength, int* count)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void**, int, ushort*, int*, int, int*, int> )__vtable[19]);
        {
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (void* __name_native = &global::System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller.GetPinnableReference(name))
            fixed (void** __enumHandle_native = &enumHandle)
            {
                __retVal = __target(__this, __enumHandle_native, typeDef, (ushort*)__name_native, methodDefs, bufferLength, count);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_EnumMethodsWithName(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void** __enumHandle_native__param, int typeDef, ushort* __name_native, int* methodDefs, int bufferLength, int* count)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref void* __enumHandle_native = ref *__enumHandle_native__param;
        void* enumHandle = default;
        string name = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            name = global::System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller.ConvertToManaged(__name_native);
            enumHandle = __enumHandle_native;
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.EnumMethodsWithName(ref enumHandle, typeDef, name, methodDefs, bufferLength, count);
            // Marshal - Convert managed data to native data.
            __enumHandle_native = enumHandle;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.EnumFields(ref void* enumHandle, int typeDef, int* fieldDefs, int bufferLength, int* count)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void**, int, int*, int, int*, int> )__vtable[20]);
        {
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (void** __enumHandle_native = &enumHandle)
            {
                __retVal = __target(__this, __enumHandle_native, typeDef, fieldDefs, bufferLength, count);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_EnumFields(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void** __enumHandle_native__param, int typeDef, int* fieldDefs, int bufferLength, int* count)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref void* __enumHandle_native = ref *__enumHandle_native__param;
        void* enumHandle = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            enumHandle = __enumHandle_native;
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.EnumFields(ref enumHandle, typeDef, fieldDefs, bufferLength, count);
            // Marshal - Convert managed data to native data.
            __enumHandle_native = enumHandle;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.EnumFieldsWithName(ref void* enumHandle, int typeDef, string name, int* fieldDefs, int bufferLength, int* count)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void**, int, ushort*, int*, int, int*, int> )__vtable[21]);
        {
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (void* __name_native = &global::System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller.GetPinnableReference(name))
            fixed (void** __enumHandle_native = &enumHandle)
            {
                __retVal = __target(__this, __enumHandle_native, typeDef, (ushort*)__name_native, fieldDefs, bufferLength, count);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_EnumFieldsWithName(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void** __enumHandle_native__param, int typeDef, ushort* __name_native, int* fieldDefs, int bufferLength, int* count)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref void* __enumHandle_native = ref *__enumHandle_native__param;
        void* enumHandle = default;
        string name = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            name = global::System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller.ConvertToManaged(__name_native);
            enumHandle = __enumHandle_native;
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.EnumFieldsWithName(ref enumHandle, typeDef, name, fieldDefs, bufferLength, count);
            // Marshal - Convert managed data to native data.
            __enumHandle_native = enumHandle;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.EnumParams(ref void* enumHandle, int methodDef, int* paramDefs, int bufferLength, int* count)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void**, int, int*, int, int*, int> )__vtable[22]);
        {
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (void** __enumHandle_native = &enumHandle)
            {
                __retVal = __target(__this, __enumHandle_native, methodDef, paramDefs, bufferLength, count);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_EnumParams(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void** __enumHandle_native__param, int methodDef, int* paramDefs, int bufferLength, int* count)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref void* __enumHandle_native = ref *__enumHandle_native__param;
        void* enumHandle = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            enumHandle = __enumHandle_native;
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.EnumParams(ref enumHandle, methodDef, paramDefs, bufferLength, count);
            // Marshal - Convert managed data to native data.
            __enumHandle_native = enumHandle;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.EnumMemberRefs(ref void* enumHandle, int parentToken, int* memberRefs, int bufferLength, int* count)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void**, int, int*, int, int*, int> )__vtable[23]);
        {
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (void** __enumHandle_native = &enumHandle)
            {
                __retVal = __target(__this, __enumHandle_native, parentToken, memberRefs, bufferLength, count);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_EnumMemberRefs(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void** __enumHandle_native__param, int parentToken, int* memberRefs, int bufferLength, int* count)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref void* __enumHandle_native = ref *__enumHandle_native__param;
        void* enumHandle = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            enumHandle = __enumHandle_native;
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.EnumMemberRefs(ref enumHandle, parentToken, memberRefs, bufferLength, count);
            // Marshal - Convert managed data to native data.
            __enumHandle_native = enumHandle;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.EnumMethodImpls(ref void* enumHandle, int typeDef, int* implementationTokens, int* declarationTokens, int bufferLength, int* count)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void**, int, int*, int*, int, int*, int> )__vtable[24]);
        {
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (void** __enumHandle_native = &enumHandle)
            {
                __retVal = __target(__this, __enumHandle_native, typeDef, implementationTokens, declarationTokens, bufferLength, count);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_EnumMethodImpls(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void** __enumHandle_native__param, int typeDef, int* implementationTokens, int* declarationTokens, int bufferLength, int* count)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref void* __enumHandle_native = ref *__enumHandle_native__param;
        void* enumHandle = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            enumHandle = __enumHandle_native;
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.EnumMethodImpls(ref enumHandle, typeDef, implementationTokens, declarationTokens, bufferLength, count);
            // Marshal - Convert managed data to native data.
            __enumHandle_native = enumHandle;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.EnumPermissionSets(ref void* enumHandle, int token, uint action, int* declSecurityTokens, int bufferLength, int* count)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void**, int, uint, int*, int, int*, int> )__vtable[25]);
        {
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (void** __enumHandle_native = &enumHandle)
            {
                __retVal = __target(__this, __enumHandle_native, token, action, declSecurityTokens, bufferLength, count);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_EnumPermissionSets(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void** __enumHandle_native__param, int token, uint action, int* declSecurityTokens, int bufferLength, int* count)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref void* __enumHandle_native = ref *__enumHandle_native__param;
        void* enumHandle = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            enumHandle = __enumHandle_native;
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.EnumPermissionSets(ref enumHandle, token, action, declSecurityTokens, bufferLength, count);
            // Marshal - Convert managed data to native data.
            __enumHandle_native = enumHandle;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.FindMember(int typeDef, string name, byte* signature, int signatureLength, out int memberDef)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, ushort*, byte*, int, int*, int> )__vtable[26]);
        {
            memberDef = default;
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (int* __memberDef_native = &memberDef)
            fixed (void* __name_native = &global::System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller.GetPinnableReference(name))
            {
                __retVal = __target(__this, typeDef, (ushort*)__name_native, signature, signatureLength, __memberDef_native);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_FindMember(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int typeDef, ushort* __name_native, byte* signature, int signatureLength, int* __memberDef_native__param)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        string name = default;
        ref int __memberDef_native = ref *__memberDef_native__param;
        int memberDef = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            name = global::System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller.ConvertToManaged(__name_native);
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.FindMember(typeDef, name, signature, signatureLength, out memberDef);
            // Marshal - Convert managed data to native data.
            __memberDef_native = memberDef;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.FindMethod(int typeDef, string name, byte* signature, int signatureLength, out int methodDef)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, ushort*, byte*, int, int*, int> )__vtable[27]);
        {
            methodDef = default;
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (int* __methodDef_native = &methodDef)
            fixed (void* __name_native = &global::System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller.GetPinnableReference(name))
            {
                __retVal = __target(__this, typeDef, (ushort*)__name_native, signature, signatureLength, __methodDef_native);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_FindMethod(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int typeDef, ushort* __name_native, byte* signature, int signatureLength, int* __methodDef_native__param)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        string name = default;
        ref int __methodDef_native = ref *__methodDef_native__param;
        int methodDef = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            name = global::System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller.ConvertToManaged(__name_native);
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.FindMethod(typeDef, name, signature, signatureLength, out methodDef);
            // Marshal - Convert managed data to native data.
            __methodDef_native = methodDef;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.FindField(int typeDef, string name, byte* signature, int signatureLength, out int fieldDef)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, ushort*, byte*, int, int*, int> )__vtable[28]);
        {
            fieldDef = default;
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (int* __fieldDef_native = &fieldDef)
            fixed (void* __name_native = &global::System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller.GetPinnableReference(name))
            {
                __retVal = __target(__this, typeDef, (ushort*)__name_native, signature, signatureLength, __fieldDef_native);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_FindField(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int typeDef, ushort* __name_native, byte* signature, int signatureLength, int* __fieldDef_native__param)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        string name = default;
        ref int __fieldDef_native = ref *__fieldDef_native__param;
        int fieldDef = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            name = global::System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller.ConvertToManaged(__name_native);
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.FindField(typeDef, name, signature, signatureLength, out fieldDef);
            // Marshal - Convert managed data to native data.
            __fieldDef_native = fieldDef;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.FindMemberRef(int typeDef, string name, byte* signature, int signatureLength, out int memberRef)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, ushort*, byte*, int, int*, int> )__vtable[29]);
        {
            memberRef = default;
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (int* __memberRef_native = &memberRef)
            fixed (void* __name_native = &global::System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller.GetPinnableReference(name))
            {
                __retVal = __target(__this, typeDef, (ushort*)__name_native, signature, signatureLength, __memberRef_native);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_FindMemberRef(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int typeDef, ushort* __name_native, byte* signature, int signatureLength, int* __memberRef_native__param)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        string name = default;
        ref int __memberRef_native = ref *__memberRef_native__param;
        int memberRef = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            name = global::System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller.ConvertToManaged(__name_native);
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.FindMemberRef(typeDef, name, signature, signatureLength, out memberRef);
            // Marshal - Convert managed data to native data.
            __memberRef_native = memberRef;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetMethodProps(int methodDef, int* declaringTypeDef, char* name, int nameBufferLength, int* nameLength, global::System.Reflection.MethodAttributes* attributes, byte** signature, int* signatureLength, int* relativeVirtualAddress, global::System.Reflection.MethodImplAttributes* implAttributes)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, int*, char*, int, int*, global::System.Reflection.MethodAttributes*, byte**, int*, int*, global::System.Reflection.MethodImplAttributes*, int> )__vtable[30]);
        {
            int __retVal;
            {
                __retVal = __target(__this, methodDef, declaringTypeDef, name, nameBufferLength, nameLength, attributes, signature, signatureLength, relativeVirtualAddress, implAttributes);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetMethodProps(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int methodDef, int* declaringTypeDef, char* name, int nameBufferLength, int* nameLength, global::System.Reflection.MethodAttributes* attributes, byte** signature, int* signatureLength, int* relativeVirtualAddress, global::System.Reflection.MethodImplAttributes* implAttributes)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetMethodProps(methodDef, declaringTypeDef, name, nameBufferLength, nameLength, attributes, signature, signatureLength, relativeVirtualAddress, implAttributes);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetMemberRefProps(int memberRef, int* declaringType, char* name, int nameBufferLength, int* nameLength, byte** signature, int* signatureLength)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, int*, char*, int, int*, byte**, int*, int> )__vtable[31]);
        {
            int __retVal;
            {
                __retVal = __target(__this, memberRef, declaringType, name, nameBufferLength, nameLength, signature, signatureLength);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetMemberRefProps(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int memberRef, int* declaringType, char* name, int nameBufferLength, int* nameLength, byte** signature, int* signatureLength)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetMemberRefProps(memberRef, declaringType, name, nameBufferLength, nameLength, signature, signatureLength);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.EnumProperties(ref void* enumHandle, int typeDef, int* properties, int bufferLength, int* count)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void**, int, int*, int, int*, int> )__vtable[32]);
        {
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (void** __enumHandle_native = &enumHandle)
            {
                __retVal = __target(__this, __enumHandle_native, typeDef, properties, bufferLength, count);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_EnumProperties(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void** __enumHandle_native__param, int typeDef, int* properties, int bufferLength, int* count)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref void* __enumHandle_native = ref *__enumHandle_native__param;
        void* enumHandle = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            enumHandle = __enumHandle_native;
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.EnumProperties(ref enumHandle, typeDef, properties, bufferLength, count);
            // Marshal - Convert managed data to native data.
            __enumHandle_native = enumHandle;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    uint global::Microsoft.DiaSymReader.IMetadataImport.EnumEvents(ref void* enumHandle, int typeDef, int* events, int bufferLength, int* count)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void**, int, int*, int, int*, uint> )__vtable[33]);
        {
            uint __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (void** __enumHandle_native = &enumHandle)
            {
                __retVal = __target(__this, __enumHandle_native, typeDef, events, bufferLength, count);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static uint ABI_EnumEvents(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void** __enumHandle_native__param, int typeDef, int* events, int bufferLength, int* count)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref void* __enumHandle_native = ref *__enumHandle_native__param;
        void* enumHandle = default;
        uint __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            enumHandle = __enumHandle_native;
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.EnumEvents(ref enumHandle, typeDef, events, bufferLength, count);
            // Marshal - Convert managed data to native data.
            __enumHandle_native = enumHandle;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<uint>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetEventProps(int @event, int* declaringTypeDef, char* name, int nameBufferLength, int* nameLength, int* attributes, int* eventType, int* adderMethodDef, int* removerMethodDef, int* raiserMethodDef, int* otherMethodDefs, int otherMethodDefBufferLength, int* methodMethodDefsLength)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, int*, char*, int, int*, int*, int*, int*, int*, int*, int*, int, int*, int> )__vtable[34]);
        {
            int __retVal;
            {
                __retVal = __target(__this, @event, declaringTypeDef, name, nameBufferLength, nameLength, attributes, eventType, adderMethodDef, removerMethodDef, raiserMethodDef, otherMethodDefs, otherMethodDefBufferLength, methodMethodDefsLength);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetEventProps(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int @event, int* declaringTypeDef, char* name, int nameBufferLength, int* nameLength, int* attributes, int* eventType, int* adderMethodDef, int* removerMethodDef, int* raiserMethodDef, int* otherMethodDefs, int otherMethodDefBufferLength, int* methodMethodDefsLength)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetEventProps(@event, declaringTypeDef, name, nameBufferLength, nameLength, attributes, eventType, adderMethodDef, removerMethodDef, raiserMethodDef, otherMethodDefs, otherMethodDefBufferLength, methodMethodDefsLength);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.EnumMethodSemantics(ref void* enumHandle, int methodDef, int* eventsAndProperties, int bufferLength, int* count)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void**, int, int*, int, int*, int> )__vtable[35]);
        {
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (void** __enumHandle_native = &enumHandle)
            {
                __retVal = __target(__this, __enumHandle_native, methodDef, eventsAndProperties, bufferLength, count);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_EnumMethodSemantics(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void** __enumHandle_native__param, int methodDef, int* eventsAndProperties, int bufferLength, int* count)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref void* __enumHandle_native = ref *__enumHandle_native__param;
        void* enumHandle = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            enumHandle = __enumHandle_native;
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.EnumMethodSemantics(ref enumHandle, methodDef, eventsAndProperties, bufferLength, count);
            // Marshal - Convert managed data to native data.
            __enumHandle_native = enumHandle;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetMethodSemantics(int methodDef, int eventOrProperty, int* semantics)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, int, int*, int> )__vtable[36]);
        {
            int __retVal;
            {
                __retVal = __target(__this, methodDef, eventOrProperty, semantics);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetMethodSemantics(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int methodDef, int eventOrProperty, int* semantics)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetMethodSemantics(methodDef, eventOrProperty, semantics);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetClassLayout(int typeDef, int* packSize, global::Microsoft.DiaSymReader.MetadataImportFieldOffset* fieldOffsets, int bufferLength, int* count, int* typeSize)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, int*, global::Microsoft.DiaSymReader.MetadataImportFieldOffset*, int, int*, int*, int> )__vtable[37]);
        {
            int __retVal;
            {
                __retVal = __target(__this, typeDef, packSize, fieldOffsets, bufferLength, count, typeSize);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetClassLayout(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int typeDef, int* packSize, global::Microsoft.DiaSymReader.MetadataImportFieldOffset* fieldOffsets, int bufferLength, int* count, int* typeSize)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetClassLayout(typeDef, packSize, fieldOffsets, bufferLength, count, typeSize);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetFieldMarshal(int fieldDef, byte** nativeTypeSignature, int* nativeTypeSignatureLength)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, byte**, int*, int> )__vtable[38]);
        {
            int __retVal;
            {
                __retVal = __target(__this, fieldDef, nativeTypeSignature, nativeTypeSignatureLength);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetFieldMarshal(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int fieldDef, byte** nativeTypeSignature, int* nativeTypeSignatureLength)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetFieldMarshal(fieldDef, nativeTypeSignature, nativeTypeSignatureLength);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetRVA(int methodDef, int* relativeVirtualAddress, int* implAttributes)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, int*, int*, int> )__vtable[39]);
        {
            int __retVal;
            {
                __retVal = __target(__this, methodDef, relativeVirtualAddress, implAttributes);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetRVA(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int methodDef, int* relativeVirtualAddress, int* implAttributes)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetRVA(methodDef, relativeVirtualAddress, implAttributes);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetPermissionSetProps(int declSecurity, uint* action, byte** permissionBlob, int* permissionBlobLength)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, uint*, byte**, int*, int> )__vtable[40]);
        {
            int __retVal;
            {
                __retVal = __target(__this, declSecurity, action, permissionBlob, permissionBlobLength);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetPermissionSetProps(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int declSecurity, uint* action, byte** permissionBlob, int* permissionBlobLength)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetPermissionSetProps(declSecurity, action, permissionBlob, permissionBlobLength);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetSigFromToken(int standaloneSignature, byte** signature, int* signatureLength)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, byte**, int*, int> )__vtable[41]);
        {
            int __retVal;
            {
                __retVal = __target(__this, standaloneSignature, signature, signatureLength);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetSigFromToken(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int standaloneSignature, byte** signature, int* signatureLength)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetSigFromToken(standaloneSignature, signature, signatureLength);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetModuleRefProps(int moduleRef, char* name, int nameBufferLength, int* nameLength)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, char*, int, int*, int> )__vtable[42]);
        {
            int __retVal;
            {
                __retVal = __target(__this, moduleRef, name, nameBufferLength, nameLength);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetModuleRefProps(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int moduleRef, char* name, int nameBufferLength, int* nameLength)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetModuleRefProps(moduleRef, name, nameBufferLength, nameLength);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.EnumModuleRefs(ref void* enumHandle, int* moduleRefs, int bufferLength, int* count)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void**, int*, int, int*, int> )__vtable[43]);
        {
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (void** __enumHandle_native = &enumHandle)
            {
                __retVal = __target(__this, __enumHandle_native, moduleRefs, bufferLength, count);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_EnumModuleRefs(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void** __enumHandle_native__param, int* moduleRefs, int bufferLength, int* count)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref void* __enumHandle_native = ref *__enumHandle_native__param;
        void* enumHandle = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            enumHandle = __enumHandle_native;
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.EnumModuleRefs(ref enumHandle, moduleRefs, bufferLength, count);
            // Marshal - Convert managed data to native data.
            __enumHandle_native = enumHandle;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetTypeSpecFromToken(int typeSpec, byte** signature, int* signatureLength)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, byte**, int*, int> )__vtable[44]);
        {
            int __retVal;
            {
                __retVal = __target(__this, typeSpec, signature, signatureLength);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetTypeSpecFromToken(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int typeSpec, byte** signature, int* signatureLength)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetTypeSpecFromToken(typeSpec, signature, signatureLength);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetNameFromToken(int token, byte* nameUTF8)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, byte*, int> )__vtable[45]);
        {
            int __retVal;
            {
                __retVal = __target(__this, token, nameUTF8);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetNameFromToken(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int token, byte* nameUTF8)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetNameFromToken(token, nameUTF8);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.EnumUnresolvedMethods(ref void* enumHandle, int* methodDefs, int bufferLength, int* count)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void**, int*, int, int*, int> )__vtable[46]);
        {
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (void** __enumHandle_native = &enumHandle)
            {
                __retVal = __target(__this, __enumHandle_native, methodDefs, bufferLength, count);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_EnumUnresolvedMethods(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void** __enumHandle_native__param, int* methodDefs, int bufferLength, int* count)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref void* __enumHandle_native = ref *__enumHandle_native__param;
        void* enumHandle = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            enumHandle = __enumHandle_native;
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.EnumUnresolvedMethods(ref enumHandle, methodDefs, bufferLength, count);
            // Marshal - Convert managed data to native data.
            __enumHandle_native = enumHandle;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetUserString(int userStringToken, char* buffer, int bufferLength, int* length)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, char*, int, int*, int> )__vtable[47]);
        {
            int __retVal;
            {
                __retVal = __target(__this, userStringToken, buffer, bufferLength, length);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetUserString(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int userStringToken, char* buffer, int bufferLength, int* length)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetUserString(userStringToken, buffer, bufferLength, length);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetPinvokeMap(int memberDef, int* attributes, char* importName, int importNameBufferLength, int* importNameLength, int* moduleRef)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, int*, char*, int, int*, int*, int> )__vtable[48]);
        {
            int __retVal;
            {
                __retVal = __target(__this, memberDef, attributes, importName, importNameBufferLength, importNameLength, moduleRef);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetPinvokeMap(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int memberDef, int* attributes, char* importName, int importNameBufferLength, int* importNameLength, int* moduleRef)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetPinvokeMap(memberDef, attributes, importName, importNameBufferLength, importNameLength, moduleRef);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.EnumSignatures(ref void* enumHandle, int* signatureTokens, int bufferLength, int* count)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void**, int*, int, int*, int> )__vtable[49]);
        {
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (void** __enumHandle_native = &enumHandle)
            {
                __retVal = __target(__this, __enumHandle_native, signatureTokens, bufferLength, count);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_EnumSignatures(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void** __enumHandle_native__param, int* signatureTokens, int bufferLength, int* count)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref void* __enumHandle_native = ref *__enumHandle_native__param;
        void* enumHandle = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            enumHandle = __enumHandle_native;
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.EnumSignatures(ref enumHandle, signatureTokens, bufferLength, count);
            // Marshal - Convert managed data to native data.
            __enumHandle_native = enumHandle;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.EnumTypeSpecs(ref void* enumHandle, int* typeSpecs, int bufferLength, int* count)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void**, int*, int, int*, int> )__vtable[50]);
        {
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (void** __enumHandle_native = &enumHandle)
            {
                __retVal = __target(__this, __enumHandle_native, typeSpecs, bufferLength, count);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_EnumTypeSpecs(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void** __enumHandle_native__param, int* typeSpecs, int bufferLength, int* count)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref void* __enumHandle_native = ref *__enumHandle_native__param;
        void* enumHandle = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            enumHandle = __enumHandle_native;
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.EnumTypeSpecs(ref enumHandle, typeSpecs, bufferLength, count);
            // Marshal - Convert managed data to native data.
            __enumHandle_native = enumHandle;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.EnumUserStrings(ref void* enumHandle, int* userStrings, int bufferLength, int* count)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void**, int*, int, int*, int> )__vtable[51]);
        {
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (void** __enumHandle_native = &enumHandle)
            {
                __retVal = __target(__this, __enumHandle_native, userStrings, bufferLength, count);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_EnumUserStrings(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void** __enumHandle_native__param, int* userStrings, int bufferLength, int* count)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref void* __enumHandle_native = ref *__enumHandle_native__param;
        void* enumHandle = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            enumHandle = __enumHandle_native;
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.EnumUserStrings(ref enumHandle, userStrings, bufferLength, count);
            // Marshal - Convert managed data to native data.
            __enumHandle_native = enumHandle;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetParamForMethodIndex(int methodDef, int sequenceNumber, out int parameterToken)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, int, int*, int> )__vtable[52]);
        {
            parameterToken = default;
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (int* __parameterToken_native = &parameterToken)
            {
                __retVal = __target(__this, methodDef, sequenceNumber, __parameterToken_native);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetParamForMethodIndex(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int methodDef, int sequenceNumber, int* __parameterToken_native__param)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref int __parameterToken_native = ref *__parameterToken_native__param;
        int parameterToken = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetParamForMethodIndex(methodDef, sequenceNumber, out parameterToken);
            // Marshal - Convert managed data to native data.
            __parameterToken_native = parameterToken;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.EnumCustomAttributes(ref void* enumHandle, int parent, int attributeType, int* customAttributes, int bufferLength, int* count)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, void**, int, int, int*, int, int*, int> )__vtable[53]);
        {
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (void** __enumHandle_native = &enumHandle)
            {
                __retVal = __target(__this, __enumHandle_native, parent, attributeType, customAttributes, bufferLength, count);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_EnumCustomAttributes(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, void** __enumHandle_native__param, int parent, int attributeType, int* customAttributes, int bufferLength, int* count)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref void* __enumHandle_native = ref *__enumHandle_native__param;
        void* enumHandle = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            enumHandle = __enumHandle_native;
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.EnumCustomAttributes(ref enumHandle, parent, attributeType, customAttributes, bufferLength, count);
            // Marshal - Convert managed data to native data.
            __enumHandle_native = enumHandle;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetCustomAttributeProps(int customAttribute, int* parent, int* constructor, byte** value, int* valueLength)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, int*, int*, byte**, int*, int> )__vtable[54]);
        {
            int __retVal;
            {
                __retVal = __target(__this, customAttribute, parent, constructor, value, valueLength);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetCustomAttributeProps(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int customAttribute, int* parent, int* constructor, byte** value, int* valueLength)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetCustomAttributeProps(customAttribute, parent, constructor, value, valueLength);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.FindTypeRef(int resolutionScope, string name, out int typeRef)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, ushort*, int*, int> )__vtable[55]);
        {
            typeRef = default;
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (int* __typeRef_native = &typeRef)
            fixed (void* __name_native = &global::System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller.GetPinnableReference(name))
            {
                __retVal = __target(__this, resolutionScope, (ushort*)__name_native, __typeRef_native);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_FindTypeRef(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int resolutionScope, ushort* __name_native, int* __typeRef_native__param)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        string name = default;
        ref int __typeRef_native = ref *__typeRef_native__param;
        int typeRef = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            name = global::System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller.ConvertToManaged(__name_native);
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.FindTypeRef(resolutionScope, name, out typeRef);
            // Marshal - Convert managed data to native data.
            __typeRef_native = typeRef;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetMemberProps(int member, int* declaringTypeDef, char* name, int nameBufferLength, int* nameLength, int* attributes, byte** signature, int* signatureLength, int* relativeVirtualAddress, int* implAttributes, int* constantType, byte** constantValue, int* constantValueLength)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, int*, char*, int, int*, int*, byte**, int*, int*, int*, int*, byte**, int*, int> )__vtable[56]);
        {
            int __retVal;
            {
                __retVal = __target(__this, member, declaringTypeDef, name, nameBufferLength, nameLength, attributes, signature, signatureLength, relativeVirtualAddress, implAttributes, constantType, constantValue, constantValueLength);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetMemberProps(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int member, int* declaringTypeDef, char* name, int nameBufferLength, int* nameLength, int* attributes, byte** signature, int* signatureLength, int* relativeVirtualAddress, int* implAttributes, int* constantType, byte** constantValue, int* constantValueLength)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetMemberProps(member, declaringTypeDef, name, nameBufferLength, nameLength, attributes, signature, signatureLength, relativeVirtualAddress, implAttributes, constantType, constantValue, constantValueLength);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetFieldProps(int fieldDef, int* declaringTypeDef, char* name, int nameBufferLength, int* nameLength, int* attributes, byte** signature, int* signatureLength, int* constantType, byte** constantValue, int* constantValueLength)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, int*, char*, int, int*, int*, byte**, int*, int*, byte**, int*, int> )__vtable[57]);
        {
            int __retVal;
            {
                __retVal = __target(__this, fieldDef, declaringTypeDef, name, nameBufferLength, nameLength, attributes, signature, signatureLength, constantType, constantValue, constantValueLength);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetFieldProps(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int fieldDef, int* declaringTypeDef, char* name, int nameBufferLength, int* nameLength, int* attributes, byte** signature, int* signatureLength, int* constantType, byte** constantValue, int* constantValueLength)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetFieldProps(fieldDef, declaringTypeDef, name, nameBufferLength, nameLength, attributes, signature, signatureLength, constantType, constantValue, constantValueLength);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetPropertyProps(int propertyDef, int* declaringTypeDef, char* name, int nameBufferLength, int* nameLength, int* attributes, byte** signature, int* signatureLength, int* constantType, byte** constantValue, int* constantValueLength, int* setterMethodDef, int* getterMethodDef, int* outerMethodDefs, int outerMethodDefsBufferLength, int* otherMethodDefCount)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, int*, char*, int, int*, int*, byte**, int*, int*, byte**, int*, int*, int*, int*, int, int*, int> )__vtable[58]);
        {
            int __retVal;
            {
                __retVal = __target(__this, propertyDef, declaringTypeDef, name, nameBufferLength, nameLength, attributes, signature, signatureLength, constantType, constantValue, constantValueLength, setterMethodDef, getterMethodDef, outerMethodDefs, outerMethodDefsBufferLength, otherMethodDefCount);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetPropertyProps(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int propertyDef, int* declaringTypeDef, char* name, int nameBufferLength, int* nameLength, int* attributes, byte** signature, int* signatureLength, int* constantType, byte** constantValue, int* constantValueLength, int* setterMethodDef, int* getterMethodDef, int* outerMethodDefs, int outerMethodDefsBufferLength, int* otherMethodDefCount)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetPropertyProps(propertyDef, declaringTypeDef, name, nameBufferLength, nameLength, attributes, signature, signatureLength, constantType, constantValue, constantValueLength, setterMethodDef, getterMethodDef, outerMethodDefs, outerMethodDefsBufferLength, otherMethodDefCount);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetParamProps(int parameter, int* declaringMethodDef, int* sequenceNumber, char* name, int nameBufferLength, int* nameLength, int* attributes, int* constantType, byte** constantValue, int* constantValueLength)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, int*, int*, char*, int, int*, int*, int*, byte**, int*, int> )__vtable[59]);
        {
            int __retVal;
            {
                __retVal = __target(__this, parameter, declaringMethodDef, sequenceNumber, name, nameBufferLength, nameLength, attributes, constantType, constantValue, constantValueLength);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetParamProps(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int parameter, int* declaringMethodDef, int* sequenceNumber, char* name, int nameBufferLength, int* nameLength, int* attributes, int* constantType, byte** constantValue, int* constantValueLength)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetParamProps(parameter, declaringMethodDef, sequenceNumber, name, nameBufferLength, nameLength, attributes, constantType, constantValue, constantValueLength);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetCustomAttributeByName(int parent, string name, byte** value, int* valueLength)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, ushort*, byte**, int*, int> )__vtable[60]);
        {
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (void* __name_native = &global::System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller.GetPinnableReference(name))
            {
                __retVal = __target(__this, parent, (ushort*)__name_native, value, valueLength);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetCustomAttributeByName(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int parent, ushort* __name_native, byte** value, int* valueLength)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        string name = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            name = global::System.Runtime.InteropServices.Marshalling.Utf16StringMarshaller.ConvertToManaged(__name_native);
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetCustomAttributeByName(parent, name, value, valueLength);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    bool global::Microsoft.DiaSymReader.IMetadataImport.IsValidToken(int token)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, int> )__vtable[61]);
        {
            bool __retVal;
            int __retVal_native;
            {
                __retVal_native = __target(__this, token);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            // Unmarshal - Convert native data to managed data.
            __retVal = __retVal_native != 0;
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_IsValidToken(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int token)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        bool __retVal = default;
        int __retVal_native = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.IsValidToken(token);
            // Marshal - Convert managed data to native data.
            __retVal_native = (int)(__retVal ? 1 : 0);
        }
        catch (global::System.Exception __exception)
        {
            __retVal_native = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal_native;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetNestedClassProps(int nestedClass, out int enclosingClass)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, int*, int> )__vtable[62]);
        {
            enclosingClass = default;
            int __retVal;
            // Pin - Pin data in preparation for calling the P/Invoke.
            fixed (int* __enclosingClass_native = &enclosingClass)
            {
                __retVal = __target(__this, nestedClass, __enclosingClass_native);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetNestedClassProps(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int nestedClass, int* __enclosingClass_native__param)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        ref int __enclosingClass_native = ref *__enclosingClass_native__param;
        int enclosingClass = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetNestedClassProps(nestedClass, out enclosingClass);
            // Marshal - Convert managed data to native data.
            __enclosingClass_native = enclosingClass;
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.GetNativeCallConvFromSig(byte* signature, int signatureLength, int* callingConvention)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, byte*, int, int*, int> )__vtable[63]);
        {
            int __retVal;
            {
                __retVal = __target(__this, signature, signatureLength, callingConvention);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_GetNativeCallConvFromSig(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, byte* signature, int signatureLength, int* callingConvention)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.GetNativeCallConvFromSig(signature, signatureLength, callingConvention);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }

    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Interop.ComInterfaceGenerator", "11.0.14.22804")]
    [global::System.Runtime.CompilerServices.SkipLocalsInitAttribute]
    int global::Microsoft.DiaSymReader.IMetadataImport.IsGlobal(int token, bool value)
    {
        var(__this, __vtable) = ((global::System.Runtime.InteropServices.Marshalling.IUnmanagedVirtualMethodTableProvider)this).GetVirtualMethodTableInfoForKey(typeof(global::Microsoft.DiaSymReader.IMetadataImport));
        var __target = ((delegate* unmanaged[MemberFunction]<void*, int, int, int> )__vtable[64]);
        {
            int __value_native;
            int __retVal;
            // Marshal - Convert managed data to native data.
            __value_native = (int)(value ? 1 : 0);
            {
                __retVal = __target(__this, token, __value_native);
            }
    
            // NotifyForSuccessfulInvoke - Keep alive any managed objects that need to stay alive across the call.
            global::System.GC.KeepAlive(this);
            return __retVal;
        }
    }

    [global::System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute(CallConvs = new[] { typeof(global::System.Runtime.CompilerServices.CallConvMemberFunction) })]
    internal static int ABI_IsGlobal(global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch* __this_native, int token, int __value_native)
    {
        global::Microsoft.DiaSymReader.IMetadataImport @this = default;
        bool value = default;
        int __retVal = default;
        try
        {
            // Unmarshal - Convert native data to managed data.
            value = __value_native != 0;
            @this = global::System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance<global::Microsoft.DiaSymReader.IMetadataImport>(__this_native);
            __retVal = @this.IsGlobal(token, value);
        }
        catch (global::System.Exception __exception)
        {
            __retVal = global::System.Runtime.InteropServices.Marshalling.ExceptionAsHResultMarshaller<int>.ConvertToUnmanaged(__exception);
        }
    
        return __retVal;
    }
}

namespace Microsoft.DiaSymReader
{
    [global::System.Runtime.InteropServices.Marshalling.IUnknownDerivedAttribute<InterfaceInformation, InterfaceImplementation>]
    internal unsafe partial interface IMetadataImport
    {
    }
}