Markus Weiland : dxdiagn: Implemented OS version properties for DXDiagSystemInfoContainer.

Alexandre Julliard julliard at winehq.org
Fri May 23 05:45:38 CDT 2008


Module: wine
Branch: master
Commit: df51bbf49f6d755f6f55ff4019cc87b3827aa511
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=df51bbf49f6d755f6f55ff4019cc87b3827aa511

Author: Markus Weiland <kde at graph-ix.net>
Date:   Fri May 23 08:55:27 2008 +0200

dxdiagn: Implemented OS version properties for DXDiagSystemInfoContainer.

---

 dlls/dxdiagn/provider.c |   47 +++++++++++++++++++++++++++++------------------
 1 files changed, 29 insertions(+), 18 deletions(-)

diff --git a/dlls/dxdiagn/provider.c b/dlls/dxdiagn/provider.c
index 006310a..7fc7aa5 100644
--- a/dlls/dxdiagn/provider.c
+++ b/dlls/dxdiagn/provider.c
@@ -259,7 +259,6 @@ static HRESULT DXDiag_AddFileDescContainer(IDxDiagContainer* pSubCont, const WCH
 }
 
 static HRESULT DXDiag_InitDXDiagSystemInfoContainer(IDxDiagContainer* pSubCont) {
-  HRESULT hr = S_OK;
   static const WCHAR dwDirectXVersionMajor[] = {'d','w','D','i','r','e','c','t','X','V','e','r','s','i','o','n','M','a','j','o','r',0};
   static const WCHAR dwDirectXVersionMinor[] = {'d','w','D','i','r','e','c','t','X','V','e','r','s','i','o','n','M','i','n','o','r',0};
   static const WCHAR szDirectXVersionLetter[] = {'s','z','D','i','r','e','c','t','X','V','e','r','s','i','o','n','L','e','t','t','e','r',0};
@@ -273,40 +272,52 @@ static HRESULT DXDiag_InitDXDiagSystemInfoContainer(IDxDiagContainer* pSubCont)
   /*static const WCHAR szDxDiagVersion[] = {'s','z','D','x','D','i','a','g','V','e','r','s','i','o','n',0};*/
   /*szWindowsDir*/
   /*szWindowsDir*/
-  /*"dwOSMajorVersion"*/
-  /*"dwOSMinorVersion"*/
-  /*"dwOSBuildNumber"*/
-  /*"dwOSPlatformID"*/
+  static const WCHAR dwOSMajorVersion[] = {'d','w','O','S','M','a','j','o','r','V','e','r','s','i','o','n',0};
+  static const WCHAR dwOSMinorVersion[] = {'d','w','O','S','M','i','n','o','r','V','e','r','s','i','o','n',0};
+  static const WCHAR dwOSBuildNumber[] = {'d','w','O','S','B','u','i','l','d','N','u','m','b','e','r',0};
+  static const WCHAR dwOSPlatformID[] = {'d','w','O','S','P','l','a','t','f','o','r','m','I','D',0};
   MEMORYSTATUSEX msex;
+  OSVERSIONINFOW info;
   VARIANT v;
 
   V_VT(&v) = VT_UI4; V_UI4(&v) = 9;
-  hr = IDxDiagContainerImpl_AddProp(pSubCont, dwDirectXVersionMajor, &v);
-  VariantClear(&v);
+  IDxDiagContainerImpl_AddProp(pSubCont, dwDirectXVersionMajor, &v);
   V_VT(&v) = VT_UI4; V_UI4(&v) = 0;
-  hr = IDxDiagContainerImpl_AddProp(pSubCont, dwDirectXVersionMinor, &v);
-  VariantClear(&v);
+  IDxDiagContainerImpl_AddProp(pSubCont, dwDirectXVersionMinor, &v);
   V_VT(&v) = VT_BSTR; V_BSTR(&v) = SysAllocString(szDirectXVersionLetter_v);
-  hr = IDxDiagContainerImpl_AddProp(pSubCont, szDirectXVersionLetter, &v);
+  IDxDiagContainerImpl_AddProp(pSubCont, szDirectXVersionLetter, &v);
   VariantClear(&v);
   V_VT(&v) = VT_BSTR; V_BSTR(&v) = SysAllocString(szDirectXVersionEnglish_v);
-  hr = IDxDiagContainerImpl_AddProp(pSubCont, szDirectXVersionEnglish, &v);
+  IDxDiagContainerImpl_AddProp(pSubCont, szDirectXVersionEnglish, &v);
   VariantClear(&v);
   V_VT(&v) = VT_BSTR; V_BSTR(&v) = SysAllocString(szDirectXVersionLongEnglish_v);
-  hr = IDxDiagContainerImpl_AddProp(pSubCont, szDirectXVersionLongEnglish, &v);
+  IDxDiagContainerImpl_AddProp(pSubCont, szDirectXVersionLongEnglish, &v);
   VariantClear(&v);
   V_VT(&v) = VT_BOOL; V_BOOL(&v) = FALSE;
-  hr = IDxDiagContainerImpl_AddProp(pSubCont, bDebug, &v);
-  VariantClear(&v);
+  IDxDiagContainerImpl_AddProp(pSubCont, bDebug, &v);
 
   msex.dwLength = sizeof(msex);
   GlobalMemoryStatusEx( &msex );
   V_VT(&v) = VT_UI8;
   V_UI8(&v) = msex.ullTotalPhys;
-  hr = IDxDiagContainerImpl_AddProp(pSubCont, ullPhysicalMemory, &v);
-  VariantClear(&v);
-
-  return hr;
+  IDxDiagContainerImpl_AddProp(pSubCont, ullPhysicalMemory, &v);
+
+  info.dwOSVersionInfoSize = sizeof(info);
+  GetVersionExW( &info );
+  V_VT(&v) = VT_UI4;
+  V_UI4(&v) = info.dwMajorVersion;
+  IDxDiagContainerImpl_AddProp(pSubCont, dwOSMajorVersion, &v);
+  V_VT(&v) = VT_UI4;
+  V_UI4(&v) = info.dwMinorVersion;
+  IDxDiagContainerImpl_AddProp(pSubCont, dwOSMinorVersion, &v);
+  V_VT(&v) = VT_UI4;
+  V_UI4(&v) = info.dwBuildNumber;
+  IDxDiagContainerImpl_AddProp(pSubCont, dwOSBuildNumber, &v);
+  V_VT(&v) = VT_UI4;
+  V_UI4(&v) = info.dwPlatformId;
+  IDxDiagContainerImpl_AddProp(pSubCont, dwOSPlatformID, &v);
+
+  return S_OK;
 }
 
 static HRESULT DXDiag_InitDXDiagSystemDevicesContainer(IDxDiagContainer* pSubCont) {




More information about the wine-cvs mailing list