📄 winnt.pas
字号:
// The x86 C compiler understands inline assembler. Therefore, inline functions
// that employ inline assembler are used for shifts of 0..31. The multiplies
// rely on the compiler recognizing the cast of the multiplicand to int64 to
// generate the optimal code inline.
//
function Int32x32To64(a, b: LONG): LONGLONG;
{$EXTERNALSYM Int32x32To64}
function UInt32x32To64(a, b: DWORD): ULONGLONG;
{$EXTERNALSYM UInt32x32To64}
function Int64ShllMod32(Value: ULONGLONG; ShiftCount: DWORD): ULONGLONG;
{$EXTERNALSYM Int64ShllMod32}
function Int64ShraMod32(Value: LONGLONG; ShiftCount: DWORD): LONGLONG;
{$EXTERNALSYM Int64ShraMod32}
function Int64ShrlMod32(Value: ULONGLONG; ShiftCount: DWORD): ULONGLONG;
{$EXTERNALSYM Int64ShrlMod32}
const
ANSI_NULL = CHAR(0);
{$EXTERNALSYM ANSI_NULL}
UNICODE_NULL = WCHAR(0);
{$EXTERNALSYM UNICODE_NULL}
type
BOOLEAN = BYTE;
{$EXTERNALSYM BOOLEAN}
PBOOLEAN = ^BOOLEAN;
{$EXTERNALSYM PBOOLEAN}
//
// Doubly linked list structure. Can be used as either a list head, or
// as link words.
//
type
PListEntry = ^TListEntry;
_LIST_ENTRY = record
Flink: PListEntry;
Blink: PListEntry;
end;
{$EXTERNALSYM _LIST_ENTRY}
LIST_ENTRY = _LIST_ENTRY;
{$EXTERNALSYM LIST_ENTRY}
PLIST_ENTRY = ^LIST_ENTRY;
{$EXTERNALSYM PLIST_ENTRY}
PRLIST_ENTRY = ^LIST_ENTRY;
{$EXTERNALSYM PLIST_ENTRY}
TListEntry = _LIST_ENTRY;
//
// Singly linked list structure. Can be used as either a list head, or
// as link words.
//
PSingleListEntry = ^TSingleListEntry;
_SINGLE_LIST_ENTRY = record
Next: PSingleListEntry;
end;
{$EXTERNALSYM _SINGLE_LIST_ENTRY}
SINGLE_LIST_ENTRY = _SINGLE_LIST_ENTRY;
{$EXTERNALSYM SINGLE_LIST_ENTRY}
PSINGLE_LIST_ENTRY = ^SINGLE_LIST_ENTRY;
{$EXTERNALSYM PSINGLE_LIST_ENTRY}
TSingleListEntry = _SINGLE_LIST_ENTRY;
//
// These are needed for portable debugger support.
//
PListEntry32 = ^TListEntry32;
LIST_ENTRY32 = record
Flink: DWORD;
Blink: DWORD;
end;
{$EXTERNALSYM LIST_ENTRY32}
PLIST_ENTRY32 = ^LIST_ENTRY32;
{$EXTERNALSYM PLIST_ENTRY32}
TListEntry32 = LIST_ENTRY32;
PListEntry64 = ^TListEntry64;
LIST_ENTRY64 = record
Flink: ULONGLONG;
Blink: ULONGLONG;
end;
{$EXTERNALSYM LIST_ENTRY64}
PLIST_ENTRY64 = ^LIST_ENTRY64;
TListEntry64 = LIST_ENTRY64;
// #include <guiddef.h>
PObjectId = ^TObjectId;
_OBJECTID = record // size is 20
Lineage: GUID;
Uniquifier: DWORD;
end;
{$EXTERNALSYM _OBJECTID}
OBJECTID = _OBJECTID;
{$EXTERNALSYM OBJECTID}
TObjectId = _OBJECTID;
const
MINCHAR = $80;
{$EXTERNALSYM MINCHAR}
MAXCHAR = $7f;
{$EXTERNALSYM MAXCHAR}
MINSHORT = $8000;
{$EXTERNALSYM MINSHORT}
MAXSHORT = $7fff;
{$EXTERNALSYM MAXSHORT}
MINLONG = DWORD($80000000);
{$EXTERNALSYM MINLONG}
MAXLONG = $7fffffff;
{$EXTERNALSYM MAXLONG}
WinType *)
const
MAXBYTE = $ff;
{$EXTERNALSYM MAXBYTE}
MAXWORD = $ffff;
{$EXTERNALSYM MAXWORD}
MAXDWORD = DWORD($ffffffff);
{$EXTERNALSYM MAXDWORD}
const
VER_SERVER_NT = DWORD($80000000);
{$EXTERNALSYM VER_SERVER_NT}
VER_WORKSTATION_NT = $40000000;
{$EXTERNALSYM VER_WORKSTATION_NT}
VER_SUITE_SMALLBUSINESS = $00000001;
{$EXTERNALSYM VER_SUITE_SMALLBUSINESS}
VER_SUITE_ENTERPRISE = $00000002;
{$EXTERNALSYM VER_SUITE_ENTERPRISE}
VER_SUITE_BACKOFFICE = $00000004;
{$EXTERNALSYM VER_SUITE_BACKOFFICE}
VER_SUITE_COMMUNICATIONS = $00000008;
{$EXTERNALSYM VER_SUITE_COMMUNICATIONS}
VER_SUITE_TERMINAL = $00000010;
{$EXTERNALSYM VER_SUITE_TERMINAL}
VER_SUITE_SMALLBUSINESS_RESTRICTED = $00000020;
{$EXTERNALSYM VER_SUITE_SMALLBUSINESS_RESTRICTED}
VER_SUITE_EMBEDDEDNT = $00000040;
{$EXTERNALSYM VER_SUITE_EMBEDDEDNT}
VER_SUITE_DATACENTER = $00000080;
{$EXTERNALSYM VER_SUITE_DATACENTER}
VER_SUITE_SINGLEUSERTS = $00000100;
{$EXTERNALSYM VER_SUITE_SINGLEUSERTS}
//
// Language IDs.
//
// The following two combinations of primary language ID and
// sublanguage ID have special semantics:
//
// Primary Language ID Sublanguage ID Result
// ------------------- --------------- ------------------------
// LANG_NEUTRAL SUBLANG_NEUTRAL Language neutral
// LANG_NEUTRAL SUBLANG_DEFAULT User default language
// LANG_NEUTRAL SUBLANG_SYS_DEFAULT System default language
//
//
// Primary language IDs.
//
const
LANG_NEUTRAL = $00;
{$EXTERNALSYM LANG_NEUTRAL}
LANG_AFRIKAANS = $36;
{$EXTERNALSYM LANG_AFRIKAANS}
LANG_ALBANIAN = $1c;
{$EXTERNALSYM LANG_ALBANIAN}
LANG_ARABIC = $01;
{$EXTERNALSYM LANG_ARABIC}
LANG_ARMENIAN = $2b;
{$EXTERNALSYM LANG_ARMENIAN}
LANG_ASSAMESE = $4d;
{$EXTERNALSYM LANG_ASSAMESE}
LANG_AZERI = $2c;
{$EXTERNALSYM LANG_AZERI}
LANG_BASQUE = $2d;
{$EXTERNALSYM LANG_BASQUE}
LANG_BELARUSIAN = $23;
{$EXTERNALSYM LANG_BELARUSIAN}
LANG_BENGALI = $45;
{$EXTERNALSYM LANG_BENGALI}
LANG_BULGARIAN = $02;
{$EXTERNALSYM LANG_BULGARIAN}
LANG_CATALAN = $03;
{$EXTERNALSYM LANG_CATALAN}
LANG_CHINESE = $04;
{$EXTERNALSYM LANG_CHINESE}
LANG_CROATIAN = $1a;
{$EXTERNALSYM LANG_CROATIAN}
LANG_CZECH = $05;
{$EXTERNALSYM LANG_CZECH}
LANG_DANISH = $06;
{$EXTERNALSYM LANG_DANISH}
LANG_DUTCH = $13;
{$EXTERNALSYM LANG_DUTCH}
LANG_ENGLISH = $09;
{$EXTERNALSYM LANG_ENGLISH}
LANG_ESTONIAN = $25;
{$EXTERNALSYM LANG_ESTONIAN}
LANG_FAEROESE = $38;
{$EXTERNALSYM LANG_FAEROESE}
LANG_FARSI = $29;
{$EXTERNALSYM LANG_FARSI}
LANG_FINNISH = $0b;
{$EXTERNALSYM LANG_FINNISH}
LANG_FRENCH = $0c;
{$EXTERNALSYM LANG_FRENCH}
LANG_GEORGIAN = $37;
{$EXTERNALSYM LANG_GEORGIAN}
LANG_GERMAN = $07;
{$EXTERNALSYM LANG_GERMAN}
LANG_GREEK = $08;
{$EXTERNALSYM LANG_GREEK}
LANG_GUJARATI = $47;
{$EXTERNALSYM LANG_GUJARATI}
LANG_HEBREW = $0d;
{$EXTERNALSYM LANG_HEBREW}
LANG_HINDI = $39;
{$EXTERNALSYM LANG_HINDI}
LANG_HUNGARIAN = $0e;
{$EXTERNALSYM LANG_HUNGARIAN}
LANG_ICELANDIC = $0f;
{$EXTERNALSYM LANG_ICELANDIC}
LANG_INDONESIAN = $21;
{$EXTERNALSYM LANG_INDONESIAN}
LANG_ITALIAN = $10;
{$EXTERNALSYM LANG_ITALIAN}
LANG_JAPANESE = $11;
{$EXTERNALSYM LANG_JAPANESE}
LANG_KANNADA = $4b;
{$EXTERNALSYM LANG_KANNADA}
LANG_KASHMIRI = $60;
{$EXTERNALSYM LANG_KASHMIRI}
LANG_KAZAK = $3f;
{$EXTERNALSYM LANG_KAZAK}
LANG_KONKANI = $57;
{$EXTERNALSYM LANG_KONKANI}
LANG_KOREAN = $12;
{$EXTERNALSYM LANG_KOREAN}
LANG_LATVIAN = $26;
{$EXTERNALSYM LANG_LATVIAN}
LANG_LITHUANIAN = $27;
{$EXTERNALSYM LANG_LITHUANIAN}
LANG_MACEDONIAN = $2f; // the Former Yugoslav Republic of Macedonia
{$EXTERNALSYM LANG_MACEDONIAN}
LANG_MALAY = $3e;
{$EXTERNALSYM LANG_MALAY}
LANG_MALAYALAM = $4c;
{$EXTERNALSYM LANG_MALAYALAM}
LANG_MANIPURI = $58;
{$EXTERNALSYM LANG_MANIPURI}
LANG_MARATHI = $4e;
{$EXTERNALSYM LANG_MARATHI}
LANG_NEPALI = $61;
{$EXTERNALSYM LANG_NEPALI}
LANG_NORWEGIAN = $14;
{$EXTERNALSYM LANG_NORWEGIAN}
LANG_ORIYA = $48;
{$EXTERNALSYM LANG_ORIYA}
LANG_POLISH = $15;
{$EXTERNALSYM LANG_POLISH}
LANG_PORTUGUESE = $16;
{$EXTERNALSYM LANG_PORTUGUESE}
LANG_PUNJABI = $46;
{$EXTERNALSYM LANG_PUNJABI}
LANG_ROMANIAN = $18;
{$EXTERNALSYM LANG_ROMANIAN}
LANG_RUSSIAN = $19;
{$EXTERNALSYM LANG_RUSSIAN}
LANG_SANSKRIT = $4f;
{$EXTERNALSYM LANG_SANSKRIT}
LANG_SERBIAN = $1a;
{$EXTERNALSYM LANG_SERBIAN}
LANG_SINDHI = $59;
{$EXTERNALSYM LANG_SINDHI}
LANG_SLOVAK = $1b;
{$EXTERNALSYM LANG_SLOVAK}
LANG_SLOVENIAN = $24;
{$EXTERNALSYM LANG_SLOVENIAN}
LANG_SPANISH = $0a;
{$EXTERNALSYM LANG_SPANISH}
LANG_SWAHILI = $41;
{$EXTERNALSYM LANG_SWAHILI}
LANG_SWEDISH = $1d;
{$EXTERNALSYM LANG_SWEDISH}
LANG_TAMIL = $49;
{$EXTERNALSYM LANG_TAMIL}
LANG_TATAR = $44;
{$EXTERNALSYM LANG_TATAR}
LANG_TELUGU = $4a;
{$EXTERNALSYM LANG_TELUGU}
LANG_THAI = $1e;
{$EXTERNALSYM LANG_THAI}
LANG_TURKISH = $1f;
{$EXTERNALSYM LANG_TURKISH}
LANG_UKRAINIAN = $22;
{$EXTERNALSYM LANG_UKRAINIAN}
LANG_URDU = $20;
{$EXTERNALSYM LANG_URDU}
LANG_UZBEK = $43;
{$EXTERNALSYM LANG_UZBEK}
LANG_VIETNAMESE = $2a;
{$EXTERNALSYM LANG_VIETNAMESE}
//
// Sublanguage IDs.
//
// The name immediately following SUBLANG_ dictates which primary
// language ID that sublanguage ID can be combined with to form a
// valid language ID.
//
SUBLANG_NEUTRAL = $00; // language neutral
{$EXTERNALSYM SUBLANG_NEUTRAL}
SUBLANG_DEFAULT = $01; // user default
{$EXTERNALSYM SUBLANG_DEFAULT}
SUBLANG_SYS_DEFAULT = $02; // system default
{$EXTERNALSYM SUBLANG_SYS_DEFAULT}
SUBLANG_ARABIC_SAUDI_ARABIA = $01; // Arabic (Saudi Arabia)
{$EXTERNALSYM SUBLANG_ARABIC_SAUDI_ARABIA}
SUBLANG_ARABIC_IRAQ = $02; // Arabic (Iraq)
{$EXTERNALSYM SUBLANG_ARABIC_IRAQ}
SUBLANG_ARABIC_EGYPT = $03; // Arabic (Egypt)
{$EXTERNALSYM SUBLANG_ARABIC_EGYPT}
SUBLANG_ARABIC_LIBYA = $04; // Arabic (Libya)
{$EXTERNALSYM SUBLANG_ARABIC_LIBYA}
SUBLANG_ARABIC_ALGERIA = $05; // Arabic (Algeria)
{$EXTERNALSYM SUBLANG_ARABIC_ALGERIA}
SUBLANG_ARABIC_MOROCCO = $06; // Arabic (Morocco)
{$EXTERNALSYM SUBLANG_ARABIC_MOROCCO}
SUBLANG_ARABIC_TUNISIA = $07; // Arabic (Tunisia)
{$EXTERNALSYM SUBLANG_ARABIC_TUNISIA}
SUBLANG_ARABIC_OMAN = $08; // Arabic (Oman)
{$EXTERNALSYM SUBLANG_ARABIC_OMAN}
SUBLANG_ARABIC_YEMEN = $09; // Arabic (Yemen)
{$EXTERNALSYM SUBLANG_ARABIC_YEMEN}
SUBLANG_ARABIC_SYRIA = $0a; // Arabic (Syria)
{$EXTERNALSYM SUBLANG_ARABIC_SYRIA}
SUBLANG_ARABIC_JORDAN = $0b; // Arabic (Jordan)
{$EXTERNALSYM SUBLANG_ARABIC_JORDAN}
SUBLANG_ARABIC_LEBANON = $0c; // Arabic (Lebanon)
{$EXTERNALSYM SUBLANG_ARABIC_LEBANON}
SUBLANG_ARABIC_KUWAIT = $0d; // Arabic (Kuwait)
{$EXTERNALSYM SUBLANG_ARABIC_KUWAIT}
SUBLANG_ARABIC_UAE = $0e; // Arabic (U.A.E)
{$EXTERNALSYM SUBLANG_ARABIC_UAE}
SUBLANG_ARABIC_BAHRAIN = $0f; // Arabic (Bahrain)
{$EXTERNALSYM SUBLANG_ARABIC_BAHRAIN}
SUBLANG_ARABIC_QATAR = $10; // Arabic (Qatar)
{$EXTERNALSYM SUBLANG_ARABIC_QATAR}
SUBLANG_AZERI_LATIN = $01; // Azeri (Latin)
{$EXTERNALSYM SUBLANG_AZERI_LATIN}
SUBLANG_AZERI_CYRILLIC = $02; // Azeri (Cyrillic)
{$EXTERNALSYM SUBLANG_AZERI_CYRILLIC}
SUBLANG_CHINESE_TRADITIONAL = $01; // Chinese (Taiwan)
{$EXTERNALSYM SUBLANG_CHINESE_TRADITIONAL}
SUBLANG_CHINESE_SIMPLIFIED = $02; // Chinese (PR China)
{$EXTERNALSYM SUBLANG_CHINESE_SIMPLIFIED}
SUBLANG_CHINESE_HONGKONG = $03; // Chinese (Hong Kong S.A.R., P.R.C.)
{$EXTERNALSYM SUBLANG_CHINESE_HONGKONG}
SUBLANG_CHINESE_SINGAPORE = $04; // Chinese (Singapore)
{$EXTERNALSYM SUBLANG_CHINESE_SINGAPORE}
SUBLANG_CHINESE_MACAU = $05; // Chinese (Macau)
{$EXTERNALSYM SUBLANG_CHINESE_MACAU}
SUBLANG_DUTCH = $01; // Dutch
{$EXTERNALSYM SUBLANG_DUTCH}
SUBLANG_DUTCH_BELGIAN = $02; // Dutch (Belgian)
{$EXTERNALSYM SUBLANG_DUTCH_BELGIAN}
SUBLANG_ENGLISH_US = $01; // English (USA)
{$EXTERNALSYM SUBLANG_ENGLISH_US}
SUBLANG_ENGLISH_UK = $02; // English (UK)
{$EXTERNALSYM SUBLANG_ENGLISH_UK}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -