[3/5] wbemprox: Implement Win32_OperatingSystem.OSLanguage and Win32_OperatingSystem.SystemDirectory.

Hans Leidekker hans at codeweavers.com
Tue Jun 26 09:02:41 CDT 2012


---
 dlls/wbemprox/builtin.c |   21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c
index 6092173..faaf5bb 100644
--- a/dlls/wbemprox/builtin.c
+++ b/dlls/wbemprox/builtin.c
@@ -74,6 +74,8 @@ static const WCHAR prop_netconnectionstatusW[] =
     {'N','e','t','C','o','n','n','e','c','t','i','o','n','S','t','a','t','u','s',0};
 static const WCHAR prop_osarchitectureW[] =
     {'O','S','A','r','c','h','i','t','e','c','t','u','r','e',0};
+static const WCHAR prop_oslanguageW[] =
+    {'O','S','L','a','n','g','u','a','g','e',0};
 static const WCHAR prop_pprocessidW[] =
     {'P','a','r','e','n','t','P','r','o','c','e','s','s','I','D',0};
 static const WCHAR prop_processidW[] =
@@ -82,6 +84,8 @@ static const WCHAR prop_releasedateW[] =
     {'R','e','l','e','a','s','e','D','a','t','e',0};
 static const WCHAR prop_serialnumberW[] =
     {'S','e','r','i','a','l','N','u','m','b','e','r',0};
+static const WCHAR prop_systemdirectoryW[] =
+    {'S','y','s','t','e','m','D','i','r','e','c','t','o','r','y',0};
 static const WCHAR prop_threadcountW[] =
     {'T','h','r','e','a','d','C','o','u','n','t',0};
 
@@ -106,8 +110,10 @@ static const struct column col_networkadapter[] =
 };
 static const struct column col_os[] =
 {
-    { prop_captionW,        CIM_STRING },
-    { prop_osarchitectureW, CIM_STRING }
+    { prop_captionW,         CIM_STRING },
+    { prop_osarchitectureW,  CIM_STRING },
+    { prop_oslanguageW,      CIM_UINT32 },
+    { prop_systemdirectoryW, CIM_STRING }
 };
 static const struct column col_process[] =
 {
@@ -178,6 +184,8 @@ struct record_operatingsystem
 {
     const WCHAR *caption;
     const WCHAR *osarchitecture;
+    UINT32       oslanguage;
+    const WCHAR *systemdirectory;
 };
 struct record_process
 {
@@ -321,7 +329,9 @@ done:
 static void fill_os( struct table *table )
 {
     struct record_operatingsystem *rec;
+    WCHAR path[MAX_PATH];
     SYSTEM_INFO info;
+    void *redir;
 
     if (!(table->data = heap_alloc( sizeof(*rec) ))) return;
 
@@ -334,6 +344,13 @@ static void fill_os( struct table *table )
     else
         rec->osarchitecture = os_32bitW;
 
+    rec->oslanguage = MAKELANGID( LANG_ENGLISH, SUBLANG_ENGLISH_US );
+
+    Wow64DisableWow64FsRedirection( &redir );
+    GetSystemDirectoryW( path, MAX_PATH );
+    Wow64RevertWow64FsRedirection( redir );
+    rec->systemdirectory = heap_strdupW( path );
+
     TRACE("created 1 row\n");
     table->num_rows = 1;
 }
-- 
1.7.10







More information about the wine-patches mailing list