#ifndef SEAFILE_CLIENT_UTILS_WIN_H_
#define SEAFILE_CLIENT_UTILS_WIN_H_
#include <QtGlobal>

#ifdef Q_OS_WIN32
#include <windows.h>
#endif

#ifdef Q_OS_WIN32
namespace utils {
namespace win {
// a list for windows versions https://msdn.microsoft.com/en-us/library/windows/desktop/ms724833%28v=vs.85%29.aspx
// Windows Relaese        major    minor   patch(SP)
// windows 10:            10,      0,      ?
// windows 8.1:           6,       3,      ?
// windows 2012 R2:       6,       3,      ?
// windows 8:             6,       2,      ?
// windows 2012:          6,       2,      ?
// windows 7:             6,       1,      ?
// windows 2008 R2:       6,       1,      ?
// windows Vista:         6,       0,      ?
// windows 2008:          6,       0,      ?
// windows 2003 R2:       5,       2,      ?
// windows 2003:          5,       2,      ?
// windows XP x64:        5,       2,      ?
// windows XP:            5,       1,      ?
// windows 2000:          5,       0,      ?
void getSystemVersion(unsigned *major, unsigned *minor, unsigned *patch);
bool isAtLeastSystemVersion(unsigned major, unsigned minor, unsigned patch);

bool isWindowsVistaOrGreater();
bool isWindows7OrGreater();
bool isWindows8OrGreater();
bool isWindows8Point1OrGreater();
bool isWindows10OrHigher();
bool fixQtHDPINonIntegerScaling();
std::string getLocalPipeName(const char *pipeName);
DWORD runShellAsAdministrator(LPCSTR cmd, LPCSTR arg, int n_show);
bool isNetworkDevice(QString path);

} // namespace win
} // namespace utils
#endif


#endif // SEAFILE_CLIENT_UTILS_WIN_H_
