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:
  • Windows 95
  • Windows 98
  • Windows Me
Equivalent to VER_PLATFORM_WIN32_WINDOWS. Note that none of those systems are supported at this time. OS_WINDOWS returns FALSE on all supported systems.
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)

See also

GetSystemMetrics

GetVersionEx

VerifyVersionInfo