161 references to MethodImportAttributes
Microsoft.CodeAnalysis (40)
MetadataReader\PEModule.cs (2)
3427MethodImportAttributes flags = (MethodImportAttributes)methodImport.Attributes;
PEWriter\Miscellaneous.cs (1)
236MethodImportAttributes Flags { get; }
Symbols\Attributes\CommonMethodWellKnownAttributeData.cs (1)
65public void SetDllImport(int attributeIndex, string? moduleName, string? entryPointName, MethodImportAttributes flags, bool preserveSig)
Symbols\PlatformInvokeInformation.cs (36)
18private readonly MethodImportAttributes _flags; 20internal DllImportData(string? moduleName, string? entryPointName, MethodImportAttributes flags) 43MethodImportAttributes Cci.IPlatformInvokeInformation.Flags 56return (_flags & MethodImportAttributes.ExactSpelling) != 0; 67switch (_flags & MethodImportAttributes.CharSetMask) 69case MethodImportAttributes.CharSetAnsi: 72case MethodImportAttributes.CharSetUnicode: 75case MethodImportAttributes.CharSetAuto: 93return (_flags & MethodImportAttributes.SetLastError) != 0; 104switch (_flags & MethodImportAttributes.CallingConventionMask) 109case MethodImportAttributes.CallingConventionCDecl: 112case MethodImportAttributes.CallingConventionStdCall: 115case MethodImportAttributes.CallingConventionThisCall: 118case MethodImportAttributes.CallingConventionFastCall: 132switch (_flags & MethodImportAttributes.BestFitMappingMask) 134case MethodImportAttributes.BestFitMappingEnable: 137case MethodImportAttributes.BestFitMappingDisable: 154switch (_flags & MethodImportAttributes.ThrowOnUnmappableCharMask) 156case MethodImportAttributes.ThrowOnUnmappableCharEnable: 159case MethodImportAttributes.ThrowOnUnmappableCharDisable: 168internal static MethodImportAttributes MakeFlags(bool exactSpelling, CharSet charSet, bool setLastError, CallingConvention callingConvention, bool? useBestFit, bool? throwOnUnmappable) 170MethodImportAttributes result = 0; 173result |= MethodImportAttributes.ExactSpelling; 179result |= MethodImportAttributes.CharSetAnsi; 183result |= MethodImportAttributes.CharSetUnicode; 187result |= MethodImportAttributes.CharSetAuto; 195result |= MethodImportAttributes.SetLastError; 201result |= MethodImportAttributes.CallingConventionWinApi; 205result |= MethodImportAttributes.CallingConventionCDecl; 209result |= MethodImportAttributes.CallingConventionStdCall; 213result |= MethodImportAttributes.CallingConventionThisCall; 217result |= MethodImportAttributes.CallingConventionFastCall; 225result |= MethodImportAttributes.ThrowOnUnmappableCharEnable; 229result |= MethodImportAttributes.ThrowOnUnmappableCharDisable; 237result |= MethodImportAttributes.BestFitMappingEnable; 241result |= MethodImportAttributes.BestFitMappingDisable;
Microsoft.CodeAnalysis.CSharp.Emit3.UnitTests (65)
Attributes\AttributeTests_WellKnownAttributes.cs (65)
2709MethodImportAttributes.ExactSpelling | 2710MethodImportAttributes.CharSetUnicode | 2711MethodImportAttributes.SetLastError | 2712MethodImportAttributes.CallingConventionCDecl | 2713MethodImportAttributes.BestFitMappingEnable | 2714MethodImportAttributes.ThrowOnUnmappableCharEnable, import.Attributes); 2736MethodImportAttributes.ExactSpelling | 2737MethodImportAttributes.CharSetUnicode | 2738MethodImportAttributes.SetLastError | 2739MethodImportAttributes.CallingConventionCDecl | 2740MethodImportAttributes.BestFitMappingEnable | 2741MethodImportAttributes.ThrowOnUnmappableCharEnable, ((Cci.IPlatformInvokeInformation)info).Flags); 2857new { attr = MakeDllImport(), expected = MethodImportAttributes.CallingConventionWinApi}, // M0 2858new { attr = MakeDllImport(cc: CallingConvention.Cdecl), expected = MethodImportAttributes.CallingConventionCDecl }, // M1 2859new { attr = MakeDllImport(cc: CallingConvention.FastCall), expected = MethodImportAttributes.CallingConventionFastCall }, // M2 2860new { attr = MakeDllImport(cc: CallingConvention.StdCall), expected = MethodImportAttributes.CallingConventionStdCall }, // M3 2861new { attr = MakeDllImport(cc: CallingConvention.ThisCall), expected = MethodImportAttributes.CallingConventionThisCall }, // M4 2862new { attr = MakeDllImport(cc: CallingConvention.Winapi), expected = MethodImportAttributes.CallingConventionWinApi }, // M5 2865new { attr = MakeDllImport(), expected = MethodImportAttributes.CallingConventionWinApi }, // M6 2866new { attr = MakeDllImport(charSet: CharSet.None), expected = MethodImportAttributes.CallingConventionWinApi }, // M7 2867new { attr = MakeDllImport(charSet: CharSet.Ansi), expected = MethodImportAttributes.CallingConventionWinApi | MethodImportAttributes.CharSetAnsi }, // M8 2868new { attr = MakeDllImport(charSet: CharSet.Unicode), expected =MethodImportAttributes.CallingConventionWinApi | MethodImportAttributes.CharSetUnicode }, // M9 2869new { attr = MakeDllImport(charSet: CharSet.Auto), expected = MethodImportAttributes.CallingConventionWinApi | MethodImportAttributes.CharSetAuto }, // M10 2871new { attr = MakeDllImport(exactSpelling: true), expected = MethodImportAttributes.CallingConventionWinApi | MethodImportAttributes.ExactSpelling }, // M11 2872new { attr = MakeDllImport(exactSpelling: false), expected = MethodImportAttributes.CallingConventionWinApi }, // M12 2874new { attr = MakeDllImport(charSet: CharSet.Ansi, exactSpelling: true), expected = MethodImportAttributes.CallingConventionWinApi | MethodImportAttributes.ExactSpelling | MethodImportAttributes.CharSetAnsi }, // M13 2875new { attr = MakeDllImport(charSet: CharSet.Ansi, exactSpelling: false), expected = MethodImportAttributes.CallingConventionWinApi | MethodImportAttributes.CharSetAnsi }, // M14 2876new { attr = MakeDllImport(charSet: CharSet.Unicode, exactSpelling: true), expected = MethodImportAttributes.CallingConventionWinApi | MethodImportAttributes.ExactSpelling | MethodImportAttributes.CharSetUnicode },// M15 2877new { attr = MakeDllImport(charSet: CharSet.Unicode, exactSpelling: false), expected = MethodImportAttributes.CallingConventionWinApi | MethodImportAttributes.CharSetUnicode }, // M16 2878new { attr = MakeDllImport(charSet: CharSet.Auto, exactSpelling: true), expected = MethodImportAttributes.CallingConventionWinApi | MethodImportAttributes.ExactSpelling | MethodImportAttributes.CharSetAuto }, // M17 2879new { attr = MakeDllImport(charSet: CharSet.Auto, exactSpelling: false), expected = MethodImportAttributes.CallingConventionWinApi | MethodImportAttributes.CharSetAuto }, // M18 2882new { attr = MakeDllImport(preserveSig: true), expected = MethodImportAttributes.CallingConventionWinApi}, // M19 2883new { attr = MakeDllImport(preserveSig: false), expected = MethodImportAttributes.CallingConventionWinApi}, // M20 2886new { attr = MakeDllImport(setLastError: true), expected = MethodImportAttributes.CallingConventionWinApi | MethodImportAttributes.SetLastError}, // M21 2887new { attr = MakeDllImport(setLastError: false), expected = MethodImportAttributes.CallingConventionWinApi}, // M22 2890new { attr = MakeDllImport(bestFitMapping: true), expected = MethodImportAttributes.CallingConventionWinApi | MethodImportAttributes.BestFitMappingEnable}, // M23 2891new { attr = MakeDllImport(bestFitMapping: false), expected = MethodImportAttributes.CallingConventionWinApi | MethodImportAttributes.BestFitMappingDisable}, // M24 2894new { attr = MakeDllImport(throwOnUnmappableChar: true), expected = MethodImportAttributes.CallingConventionWinApi | MethodImportAttributes.ThrowOnUnmappableCharEnable}, // M23 2895new { attr = MakeDllImport(throwOnUnmappableChar: false), expected = MethodImportAttributes.CallingConventionWinApi | MethodImportAttributes.ThrowOnUnmappableCharDisable}, // M24 2899expected = MethodImportAttributes.CallingConventionWinApi | MethodImportAttributes.SetLastError }, // M25 2903expected = MethodImportAttributes.CallingConventionWinApi | MethodImportAttributes.SetLastError }, // M26 3436Assert.Equal(MethodImportAttributes.CharSetAnsi, import.Attributes & MethodImportAttributes.CharSetMask); 3468Assert.Equal(MethodImportAttributes.None, import.Attributes & MethodImportAttributes.CharSetMask);
Microsoft.CodeAnalysis.VisualBasic (9)
Symbols\Source\SourceMethodSymbol.vb (9)
286Private Shared Function GetPInvokeAttributes(syntax As DeclareStatementSyntax) As MethodImportAttributes 287Dim result As MethodImportAttributes 290result = MethodImportAttributes.CharSetAnsi Or MethodImportAttributes.ExactSpelling 293result = MethodImportAttributes.CharSetUnicode Or MethodImportAttributes.ExactSpelling 296result = MethodImportAttributes.CharSetAuto 299Return result Or MethodImportAttributes.CallingConventionWinApi Or MethodImportAttributes.SetLastError
System.Reflection.Emit (24)
System\Reflection\Emit\ModuleBuilderImpl.cs (1)
968MethodImportAttributes attributes, ModuleReferenceHandle moduleHandle) =>
System\Reflection\Emit\PseudoCustomAttributesData.cs (23)
14private readonly MethodImportAttributes _flags; 16internal DllImportData(string moduleName, string? entryPoint, MethodImportAttributes flags) 27public MethodImportAttributes Flags => _flags; 37MethodImportAttributes importAttributes = MethodImportAttributes.None; 61importAttributes |= MethodImportAttributes.ExactSpelling; 67importAttributes |= MethodImportAttributes.SetLastError; 73importAttributes |= MethodImportAttributes.BestFitMappingEnable; 77importAttributes |= MethodImportAttributes.BestFitMappingDisable; 83importAttributes |= MethodImportAttributes.ThrowOnUnmappableCharEnable; 87importAttributes |= MethodImportAttributes.ThrowOnUnmappableCharDisable; 103MethodImportAttributes importAttributes = MatchNativeCallingConvention(nativeCallConv); 109private static MethodImportAttributes MatchNativeCharSet(CharSet nativeCharSet) => 112CharSet.Ansi => MethodImportAttributes.CharSetAnsi, 113CharSet.Auto => MethodImportAttributes.CharSetAuto, 114CharSet.Unicode => MethodImportAttributes.CharSetUnicode, 115_ => MethodImportAttributes.CharSetAuto 118private static MethodImportAttributes MatchNativeCallingConvention(CallingConvention nativeCallConv) => 121CallingConvention.Cdecl => MethodImportAttributes.CallingConventionCDecl, 122CallingConvention.FastCall => MethodImportAttributes.CallingConventionFastCall, 123CallingConvention.StdCall => MethodImportAttributes.CallingConventionStdCall, 124CallingConvention.ThisCall => MethodImportAttributes.CallingConventionThisCall, 125_ => MethodImportAttributes.CallingConventionWinApi // Roslyn defaults with this
System.Reflection.Metadata (6)
System\Reflection\Metadata\Ecma335\MetadataBuilder.Tables.cs (1)
1023MethodImportAttributes attributes,
System\Reflection\Metadata\Internal\Tables.cs (2)
1756var pInvokeMapFlags = (MethodImportAttributes)Block.PeekUInt16(rowOffset + _FlagsOffset);
System\Reflection\Metadata\TypeSystem\MethodImport.cs (3)
8private readonly MethodImportAttributes _attributes; 12internal MethodImport(MethodImportAttributes attributes, StringHandle name, ModuleReferenceHandle module) 19public MethodImportAttributes Attributes { get { return _attributes; } }
System.Reflection.MetadataLoadContext (17)
System\Reflection\TypeLoading\MethodBase\Ecma\EcmaMethodDecoder.cs (17)
123MethodImportAttributes a = mi.Attributes; 124CharSet charSet = (a & MethodImportAttributes.CharSetMask) switch 126MethodImportAttributes.CharSetAnsi => CharSet.Ansi, 127MethodImportAttributes.CharSetAuto => CharSet.Auto, 128MethodImportAttributes.CharSetUnicode => CharSet.Unicode, 131CallingConvention callConv = (a & MethodImportAttributes.CallingConventionMask) switch 133MethodImportAttributes.CallingConventionCDecl => CallingConvention.Cdecl, 134MethodImportAttributes.CallingConventionFastCall => CallingConvention.FastCall, 135MethodImportAttributes.CallingConventionStdCall => CallingConvention.StdCall, 136MethodImportAttributes.CallingConventionThisCall => CallingConvention.ThisCall, 137MethodImportAttributes.CallingConventionWinApi => CallingConvention.Winapi, 143ExactSpelling = (a & MethodImportAttributes.ExactSpelling) != 0, 147SetLastError = (a & MethodImportAttributes.SetLastError) != 0, 148BestFitMapping = (a & MethodImportAttributes.BestFitMappingMask) == MethodImportAttributes.BestFitMappingEnable, 149ThrowOnUnmappableChar = (a & MethodImportAttributes.ThrowOnUnmappableCharMask) == MethodImportAttributes.ThrowOnUnmappableCharEnable,