wordpad: Updated French translation.
[wine] / programs / msiexec / msiexec.c
index 71e81c8..9221fa2 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * msiexec.exe implementation
  *
- * Copyright 2004 Vincent Béron
+ * Copyright 2004 Vincent Béron
  * Copyright 2005 Mike McCormack
  *
  * This library is free software; you can redistribute it and/or
@@ -69,7 +69,7 @@ static const char UsageStr[] =
 "    msiexec {/h|/?}\n"
 "NOTE: Product code on commandline unimplemented as of yet\n"
 "\n"
-"Copyright 2004 Vincent Béron\n";
+"Copyright 2004 Vincent Béron\n";
 
 static const WCHAR ActionAdmin[] = {
    'A','C','T','I','O','N','=','A','D','M','I','N',0 };
@@ -209,7 +209,7 @@ static DWORD msi_atou(LPCWSTR str)
                ret += (*str - '0');
                str++;
        }
-       return 0;
+       return ret;
 }
 
 static LPWSTR msi_strdup(LPCWSTR str)
@@ -344,14 +344,14 @@ static DWORD DoRegServer(void)
     CHAR path[MAX_PATH+12];
     DWORD ret = 0;
 
-    scm = OpenSCManager(NULL, SERVICES_ACTIVE_DATABASE, SC_MANAGER_CREATE_SERVICE);
+    scm = OpenSCManagerA(NULL, SERVICES_ACTIVE_DATABASEA, SC_MANAGER_CREATE_SERVICE);
     if (!scm)
     {
         fprintf(stderr, "Failed to open the service control manager.\n");
         return 1;
     }
 
-    GetSystemDirectory(path, MAX_PATH);
+    GetSystemDirectoryA(path, MAX_PATH);
     lstrcatA(path, "\\msiexec.exe /V");
 
     service = CreateServiceA(scm, "MSIServer", "MSIServer", GENERIC_ALL,
@@ -388,9 +388,9 @@ enum chomp_state
 
 static int chomp( WCHAR *str )
 {
-       enum chomp_state state = cs_whitespace;
+       enum chomp_state state = cs_token;
        WCHAR *p, *out;
-       int count = 0, ignore;
+       int count = 1, ignore;
 
        for( p = str, out = str; *p; p++ )
        {
@@ -487,12 +487,13 @@ static BOOL process_args_from_reg( LPWSTR ident, int *pargc, WCHAR ***pargv )
                        process_args(buf, pargc, pargv);
                        ret = TRUE;
                }
+               HeapFree(GetProcessHeap(), 0, buf);
        }
        RegCloseKey(hkeyArgs);
        return ret;
 }
 
-int main(int argc, char **argv)
+int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
 {
        int i;
        BOOL FunctionInstall = FALSE;
@@ -528,9 +529,10 @@ int main(int argc, char **argv)
 
        LPWSTR DllName = NULL;
        DWORD ReturnCode;
+       int argc;
        LPWSTR *argvW = NULL;
 
-       /* overwrite the command line */
+       /* parse the command line */
        process_args( GetCommandLineW(), &argc, &argvW );
 
        /*