Alexandre Julliard : wiaservc: Register the service from wine.inf.

Alexandre Julliard julliard at winehq.org
Wed Aug 3 12:48:08 CDT 2011


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Aug  2 21:48:37 2011 +0200

wiaservc: Register the service from wine.inf.

---

 dlls/wiaservc/wiaservc.inf    |    4 ----
 dlls/wiaservc/wiaservc_main.c |   35 -----------------------------------
 tools/wine.inf.in             |   16 ++++++++++++++++
 3 files changed, 16 insertions(+), 39 deletions(-)

diff --git a/dlls/wiaservc/wiaservc.inf b/dlls/wiaservc/wiaservc.inf
index 7adc6da..b46eb14 100644
--- a/dlls/wiaservc/wiaservc.inf
+++ b/dlls/wiaservc/wiaservc.inf
@@ -11,7 +11,3 @@ DelReg = WiaServc.Reg
 HKCR,"AppID\%CLSID_WiaDevMgr%",,,"WIA Device Manager"
 HKCR,"AppID\%CLSID_WiaDevMgr%","LocalService",,"stisvc"
 HKCR,"CLSID\%CLSID_WiaDevMgr%","AppID",,"%CLSID_WiaDevMgr%"
-
-HKLM,"Software\Microsoft\Windows NT\CurrentVersion\SvcHost","imgsvc",0x00010000,"StiSvc"
-
-HKLM,"System\CurrentControlSet\Services\stisvc\Parameters","ServiceDll",0x00020000,"wiaservc.dll"
diff --git a/dlls/wiaservc/wiaservc_main.c b/dlls/wiaservc/wiaservc_main.c
index 8ffb215..a190f31 100644
--- a/dlls/wiaservc/wiaservc_main.c
+++ b/dlls/wiaservc/wiaservc_main.c
@@ -102,35 +102,6 @@ static void cleanup_register_strtable(STRTABLEA *strtable)
     }
 }
 
-static HRESULT register_service(BOOL do_register)
-{
-    static const WCHAR name[] = { 's','t','i','s','v','c', 0 };
-    static const WCHAR path[] = { 's','v','c','h','o','s','t','.','e','x','e',
-                                  ' ','-','k',' ','i','m','g','s','v','c', 0 };
-    SC_HANDLE scm, service;
-
-    scm = OpenSCManagerW(NULL, NULL, SC_MANAGER_ALL_ACCESS);
-    if (!scm)
-        return SELFREG_E_CLASS;
-
-    if (do_register)
-        service = CreateServiceW(scm, name, name, SERVICE_ALL_ACCESS,
-                                 SERVICE_WIN32_OWN_PROCESS,
-                                 SERVICE_DEMAND_START, SERVICE_ERROR_NORMAL,
-                                 path, NULL, NULL, NULL, NULL, NULL);
-    else
-        service = OpenServiceW(scm, name, DELETE);
-
-
-    CloseServiceHandle(scm);
-    if (service)
-    {
-        if (!do_register) DeleteService(service);
-        CloseServiceHandle(service);
-    }
-    return S_OK;
-}
-
 /* Use an INF file to register or unregister the DLL */
 static HRESULT register_server(BOOL do_register)
 {
@@ -142,12 +113,6 @@ static HRESULT register_server(BOOL do_register)
 
     TRACE("(%x)\n", do_register);
 
-    hr = register_service(do_register);
-    if (FAILED(hr)) {
-        ERR("register_service failed: %d\n", GetLastError());
-        return hr;
-    }
-
     hAdvpack = LoadLibraryW(wszAdvpack);
     pRegInstall = (void *)GetProcAddress(hAdvpack, "RegInstall");
 
diff --git a/tools/wine.inf.in b/tools/wine.inf.in
index c27524d..ad891c4 100644
--- a/tools/wine.inf.in
+++ b/tools/wine.inf.in
@@ -126,18 +126,21 @@ AddReg=\
 [DefaultInstall.Services]
 AddService=MountMgr,0x800,MountMgrService
 AddService=Spooler,0,SpoolerService
+AddService=StiSvc,0,StiService
 AddService=TermService,0,TerminalServices
 AddService=PlugPlay,0,PlugPlayService
 
 [DefaultInstall.NT.Services]
 AddService=MountMgr,0x800,MountMgrService
 AddService=Spooler,0,SpoolerService
+AddService=StiSvc,0,StiService
 AddService=TermService,0,TerminalServices
 AddService=PlugPlay,0,PlugPlayService
 
 [DefaultInstall.ntamd64.Services]
 AddService=MountMgr,0x800,MountMgrService
 AddService=Spooler,0,SpoolerService
+AddService=StiSvc,0,StiService
 AddService=TermService,0,TerminalServices
 AddService=PlugPlay,0,PlugPlayService
 
@@ -2980,6 +2983,19 @@ ServiceType=32
 StartType=3
 ErrorControl=1
 
+[StiService]
+AddReg=StiServiceKeys
+Description="WIA Service"
+DisplayName="WIA Service"
+ServiceBinary="%11%\svchost.exe -k imgsvc"
+ServiceType=16
+StartType=3
+ErrorControl=1
+
+[StiServiceKeys]
+HKR,Parameters,"ServiceDll",,"%11%\wiaservc.dll"
+HKLM,%CurrentVersionNT%\SvcHost,"imgsvc",0x00010000,"StiSvc"
+
 [PlugPlayService]
 Description="Enables automatic configuration of devices"
 DisplayName="Plug and Play Service"




More information about the wine-cvs mailing list