+bool Touchscreen::is_available()
+{
+ // Must have at least Windows 7 (WinNT 6.1) for WM_TOUCH
+ OSVERSIONINFOEX version;
+ version.dwOSVersionInfoSize = sizeof(version);
+ version.dwMajorVersion = 6;
+ version.dwMinorVersion = 1;
+ version.wServicePackMajor = 0;
+ version.wServicePackMinor = 0;
+ DWORD mask = VER_MAJORVERSION|VER_MINORVERSION|VER_SERVICEPACKMAJOR|VER_SERVICEPACKMINOR;
+ DWORDLONG cond = VerSetConditionMask(0, mask, VER_GREATER_EQUAL);
+ if(VerifyVersionInfo(&version, mask, cond))
+ return false;
+
+ if(!GetSystemMetrics(SM_TABLETPC))
+ return false;
+ if(!(GetSystemMetrics(SM_DIGITIZER)&NID_READY))
+ return false;
+
+ return true;
+}
+