diff --git a/PJSysInfo.pas b/PJSysInfo.pas index 0089eb5..2a2152b 100644 --- a/PJSysInfo.pas +++ b/PJSysInfo.pas @@ -157,6 +157,7 @@ interface wReserved: Byte; // reserved for future use end; OSVERSIONINFOEXA = _OSVERSIONINFOEXA; + {$EXTERNALSYM OSVERSIONINFOEXA} TOSVersionInfoExA = _OSVERSIONINFOEXA; POSVersionInfoExA = ^TOSVersionInfoExA; @@ -175,6 +176,7 @@ interface wReserved: Byte; // reserved for future use end; OSVERSIONINFOEXW = _OSVERSIONINFOEXW; + {$EXTERNALSYM OSVERSIONINFOEXW} TOSVersionInfoExW = _OSVERSIONINFOEXW; POSVersionInfoExW = ^TOSVersionInfoExW; @@ -183,12 +185,16 @@ interface // which structure to use as default. {$IFDEF UNICODE} _OSVERSIONINFOEX = _OSVERSIONINFOEXW; + {$EXTERNALSYM _OSVERSIONINFOEXW} OSVERSIONINFOEX = OSVERSIONINFOEXW; + {$EXTERNALSYM OSVERSIONINFOEX} TOSVersionInfoEx = TOSVersionInfoExW; POSVersionInfoEx = POSVersionInfoExW; {$ELSE} _OSVERSIONINFOEX = _OSVERSIONINFOEXA; + {$EXTERNALSYM _OSVERSIONINFOEXA} OSVERSIONINFOEX = OSVERSIONINFOEXA; + {$EXTERNALSYM OSVERSIONINFOEX} TOSVersionInfoEx = TOSVersionInfoExA; POSVersionInfoEx = POSVersionInfoExA; {$ENDIF} @@ -199,61 +205,107 @@ interface // Conditional consts used in VerSetConditionMask calls VER_EQUAL = 1; // current value = specified value. + {$EXTERNALSYM VER_EQUAL} VER_GREATER = 2; // current value > specified value. + {$EXTERNALSYM VER_GREATER} VER_GREATER_EQUAL = 3; // current value >= specified value. + {$EXTERNALSYM VER_GREATER_EQUAL} VER_LESS = 4; // current value < specified value. + {$EXTERNALSYM VER_LESS} VER_LESS_EQUAL = 5; // current value <= specified value. + {$EXTERNALSYM VER_LESS_EQUAL} // Platform ID defines // these are not included in Windows unit of all supported Delphis VER_BUILDNUMBER = $00000004; + {$EXTERNALSYM VER_BUILDNUMBER} VER_MAJORVERSION = $00000002; + {$EXTERNALSYM VER_MAJORVERSION} VER_MINORVERSION = $00000001; + {$EXTERNALSYM VER_MINORVERSION} VER_PLATFORMID = $00000008; + {$EXTERNALSYM VER_PLATFORMID} VER_SERVICEPACKMAJOR = $00000020; + {$EXTERNALSYM VER_SERVICEPACKMAJOR} VER_SERVICEPACKMINOR = $00000010; + {$EXTERNALSYM VER_SERVICEPACKMINOR} VER_SUITENAME = $00000040; + {$EXTERNALSYM VER_SUITENAME} VER_PRODUCT_TYPE = $00000080; + {$EXTERNALSYM VER_PRODUCT_TYPE} // Constants from sdkddkver.h _WIN32_WINNT_NT4 = $0400; // Windows NT 4 + {$EXTERNALSYM _WIN32_WINNT_NT4} _WIN32_WINNT_WIN2K = $0500; // Windows 2000 + {$EXTERNALSYM _WIN32_WINNT_WIN2K} _WIN32_WINNT_WINXP = $0501; // Windows XP + {$EXTERNALSYM _WIN32_WINNT_WINXP} _WIN32_WINNT_WS03 = $0502; // Windows Server 2003 + {$EXTERNALSYM _WIN32_WINNT_WS03} _WIN32_WINNT_WIN6 = $0600; // Windows Vista + {$EXTERNALSYM _WIN32_WINNT_WIN6} _WIN32_WINNT_VISTA = $0600; // Windows Vista + {$EXTERNALSYM _WIN32_WINNT_VISTA} _WIN32_WINNT_WS08 = $0600; // Windows Server 2008 + {$EXTERNALSYM _WIN32_WINNT_WS08} _WIN32_WINNT_LONGHORN = $0600; // Windows Vista + {$EXTERNALSYM _WIN32_WINNT_LONGHORN} _WIN32_WINNT_WIN7 = $0601; // Windows 7 + {$EXTERNALSYM _WIN32_WINNT_WIN7} _WIN32_WINNT_WIN8 = $0602; // Windows 8 + {$EXTERNALSYM _WIN32_WINNT_WIN8} _WIN32_WINNT_WINBLUE = $0603; // Windows 8.1 + {$EXTERNALSYM _WIN32_WINNT_WINBLUE} _WIN32_WINNT_WINTHRESHOLD = $0A00; // Windows 10 + {$EXTERNALSYM _WIN32_WINNT_WINTHRESHOLD} _WIN32_WINNT_WIN10 = $0A00; // Windows 10 + {$EXTERNALSYM _WIN32_WINNT_WIN10} // These Windows-defined constants are required for use with TOSVersionInfoEx // NT Product types VER_NT_WORKSTATION = 1; + {$EXTERNALSYM VER_NT_WORKSTATION} VER_NT_DOMAIN_CONTROLLER = 2; + {$EXTERNALSYM VER_NT_DOMAIN_CONTROLLER} VER_NT_SERVER = 3; + {$EXTERNALSYM VER_NT_SERVER} // Mask representing NT product suites 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} VER_SUITE_PERSONAL = $00000200; + {$EXTERNALSYM VER_SUITE_PERSONAL} VER_SUITE_SERVERAPPLIANCE = $00000400; + {$EXTERNALSYM VER_SUITE_SERVERAPPLIANCE} VER_SUITE_BLADE = VER_SUITE_SERVERAPPLIANCE; + {$EXTERNALSYM VER_SUITE_BLADE} VER_SUITE_EMBEDDED_RESTRICTED = $00000800; + {$EXTERNALSYM VER_SUITE_EMBEDDED_RESTRICTED} VER_SUITE_SECURITY_APPLIANCE = $00001000; + {$EXTERNALSYM VER_SUITE_SECURITY_APPLIANCE} VER_SUITE_STORAGE_SERVER = $00002000; + {$EXTERNALSYM VER_SUITE_STORAGE_SERVER} VER_SUITE_COMPUTE_SERVER = $00004000; + {$EXTERNALSYM VER_SUITE_COMPUTE_SERVER} VER_SUITE_WH_SERVER = $00008000; + {$EXTERNALSYM VER_SUITE_WH_SERVER} // These Windows-defined constants are required for use with the // GetProductInfo API call used with Windows Vista and later @@ -263,211 +315,408 @@ interface // ** Subsequent additions were obtained from https://tinyurl.com/3rhhbs2z // ** and the Windows 11 24H2 SDK PRODUCT_UNDEFINED = $00000000; + {$EXTERNALSYM PRODUCT_UNDEFINED} PRODUCT_ULTIMATE = $00000001; + {$EXTERNALSYM PRODUCT_ULTIMATE} PRODUCT_HOME_BASIC = $00000002; + {$EXTERNALSYM PRODUCT_HOME_BASIC} PRODUCT_HOME_PREMIUM = $00000003; + {$EXTERNALSYM PRODUCT_HOME_PREMIUM} PRODUCT_ENTERPRISE = $00000004; + {$EXTERNALSYM PRODUCT_ENTERPRISE} PRODUCT_HOME_BASIC_N = $00000005; + {$EXTERNALSYM PRODUCT_HOME_BASIC_N} PRODUCT_BUSINESS = $00000006; + {$EXTERNALSYM PRODUCT_BUSINESS} PRODUCT_STANDARD_SERVER = $00000007; + {$EXTERNALSYM PRODUCT_STANDARD_SERVER} PRODUCT_DATACENTER_SERVER = $00000008; + {$EXTERNALSYM PRODUCT_DATACENTER_SERVER} PRODUCT_SMALLBUSINESS_SERVER = $00000009; + {$EXTERNALSYM PRODUCT_SMALLBUSINESS_SERVER} PRODUCT_ENTERPRISE_SERVER = $0000000A; + {$EXTERNALSYM PRODUCT_ENTERPRISE_SERVER} PRODUCT_STARTER = $0000000B; + {$EXTERNALSYM PRODUCT_STARTER} PRODUCT_DATACENTER_SERVER_CORE = $0000000C; + {$EXTERNALSYM PRODUCT_DATACENTER_SERVER_CORE} PRODUCT_STANDARD_SERVER_CORE = $0000000D; + {$EXTERNALSYM PRODUCT_STANDARD_SERVER_CORE} PRODUCT_ENTERPRISE_SERVER_CORE = $0000000E; + {$EXTERNALSYM PRODUCT_ENTERPRISE_SERVER_CORE} PRODUCT_ENTERPRISE_SERVER_IA64 = $0000000F; + {$EXTERNALSYM PRODUCT_ENTERPRISE_SERVER_IA64} PRODUCT_BUSINESS_N = $00000010; + {$EXTERNALSYM PRODUCT_BUSINESS_N} PRODUCT_WEB_SERVER = $00000011; + {$EXTERNALSYM PRODUCT_WEB_SERVER} PRODUCT_CLUSTER_SERVER = $00000012; + {$EXTERNALSYM PRODUCT_CLUSTER_SERVER} PRODUCT_HOME_SERVER = $00000013; + {$EXTERNALSYM PRODUCT_HOME_SERVER} PRODUCT_STORAGE_EXPRESS_SERVER = $00000014; + {$EXTERNALSYM PRODUCT_STORAGE_EXPRESS_SERVER} PRODUCT_STORAGE_STANDARD_SERVER = $00000015; + {$EXTERNALSYM PRODUCT_STORAGE_STANDARD_SERVER} PRODUCT_STORAGE_WORKGROUP_SERVER = $00000016; + {$EXTERNALSYM PRODUCT_STORAGE_WORKGROUP_SERVER} PRODUCT_STORAGE_ENTERPRISE_SERVER = $00000017; + {$EXTERNALSYM PRODUCT_STORAGE_ENTERPRISE_SERVER} PRODUCT_SERVER_FOR_SMALLBUSINESS = $00000018; + {$EXTERNALSYM PRODUCT_SERVER_FOR_SMALLBUSINESS} PRODUCT_SMALLBUSINESS_SERVER_PREMIUM = $00000019; + {$EXTERNALSYM PRODUCT_SMALLBUSINESS_SERVER_PREMIUM} PRODUCT_HOME_PREMIUM_N = $0000001A; + {$EXTERNALSYM PRODUCT_HOME_PREMIUM_N} PRODUCT_ENTERPRISE_N = $0000001B; + {$EXTERNALSYM PRODUCT_ENTERPRISE_N} PRODUCT_ULTIMATE_N = $0000001C; + {$EXTERNALSYM PRODUCT_ULTIMATE_N} PRODUCT_WEB_SERVER_CORE = $0000001D; + {$EXTERNALSYM PRODUCT_WEB_SERVER_CORE} PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT = $0000001E; + {$EXTERNALSYM PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT} PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY = $0000001F; + {$EXTERNALSYM PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY} PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING = $00000020; + {$EXTERNALSYM PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING} PRODUCT_SERVER_FOUNDATION = $00000021; + {$EXTERNALSYM PRODUCT_SERVER_FOUNDATION} PRODUCT_HOME_PREMIUM_SERVER = $00000022; + {$EXTERNALSYM PRODUCT_HOME_PREMIUM_SERVER} PRODUCT_SERVER_FOR_SMALLBUSINESS_V = $00000023; + {$EXTERNALSYM PRODUCT_SERVER_FOR_SMALLBUSINESS_V} PRODUCT_STANDARD_SERVER_V = $00000024; + {$EXTERNALSYM PRODUCT_STANDARD_SERVER_V} PRODUCT_DATACENTER_SERVER_V = $00000025; + {$EXTERNALSYM PRODUCT_DATACENTER_SERVER_V} PRODUCT_ENTERPRISE_SERVER_V = $00000026; + {$EXTERNALSYM PRODUCT_ENTERPRISE_SERVER_V} PRODUCT_DATACENTER_SERVER_CORE_V = $00000027; + {$EXTERNALSYM PRODUCT_DATACENTER_SERVER_CORE_V} PRODUCT_STANDARD_SERVER_CORE_V = $00000028; + {$EXTERNALSYM PRODUCT_STANDARD_SERVER_CORE_V} PRODUCT_ENTERPRISE_SERVER_CORE_V = $00000029; + {$EXTERNALSYM PRODUCT_ENTERPRISE_SERVER_CORE_V} PRODUCT_HYPERV = $0000002A; + {$EXTERNALSYM PRODUCT_HYPERV} PRODUCT_STORAGE_EXPRESS_SERVER_CORE = $0000002B; + {$EXTERNALSYM PRODUCT_STORAGE_EXPRESS_SERVER_CORE} PRODUCT_STORAGE_STANDARD_SERVER_CORE = $0000002C; + {$EXTERNALSYM PRODUCT_STORAGE_STANDARD_SERVER_CORE} PRODUCT_STORAGE_WORKGROUP_SERVER_CORE = $0000002D; + {$EXTERNALSYM PRODUCT_STORAGE_WORKGROUP_SERVER_CORE} PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE = $0000002E; + {$EXTERNALSYM PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE} PRODUCT_STARTER_N = $0000002F; + {$EXTERNALSYM PRODUCT_STARTER_N} PRODUCT_PROFESSIONAL = $00000030; + {$EXTERNALSYM PRODUCT_PROFESSIONAL} PRODUCT_PROFESSIONAL_N = $00000031; + {$EXTERNALSYM PRODUCT_PROFESSIONAL_N} PRODUCT_SB_SOLUTION_SERVER = $00000032; + {$EXTERNALSYM PRODUCT_SB_SOLUTION_SERVER} PRODUCT_SERVER_FOR_SB_SOLUTIONS = $00000033; + {$EXTERNALSYM PRODUCT_SERVER_FOR_SB_SOLUTIONS} PRODUCT_STANDARD_SERVER_SOLUTIONS = $00000034; + {$EXTERNALSYM PRODUCT_STANDARD_SERVER_SOLUTIONS} PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE = $00000035; + {$EXTERNALSYM PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE} PRODUCT_SB_SOLUTION_SERVER_EM = $00000036; + {$EXTERNALSYM PRODUCT_SB_SOLUTION_SERVER_EM} PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM = $00000037; + {$EXTERNALSYM PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM} PRODUCT_SOLUTION_EMBEDDEDSERVER = $00000038; + {$EXTERNALSYM PRODUCT_SOLUTION_EMBEDDEDSERVER} PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE = $00000039; // * + {$EXTERNALSYM PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE} PRODUCT_PROFESSIONAL_EMBEDDED = $0000003A; // * + {$EXTERNALSYM PRODUCT_PROFESSIONAL_EMBEDDED} PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT = $0000003B; + {$EXTERNALSYM PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT} PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL = $0000003C; + {$EXTERNALSYM PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL} PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC = $0000003D; + {$EXTERNALSYM PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC} PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC = $0000003E; + {$EXTERNALSYM PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC} PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE = $0000003F; + {$EXTERNALSYM PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE} PRODUCT_CLUSTER_SERVER_V = $00000040; + {$EXTERNALSYM PRODUCT_CLUSTER_SERVER_V} PRODUCT_EMBEDDED = $00000041; // * + {$EXTERNALSYM PRODUCT_EMBEDDED} PRODUCT_STARTER_E = $00000042; + {$EXTERNALSYM PRODUCT_STARTER_E} PRODUCT_HOME_BASIC_E = $00000043; + {$EXTERNALSYM PRODUCT_HOME_BASIC_E} PRODUCT_HOME_PREMIUM_E = $00000044; + {$EXTERNALSYM PRODUCT_HOME_PREMIUM_E} PRODUCT_PROFESSIONAL_E = $00000045; + {$EXTERNALSYM PRODUCT_PROFESSIONAL_E} PRODUCT_ENTERPRISE_E = $00000046; + {$EXTERNALSYM PRODUCT_ENTERPRISE_E} PRODUCT_ULTIMATE_E = $00000047; + {$EXTERNALSYM PRODUCT_ULTIMATE_E} PRODUCT_ENTERPRISE_EVALUATION = $00000048; + {$EXTERNALSYM PRODUCT_ENTERPRISE_EVALUATION} PRODUCT_MULTIPOINT_STANDARD_SERVER = $0000004C; + {$EXTERNALSYM PRODUCT_MULTIPOINT_STANDARD_SERVER} PRODUCT_MULTIPOINT_PREMIUM_SERVER = $0000004D; + {$EXTERNALSYM PRODUCT_MULTIPOINT_PREMIUM_SERVER} PRODUCT_STANDARD_EVALUATION_SERVER = $0000004F; + {$EXTERNALSYM PRODUCT_STANDARD_EVALUATION_SERVER} PRODUCT_DATACENTER_EVALUATION_SERVER = $00000050; + {$EXTERNALSYM PRODUCT_DATACENTER_EVALUATION_SERVER} PRODUCT_ENTERPRISE_N_EVALUATION = $00000054; + {$EXTERNALSYM PRODUCT_ENTERPRISE_N_EVALUATION} PRODUCT_EMBEDDED_AUTOMOTIVE = $00000055; // * + {$EXTERNALSYM PRODUCT_EMBEDDED_AUTOMOTIVE} PRODUCT_EMBEDDED_INDUSTRY_A = $00000056; // * + {$EXTERNALSYM PRODUCT_EMBEDDED_INDUSTRY_A} PRODUCT_THINPC = $00000057; // * + {$EXTERNALSYM PRODUCT_THINPC} PRODUCT_EMBEDDED_A = $00000058; // * + {$EXTERNALSYM PRODUCT_EMBEDDED_A} PRODUCT_EMBEDDED_INDUSTRY = $00000059; // * + {$EXTERNALSYM PRODUCT_EMBEDDED_INDUSTRY} PRODUCT_EMBEDDED_E = $0000005A; // * + {$EXTERNALSYM PRODUCT_EMBEDDED_E} PRODUCT_EMBEDDED_INDUSTRY_E = $0000005B; // * + {$EXTERNALSYM PRODUCT_EMBEDDED_INDUSTRY_E} PRODUCT_EMBEDDED_INDUSTRY_A_E = $0000005C; // * + {$EXTERNALSYM PRODUCT_EMBEDDED_INDUSTRY_A_E} PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER = $0000005F; + {$EXTERNALSYM PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER} PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER = $00000060; + {$EXTERNALSYM PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER} PRODUCT_CORE_ARM = $00000061; + {$EXTERNALSYM PRODUCT_CORE_ARM} PRODUCT_CORE_N = $00000062; + {$EXTERNALSYM PRODUCT_CORE_N} PRODUCT_CORE_COUNTRYSPECIFIC = $00000063; + {$EXTERNALSYM PRODUCT_CORE_COUNTRYSPECIFIC} PRODUCT_CORE_SINGLELANGUAGE = $00000064; + {$EXTERNALSYM PRODUCT_CORE_SINGLELANGUAGE} PRODUCT_CORE = $00000065; + {$EXTERNALSYM PRODUCT_CORE} PRODUCT_PROFESSIONAL_WMC = $00000067; + {$EXTERNALSYM PRODUCT_PROFESSIONAL_WMC} PRODUCT_MOBILE_CORE = $00000068; + {$EXTERNALSYM PRODUCT_MOBILE_CORE} PRODUCT_EMBEDDED_INDUSTRY_EVAL = $00000069; // * + {$EXTERNALSYM PRODUCT_EMBEDDED_INDUSTRY_EVAL} PRODUCT_EMBEDDED_INDUSTRY_E_EVAL = $0000006A; // * + {$EXTERNALSYM PRODUCT_EMBEDDED_INDUSTRY_E_EVAL} PRODUCT_EMBEDDED_EVAL = $0000006B; // * + {$EXTERNALSYM PRODUCT_EMBEDDED_EVAL} PRODUCT_EMBEDDED_E_EVAL = $0000006C; // * + {$EXTERNALSYM PRODUCT_EMBEDDED_E_EVAL} PRODUCT_NANO_SERVER = $0000006D; // * + {$EXTERNALSYM PRODUCT_NANO_SERVER} PRODUCT_CLOUD_STORAGE_SERVER = $0000006E; // * + {$EXTERNALSYM PRODUCT_CLOUD_STORAGE_SERVER} PRODUCT_CORE_CONNECTED = $0000006F; // * + {$EXTERNALSYM PRODUCT_CORE_CONNECTED} PRODUCT_PROFESSIONAL_STUDENT = $00000070; // * + {$EXTERNALSYM PRODUCT_PROFESSIONAL_STUDENT} PRODUCT_CORE_CONNECTED_N = $00000071; // * + {$EXTERNALSYM PRODUCT_CORE_CONNECTED_N} PRODUCT_PROFESSIONAL_STUDENT_N = $00000072; // * + {$EXTERNALSYM PRODUCT_PROFESSIONAL_STUDENT_N} PRODUCT_CORE_CONNECTED_SINGLELANGUAGE = $00000073; // * + {$EXTERNALSYM PRODUCT_CORE_CONNECTED_SINGLELANGUAGE} PRODUCT_CORE_CONNECTED_COUNTRYSPECIFIC = $00000074; // * + {$EXTERNALSYM PRODUCT_CORE_CONNECTED_COUNTRYSPECIFIC} PRODUCT_CONNECTED_CAR = $00000075; // * + {$EXTERNALSYM PRODUCT_CONNECTED_CAR} PRODUCT_INDUSTRY_HANDHELD = $00000076; // * + {$EXTERNALSYM PRODUCT_INDUSTRY_HANDHELD} PRODUCT_PPI_PRO = $00000077; // * + {$EXTERNALSYM PRODUCT_PPI_PRO} PRODUCT_ARM64_SERVER = $00000078; // * + {$EXTERNALSYM PRODUCT_ARM64_SERVER} PRODUCT_EDUCATION = $00000079; + {$EXTERNALSYM PRODUCT_EDUCATION} PRODUCT_EDUCATION_N = $0000007A; + {$EXTERNALSYM PRODUCT_EDUCATION_N} PRODUCT_IOTUAP = $0000007B; + {$EXTERNALSYM PRODUCT_IOTUAP} PRODUCT_CLOUD_HOST_INFRASTRUCTURE_SERVER = $0000007C; // * + {$EXTERNALSYM PRODUCT_CLOUD_HOST_INFRASTRUCTURE_SERVER} PRODUCT_ENTERPRISE_S = $0000007D; + {$EXTERNALSYM PRODUCT_ENTERPRISE_S} PRODUCT_ENTERPRISE_S_N = $0000007E; + {$EXTERNALSYM PRODUCT_ENTERPRISE_S_N} PRODUCT_PROFESSIONAL_S = $0000007F; // * + {$EXTERNALSYM PRODUCT_PROFESSIONAL_S} PRODUCT_PROFESSIONAL_S_N = $00000080; // * + {$EXTERNALSYM PRODUCT_PROFESSIONAL_S_N} PRODUCT_ENTERPRISE_S_EVALUATION = $00000081; + {$EXTERNALSYM PRODUCT_ENTERPRISE_S_EVALUATION} PRODUCT_ENTERPRISE_S_N_EVALUATION = $00000082; + {$EXTERNALSYM PRODUCT_ENTERPRISE_S_N_EVALUATION} PRODUCT_IOTUAPCOMMERCIAL = $00000083; + {$EXTERNALSYM PRODUCT_IOTUAPCOMMERCIAL} PRODUCT_MOBILE_ENTERPRISE = $00000085; + {$EXTERNALSYM PRODUCT_MOBILE_ENTERPRISE} PRODUCT_HOLOGRAPHIC = $00000087; // * + {$EXTERNALSYM PRODUCT_HOLOGRAPHIC} PRODUCT_HOLOGRAPHIC_BUSINESS = $00000088; // * + {$EXTERNALSYM PRODUCT_HOLOGRAPHIC_BUSINESS} PRODUCT_PRO_SINGLE_LANGUAGE = $0000008A; // * + {$EXTERNALSYM PRODUCT_PRO_SINGLE_LANGUAGE} PRODUCT_PRO_CHINA = $0000008B; // * + {$EXTERNALSYM PRODUCT_PRO_CHINA} PRODUCT_ENTERPRISE_SUBSCRIPTION = $0000008C; // * + {$EXTERNALSYM PRODUCT_ENTERPRISE_SUBSCRIPTION} PRODUCT_ENTERPRISE_SUBSCRIPTION_N = $0000008D; // * + {$EXTERNALSYM PRODUCT_ENTERPRISE_SUBSCRIPTION_N} PRODUCT_DATACENTER_NANO_SERVER = $0000008F; + {$EXTERNALSYM PRODUCT_DATACENTER_NANO_SERVER} PRODUCT_STANDARD_NANO_SERVER = $00000090; + {$EXTERNALSYM PRODUCT_STANDARD_NANO_SERVER} PRODUCT_DATACENTER_A_SERVER_CORE = $00000091; + {$EXTERNALSYM PRODUCT_DATACENTER_A_SERVER_CORE} PRODUCT_STANDARD_A_SERVER_CORE = $00000092; + {$EXTERNALSYM PRODUCT_STANDARD_A_SERVER_CORE} PRODUCT_DATACENTER_WS_SERVER_CORE = $00000093; + {$EXTERNALSYM PRODUCT_DATACENTER_WS_SERVER_CORE} PRODUCT_STANDARD_WS_SERVER_CORE = $00000094; + {$EXTERNALSYM PRODUCT_STANDARD_WS_SERVER_CORE} PRODUCT_UTILITY_VM = $00000095; // * + {$EXTERNALSYM PRODUCT_UTILITY_VM} PRODUCT_DATACENTER_EVALUATION_SERVER_CORE = $0000009F; // * + {$EXTERNALSYM PRODUCT_DATACENTER_EVALUATION_SERVER_CORE} PRODUCT_STANDARD_EVALUATION_SERVER_CORE = $000000A0; // * + {$EXTERNALSYM PRODUCT_STANDARD_EVALUATION_SERVER_CORE} PRODUCT_PRO_WORKSTATION = $000000A1; + {$EXTERNALSYM PRODUCT_PRO_WORKSTATION} PRODUCT_PRO_WORKSTATION_N = $000000A2; + {$EXTERNALSYM PRODUCT_PRO_WORKSTATION_N} PRODUCT_PRO_FOR_EDUCATION = $000000A4; + {$EXTERNALSYM PRODUCT_PRO_FOR_EDUCATION} PRODUCT_PRO_FOR_EDUCATION_N = $000000A5; // * + {$EXTERNALSYM PRODUCT_PRO_FOR_EDUCATION_N} PRODUCT_AZURE_SERVER_CORE = $000000A8; // * + {$EXTERNALSYM PRODUCT_AZURE_SERVER_CORE} PRODUCT_AZURE_NANO_SERVER = $000000A9; // * + {$EXTERNALSYM PRODUCT_AZURE_NANO_SERVER} PRODUCT_ENTERPRISEG = $000000AB; // * + {$EXTERNALSYM PRODUCT_ENTERPRISEG} PRODUCT_ENTERPRISEGN = $000000AC; // * + {$EXTERNALSYM PRODUCT_ENTERPRISEGN} PRODUCT_SERVERRDSH = $000000AF; + {$EXTERNALSYM PRODUCT_SERVERRDSH} PRODUCT_CLOUD = $000000B2; // * + {$EXTERNALSYM PRODUCT_CLOUD} PRODUCT_CLOUDN = $000000B3; // * + {$EXTERNALSYM PRODUCT_CLOUDN} PRODUCT_HUBOS = $000000B4; // * + {$EXTERNALSYM PRODUCT_HUBOS} PRODUCT_ONECOREUPDATEOS = $000000B6; // * + {$EXTERNALSYM PRODUCT_ONECOREUPDATEOS} PRODUCT_CLOUDE = $000000B7; // * + {$EXTERNALSYM PRODUCT_CLOUDE} PRODUCT_IOTOS = $000000B9; // * + {$EXTERNALSYM PRODUCT_IOTOS} PRODUCT_CLOUDEN = $000000BA; // * + {$EXTERNALSYM PRODUCT_CLOUDEN} PRODUCT_IOTEDGEOS = $000000BB; // * + {$EXTERNALSYM PRODUCT_IOTEDGEOS} PRODUCT_IOTENTERPRISE = $000000BC; + {$EXTERNALSYM PRODUCT_IOTENTERPRISE} PRODUCT_LITE = $000000BD; // * + {$EXTERNALSYM PRODUCT_LITE} PRODUCT_IOTENTERPRISE_S = $000000BF; + {$EXTERNALSYM PRODUCT_IOTENTERPRISE_S} PRODUCT_XBOX_SYSTEMOS = $000000C0; // * + {$EXTERNALSYM PRODUCT_XBOX_SYSTEMOS} PRODUCT_XBOX_GAMEOS = $000000C2; // * + {$EXTERNALSYM PRODUCT_XBOX_GAMEOS} PRODUCT_XBOX_ERAOS = $000000C3; // * + {$EXTERNALSYM PRODUCT_XBOX_ERAOS} PRODUCT_XBOX_DURANGOHOSTOS = $000000C4; // * + {$EXTERNALSYM PRODUCT_XBOX_DURANGOHOSTOS} PRODUCT_XBOX_SCARLETTHOSTOS = $000000C5; // * + {$EXTERNALSYM PRODUCT_XBOX_SCARLETTHOSTOS} PRODUCT_XBOX_KEYSTONE = $000000C6; // * + {$EXTERNALSYM PRODUCT_XBOX_KEYSTONE} PRODUCT_AZURE_SERVER_CLOUDHOST = $000000C7; // * + {$EXTERNALSYM PRODUCT_AZURE_SERVER_CLOUDHOST} PRODUCT_AZURE_SERVER_CLOUDMOS = $000000C8; // * + {$EXTERNALSYM PRODUCT_AZURE_SERVER_CLOUDMOS} PRODUCT_CLOUDEDITIONN = $000000CA; // * + {$EXTERNALSYM PRODUCT_CLOUDEDITIONN} PRODUCT_CLOUDEDITION = $000000CB; // * + {$EXTERNALSYM PRODUCT_CLOUDEDITION} PRODUCT_VALIDATION = $000000CC; // * + {$EXTERNALSYM PRODUCT_VALIDATION} PRODUCT_IOTENTERPRISESK = $000000CD; // * + {$EXTERNALSYM PRODUCT_IOTENTERPRISESK} PRODUCT_IOTENTERPRISEK = $000000CE; // * + {$EXTERNALSYM PRODUCT_IOTENTERPRISEK} PRODUCT_IOTENTERPRISESEVAL = $000000CF; // * + {$EXTERNALSYM PRODUCT_IOTENTERPRISESEVAL} PRODUCT_AZURE_SERVER_AGENTBRIDGE = $000000D0; // * + {$EXTERNALSYM PRODUCT_AZURE_SERVER_AGENTBRIDGE} PRODUCT_AZURE_SERVER_NANOHOST = $000000D1; // * + {$EXTERNALSYM PRODUCT_AZURE_SERVER_NANOHOST} PRODUCT_WNC = $000000D2; // * + {$EXTERNALSYM PRODUCT_WNC} PRODUCT_AZURESTACKHCI_SERVER_CORE = $00000196; // * + {$EXTERNALSYM PRODUCT_AZURESTACKHCI_SERVER_CORE} PRODUCT_DATACENTER_SERVER_AZURE_EDITION = $00000197; + {$EXTERNALSYM PRODUCT_DATACENTER_SERVER_AZURE_EDITION} PRODUCT_DATACENTER_SERVER_CORE_AZURE_EDITION = $00000198; // * + {$EXTERNALSYM PRODUCT_DATACENTER_SERVER_CORE_AZURE_EDITION} PRODUCT_UNLICENSED = $ABCDABCD; + {$EXTERNALSYM PRODUCT_UNLICENSED} // These constants are required for use with GetSystemMetrics to detect // certain editions. GetSystemMetrics returns non-zero when passed these flags // if the associated edition is present. // Obtained from https://msdn.microsoft.com/en-us/library/ms724385 SM_TABLETPC = 86; // Detects XP Tablet Edition + {$EXTERNALSYM SM_TABLETPC} SM_MEDIACENTER = 87; // Detects XP Media Center Edition + {$EXTERNALSYM SM_MEDIACENTER} SM_STARTER = 88; // Detects XP Starter Edition + {$EXTERNALSYM SM_STARTER} SM_SERVERR2 = 89; // Detects Windows Server 2003 R2 + {$EXTERNALSYM SM_SERVERR2} SM_REMOTESESSION = $1000; // Detects a remote terminal server session + {$EXTERNALSYM SM_REMOTESESSION} // These constants are required when examining the // TSystemInfo.wProcessorArchitecture member. // Only constants marked ** are defined in MS docs at 2022-12-31 PROCESSOR_ARCHITECTURE_UNKNOWN = $FFFF; // Unknown architecture * + {$EXTERNALSYM PROCESSOR_ARCHITECTURE_UNKNOWN} PROCESSOR_ARCHITECTURE_INTEL = 0; // x86 * + {$EXTERNALSYM PROCESSOR_ARCHITECTURE_INTEL} PROCESSOR_ARCHITECTURE_MIPS = 1; // MIPS architecture + {$EXTERNALSYM PROCESSOR_ARCHITECTURE_MIPS} PROCESSOR_ARCHITECTURE_ALPHA = 2; // Alpha architecture + {$EXTERNALSYM PROCESSOR_ARCHITECTURE_ALPHA} PROCESSOR_ARCHITECTURE_PPC = 3; // PPC architecture + {$EXTERNALSYM PROCESSOR_ARCHITECTURE_PPC} PROCESSOR_ARCHITECTURE_SHX = 4; // SHX architecture + {$EXTERNALSYM PROCESSOR_ARCHITECTURE_SHX} PROCESSOR_ARCHITECTURE_ARM = 5; // ARM architecture * + {$EXTERNALSYM PROCESSOR_ARCHITECTURE_ARM} PROCESSOR_ARCHITECTURE_IA64 = 6; // Intel Itanium based * + {$EXTERNALSYM PROCESSOR_ARCHITECTURE_IA64} PROCESSOR_ARCHITECTURE_ALPHA64 = 7; // Alpha64 architecture + {$EXTERNALSYM PROCESSOR_ARCHITECTURE_ALPHA64} PROCESSOR_ARCHITECTURE_MSIL = 8; // MSIL architecture + {$EXTERNALSYM PROCESSOR_ARCHITECTURE_MSIL} PROCESSOR_ARCHITECTURE_AMD64 = 9; // x64 (AMD or Intel) * + {$EXTERNALSYM PROCESSOR_ARCHITECTURE_AMD64} PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 = 10; // IA32 on Win64 architecture + {$EXTERNALSYM PROCESSOR_ARCHITECTURE_IA32_ON_WIN64} PROCESSOR_ARCHITECTURE_ARM64 = 12; // ARM64 architecture * + {$EXTERNALSYM PROCESSOR_ARCHITECTURE_ARM64} // These constants are provided in case the obsolete // TSystemInfo.dwProcessorType needs to be used. @@ -475,28 +724,51 @@ interface // provided here for completeness. // Only constants marked * are defined in MS SDK 6.1 PROCESSOR_INTEL_386 = 386; // Intel i386 processor * + {$EXTERNALSYM PROCESSOR_INTEL_386} PROCESSOR_INTEL_486 = 486; // Intel i486 processor * + {$EXTERNALSYM PROCESSOR_INTEL_486} PROCESSOR_INTEL_PENTIUM = 586; // Intel Pentium processor * + {$EXTERNALSYM PROCESSOR_INTEL_PENTIUM} PROCESSOR_INTEL_IA64 = 2200; // Intel IA64 processor * + {$EXTERNALSYM PROCESSOR_INTEL_IA64} PROCESSOR_AMD_X8664 = 8664; // AMD X86 64 processor * + {$EXTERNALSYM PROCESSOR_AMD_X8664} PROCESSOR_MIPS_R4000 = 4000; // MIPS R4000, R4101, R3910 processor + {$EXTERNALSYM PROCESSOR_MIPS_R4000} PROCESSOR_ALPHA_21064 = 21064; // Alpha 210 64 processor + {$EXTERNALSYM PROCESSOR_ALPHA_21064} PROCESSOR_PPC_601 = 601; // PPC 601 processor + {$EXTERNALSYM PROCESSOR_PPC_601} PROCESSOR_PPC_603 = 603; // PPC 603 processor + {$EXTERNALSYM PROCESSOR_PPC_603} PROCESSOR_PPC_604 = 604; // PPC 604 processor + {$EXTERNALSYM PROCESSOR_PPC_604} PROCESSOR_PPC_620 = 620; // PPC 620 processor + {$EXTERNALSYM PROCESSOR_PPC_620} PROCESSOR_HITACHI_SH3 = 10003; // Hitachi SH3 processor (Windows CE) + {$EXTERNALSYM PROCESSOR_HITACHI_SH3} PROCESSOR_HITACHI_SH3E = 10004; // Hitachi SH3E processor (Windows CE) + {$EXTERNALSYM PROCESSOR_HITACHI_SH3E} PROCESSOR_HITACHI_SH4 = 10005; // Hitachi SH4 processor (Windows CE) + {$EXTERNALSYM PROCESSOR_HITACHI_SH4} PROCESSOR_MOTOROLA_821 = 821; // Motorola 821 processor (Windows CE) + {$EXTERNALSYM PROCESSOR_MOTOROLA_821} PROCESSOR_SHx_SH3 = 103; // SHx SH3 processor (Windows CE) + {$EXTERNALSYM PROCESSOR_SHx_SH3} PROCESSOR_SHx_SH4 = 104; // SHx SH4 processor (Windows CE) + {$EXTERNALSYM PROCESSOR_SHx_SH4} PROCESSOR_STRONGARM = 2577; // StrongARM processor (Windows CE) + {$EXTERNALSYM PROCESSOR_STRONGARM} PROCESSOR_ARM720 = 1824; // ARM 720 processor (Windows CE) + {$EXTERNALSYM PROCESSOR_ARM720} PROCESSOR_ARM820 = 2080; // ARM 820 processor (Windows CE) + {$EXTERNALSYM PROCESSOR_ARM820} PROCESSOR_ARM920 = 2336; // ARM 920 processor (Windows CE) + {$EXTERNALSYM PROCESSOR_ARM920} PROCESSOR_ARM_7TDMI = 70001; // ARM 7TDMI processor (Windows CE) + {$EXTERNALSYM PROCESSOR_ARM_7TDMI} PROCESSOR_OPTIL = $494F; // MSIL processor + {$EXTERNALSYM PROCESSOR_OPTIL} type /// Enumeration of OS platforms. @@ -5093,4 +5365,3 @@ initialization InitPlatformIdEx; end. -