LCIDs are deprecated in Windows, it now uses locale identifiers that you are familiar with in .NET, like "en-US". Certainly best to get on that bandwagon. You can still pinvoke the legacy function GetLocaleInfo() to get this information, pass LOCALE_SCOUNTRY to get the localized country name. A sample program:
using System;
using System.Text;
using System.Runtime.InteropServices;
class Program {
static void Main(string[] args) {
var buffer = new StringBuilder(256);
if (GetLocaleInfo(2057, 6, buffer, buffer.Capacity) == 0) {
throw new System.ComponentModel.Win32Exception();
}
Console.WriteLine(buffer.ToString());
Console.ReadLine();
}
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
static extern int GetLocaleInfo(int LCID, int LCType, StringBuilder buffer, int buflen);
}
Output: United Kingdom
I'm using the en-US version of Windows so get the English names.