📄 winnls.pas
字号:
CAL_SABBREVMONTHNAME12 = $0000002d; // abbreviated name for December
{$EXTERNALSYM CAL_SABBREVMONTHNAME12}
CAL_SABBREVMONTHNAME13 = $0000002e; // abbreviated name for 13th month (if any)
{$EXTERNALSYM CAL_SABBREVMONTHNAME13}
CAL_SYEARMONTH = $0000002f; // year month format string
{$EXTERNALSYM CAL_SYEARMONTH}
CAL_ITWODIGITYEARMAX = $00000030; // two digit year max
{$EXTERNALSYM CAL_ITWODIGITYEARMAX}
//
// Calendar Enumeration Value.
//
ENUM_ALL_CALENDARS = DWORD($ffffffff); // enumerate all calendars
{$EXTERNALSYM ENUM_ALL_CALENDARS}
//
// Calendar ID Values.
//
CAL_GREGORIAN = 1; // Gregorian (localized) calendar
{$EXTERNALSYM CAL_GREGORIAN}
CAL_GREGORIAN_US = 2; // Gregorian (U.S.) calendar
{$EXTERNALSYM CAL_GREGORIAN_US}
CAL_JAPAN = 3; // Japanese Emperor Era calendar
{$EXTERNALSYM CAL_JAPAN}
CAL_TAIWAN = 4; // Taiwan Era calendar
{$EXTERNALSYM CAL_TAIWAN}
CAL_KOREA = 5; // Korean Tangun Era calendar
{$EXTERNALSYM CAL_KOREA}
CAL_HIJRI = 6; // Hijri (Arabic Lunar) calendar
{$EXTERNALSYM CAL_HIJRI}
CAL_THAI = 7; // Thai calendar
{$EXTERNALSYM CAL_THAI}
CAL_HEBREW = 8; // Hebrew (Lunar) calendar
{$EXTERNALSYM CAL_HEBREW}
CAL_GREGORIAN_ME_FRENCH = 9; // Gregorian Middle East French calendar
{$EXTERNALSYM CAL_GREGORIAN_ME_FRENCH}
CAL_GREGORIAN_ARABIC = 10; // Gregorian Arabic calendar
{$EXTERNALSYM CAL_GREGORIAN_ARABIC}
CAL_GREGORIAN_XLIT_ENGLISH = 11; // Gregorian Transliterated English calendar
{$EXTERNALSYM CAL_GREGORIAN_XLIT_ENGLISH}
CAL_GREGORIAN_XLIT_FRENCH = 12; // Gregorian Transliterated French calendar
{$EXTERNALSYM CAL_GREGORIAN_XLIT_FRENCH}
//
// Language Group ID Values.
//
LGRPID_WESTERN_EUROPE = $0001; // Western Europe & U.S.
{$EXTERNALSYM LGRPID_WESTERN_EUROPE}
LGRPID_CENTRAL_EUROPE = $0002; // Central Europe
{$EXTERNALSYM LGRPID_CENTRAL_EUROPE}
LGRPID_BALTIC = $0003; // Baltic
{$EXTERNALSYM LGRPID_BALTIC}
LGRPID_GREEK = $0004; // Greek
{$EXTERNALSYM LGRPID_GREEK}
LGRPID_CYRILLIC = $0005; // Cyrillic
{$EXTERNALSYM LGRPID_CYRILLIC}
LGRPID_TURKISH = $0006; // Turkish
{$EXTERNALSYM LGRPID_TURKISH}
LGRPID_JAPANESE = $0007; // Japanese
{$EXTERNALSYM LGRPID_JAPANESE}
LGRPID_KOREAN = $0008; // Korean
{$EXTERNALSYM LGRPID_KOREAN}
LGRPID_TRADITIONAL_CHINESE = $0009; // Traditional Chinese
{$EXTERNALSYM LGRPID_TRADITIONAL_CHINESE}
LGRPID_SIMPLIFIED_CHINESE = $000a; // Simplified Chinese
{$EXTERNALSYM LGRPID_SIMPLIFIED_CHINESE}
LGRPID_THAI = $000b; // Thai
{$EXTERNALSYM LGRPID_THAI}
LGRPID_HEBREW = $000c; // Hebrew
{$EXTERNALSYM LGRPID_HEBREW}
LGRPID_ARABIC = $000d; // Arabic
{$EXTERNALSYM LGRPID_ARABIC}
LGRPID_VIETNAMESE = $000e; // Vietnamese
{$EXTERNALSYM LGRPID_VIETNAMESE}
LGRPID_INDIC = $000f; // Indic
{$EXTERNALSYM LGRPID_INDIC}
LGRPID_GEORGIAN = $0010; // Georgian
{$EXTERNALSYM LGRPID_GEORGIAN}
LGRPID_ARMENIAN = $0011; // Armenian
{$EXTERNALSYM LGRPID_ARMENIAN}
////////////////////////////////////////////////////////////////////////////
//
// Typedefs
//
// Define all types for the NLS component here.
//
////////////////////////////////////////////////////////////////////////////
//
// Language Group ID.
//
type
LGRPID = DWORD;
{$EXTERNALSYM LGRPID}
//
// Locale type constant.
//
LCTYPE = DWORD;
{$EXTERNALSYM LCTYPE}
//
// Calendar type constant.
//
CALTYPE = DWORD;
{$EXTERNALSYM CALTYPE}
//
// Calendar ID.
//
CALID = DWORD;
{$EXTERNALSYM CALID}
//
// CP Info.
//
LPCPINFO = ^CPINFO;
{$EXTERNALSYM LPCPINFO}
_cpinfo = record
MaxCharSize: UINT; // max length (in bytes) of a char
DefaultChar: array [0..MAX_DEFAULTCHAR - 1] of BYTE; // default character
LeadByte: array [0..MAX_LEADBYTES - 1] of BYTE; // lead byte ranges
end;
{$EXTERNALSYM _cpinfo}
CPINFO = _cpinfo;
{$EXTERNALSYM CPINFO}
TCpInfo = CPINFO;
PCpInfo = LPCPINFO;
{$EXTERNALSYM CPINFOEXA}
LPCPINFOEXA = ^CPINFOEXA;
_cpinfoexA = record
MaxCharSize: UINT; // max length (in bytes) of a char
DefaultChar: array [0..MAX_DEFAULTCHAR - 1] of BYTE; // default character (MB)
LeadByte: array [0..MAX_LEADBYTES - 1] of BYTE; // lead byte ranges
UnicodeDefaultChar: WCHAR; // default character (Unicode)
CodePage: UINT; // code page id
CodePageName: array [0..MAX_PATH - 1] of CHAR; // code page name (Unicode)
end;
{$EXTERNALSYM _cpinfoexA}
CPINFOEXA = _cpinfoexA;
{$EXTERNALSYM LPCPINFOEXA}
TCpInfoExA = CPINFOEXA;
PCpInfoExA = LPCPINFOEXA;
LPCPINFOEXW = ^CPINFOEXW;
{$EXTERNALSYM LPCPINFOEXW}
_cpinfoexW = record
MaxCharSize: UINT; // max length (in bytes) of a char
DefaultChar: array [0..MAX_DEFAULTCHAR - 1] of BYTE; // default character (MB)
LeadByte: array [0..MAX_LEADBYTES - 1] of BYTE; // lead byte ranges
UnicodeDefaultChar: WCHAR; // default character (Unicode)
CodePage: UINT; // code page id
CodePageName: array [0..MAX_PATH - 1] of WCHAR; // code page name (Unicode)
end;
{$EXTERNALSYM _cpinfoexW}
CPINFOEXW = _cpinfoexW;
{$EXTERNALSYM CPINFOEXW}
TCpInfoExW = CPINFOEXW;
PCpInfoExW = LPCPINFOEXW;
{$IFDEF UNICODE}
CPINFOEX = CPINFOEXW;
{$EXTERNALSYM CPINFOEX}
LPCPINFOEX = LPCPINFOEXW;
{$EXTERNALSYM LPCPINFOEX}
TCpInfoEx = TCpInfoExW;
PCpInfoEx = PCpInfoExW;
{$ELSE}
CPINFOEX = CPINFOEXA;
{$EXTERNALSYM CPINFOEX}
LPCPINFOEX = LPCPINFOEXA;
{$EXTERNALSYM LPCPINFOEX}
TCpInfoEx = TCpInfoExA;
PCpInfoEx = PCpInfoExA;
{$ENDIF}
//
// Number format.
//
LPNUMBERFMTA = ^NUMBERFMTA;
{$EXTERNALSYM LPNUMBERFMTA}
_numberfmtA = record
NumDigits: UINT; // number of decimal digits
LeadingZero: UINT; // if leading zero in decimal fields
Grouping: UINT; // group size left of decimal
lpDecimalSep: LPSTR; // ptr to decimal separator string
lpThousandSep: LPSTR; // ptr to thousand separator string
NegativeOrder: UINT; // negative number ordering
end;
{$EXTERNALSYM _numberfmtA}
NUMBERFMTA = _numberfmtA;
{$EXTERNALSYM NUMBERFMTA}
TNumberFmtA = NUMBERFMTA;
PNumberFmtA = LPNUMBERFMTA;
LPNUMBERFMTW = ^NUMBERFMTW;
{$EXTERNALSYM LPNUMBERFMTW}
_numberfmtW = record
NumDigits: UINT; // number of decimal digits
LeadingZero: UINT; // if leading zero in decimal fields
Grouping: UINT; // group size left of decimal
lpDecimalSep: LPWSTR; // ptr to decimal separator string
lpThousandSep: LPWSTR; // ptr to thousand separator string
NegativeOrder: UINT; // negative number ordering
end;
{$EXTERNALSYM _numberfmtW}
NUMBERFMTW = _numberfmtW;
{$EXTERNALSYM NUMBERFMTW}
TNumberFmtW = NUMBERFMTW;
PNumberFmtW = LPNUMBERFMTW;
{$IFDEF UNICODE}
NUMBERFMT = NUMBERFMTW;
{$EXTERNALSYM NUMBERFMT}
LPNUMBERFMT = LPNUMBERFMTW;
{$EXTERNALSYM LPNUMBERFMT}
TNumberFmt = TNumberFmtW;
PNumberFmt = TNumberFmtW;
{$ELSE}
NUMBERFMT = NUMBERFMTA;
{$EXTERNALSYM NUMBERFMT}
LPNUMBERFMT = LPNUMBERFMTA;
{$EXTERNALSYM LPNUMBERFMT}
TNumberFmt = TNumberFmtA;
PNumberFmt = TNumberFmtA;
{$ENDIF}
//
// Currency format.
//
LPCURRENCYFMTA = ^CURRENCYFMTA;
{$EXTERNALSYM LPCURRENCYFMTA}
_currencyfmtA = record
NumDigits: UINT; // number of decimal digits
LeadingZero: UINT; // if leading zero in decimal fields
Grouping: UINT; // group size left of decimal
lpDecimalSep: LPSTR; // ptr to decimal separator string
lpThousandSep: LPSTR; // ptr to thousand separator string
NegativeOrder: UINT; // negative currency ordering
PositiveOrder: UINT; // positive currency ordering
lpCurrencySymbol: LPSTR; // ptr to currency symbol string
end;
{$EXTERNALSYM _currencyfmtA}
CURRENCYFMTA = _currencyfmtA;
{$EXTERNALSYM CURRENCYFMTA}
TCurrencyFmtA = CURRENCYFMTA;
PCurrencyFmtA = LPCURRENCYFMTA;
LPCURRENCYFMTW = ^CURRENCYFMTW;
{$EXTERNALSYM LPCURRENCYFMTW}
_currencyfmtW = record
NumDigits: UINT; // number of decimal digits
LeadingZero: UINT; // if leading zero in decimal fields
Grouping: UINT; // group size left of decimal
lpDecimalSep: LPWSTR; // ptr to decimal separator string
lpThousandSep: LPWSTR; // ptr to thousand separator string
NegativeOrder: UINT; // negative currency ordering
PositiveOrder: UINT; // positive currency ordering
lpCurrencySymbol: LPWSTR; // ptr to currency symbol string
end;
{$EXTERNALSYM _currencyfmtW}
CURRENCYFMTW = _currencyfmtW;
{$EXTERNALSYM CURRENCYFMTW}
TCurrencyFmtW = CURRENCYFMTW;
PCurrencyFmtW = LPCURRENCYFMTW;
{$IFDEF UNICODE}
CURRENCYFMT = CURRENCYFMTW;
{$EXTERNALSYM CURRENCYFMT}
LPCURRENCYFMT = LPCURRENCYFMTW;
{$EXTERNALSYM LPCURRENCYFMT}
TCurrencyFmt = TCurrencyFmtW;
PCurrencyFmt = PCurrencyFmtW;
{$ELSE}
CURRENCYFMT = CURRENCYFMTA;
{$EXTERNALSYM CURRENCYFMT}
LPCURRENCYFMT = LPCURRENCYFMTA;
{$EXTERNALSYM LPCURRENCYFMT}
TCurrencyFmt = TCurrencyFmtA;
PCurrencyFmt = PCurrencyFmtA;
{$ENDIF}
//
// Enumeration function constants.
//
LANGUAGEGROUP_ENUMPROCA = function (LanguageGroup: LGRPID; lpLanguageGroupString,
lpLanguageGroupNameSting: LPSTR; dwFlags: DWORD; lParam: LONG_PTR): BOOL; stdcall;
{$EXTERNALSYM LANGUAGEGROUP_ENUMPROCA}
LANGGROUPLOCALE_ENUMPROCA = function (LanguageGroup: LGRPID; Locale: LCID;
lpLocaleString: LPSTR; lParam: LONG_PTR): BOOL; stdcall;
{$EXTERNALSYM LANGGROUPLOCALE_ENUMPROCA}
UILANGUAGE_ENUMPROCA = function (lpUILanguageString: LPSTR; lParam: LONG_PTR): BOOL; stdcall;
{$EXTERNALSYM UILANGUAGE_ENUMPROCA}
LOCALE_ENUMPROCA = function (lpLocaleString: LPSTR): BOOL; stdcall;
{$EXTERNALSYM LOCALE_ENUMPROCA}
CODEPAGE_ENUMPROCA = function (lpCodePAgeString: LPSTR): BOOL; stdcall;
{$EXTERNALSYM CODEPAGE_ENUMPROCA}
DATEFMT_ENUMPROCA = function (lpDateFormatString: LPSTR): BOOL; stdcall;
{$EXTERNALSYM DATEFMT_ENUMPROCA}
DATEFMT_ENUMPROCEXA = function (lpDateFormatString: LPSTR; CalenderId: CALID): BOOL; stdcall;
{$EXTERNALSYM DATEFMT_ENUMPROCEXA}
TIMEFMT_ENUMPROCA = function (lpTimeFormatString: LPSTR): BOOL; stdcall;
{$EXTERNALSYM TIMEFMT_ENUMPROCA}
CALINFO_ENUMPROCA = function (lpCalendarInfoString: LPSTR): BOOL; stdcall;
{$EXTERNALSYM CALINFO_ENUMPROCA}
CALINFO_ENUMPROCEXA = function (lpCalendarInfoString: LPSTR; Calendar: CALID): BOOL; stdcall;
{$EXTERNALSYM CALINFO_ENUMPROCEXA}
LANGUAGEGROUP_ENUMPROCW = function (LanguageGroup: LGRPID; lpLanguageGroupString,
lpLanguageGroupNameSting: LPWSTR; dwFlags: DWORD; lParam: LONG_PTR): BOOL; stdcall;
{$EXTERNALSYM LANGUAGEGROUP_ENUMPROCW}
LANGGROUPLOCALE_ENUMPROCW = function (LanguageGroup: LGRPID; Locale: LCID;
lpLocaleString: LPWSTR; lParam: LONG_PTR): BOOL; stdcall;
{$EXTERNALSYM LANGGROUPLOCALE_ENUMPROCW}
UILANGUAGE_ENUMPROCW = function (lpUILanguageString: LPWSTR; lParam: LONG_PTR): BOOL; stdcall;
{$EXTERNALSYM UILANGUAGE_ENUMPROCW}
LOCALE_ENUMPROCW = function (lpLocaleString: LPWSTR): BOOL; stdcall;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -