IsOS function (shlwapi.h)
Checks for specified operating systems and operating system features.
Syntax
BOOL IsOS(
[in] DWORD dwOS
);
Parameters
[in] dwOS
Type: DWORD
A value that specifies which operating system or operating system feature to check for. One of the following values (you cannot combine values).
Name | Value | Description |
---|---|---|
OS_WINDOWS | 0 | The program is running on one of the following versions of Windows:
|
OS_NT | 1 | Always returns TRUE. |
OS_WIN95ORGREATER | 2 | Always returns FALSE. |
OS_NT4ORGREATER | 3 | Always returns FALSE. |
OS_WIN98ORGREATER | 5 | Always returns FALSE. |
OS_WIN98_GOLD | 6 | Always returns FALSE. |
OS_WIN2000ORGREATER | 7 | The program is running on Windows 2000 or one of its successors. |
OS_WIN2000PRO | 8 | Do not use; use OS_PROFESSIONAL. |
OS_WIN2000SERVER | 9 | Do not use; use OS_SERVER. |
OS_WIN2000ADVSERVER | 10 | Do not use; use OS_ADVSERVER. |
OS_WIN2000DATACENTER | 11 | Do not use; use OS_DATACENTER. |
OS_WIN2000TERMINAL | 12 | The program is running on Windows 2000 Terminal Server in either Remote Administration mode or Application Server mode, or Windows Server 2003 (or one of its successors) in Terminal Server mode or Remote Desktop for Administration mode. Consider using a more specific value such as OS_TERMINALSERVER, OS_TERMINALREMOTEADMIN, or OS_PERSONALTERMINALSERVER. |
OS_EMBEDDED | 13 | The program is running on Windows Embedded, any version. Equivalent to VER_SUITE_EMBEDDEDNT. |
OS_TERMINALCLIENT | 14 | The program is running as a Terminal Server client. Equivalent to GetSystemMetrics(SM_REMOTESESSION). |
OS_TERMINALREMOTEADMIN | 15 | The program is running on Windows 2000 Terminal Server in the Remote Administration mode or Windows Server 2003 (or one of its successors) in the Remote Desktop for Administration mode (these are the default installation modes). This is equivalent to VER_SUITE_TERMINAL && VER_SUITE_SINGLEUSERTS. |
OS_WIN95_GOLD | 16 | Always returns FALSE. |
OS_MEORGREATER | 17 | Always returns FALSE. |
OS_XPORGREATER | 18 | Always returns FALSE. |
OS_HOME | 19 | Always returns FALSE. |
OS_PROFESSIONAL | 20 | The program is running on Windows NT Workstation or Windows 2000 (or one of its successors) Professional. Equivalent to VER_PLATFORM_WIN32_NT && VER_NT_WORKSTATION. |
OS_DATACENTER | 21 | The program is running on Windows Datacenter Server or Windows Server Datacenter Edition, any version. Equivalent to (VER_NT_SERVER || VER_NT_DOMAIN_CONTROLLER) && VER_SUITE_DATACENTER. |
OS_ADVSERVER | 22 | The program is running on Windows Advanced Server or Windows Server Enterprise Edition, any version. Equivalent to (VER_NT_SERVER || VER_NT_DOMAIN_CONTROLLER) && VER_SUITE_ENTERPRISE && !VER_SUITE_DATACENTER. |
OS_SERVER | 23 | The program is running on Windows Server (Standard) or Windows Server Standard Edition, any version. This value will not return true for VER_SUITE_DATACENTER, VER_SUITE_ENTERPRISE, VER_SUITE_SMALLBUSINESS, or VER_SUITE_SMALLBUSINESS_RESTRICTED. |
OS_TERMINALSERVER | 24 | The program is running on Windows 2000 Terminal Server in Application Server mode, or on Windows Server 2003 (or one of its successors) in Terminal Server mode. This is equivalent to VER_SUITE_TERMINAL && VER_SUITE_SINGLEUSERTS. |
OS_PERSONALTERMINALSERVER | 25 | The program is running on Windows XP (or one of its successors), Home Edition or Professional. This is equivalent to VER_SUITE_SINGLEUSERTS && !VER_SUITE_TERMINAL. |
OS_FASTUSERSWITCHING | 26 | Fast user switching is enabled. |
OS_WELCOMELOGONUI | 27 | Always returns FALSE. |
OS_DOMAINMEMBER | 28 | The computer is joined to a domain. |
OS_ANYSERVER | 29 | The program is running on any Windows Server product. Equivalent to VER_NT_SERVER || VER_NT_DOMAIN_CONTROLLER. |
OS_WOW6432 | 30 | The program is a 32-bit program running on 64-bit Windows. |
OS_WEBSERVER | 31 | Always returns FALSE. |
OS_SMALLBUSINESSSERVER | 32 | The program is running on Microsoft Small Business Server with restrictive client license in force. Equivalent to VER_SUITE_SMALLBUSINESS_RESTRICTED. |
OS_TABLETPC | 33 | The program is running on Windows XP Tablet PC Edition, or one of its successors. |
OS_SERVERADMINUI | 34 | The user should be presented with administrator UI. It is possible to have server administrative UI on a non-server machine. This value informs the application that an administrator's profile has roamed to a non-server, and UI should be appropriate to an administrator. Otherwise, the user is shown a mix of administrator and nonadministrator settings. |
OS_MEDIACENTER | 35 | The program is running on Windows XP Media Center Edition, or one of its successors. Equivalent to GetSystemMetrics(SM_MEDIACENTER). |
OS_APPLIANCE | 36 | The program is running on Windows Appliance Server. |
Return value
Type: BOOL
Returns a nonzero value if the specified operating system or operating system feature is detected, otherwise FALSE.
Remarks
Values are not provided for Windows Vista and Windows 7. To determine whether either of those operating systems are present, use VerifyVersionInfo.
In Windows versions earlier than Windows Vista, IsOS was not exported by name or declared in a public header file. To use it in those cases, you must use GetProcAddress and request ordinal 437 from Shlwapi.dll to obtain a function pointer. Under Windows Vista, IsOS is included in Shlwapi.h and this is not necessary.
When referring to server products, "Windows Server" refers only to the Standard Edition server. If all server products are covered by a particular flag, it is called out explicitly in the table.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 2000 Professional, Windows XP [desktop apps only] |
Minimum supported server | Windows 2000 Server, Windows Server 2003 [desktop apps only] |
Target Platform | Windows |
Header | shlwapi.h |
DLL | Shlwapi.dll (version 5.0 or later) |