[wing] Add wing_get_version_number method
- From: Ignacio Casal Quinteiro <icq src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [wing] Add wing_get_version_number method
- Date: Tue, 3 May 2016 07:38:56 +0000 (UTC)
commit a1a941f571872195955cc1a2906fe89811eda733
Author: Ignacio Casal Quinteiro <ignacio casal nice-software com>
Date: Mon May 2 10:14:45 2016 -0700
Add wing_get_version_number method
This gets the Windows version
wing/wingutils.c | 27 +++++++++++++++++++++++++++
wing/wingutils.h | 4 ++++
2 files changed, 31 insertions(+), 0 deletions(-)
---
diff --git a/wing/wingutils.c b/wing/wingutils.c
index 9d603bf..c5c405d 100644
--- a/wing/wingutils.c
+++ b/wing/wingutils.c
@@ -35,3 +35,30 @@ wing_is_wow_64 (void)
return is_wow_64;
}
+
+gboolean
+wing_get_version_number (gint *major,
+ gint *minor)
+{
+ typedef NTSTATUS (WINAPI fRtlGetVersion) (PRTL_OSVERSIONINFOEXW);
+ OSVERSIONINFOEXW osverinfo;
+ fRtlGetVersion *RtlGetVersion;
+ HMODULE hmodule;
+
+ hmodule = LoadLibraryW (L"ntdll.dll");
+ g_return_val_if_fail (hmodule != NULL, FALSE);
+
+ RtlGetVersion = (fRtlGetVersion *)GetProcAddress (hmodule, "RtlGetVersion");
+ g_return_val_if_fail (RtlGetVersion != NULL, FALSE);
+
+ memset (&osverinfo, 0, sizeof (OSVERSIONINFOEXW));
+ osverinfo.dwOSVersionInfoSize = sizeof (OSVERSIONINFOEXW);
+ RtlGetVersion (&osverinfo);
+
+ FreeLibrary (hmodule);
+
+ *major = osverinfo.dwMajorVersion;
+ *minor = osverinfo.dwMinorVersion;
+
+ return TRUE;
+}
diff --git a/wing/wingutils.h b/wing/wingutils.h
index f3e2135..9caab94 100644
--- a/wing/wingutils.h
+++ b/wing/wingutils.h
@@ -26,6 +26,10 @@ G_BEGIN_DECLS
WING_AVAILABLE_IN_ALL
gboolean wing_is_wow_64 (void);
+WING_AVAILABLE_IN_ALL
+gboolean wing_get_version_number (gint *major,
+ gint *minor);
+
G_END_DECLS
#endif /* WING_SERVICE_H */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]