[2/4] wbemprox: Implement Win32_Process.Handle.

Hans Leidekker hans at codeweavers.com
Wed Jun 20 05:06:17 CDT 2012


---
 dlls/wbemprox/builtin.c          |    8 ++++++++
 dlls/wbemprox/wbemprox_private.h |    1 +
 2 files changed, 9 insertions(+)

diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c
index a1ef65e..5c6a4fe 100644
--- a/dlls/wbemprox/builtin.c
+++ b/dlls/wbemprox/builtin.c
@@ -48,6 +48,8 @@ static const WCHAR prop_captionW[] =
     {'C','a','p','t','i','o','n',0};
 static const WCHAR prop_descriptionW[] =
     {'D','e','s','c','r','i','p','t','i','o','n',0};
+static const WCHAR prop_handleW[] =
+    {'H','a','n','d','l','e',0};
 static const WCHAR prop_manufacturerW[] =
     {'M','a','n','u','f','a','c','t','u','r','e','r',0};
 static const WCHAR prop_modelW[] =
@@ -87,6 +89,7 @@ static const struct column col_process[] =
 {
     { prop_captionW,     CIM_STRING|COL_FLAG_DYNAMIC },
     { prop_descriptionW, CIM_STRING|COL_FLAG_DYNAMIC },
+    { prop_handleW,      CIM_STRING|COL_FLAG_DYNAMIC|COL_FLAG_KEY },
     { prop_pprocessidW,  CIM_UINT32 },
     { prop_processidW,   CIM_UINT32 },
     { prop_threadcountW, CIM_UINT32 }
@@ -142,6 +145,7 @@ struct record_process
 {
     const WCHAR *caption;
     const WCHAR *description;
+    const WCHAR *handle;
     UINT32       pprocess_id;
     UINT32       process_id;
     UINT32       thread_count;
@@ -167,6 +171,8 @@ static const struct record_processor data_processor[] =
 
 static void fill_process( struct table *table )
 {
+    static const WCHAR fmtW[] = {'%','u',0};
+    WCHAR handle[11];
     struct record_process *rec;
     PROCESSENTRY32W entry;
     HANDLE snap;
@@ -191,6 +197,8 @@ static void fill_process( struct table *table )
         rec = (struct record_process *)(table->data + offset);
         rec->caption      = heap_strdupW( entry.szExeFile );
         rec->description  = heap_strdupW( entry.szExeFile );
+        sprintfW( handle, fmtW, entry.th32ProcessID );
+        rec->handle       = heap_strdupW( handle );
         rec->process_id   = entry.th32ProcessID;
         rec->pprocess_id  = entry.th32ParentProcessID;
         rec->thread_count = entry.cntThreads;
diff --git a/dlls/wbemprox/wbemprox_private.h b/dlls/wbemprox/wbemprox_private.h
index 30aecca..779d43d 100644
--- a/dlls/wbemprox/wbemprox_private.h
+++ b/dlls/wbemprox/wbemprox_private.h
@@ -23,6 +23,7 @@
 
 #define COL_TYPE_MASK    0x0000ffff
 #define COL_FLAG_DYNAMIC 0x00010000
+#define COL_FLAG_KEY     0x00020000
 
 struct column
 {
-- 
1.7.10







More information about the wine-patches mailing list