Hans Leidekker : wbemprox: Implement Win32_Service. AcceptPause and Win32_Service.AcceptStop.

Alexandre Julliard julliard at winehq.org
Mon Jul 30 14:18:52 CDT 2012


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

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Mon Jul 30 15:04:15 2012 +0200

wbemprox: Implement Win32_Service.AcceptPause and Win32_Service.AcceptStop.

---

 dlls/wbemprox/builtin.c |   20 +++++++++++++++-----
 1 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c
index b2c657f..ce18b92 100644
--- a/dlls/wbemprox/builtin.c
+++ b/dlls/wbemprox/builtin.c
@@ -65,6 +65,10 @@ static const WCHAR class_stdregprovW[] =
 static const WCHAR class_videocontrollerW[] =
     {'W','i','n','3','2','_','V','i','d','e','o','C','o','n','t','r','o','l','l','e','r',0};
 
+static const WCHAR prop_acceptpauseW[] =
+    {'A','c','c','e','p','t','P','a','u','s','e',0};
+static const WCHAR prop_acceptstopW[] =
+    {'A','c','c','e','p','t','S','t','o','p',0};
 static const WCHAR prop_adapterramW[] =
     {'A','d','a','p','t','e','r','R','A','M',0};
 static const WCHAR prop_captionW[] =
@@ -249,6 +253,8 @@ static const struct column col_processor[] =
 };
 static const struct column col_service[] =
 {
+    { prop_acceptpauseW,      CIM_BOOLEAN },
+    { prop_acceptstopW,       CIM_BOOLEAN },
     { prop_displaynameW,      CIM_STRING|COL_FLAG_DYNAMIC },
     { prop_nameW,             CIM_STRING|COL_FLAG_DYNAMIC|COL_FLAG_KEY },
     { prop_processidW,        CIM_UINT32 },
@@ -383,6 +389,8 @@ struct record_processor
 };
 struct record_service
 {
+    int          accept_pause;
+    int          accept_stop;
     const WCHAR *displayname;
     const WCHAR *name;
     UINT32       process_id;
@@ -860,11 +868,13 @@ static void fill_service( struct table *table )
     {
         status = &services[i].ServiceStatusProcess;
         rec = (struct record_service *)(table->data + offset);
-        rec->displayname = heap_strdupW( services[i].lpDisplayName );
-        rec->name        = heap_strdupW( services[i].lpServiceName );
-        rec->process_id  = status->dwProcessId;
-        rec->servicetype = get_service_type( status->dwServiceType );
-        rec->state       = get_service_state( status->dwCurrentState );
+        rec->accept_pause = (status->dwControlsAccepted & SERVICE_ACCEPT_PAUSE_CONTINUE) ? -1 : 0;
+        rec->accept_stop  = (status->dwControlsAccepted & SERVICE_ACCEPT_STOP) ? -1 : 0;
+        rec->displayname  = heap_strdupW( services[i].lpDisplayName );
+        rec->name         = heap_strdupW( services[i].lpServiceName );
+        rec->process_id   = status->dwProcessId;
+        rec->servicetype  = get_service_type( status->dwServiceType );
+        rec->state        = get_service_state( status->dwCurrentState );
         offset += sizeof(*rec);
         num_rows++;
     }




More information about the wine-cvs mailing list