This documentation is archived and is not being maintained.

LCIDConversionAttribute Class

Indicates that a method's unmanaged signature expects a locale identifier (LCID) parameter.

Namespace:  System.Runtime.InteropServices
Assembly:  mscorlib (in mscorlib.dll)

[AttributeUsageAttribute(AttributeTargets.Method, Inherited = false)]
public sealed class LCIDConversionAttribute : Attribute

You can apply this attribute to methods.

This attribute indicates that the marshaler should expect an LCID to be passed after the designated method argument. When calls are made from managed to unmanaged code, the marshaler supplies the LCID argument automatically.

The following example demonstrates different signature translations based on different values supplied to LCIDConversionAttribute.

	using System;
	using System.Runtime.InteropServices;
	using System.Reflection;

	class LCIDAttrSample
		private const int LCID_INSTALLED = 1;
		private const int LCID_SUPPORTED = 2;

		[DllImport("KERNEL32.DLL", EntryPoint="IsValidLocale", SetLastError = true, CharSet = CharSet.Auto)]
		[LCIDConversionAttribute(0)] // Position of the LCID argument 
		public static extern bool IsValidLocale(
													uint dwFlags            // options

		public void CheckCurrentLCID()
			MethodInfo mthIfo = this.GetType().GetMethod("IsValidLocale");
			Attribute attr = Attribute.GetCustomAttribute(mthIfo,typeof(LCIDConversionAttribute));

			if( attr != null)
				LCIDConversionAttribute lcidAttr = (LCIDConversionAttribute)attr;
				Console.WriteLine("Position of the LCID argument in the unmanaged signature: " + lcidAttr.Value.ToString());

			bool res = IsValidLocale(LCID_INSTALLED);
			Console.WriteLine("Result LCID_INSTALLED " + res.ToString());
			res = IsValidLocale(LCID_SUPPORTED);
			Console.WriteLine("Result LCID_SUPPORTED " + res.ToString());

		static void Main(string[] args)
			LCIDAttrSample smpl = new LCIDAttrSample();


Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0