Hans Leidekker : msiexec: Convert DoRegServer to Unicode.
Alexandre Julliard
julliard at winehq.org
Tue Feb 12 13:58:12 CST 2013
Module: wine
Branch: master
Commit: 0800f29b25b1a4260bae82156f2832c4cafc232b
URL: http://source.winehq.org/git/wine.git/?a=commit;h=0800f29b25b1a4260bae82156f2832c4cafc232b
Author: Hans Leidekker <hans at codeweavers.com>
Date: Tue Feb 12 14:33:23 2013 +0100
msiexec: Convert DoRegServer to Unicode.
---
programs/msiexec/msiexec.c | 27 +++++++++++++--------------
1 files changed, 13 insertions(+), 14 deletions(-)
diff --git a/programs/msiexec/msiexec.c b/programs/msiexec/msiexec.c
index 13a55c2..0944955 100644
--- a/programs/msiexec/msiexec.c
+++ b/programs/msiexec/msiexec.c
@@ -344,26 +344,25 @@ static DWORD DoDllUnregisterServer(LPCWSTR DllName)
static DWORD DoRegServer(void)
{
+ static const WCHAR msiserverW[] = {'M','S','I','S','e','r','v','e','r',0};
+ static const WCHAR msiexecW[] = {'\\','m','s','i','e','x','e','c',' ','/','V',0};
SC_HANDLE scm, service;
- CHAR path[MAX_PATH+12];
- DWORD ret = 0;
+ WCHAR path[MAX_PATH+12];
+ DWORD len, ret = 0;
- scm = OpenSCManagerA(NULL, SERVICES_ACTIVE_DATABASEA, SC_MANAGER_CREATE_SERVICE);
- if (!scm)
+ if (!(scm = OpenSCManagerW(NULL, SERVICES_ACTIVE_DATABASEW, SC_MANAGER_CREATE_SERVICE)))
{
fprintf(stderr, "Failed to open the service control manager.\n");
return 1;
}
-
- GetSystemDirectoryA(path, MAX_PATH);
- lstrcatA(path, "\\msiexec.exe /V");
-
- service = CreateServiceA(scm, "MSIServer", "MSIServer", GENERIC_ALL,
- SERVICE_WIN32_SHARE_PROCESS, SERVICE_DEMAND_START,
- SERVICE_ERROR_NORMAL, path, NULL, NULL,
- NULL, NULL, NULL);
-
- if (service) CloseServiceHandle(service);
+ len = GetSystemDirectoryW(path, MAX_PATH);
+ lstrcpyW(path + len, msiexecW);
+ if ((service = CreateServiceW(scm, msiserverW, msiserverW, GENERIC_ALL,
+ SERVICE_WIN32_SHARE_PROCESS, SERVICE_DEMAND_START,
+ SERVICE_ERROR_NORMAL, path, NULL, NULL, NULL, NULL, NULL)))
+ {
+ CloseServiceHandle(service);
+ }
else if (GetLastError() != ERROR_SERVICE_EXISTS)
{
fprintf(stderr, "Failed to create MSI service\n");
More information about the wine-cvs
mailing list