using System.Runtime.InteropServices;

namespace linker.libs.winapis;

// https://docs.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-isos
public class Shlwapi
{
    [DllImport("shlwapi.dll", SetLastError = true)]
    [return: MarshalAs(UnmanagedType.Bool)]
    public static extern bool IsOS(OsType osType);
}

public enum OsType
{
    OS_WINDOWS = 0,
    OS_NT = 1,
    OS_WIN95ORGREATER = 2,
    OS_NT4ORGREATER = 3,
    OS_WIN98ORGREATER = 5,
    OS_WIN98_GOLD = 6,
    OS_WIN2000ORGREATER = 7,
    OS_WIN2000PRO = 8,
    OS_WIN2000SERVER = 9,
    OS_WIN2000ADVSERVER = 10,
    OS_WIN2000DATACENTER = 11,
    OS_WIN2000TERMINAL = 12,
    OS_EMBEDDED = 13,
    OS_TERMINALCLIENT = 14,
    OS_TERMINALREMOTEADMIN = 15,
    OS_WIN95_GOLD = 16,
    OS_MEORGREATER = 17,
    OS_XPORGREATER = 18,
    OS_HOME = 19,
    OS_PROFESSIONAL = 20,
    OS_DATACENTER = 21,
    OS_ADVSERVER = 22,
    OS_SERVER = 23,
    OS_TERMINALSERVER = 24,
    OS_PERSONALTERMINALSERVER = 25,
    OS_FASTUSERSWITCHING = 26,
    OS_WELCOMELOGONUI = 27,
    OS_DOMAINMEMBER = 28,
    OS_ANYSERVER = 29,
    OS_WOW6432 = 30,
    OS_WEBSERVER = 31,
    OS_SMALLBUSINESSSERVER = 32,
    OS_TABLETPC = 33,
    OS_SERVERADMINUI = 34,
    OS_MEDIACENTER = 35,
    OS_APPLIANCE = 36,
}
