cmd: Use the explicit name for all A/W function.
diff --git a/programs/cmd/Makefile.in b/programs/cmd/Makefile.in
index aad9cc7..7f13b52 100644
--- a/programs/cmd/Makefile.in
+++ b/programs/cmd/Makefile.in
@@ -4,7 +4,7 @@
 VPATH     = @srcdir@
 MODULE    = cmd.exe
 APPMODE   = -mconsole -municode
-EXTRADEFS = -DUNICODE
+EXTRADEFS = -DWINE_NO_UNICODE_MACROS
 IMPORTS   = shell32 user32 advapi32 kernel32
 
 C_SRCS = \
diff --git a/programs/cmd/batch.c b/programs/cmd/batch.c
index 33b54f7..21d8694 100644
--- a/programs/cmd/batch.c
+++ b/programs/cmd/batch.c
@@ -61,16 +61,16 @@
     for(i=0; (i<sizeof(extension_batch)/(WCMD_BATCH_EXT_SIZE * sizeof(WCHAR))) &&
              (h == INVALID_HANDLE_VALUE); i++) {
       strcpyW (string, file);
-      CharLower (string);
+      CharLowerW (string);
       if (strstrW (string, extension_batch[i]) == NULL) strcatW (string, extension_batch[i]);
-      h = CreateFile (string, GENERIC_READ, FILE_SHARE_READ,
+      h = CreateFileW (string, GENERIC_READ, FILE_SHARE_READ,
                       NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
     }
     if (h == INVALID_HANDLE_VALUE) {
       strcpyW (string, file);
-      CharLower (string);
+      CharLowerW (string);
       if (strstrW (string, extension_exe) == NULL) strcatW (string, extension_exe);
-      if (GetFileAttributes (string) != INVALID_FILE_ATTRIBUTES) {
+      if (GetFileAttributesW (string) != INVALID_FILE_ATTRIBUTES) {
         WCMD_run_program (command, 0);
       } else {
         SetLastError (ERROR_FILE_NOT_FOUND);
@@ -425,9 +425,8 @@
     env[(end-start)] = 0x00;
 
     /* If env var not found, return empty string */
-    if ((GetEnvironmentVariable(env, fullpath, MAX_PATH) == 0) ||
-        (SearchPath(fullpath, outputparam, NULL,
-                    MAX_PATH, outputparam, NULL) == 0)) {
+    if ((GetEnvironmentVariableW(env, fullpath, MAX_PATH) == 0) ||
+        (SearchPathW(fullpath, outputparam, NULL, MAX_PATH, outputparam, NULL) == 0)) {
       finaloutput[0] = 0x00;
       outputparam[0] = 0x00;
       skipFileParsing = TRUE;
@@ -437,7 +436,7 @@
   /* After this, we need full information on the file,
     which is valid not to exist.  */
   if (!skipFileParsing) {
-    if (GetFullPathName(outputparam, MAX_PATH, fullfilename, NULL) == 0)
+    if (GetFullPathNameW(outputparam, MAX_PATH, fullfilename, NULL) == 0)
       return;
 
     exists = GetFileAttributesExW(fullfilename, GetFileExInfoStandard,
@@ -480,11 +479,11 @@
 
       /* Format the time */
       FileTimeToSystemTime(&fileInfo.ftLastWriteTime, &systime);
-      GetDateFormat(LOCALE_USER_DEFAULT, DATE_SHORTDATE, &systime,
+      GetDateFormatW(LOCALE_USER_DEFAULT, DATE_SHORTDATE, &systime,
                         NULL, thisoutput, MAX_PATH);
       strcatW(thisoutput, space);
       datelen = strlenW(thisoutput);
-      GetTimeFormat(LOCALE_USER_DEFAULT, TIME_NOSECONDS, &systime,
+      GetTimeFormatW(LOCALE_USER_DEFAULT, TIME_NOSECONDS, &systime,
                         NULL, (thisoutput+datelen), MAX_PATH-datelen);
       strcatW(finaloutput, thisoutput);
     }
@@ -499,7 +498,7 @@
 
       doneModifier = TRUE;
       if (finaloutput[0] != 0x00) strcatW(finaloutput, space);
-      wsprintf(thisoutput, fmt, fullsize);
+      wsprintfW(thisoutput, fmt, fullsize);
       strcatW(finaloutput, thisoutput);
     }
 
@@ -507,8 +506,7 @@
     if (memchrW(firstModifier, 's', modifierLen) != NULL) {
       if (finaloutput[0] != 0x00) strcatW(finaloutput, space);
       /* Don't flag as doneModifier - %~s on its own is processed later */
-      GetShortPathName(outputparam, outputparam,
-                       sizeof(outputparam)/sizeof(outputparam[0]));
+      GetShortPathNameW(outputparam, outputparam, sizeof(outputparam)/sizeof(outputparam[0]));
     }
 
     /* 5. Handle 'f' : Fully qualified path (File doesn't have to exist) */
diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c
index bccba85..2c2761d 100644
--- a/programs/cmd/builtins.c
+++ b/programs/cmd/builtins.c
@@ -87,10 +87,10 @@
     DWORD count = 0;
 
     /* Load the translated 'Are you sure', plus valid answers */
-    LoadString (hinst, WCMD_CONFIRM, msgbuffer, sizeof(msgbuffer)/sizeof(WCHAR));
-    LoadString (hinst, WCMD_YES, Ybuffer, sizeof(Ybuffer)/sizeof(WCHAR));
-    LoadString (hinst, WCMD_NO,  Nbuffer, sizeof(Nbuffer)/sizeof(WCHAR));
-    LoadString (hinst, WCMD_ALL, Abuffer, sizeof(Abuffer)/sizeof(WCHAR));
+    LoadStringW(hinst, WCMD_CONFIRM, msgbuffer, sizeof(msgbuffer)/sizeof(WCHAR));
+    LoadStringW(hinst, WCMD_YES, Ybuffer, sizeof(Ybuffer)/sizeof(WCHAR));
+    LoadStringW(hinst, WCMD_NO,  Nbuffer, sizeof(Nbuffer)/sizeof(WCHAR));
+    LoadStringW(hinst, WCMD_ALL, Abuffer, sizeof(Abuffer)/sizeof(WCHAR));
 
     /* Loop waiting on a Y or N */
     while (answer[0] != Ybuffer[0] && answer[0] != Nbuffer[0]) {
@@ -142,7 +142,7 @@
 
       topLeft.X = 0;
       topLeft.Y = 0;
-      FillConsoleOutputCharacter(hStdOut, ' ', screenSize, topLeft, &screenSize);
+      FillConsoleOutputCharacterW(hStdOut, ' ', screenSize, topLeft, &screenSize);
       SetConsoleCursorPosition(hStdOut, topLeft);
   }
 }
@@ -168,7 +168,7 @@
 
 void WCMD_copy (void) {
 
-  WIN32_FIND_DATA fd;
+  WIN32_FIND_DATAW fd;
   HANDLE hff;
   BOOL force, status;
   WCHAR outpath[MAX_PATH], srcpath[MAX_PATH], copycmd[4];
@@ -190,12 +190,12 @@
 
   /* Convert source into full spec */
   WINE_TRACE("Copy source (supplied): '%s'\n", wine_dbgstr_w(param1));
-  GetFullPathName (param1, sizeof(srcpath)/sizeof(WCHAR), srcpath, NULL);
+  GetFullPathNameW(param1, sizeof(srcpath)/sizeof(WCHAR), srcpath, NULL);
   if (srcpath[strlenW(srcpath) - 1] == '\\')
       srcpath[strlenW(srcpath) - 1] = '\0';
 
   if ((strchrW(srcpath,'*') == NULL) && (strchrW(srcpath,'?') == NULL)) {
-    attribs = GetFileAttributes(srcpath);
+    attribs = GetFileAttributesW(srcpath);
   } else {
     attribs = 0;
   }
@@ -221,10 +221,10 @@
       strcpyW(param2, dotW);
   }
 
-  GetFullPathName (param2, sizeof(outpath)/sizeof(WCHAR), outpath, NULL);
+  GetFullPathNameW(param2, sizeof(outpath)/sizeof(WCHAR), outpath, NULL);
   if (outpath[strlenW(outpath) - 1] == '\\')
       outpath[strlenW(outpath) - 1] = '\0';
-  attribs = GetFileAttributes(outpath);
+  attribs = GetFileAttributesW(outpath);
   if (attribs != INVALID_FILE_ATTRIBUTES && (attribs & FILE_ATTRIBUTE_DIRECTORY)) {
     strcatW (outpath, slashW);
     copyToDir = TRUE;
@@ -245,7 +245,7 @@
     /* If COPYCMD is set, then we force the overwrite with /Y and ask for
      * confirmation with /-Y. If COPYCMD is neither of those, then we use the
      * default behavior. */
-    len = GetEnvironmentVariable (copyCmdW, copycmd, sizeof(copycmd)/sizeof(WCHAR));
+    len = GetEnvironmentVariableW(copyCmdW, copycmd, sizeof(copycmd)/sizeof(WCHAR));
     if (len && len < (sizeof(copycmd)/sizeof(WCHAR))) {
       if (!lstrcmpiW (copycmd, parmY))
         force = TRUE;
@@ -256,7 +256,7 @@
 
   /* Loop through all source files */
   WINE_TRACE("Searching for: '%s'\n", wine_dbgstr_w(srcspec));
-  hff = FindFirstFile (srcspec, &fd);
+  hff = FindFirstFileW(srcspec, &fd);
   if (hff != INVALID_HANDLE_VALUE) {
       do {
         WCHAR outname[MAX_PATH];
@@ -281,10 +281,10 @@
 
         /* Prompt before overwriting */
         else if (!overwrite) {
-          attribs = GetFileAttributes(outname);
+          attribs = GetFileAttributesW(outname);
           if (attribs != INVALID_FILE_ATTRIBUTES) {
             WCHAR buffer[MAXSTRING];
-            wsprintf(buffer, WCMD_LoadMessage(WCMD_OVERWRITE), outname);
+            wsprintfW(buffer, WCMD_LoadMessage(WCMD_OVERWRITE), outname);
             overwrite = WCMD_ask_confirm(buffer, FALSE, NULL);
           }
           else overwrite = TRUE;
@@ -292,11 +292,11 @@
 
         /* Do the copy as appropriate */
         if (overwrite) {
-          status = CopyFile (srcname, outname, FALSE);
+          status = CopyFileW(srcname, outname, FALSE);
           if (!status) WCMD_print_error ();
         }
 
-      } while (FindNextFile(hff, &fd) != 0);
+      } while (FindNextFileW(hff, &fd) != 0);
       FindClose (hff);
   } else {
       status = ERROR_FILE_NOT_FOUND;
@@ -325,7 +325,7 @@
     while ((len = strlenW(new_path)) && new_path[len - 1] == '\\')
         new_path[len - 1] = 0;
 
-    while (!CreateDirectory(new_path,NULL))
+    while (!CreateDirectoryW(new_path,NULL))
     {
         WCHAR *slash;
         DWORD last_error = GetLastError();
@@ -401,7 +401,7 @@
 
       if (argN && argN[0] != '/') {
 
-        WIN32_FIND_DATA fd;
+        WIN32_FIND_DATAW fd;
         HANDLE hff;
         WCHAR fpath[MAX_PATH];
         WCHAR *p;
@@ -424,7 +424,7 @@
           WCHAR ext[MAX_PATH];
 
           /* Convert path into actual directory spec */
-          GetFullPathName (argCopy, sizeof(fpath)/sizeof(WCHAR), fpath, NULL);
+          GetFullPathNameW(argCopy, sizeof(fpath)/sizeof(WCHAR), fpath, NULL);
           WCMD_splitpath(fpath, drive, dir, fname, ext);
 
           /* Only prompt for * and *.*, not *a, a*, *.a* etc */
@@ -438,7 +438,7 @@
             found = TRUE;
 
             /* Ask for confirmation */
-            wsprintf(question, fmt, fpath);
+            wsprintfW(question, fmt, fpath);
             ok = WCMD_ask_confirm(question, TRUE, NULL);
 
             /* Abort if answer is 'N' */
@@ -447,7 +447,7 @@
         }
 
         /* First, try to delete in the current directory */
-        hff = FindFirstFile (argCopy, &fd);
+        hff = FindFirstFileW(argCopy, &fd);
         if (hff == INVALID_HANDLE_VALUE) {
           handleParm = FALSE;
         } else {
@@ -542,7 +542,7 @@
                 WCHAR  question[MAXSTRING];
 
                 /* Ask for confirmation */
-                wsprintf(question, WCMD_LoadMessage(WCMD_DELPROMPT), fpath);
+                wsprintfW(question, WCMD_LoadMessage(WCMD_DELPROMPT), fpath);
                 ok = WCMD_ask_confirm(question, FALSE, NULL);
               }
 
@@ -552,15 +552,15 @@
                 /* If file is read only, and /F supplied, delete it */
                 if (fd.dwFileAttributes & FILE_ATTRIBUTE_READONLY &&
                     strstrW (quals, parmF) != NULL) {
-                    SetFileAttributes(fpath, fd.dwFileAttributes & ~FILE_ATTRIBUTE_READONLY);
+                    SetFileAttributesW(fpath, fd.dwFileAttributes & ~FILE_ATTRIBUTE_READONLY);
                 }
 
                 /* Now do the delete */
-                if (!DeleteFile (fpath)) WCMD_print_error ();
+                if (!DeleteFileW(fpath)) WCMD_print_error ();
               }
 
             }
-          } while (FindNextFile(hff, &fd) != 0);
+          } while (FindNextFileW(hff, &fd) != 0);
           FindClose (hff);
         }
 
@@ -576,7 +576,7 @@
           WCHAR ext[MAX_PATH];
 
           /* Convert path into actual directory spec */
-          GetFullPathName (argCopy, sizeof(thisDir)/sizeof(WCHAR), thisDir, NULL);
+          GetFullPathNameW(argCopy, sizeof(thisDir)/sizeof(WCHAR), thisDir, NULL);
           WCMD_splitpath(thisDir, drive, dir, fname, ext);
 
           strcpyW(thisDir, drive);
@@ -589,7 +589,7 @@
           thisDir[cPos] = '*';
           thisDir[cPos+1] = 0x00;
 
-          hff = FindFirstFile (thisDir, &fd);
+          hff = FindFirstFileW(thisDir, &fd);
 
           /* Remove residual '*' */
           thisDir[cPos] = 0x00;
@@ -624,7 +624,7 @@
                                              (strlenW(subParm)+1) * sizeof(WCHAR));
                 strcpyW(nextDir->dirName, subParm);
               }
-            } while (FindNextFile(hff, &fd) != 0);
+            } while (FindNextFileW(hff, &fd) != 0);
             FindClose (hff);
 
             /* Go through each subdir doing the delete */
@@ -710,7 +710,7 @@
 
 void WCMD_for (WCHAR *p, CMD_LIST **cmdList) {
 
-  WIN32_FIND_DATA fd;
+  WIN32_FIND_DATAW fd;
   HANDLE hff;
   int i;
   const WCHAR inW[] = {'i', 'n', ' ', '\0'};
@@ -816,7 +816,7 @@
      and once we have the complete set, we expect a DO              */
   WINE_TRACE("Looking for 'do' in %p\n", *cmdList);
   if ((*cmdList == NULL) ||
-      (CompareString (LOCALE_USER_DEFAULT, NORM_IGNORECASE | SORT_STRINGSORT,
+      (CompareStringW(LOCALE_USER_DEFAULT, NORM_IGNORECASE | SORT_STRINGSORT,
                             (*cmdList)->command, 3, doW, -1) != 2)) {
       WCMD_output (WCMD_LoadMessage(WCMD_SYNTAXERR));
       return;
@@ -855,7 +855,7 @@
 
       if (!useNumbers && !doFileset) {
           if (strpbrkW (item, wildcards)) {
-            hff = FindFirstFile (item, &fd);
+            hff = FindFirstFileW(item, &fd);
             if (hff != INVALID_HANDLE_VALUE) {
               do {
                 BOOL isDirectory = FALSE;
@@ -873,7 +873,7 @@
                                                fd.cFileName, FALSE, TRUE);
                 }
 
-              } while (FindNextFile(hff, &fd) != 0);
+              } while (FindNextFileW(hff, &fd) != 0);
               FindClose (hff);
             }
           } else {
@@ -906,20 +906,20 @@
               itemStart[strlenW(itemStart)-1] = 0x00;
 
               /* Get temp filename */
-              GetTempPath (sizeof(temp_path)/sizeof(WCHAR), temp_path);
-              GetTempFileName (temp_path, cmdW, 0, temp_file);
+              GetTempPathW(sizeof(temp_path)/sizeof(WCHAR), temp_path);
+              GetTempFileNameW(temp_path, cmdW, 0, temp_file);
 
               /* Execute program and redirect output */
-              wsprintf (temp_cmd, redirOut, (itemStart+1), temp_file);
+              wsprintfW(temp_cmd, redirOut, (itemStart+1), temp_file);
               WCMD_execute (itemStart, temp_cmd, NULL, NULL, NULL);
 
               /* Open the file, read line by line and process */
-              input = CreateFile (temp_file, GENERIC_READ, FILE_SHARE_READ,
+              input = CreateFileW(temp_file, GENERIC_READ, FILE_SHARE_READ,
                                   NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
           } else {
 
               /* Open the file, read line by line and process */
-              input = CreateFile (item, GENERIC_READ, FILE_SHARE_READ,
+              input = CreateFileW(item, GENERIC_READ, FILE_SHARE_READ,
                                   NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
           }
 
@@ -958,7 +958,7 @@
 
           /* Delete the temporary file */
           if (*itemStart == '`' || *itemStart == '\'') {
-              DeleteFile (temp_file);
+              DeleteFileW(temp_file);
           }
 
       /* Filesets - A string literal */
@@ -1089,7 +1089,7 @@
 
       /* End of the command - does 'ELSE ' follow as the next command? */
       } else {
-        if (isIF && CompareString (LOCALE_USER_DEFAULT,
+        if (isIF && CompareStringW(LOCALE_USER_DEFAULT,
                                    NORM_IGNORECASE | SORT_STRINGSORT,
                            (*cmdList)->command, 5, ifElse, -1) == 2) {
 
@@ -1133,7 +1133,7 @@
   }
   else {
     for (i=0; i<=WCMD_EXIT; i++) {
-      if (CompareString (LOCALE_USER_DEFAULT, NORM_IGNORECASE | SORT_STRINGSORT,
+      if (CompareStringW(LOCALE_USER_DEFAULT, NORM_IGNORECASE | SORT_STRINGSORT,
 	  param1, -1, inbuilt[i], -1) == 2) {
 	WCMD_output_asis (WCMD_LoadMessage(i));
 	return;
@@ -1292,13 +1292,13 @@
     WCMD_parameter (p, 2+negate, &command);
   }
   else if (!lstrcmpiW (condition, existW)) {
-    if (GetFileAttributes(WCMD_parameter (p, 1+negate, NULL)) != INVALID_FILE_ATTRIBUTES) {
+    if (GetFileAttributesW(WCMD_parameter (p, 1+negate, NULL)) != INVALID_FILE_ATTRIBUTES) {
         test = 1;
     }
     WCMD_parameter (p, 2+negate, &command);
   }
   else if (!lstrcmpiW (condition, defdW)) {
-    if (GetEnvironmentVariable(WCMD_parameter (p, 1+negate, NULL), NULL, 0) > 0) {
+    if (GetEnvironmentVariableW(WCMD_parameter (p, 1+negate, NULL), NULL, 0) > 0) {
         test = 1;
     }
     WCMD_parameter (p, 2+negate, &command);
@@ -1327,7 +1327,7 @@
 void WCMD_move (void) {
 
   int             status;
-  WIN32_FIND_DATA fd;
+  WIN32_FIND_DATAW fd;
   HANDLE          hff;
   WCHAR            input[MAX_PATH];
   WCHAR            output[MAX_PATH];
@@ -1348,15 +1348,15 @@
 
   /* If 2nd parm is directory, then use original filename */
   /* Convert partial path to full path */
-  GetFullPathName (param1, sizeof(input)/sizeof(WCHAR), input, NULL);
-  GetFullPathName (param2, sizeof(output)/sizeof(WCHAR), output, NULL);
+  GetFullPathNameW(param1, sizeof(input)/sizeof(WCHAR), input, NULL);
+  GetFullPathNameW(param2, sizeof(output)/sizeof(WCHAR), output, NULL);
   WINE_TRACE("Move from '%s'('%s') to '%s'\n", wine_dbgstr_w(input),
              wine_dbgstr_w(param1), wine_dbgstr_w(output));
 
   /* Split into components */
   WCMD_splitpath(input, drive, dir, fname, ext);
 
-  hff = FindFirstFile (input, &fd);
+  hff = FindFirstFileW(input, &fd);
   while (hff != INVALID_HANDLE_VALUE) {
     WCHAR  dest[MAX_PATH];
     WCHAR  src[MAX_PATH];
@@ -1369,7 +1369,7 @@
     strcatW(src, dir);
 
     /* See if dest is an existing directory */
-    attribs = GetFileAttributes(output);
+    attribs = GetFileAttributesW(output);
     if (attribs != INVALID_FILE_ATTRIBUTES &&
        (attribs & FILE_ATTRIBUTE_DIRECTORY)) {
       strcpyW(dest, output);
@@ -1385,7 +1385,7 @@
     WINE_TRACE("Dest   '%s'\n", wine_dbgstr_w(dest));
 
     /* Check if file is read only, otherwise move it */
-    attribs = GetFileAttributes(src);
+    attribs = GetFileAttributesW(src);
     if ((attribs != INVALID_FILE_ATTRIBUTES) &&
         (attribs & FILE_ATTRIBUTE_READONLY)) {
       SetLastError(ERROR_ACCESS_DENIED);
@@ -1394,7 +1394,7 @@
       BOOL ok = TRUE;
 
       /* If destination exists, prompt unless /Y supplied */
-      if (GetFileAttributes(dest) != INVALID_FILE_ATTRIBUTES) {
+      if (GetFileAttributesW(dest) != INVALID_FILE_ATTRIBUTES) {
         BOOL force = FALSE;
         WCHAR copycmd[MAXSTRING];
         int len;
@@ -1406,7 +1406,7 @@
           force = TRUE;
         else {
           const WCHAR copyCmdW[] = {'C','O','P','Y','C','M','D','\0'};
-          len = GetEnvironmentVariable (copyCmdW, copycmd, sizeof(copycmd)/sizeof(WCHAR));
+          len = GetEnvironmentVariableW(copyCmdW, copycmd, sizeof(copycmd)/sizeof(WCHAR));
           force = (len && len < (sizeof(copycmd)/sizeof(WCHAR))
                        && ! lstrcmpiW (copycmd, parmY));
         }
@@ -1419,12 +1419,12 @@
           strcpyW(yesChar, WCMD_LoadMessage(WCMD_YES));
 
           /* Ask for confirmation */
-          wsprintf(question, WCMD_LoadMessage(WCMD_OVERWRITE), dest);
+          wsprintfW(question, WCMD_LoadMessage(WCMD_OVERWRITE), dest);
           ok = WCMD_ask_confirm(question, FALSE, NULL);
 
           /* So delete the destination prior to the move */
           if (ok) {
-            if (!DeleteFile (dest)) {
+            if (!DeleteFileW(dest)) {
               WCMD_print_error ();
               errorlevel = 1;
               ok = FALSE;
@@ -1434,7 +1434,7 @@
       }
 
       if (ok) {
-        status = MoveFile (src, dest);
+        status = MoveFileW(src, dest);
       } else {
         status = 1; /* Anything other than 0 to prevent error msg below */
       }
@@ -1446,7 +1446,7 @@
     }
 
     /* Step on to next match */
-    if (FindNextFile(hff, &fd) == 0) {
+    if (FindNextFileW(hff, &fd) == 0) {
       FindClose(hff);
       hff = INVALID_HANDLE_VALUE;
       break;
@@ -1495,12 +1495,12 @@
       /* If subdirectory search not supplied, just try to remove
          and report error if it fails (eg if it contains a file) */
       if (strstrW (quals, parmS) == NULL) {
-        if (!RemoveDirectory (thisArg)) WCMD_print_error ();
+        if (!RemoveDirectoryW(thisArg)) WCMD_print_error ();
 
       /* Otherwise use ShFileOp to recursively remove a directory */
       } else {
 
-        SHFILEOPSTRUCT lpDir;
+        SHFILEOPSTRUCTW lpDir;
 
         /* Ask first */
         if (strstrW (quals, parmQ) == NULL) {
@@ -1509,7 +1509,7 @@
           static const WCHAR fmt[] = {'%','s',' ','\0'};
 
           /* Ask for confirmation */
-          wsprintf(question, fmt, thisArg);
+          wsprintfW(question, fmt, thisArg);
           ok = WCMD_ask_confirm(question, TRUE, NULL);
 
           /* Abort if answer is 'N' */
@@ -1522,7 +1522,7 @@
         lpDir.pFrom  = thisArg;
         lpDir.fFlags = FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOERRORUI;
         lpDir.wFunc  = FO_DELETE;
-        if (SHFileOperation(&lpDir)) WCMD_print_error ();
+        if (SHFileOperationW(&lpDir)) WCMD_print_error ();
       }
     }
   }
@@ -1545,7 +1545,7 @@
 
   int             status;
   HANDLE          hff;
-  WIN32_FIND_DATA fd;
+  WIN32_FIND_DATAW fd;
   WCHAR            input[MAX_PATH];
   WCHAR           *dotDst = NULL;
   WCHAR            drive[10];
@@ -1572,7 +1572,7 @@
   }
 
   /* Convert partial path to full path */
-  GetFullPathName (param1, sizeof(input)/sizeof(WCHAR), input, NULL);
+  GetFullPathNameW(param1, sizeof(input)/sizeof(WCHAR), input, NULL);
   WINE_TRACE("Rename from '%s'('%s') to '%s'\n", wine_dbgstr_w(input),
              wine_dbgstr_w(param1), wine_dbgstr_w(param2));
   dotDst = strchrW(param2, '.');
@@ -1580,7 +1580,7 @@
   /* Split into components */
   WCMD_splitpath(input, drive, dir, fname, ext);
 
-  hff = FindFirstFile (input, &fd);
+  hff = FindFirstFileW(input, &fd);
   while (hff != INVALID_HANDLE_VALUE) {
     WCHAR  dest[MAX_PATH];
     WCHAR  src[MAX_PATH];
@@ -1624,13 +1624,13 @@
     WINE_TRACE("Dest   '%s'\n", wine_dbgstr_w(dest));
 
     /* Check if file is read only, otherwise move it */
-    attribs = GetFileAttributes(src);
+    attribs = GetFileAttributesW(src);
     if ((attribs != INVALID_FILE_ATTRIBUTES) &&
         (attribs & FILE_ATTRIBUTE_READONLY)) {
       SetLastError(ERROR_ACCESS_DENIED);
       status = 0;
     } else {
-      status = MoveFile (src, dest);
+      status = MoveFileW(src, dest);
     }
 
     if (!status) {
@@ -1639,7 +1639,7 @@
     }
 
     /* Step on to next match */
-    if (FindNextFile(hff, &fd) == 0) {
+    if (FindNextFileW(hff, &fd) == 0) {
       FindClose(hff);
       hff = INVALID_HANDLE_VALUE;
       break;
@@ -1705,7 +1705,7 @@
     saved_environment = env_copy;
 
     /* Save the current drive letter */
-    GetCurrentDirectory (MAX_PATH, cwd);
+    GetCurrentDirectoryW(MAX_PATH, cwd);
     env_copy->u.cwd = cwd[0];
   }
   else
@@ -1766,15 +1766,15 @@
   }
 
   /* Restore current drive letter */
-  if (IsCharAlpha(temp->u.cwd)) {
+  if (IsCharAlphaW(temp->u.cwd)) {
     WCHAR envvar[4];
     WCHAR cwd[MAX_PATH];
     static const WCHAR fmt[] = {'=','%','c',':','\0'};
 
-    wsprintf(envvar, fmt, temp->u.cwd);
-    if (GetEnvironmentVariable(envvar, cwd, MAX_PATH)) {
+    wsprintfW(envvar, fmt, temp->u.cwd);
+    if (GetEnvironmentVariableW(envvar, cwd, MAX_PATH)) {
       WINE_TRACE("Resetting cwd to %s\n", wine_dbgstr_w(cwd));
-      SetCurrentDirectory(cwd);
+      SetCurrentDirectoryW(cwd);
     }
   }
 
@@ -1793,7 +1793,7 @@
 
   DWORD count;
   HANDLE hff;
-  WIN32_FIND_DATA fd;
+  WIN32_FIND_DATAW fd;
   WCHAR flags[9] = {' ',' ',' ',' ',' ',' ',' ',' ','\0'};
   WCHAR *name = param1;
   DWORD attrib_set=0;
@@ -1821,11 +1821,11 @@
   if (strlenW(name) == 0) {
     static const WCHAR slashStarW[]  = {'\\','*','\0'};
 
-    GetCurrentDirectory (sizeof(param2)/sizeof(WCHAR), name);
+    GetCurrentDirectoryW(sizeof(param2)/sizeof(WCHAR), name);
     strcatW (name, slashStarW);
   }
 
-  hff = FindFirstFile (name, &fd);
+  hff = FindFirstFileW(name, &fd);
   if (hff == INVALID_HANDLE_VALUE) {
     WCMD_output (WCMD_LoadMessage(WCMD_FILENOTFOUND), name);
   }
@@ -1860,7 +1860,7 @@
         WCMD_output (fmt, flags, fd.cFileName);
 	for (count=0; count < 8; count++) flags[count] = ' ';
       }
-    } while (FindNextFile(hff, &fd) != 0);
+    } while (FindNextFileW(hff, &fd) != 0);
   }
   FindClose (hff);
 }
@@ -1877,21 +1877,21 @@
   WCHAR string[1024];
   WCHAR cwd[1024];
   WCHAR *pos;
-  WIN32_FIND_DATA fd;
+  WIN32_FIND_DATAW fd;
   HANDLE hff;
   static const WCHAR parmD[] = {'/','D','\0'};
 
   WINE_TRACE("Request change to directory '%s'\n", wine_dbgstr_w(command));
 
   /* Skip /D and trailing whitespace if on the front of the command line */
-  if (CompareString (LOCALE_USER_DEFAULT,
+  if (CompareStringW(LOCALE_USER_DEFAULT,
                      NORM_IGNORECASE | SORT_STRINGSORT,
                      command, 2, parmD, -1) == 2) {
     command += 2;
     while (*command && *command==' ') command++;
   }
 
-  GetCurrentDirectory (sizeof(cwd)/sizeof(WCHAR), cwd);
+  GetCurrentDirectoryW(sizeof(cwd)/sizeof(WCHAR), cwd);
   if (strlenW(command) == 0) {
     strcatW (cwd, newline);
     WCMD_output (cwd);
@@ -1908,7 +1908,7 @@
 
     /* Search for appropriate directory */
     WINE_TRACE("Looking for directory '%s'\n", wine_dbgstr_w(string));
-    hff = FindFirstFile (string, &fd);
+    hff = FindFirstFileW(string, &fd);
     while (hff != INVALID_HANDLE_VALUE) {
       if (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
         WCHAR fpath[MAX_PATH];
@@ -1919,11 +1919,11 @@
         static const WCHAR fmt[] = {'%','s','%','s','%','s','\0'};
 
         /* Convert path into actual directory spec */
-        GetFullPathName (string, sizeof(fpath)/sizeof(WCHAR), fpath, NULL);
+        GetFullPathNameW(string, sizeof(fpath)/sizeof(WCHAR), fpath, NULL);
         WCMD_splitpath(fpath, drive, dir, fname, ext);
 
         /* Rebuild path */
-        wsprintf(string, fmt, drive, dir, fd.cFileName);
+        wsprintfW(string, fmt, drive, dir, fd.cFileName);
 
         FindClose(hff);
         hff = INVALID_HANDLE_VALUE;
@@ -1931,7 +1931,7 @@
       }
 
       /* Step on to next match */
-      if (FindNextFile(hff, &fd) == 0) {
+      if (FindNextFileW(hff, &fd) == 0) {
         FindClose(hff);
         hff = INVALID_HANDLE_VALUE;
         break;
@@ -1941,7 +1941,7 @@
     /* Change to that directory */
     WINE_TRACE("Really changing to directory '%s'\n", wine_dbgstr_w(string));
 
-    status = SetCurrentDirectory (string);
+    status = SetCurrentDirectoryW(string);
     if (!status) {
       errorlevel = 1;
       WCMD_print_error ();
@@ -1955,7 +1955,7 @@
            CD x:\directory /D (or pushd c:\directory) not supplied */
       if ((strstrW(quals, parmD) == NULL) &&
           (param1[1] == ':') && (toupper(param1[0]) != toupper(cwd[0]))) {
-        SetCurrentDirectory(cwd);
+        SetCurrentDirectoryW(cwd);
       }
     }
 
@@ -1963,13 +1963,13 @@
        change of directory, even if path was restored due to missing
        /D (allows changing drive letter when not resident on that
        drive                                                          */
-    if ((string[1] == ':') && IsCharAlpha (string[0])) {
+    if ((string[1] == ':') && IsCharAlphaW(string[0])) {
       WCHAR env[4];
       strcpyW(env, equalW);
       memcpy(env+1, string, 2 * sizeof(WCHAR));
       env[3] = 0x00;
       WINE_TRACE("Setting '%s' to '%s'\n", wine_dbgstr_w(env), wine_dbgstr_w(string));
-      SetEnvironmentVariable(env, string);
+      SetEnvironmentVariableW(env, string);
     }
 
    }
@@ -1990,7 +1990,7 @@
   static const WCHAR parmT[] = {'/','T','\0'};
 
   if (strlenW(param1) == 0) {
-    if (GetDateFormat (LOCALE_USER_DEFAULT, 0, NULL, NULL,
+    if (GetDateFormatW(LOCALE_USER_DEFAULT, 0, NULL, NULL,
 		curdate, sizeof(curdate)/sizeof(WCHAR))) {
       WCMD_output (WCMD_LoadMessage(WCMD_CURRENTDATE), curdate);
       if (strstrW (quals, parmT) == NULL) {
@@ -2016,7 +2016,7 @@
 {
     int r;
     const WCHAR * const *str_a = a, * const *str_b = b;
-    r = CompareString( LOCALE_USER_DEFAULT, NORM_IGNORECASE | SORT_STRINGSORT,
+    r = CompareStringW( LOCALE_USER_DEFAULT, NORM_IGNORECASE | SORT_STRINGSORT,
 	  *str_a, -1, *str_b, -1 );
     if( r == CSTR_LESS_THAN ) return -1;
     if( r == CSTR_GREATER_THAN ) return 1;
@@ -2056,7 +2056,7 @@
 
   /* print it */
   for( i=0; i<count; i++ ) {
-    if (!stub || CompareString (LOCALE_USER_DEFAULT,
+    if (!stub || CompareStringW(LOCALE_USER_DEFAULT,
                                 NORM_IGNORECASE | SORT_STRINGSORT,
                                 str[i], stublen, stub, -1) == 2) {
       /* Don't display special internal variables */
@@ -2087,13 +2087,13 @@
 
   errorlevel = 0;
   if (param1[0] == 0x00 && quals[0] == 0x00) {
-    env = GetEnvironmentStrings ();
+    env = GetEnvironmentStringsW();
     WCMD_setshow_sortenv( env, NULL );
     return;
   }
 
   /* See if /P supplied, and if so echo the prompt, and read in a reply */
-  if (CompareString (LOCALE_USER_DEFAULT,
+  if (CompareStringW(LOCALE_USER_DEFAULT,
                      NORM_IGNORECASE | SORT_STRINGSORT,
                      s, 2, parmP, -1) == 2) {
     WCHAR string[MAXSTRING];
@@ -2122,7 +2122,7 @@
       if (string[count-2] == '\r') string[count-2] = '\0'; /* Under Windoze we get CRLF! */
       WINE_TRACE("set /p: Setting var '%s' to '%s'\n", wine_dbgstr_w(s),
                  wine_dbgstr_w(string));
-      status = SetEnvironmentVariable (s, string);
+      status = SetEnvironmentVariableW(s, string);
     }
 
   } else {
@@ -2132,7 +2132,7 @@
         WCMD_opt_s_strip_quotes(s);
     p = strchrW (s, '=');
     if (p == NULL) {
-      env = GetEnvironmentStrings ();
+      env = GetEnvironmentStringsW();
       if (WCMD_setshow_sortenv( env, s ) == 0) {
         WCMD_output (WCMD_LoadMessage(WCMD_MISSINGENV), s);
         errorlevel = 1;
@@ -2142,7 +2142,7 @@
     *p++ = '\0';
 
     if (strlenW(p) == 0) p = NULL;
-    status = SetEnvironmentVariable (s, p);
+    status = SetEnvironmentVariableW(s, p);
     gle = GetLastError();
     if ((!status) & (gle == ERROR_ENVVAR_NOT_FOUND)) {
       errorlevel = 1;
@@ -2164,7 +2164,7 @@
   static const WCHAR pathEqW[] = {'P','A','T','H','=','\0'};
 
   if (strlenW(param1) == 0) {
-    status = GetEnvironmentVariable (pathW, string, sizeof(string)/sizeof(WCHAR));
+    status = GetEnvironmentVariableW(pathW, string, sizeof(string)/sizeof(WCHAR));
     if (status != 0) {
       WCMD_output_asis ( pathEqW);
       WCMD_output_asis ( string);
@@ -2176,7 +2176,7 @@
   }
   else {
     if (*command == '=') command++; /* Skip leading '=' */
-    status = SetEnvironmentVariable (pathW, command);
+    status = SetEnvironmentVariableW(pathW, command);
     if (!status) WCMD_print_error();
   }
 }
@@ -2193,15 +2193,15 @@
   static const WCHAR promptW[] = {'P','R','O','M','P','T','\0'};
 
   if (strlenW(param1) == 0) {
-    SetEnvironmentVariable (promptW, NULL);
+    SetEnvironmentVariableW(promptW, NULL);
   }
   else {
     s = param1;
     while ((*s == '=') || (*s == ' ')) s++;
     if (strlenW(s) == 0) {
-      SetEnvironmentVariable (promptW, NULL);
+      SetEnvironmentVariableW(promptW, NULL);
     }
-    else SetEnvironmentVariable (promptW, s);
+    else SetEnvironmentVariableW(promptW, s);
   }
 }
 
@@ -2221,7 +2221,7 @@
 
   if (strlenW(param1) == 0) {
     GetLocalTime(&st);
-    if (GetTimeFormat (LOCALE_USER_DEFAULT, 0, &st, NULL,
+    if (GetTimeFormatW(LOCALE_USER_DEFAULT, 0, &st, NULL,
 		curtime, sizeof(curtime)/sizeof(WCHAR))) {
       WCMD_output (WCMD_LoadMessage(WCMD_CURRENTTIME), curtime);
       if (strstrW (quals, parmT) == NULL) {
@@ -2279,7 +2279,7 @@
  * Set the console title
  */
 void WCMD_title (WCHAR *command) {
-  SetConsoleTitle(command);
+  SetConsoleTitleW(command);
 }
 
 /****************************************************************************
@@ -2313,7 +2313,7 @@
     if (!argN) break;
 
     WINE_TRACE("type: Processing arg '%s'\n", wine_dbgstr_w(thisArg));
-    h = CreateFile (thisArg, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING,
+    h = CreateFileW(thisArg, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING,
 		FILE_ATTRIBUTE_NORMAL, NULL);
     if (h == INVALID_HANDLE_VALUE) {
       WCMD_print_error ();
@@ -2360,7 +2360,7 @@
   /* Prefix the NLS more with '-- ', then load the text */
   errorlevel = 0;
   strcpyW(moreStr, moreStart);
-  LoadString (hinst, WCMD_MORESTR, &moreStr[3],
+  LoadStringW(hinst, WCMD_MORESTR, &moreStr[3],
               (sizeof(moreStr)/sizeof(WCHAR))-3);
 
   if (param1[0] == 0x00) {
@@ -2370,7 +2370,7 @@
        more are satisfied by the next line from the input (file). To
        avoid this, ensure stdin is to the console                    */
     HANDLE hstdin  = GetStdHandle(STD_INPUT_HANDLE);
-    HANDLE hConIn = CreateFile(conInW, GENERIC_READ | GENERIC_WRITE,
+    HANDLE hConIn = CreateFileW(conInW, GENERIC_READ | GENERIC_WRITE,
                          FILE_SHARE_READ, NULL, OPEN_EXISTING,
                          FILE_ATTRIBUTE_NORMAL, 0);
     WINE_TRACE("No parms - working probably in pipe mode\n");
@@ -2379,7 +2379,7 @@
     /* Warning: No easy way of ending the stream (ctrl+z on windows) so
        once you get in this bit unless due to a pipe, its going to end badly...  */
     useinput = TRUE;
-    wsprintf(moreStrPage, moreFmt, moreStr);
+    wsprintfW(moreStrPage, moreFmt, moreStr);
 
     WCMD_enter_paged_mode(moreStrPage);
     while (WCMD_ReadFile (hstdin, buffer, (sizeof(buffer)/sizeof(WCHAR))-1, &count, NULL)) {
@@ -2410,7 +2410,7 @@
       if (needsPause) {
 
         /* Wait */
-        wsprintf(moreStrPage, moreFmt2, moreStr, 100);
+        wsprintfW(moreStrPage, moreFmt2, moreStr, 100);
         WCMD_leave_paged_mode();
         WCMD_output_asis(moreStrPage);
         WCMD_ReadFile (GetStdHandle(STD_INPUT_HANDLE), buffer,
@@ -2420,7 +2420,7 @@
 
 
       WINE_TRACE("more: Processing arg '%s'\n", wine_dbgstr_w(thisArg));
-      h = CreateFile (thisArg, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING,
+      h = CreateFileW(thisArg, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING,
 		FILE_ATTRIBUTE_NORMAL, NULL);
       if (h == INVALID_HANDLE_VALUE) {
         WCMD_print_error ();
@@ -2432,7 +2432,7 @@
         WIN32_FILE_ATTRIBUTE_DATA   fileInfo;
 
         /* Get the file size */
-        GetFileAttributesEx(thisArg, GetFileExInfoStandard, (void*)&fileInfo);
+        GetFileAttributesExW(thisArg, GetFileExInfoStandard, (void*)&fileInfo);
         fileLen = (((ULONG64)fileInfo.nFileSizeHigh) << 32) + fileInfo.nFileSizeLow;
 
         needsPause = TRUE;
@@ -2442,7 +2442,7 @@
           curPos += count;
 
           /* Update % count (would be used in WCMD_output_asis as prompt) */
-          wsprintf(moreStrPage, moreFmt2, moreStr, (int) min(99, (curPos * 100)/fileLen));
+          wsprintfW(moreStrPage, moreFmt2, moreStr, (int) min(99, (curPos * 100)/fileLen));
 
           WCMD_output_asis (buffer);
         }
@@ -2508,12 +2508,12 @@
   BOOL status;
 
   if (strlenW(path) == 0) {
-    status = GetCurrentDirectory (sizeof(curdir)/sizeof(WCHAR), curdir);
+    status = GetCurrentDirectoryW(sizeof(curdir)/sizeof(WCHAR), curdir);
     if (!status) {
       WCMD_print_error ();
       return 0;
     }
-    status = GetVolumeInformation (NULL, label, sizeof(label)/sizeof(WCHAR),
+    status = GetVolumeInformationW(NULL, label, sizeof(label)/sizeof(WCHAR),
                                    &serial, NULL, NULL, NULL, 0);
   }
   else {
@@ -2522,8 +2522,8 @@
       WCMD_output (WCMD_LoadMessage(WCMD_SYNTAXERR));
       return 0;
     }
-    wsprintf (curdir, fmt, path);
-    status = GetVolumeInformation (curdir, label, sizeof(label)/sizeof(WCHAR),
+    wsprintfW (curdir, fmt, path);
+    status = GetVolumeInformationW(curdir, label, sizeof(label)/sizeof(WCHAR),
                                    &serial, NULL,
     	NULL, NULL, 0);
   }
@@ -2542,10 +2542,10 @@
       if (string[count-2] == '\r') string[count-2] = '\0'; /* Under Windoze we get CRLF! */
     }
     if (strlenW(path) != 0) {
-      if (!SetVolumeLabel (curdir, string)) WCMD_print_error ();
+      if (!SetVolumeLabelW(curdir, string)) WCMD_print_error ();
     }
     else {
-      if (!SetVolumeLabel (NULL, string)) WCMD_print_error ();
+      if (!SetVolumeLabelW(NULL, string)) WCMD_print_error ();
     }
   }
   return 1;
@@ -2597,8 +2597,8 @@
     if (newValue) accessOptions |= KEY_WRITE;
 
     /* Open a key to HKEY_CLASSES_ROOT for enumerating */
-    if (RegOpenKeyEx(HKEY_CLASSES_ROOT, nullW, 0,
-                     accessOptions, &key) != ERROR_SUCCESS) {
+    if (RegOpenKeyExW(HKEY_CLASSES_ROOT, nullW, 0,
+                      accessOptions, &key) != ERROR_SUCCESS) {
       WINE_FIXME("Unexpected failure opening HKCR key: %d\n", GetLastError());
       return;
     }
@@ -2614,9 +2614,7 @@
 
         /* Find the next value */
         nameLen = MAXSTRING;
-        rc = RegEnumKeyEx(key, index++,
-                          keyName, &nameLen,
-                          NULL, NULL, NULL, NULL);
+        rc = RegEnumKeyExW(key, index++, keyName, &nameLen, NULL, NULL, NULL, NULL);
 
         if (rc == ERROR_SUCCESS) {
 
@@ -2629,12 +2627,10 @@
             strcpyW(subkey, keyName);
             if (!assoc) strcatW(subkey, shOpCmdW);
 
-            if (RegOpenKeyEx(key, subkey, 0,
-                             accessOptions, &readKey) == ERROR_SUCCESS) {
+            if (RegOpenKeyExW(key, subkey, 0, accessOptions, &readKey) == ERROR_SUCCESS) {
 
               valueLen = sizeof(keyValue)/sizeof(WCHAR);
-              rc = RegQueryValueEx(readKey, NULL, NULL, NULL,
-                                   (LPBYTE)keyValue, &valueLen);
+              rc = RegQueryValueExW(readKey, NULL, NULL, NULL, (LPBYTE)keyValue, &valueLen);
               WCMD_output_asis(keyName);
               WCMD_output_asis(equalW);
               /* If no default value found, leave line empty after '=' */
@@ -2664,11 +2660,9 @@
         strcpyW(subkey, keyValue);
         if (!assoc) strcatW(subkey, shOpCmdW);
 
-        if (RegOpenKeyEx(key, subkey, 0,
-                         accessOptions, &readKey) == ERROR_SUCCESS) {
+        if (RegOpenKeyExW(key, subkey, 0, accessOptions, &readKey) == ERROR_SUCCESS) {
 
-          rc = RegQueryValueEx(readKey, NULL, NULL, NULL,
-                               (LPBYTE)keyValue, &valueLen);
+          rc = RegQueryValueExW(readKey, NULL, NULL, NULL, (LPBYTE)keyValue, &valueLen);
           WCMD_output_asis(command);
           WCMD_output_asis(equalW);
           /* If no default value found, leave line empty after '=' */
@@ -2682,11 +2676,11 @@
 
           /* Load the translated 'File association not found' */
           if (assoc) {
-            LoadString (hinst, WCMD_NOASSOC, msgbuffer, sizeof(msgbuffer)/sizeof(WCHAR));
+            LoadStringW(hinst, WCMD_NOASSOC, msgbuffer, sizeof(msgbuffer)/sizeof(WCHAR));
           } else {
-            LoadString (hinst, WCMD_NOFTYPE, msgbuffer, sizeof(msgbuffer)/sizeof(WCHAR));
+            LoadStringW(hinst, WCMD_NOFTYPE, msgbuffer, sizeof(msgbuffer)/sizeof(WCHAR));
           }
-          wsprintf(outbuffer, msgbuffer, keyValue);
+          wsprintfW(outbuffer, msgbuffer, keyValue);
           WCMD_output_asis(outbuffer);
           errorlevel = 2;
         }
@@ -2707,7 +2701,7 @@
         /* If nothing after '=' then clear value - only valid for ASSOC */
         if (*newValue == 0x00) {
 
-          if (assoc) rc = RegDeleteKey(key, command);
+          if (assoc) rc = RegDeleteKeyW(key, command);
           if (assoc && rc == ERROR_SUCCESS) {
             WINE_TRACE("HKCR Key '%s' deleted\n", wine_dbgstr_w(command));
 
@@ -2721,23 +2715,23 @@
 
             /* Load the translated 'File association not found' */
             if (assoc) {
-              LoadString (hinst, WCMD_NOASSOC, msgbuffer,
+              LoadStringW(hinst, WCMD_NOASSOC, msgbuffer,
                           sizeof(msgbuffer)/sizeof(WCHAR));
             } else {
-              LoadString (hinst, WCMD_NOFTYPE, msgbuffer,
+              LoadStringW(hinst, WCMD_NOFTYPE, msgbuffer,
                           sizeof(msgbuffer)/sizeof(WCHAR));
             }
-            wsprintf(outbuffer, msgbuffer, keyValue);
+            wsprintfW(outbuffer, msgbuffer, keyValue);
             WCMD_output_asis(outbuffer);
             errorlevel = 2;
           }
 
         /* It really is a set value = contents */
         } else {
-          rc = RegCreateKeyEx(key, subkey, 0, NULL, REG_OPTION_NON_VOLATILE,
+          rc = RegCreateKeyExW(key, subkey, 0, NULL, REG_OPTION_NON_VOLATILE,
                               accessOptions, NULL, &readKey, NULL);
           if (rc == ERROR_SUCCESS) {
-            rc = RegSetValueEx(readKey, NULL, 0, REG_SZ,
+            rc = RegSetValueExW(readKey, NULL, 0, REG_SZ,
                                  (LPBYTE)newValue, strlenW(newValue));
             RegCloseKey(readKey);
           }
diff --git a/programs/cmd/directory.c b/programs/cmd/directory.c
index 08c72ae..6d32ea6 100644
--- a/programs/cmd/directory.c
+++ b/programs/cmd/directory.c
@@ -123,8 +123,8 @@
  */
 static int WCMD_dir_sort (const void *a, const void *b)
 {
-  WIN32_FIND_DATA *filea = (WIN32_FIND_DATA *)a;
-  WIN32_FIND_DATA *fileb = (WIN32_FIND_DATA *)b;
+  WIN32_FIND_DATAW *filea = (WIN32_FIND_DATAW *)a;
+  WIN32_FIND_DATAW *fileb = (WIN32_FIND_DATAW *)b;
   int result = 0;
 
   /* If /OG or /O-G supplied, dirs go at the top or bottom, ignoring the
@@ -211,7 +211,7 @@
     *owner = 0x00;
 
     /* Find out how much space we need for the owner security descriptor */
-    GetFileSecurity(filename, OWNER_SECURITY_INFORMATION, 0, 0, &sizeNeeded);
+    GetFileSecurityW(filename, OWNER_SECURITY_INFORMATION, 0, 0, &sizeNeeded);
     rc = GetLastError();
 
     if(rc == ERROR_INSUFFICIENT_BUFFER && sizeNeeded > 0) {
@@ -227,7 +227,7 @@
         if(!secBuffer) return;
 
         /* Get the owners security descriptor */
-        if(!GetFileSecurity(filename, OWNER_SECURITY_INFORMATION, secBuffer,
+        if(!GetFileSecurityW(filename, OWNER_SECURITY_INFORMATION, secBuffer,
                             sizeNeeded, &sizeNeeded)) {
             HeapFree(GetProcessHeap(),0,secBuffer);
             return;
@@ -240,7 +240,7 @@
         }
 
         /* Convert to a username */
-        if (LookupAccountSid(NULL, pSID, name, &nameLen, domain, &domainLen, &nameuse)) {
+        if (LookupAccountSidW(NULL, pSID, name, &nameLen, domain, &domainLen, &nameuse)) {
             static const WCHAR fmt[]  = {'%','s','%','c','%','s','\0'};
             snprintfW(owner, ownerlen, fmt, domain, '\\', name);
         }
@@ -262,7 +262,7 @@
 
   WCHAR string[1024], datestring[32], timestring[32];
   WCHAR real_path[MAX_PATH];
-  WIN32_FIND_DATA *fd;
+  WIN32_FIND_DATAW *fd;
   FILETIME ft;
   SYSTEMTIME st;
   HANDLE hff;
@@ -294,7 +294,7 @@
      same directory. Note issuing a directory header with no contents
      mirrors what windows does                                            */
   parms = inputparms;
-  fd = HeapAlloc(GetProcessHeap(),0,sizeof(WIN32_FIND_DATA));
+  fd = HeapAlloc(GetProcessHeap(),0,sizeof(WIN32_FIND_DATAW));
   while (parms && strcmpW(inputparms->dirName, parms->dirName) == 0) {
     concurrentDirs++;
 
@@ -304,7 +304,7 @@
 
     /* Load all files into an in memory structure */
     WINE_TRACE("Looking for matches to '%s'\n", wine_dbgstr_w(real_path));
-    hff = FindFirstFile (real_path, (fd+entry_count));
+    hff = FindFirstFileW(real_path, (fd+entry_count));
     if (hff != INVALID_HANDLE_VALUE) {
       do {
         /* Skip any which are filtered out by attribute */
@@ -319,14 +319,14 @@
            if (tmpLen > widest) widest = tmpLen;
         }
 
-        fd = HeapReAlloc(GetProcessHeap(),0,fd,(entry_count+1)*sizeof(WIN32_FIND_DATA));
+        fd = HeapReAlloc(GetProcessHeap(),0,fd,(entry_count+1)*sizeof(WIN32_FIND_DATAW));
         if (fd == NULL) {
           FindClose (hff);
           WINE_ERR("Out of memory\n");
           errorlevel = 1;
           return parms->next;
         }
-      } while (FindNextFile(hff, (fd+entry_count)) != 0);
+      } while (FindNextFileW(hff, (fd+entry_count)) != 0);
       FindClose (hff);
     }
 
@@ -353,7 +353,7 @@
   if (entry_count > 0) {
 
     /* Sort the list of files */
-    qsort (fd, entry_count, sizeof(WIN32_FIND_DATA), WCMD_dir_sort);
+    qsort (fd, entry_count, sizeof(WIN32_FIND_DATAW), WCMD_dir_sort);
 
     /* Work out the number of columns */
     WINE_TRACE("%d entries, maxwidth=%d, widest=%d\n", entry_count, max_width, widest);
@@ -402,9 +402,9 @@
         FileTimeToLocalFileTime (&(fd+i)->ftCreationTime, &ft);
       }
       FileTimeToSystemTime (&ft, &st);
-      GetDateFormat (0, DATE_SHORTDATE, &st, NULL, datestring,
+      GetDateFormatW(0, DATE_SHORTDATE, &st, NULL, datestring,
 			sizeof(datestring)/sizeof(WCHAR));
-      GetTimeFormat (0, TIME_NOSECONDS, &st,
+      GetTimeFormatW(0, TIME_NOSECONDS, &st,
 			NULL, timestring, sizeof(timestring)/sizeof(WCHAR));
 
       if (wide) {
@@ -520,14 +520,14 @@
   if (recurse) {
     DIRECTORY_STACK *dirStack = NULL;
     DIRECTORY_STACK *lastEntry = NULL;
-    WIN32_FIND_DATA finddata;
+    WIN32_FIND_DATAW finddata;
 
     /* Build path to search */
     strcpyW(string, inputparms->dirName);
     strcatW(string, starW);
 
     WINE_TRACE("Recursive, looking for '%s'\n", wine_dbgstr_w(string));
-    hff = FindFirstFile (string, &finddata);
+    hff = FindFirstFileW(string, &finddata);
     if (hff != INVALID_HANDLE_VALUE) {
       do {
         if ((finddata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) &&
@@ -563,7 +563,7 @@
             parms = parms->next;
           }
         }
-      } while (FindNextFile(hff, &finddata) != 0);
+      } while (FindNextFileW(hff, &finddata) != 0);
       FindClose (hff);
 
       while (dirStack != NULL) {
@@ -601,7 +601,7 @@
     WCHAR driveName[4] = {'c',':','\\','\0'};
 
     driveName[0] = drive;
-    status = GetDiskFreeSpaceEx (driveName, &avail, &total, &freebytes);
+    status = GetDiskFreeSpaceExW(driveName, &avail, &total, &freebytes);
     WINE_TRACE("Writing trailer for '%s' gave %d(%d)\n", wine_dbgstr_w(driveName),
                status, GetLastError());
 
@@ -654,7 +654,7 @@
   errorlevel = 0;
 
   /* Prefill quals with (uppercased) DIRCMD env var */
-  if (GetEnvironmentVariable (dircmdW, string, sizeof(string)/sizeof(WCHAR))) {
+  if (GetEnvironmentVariableW(dircmdW, string, sizeof(string)/sizeof(WCHAR))) {
     p = string;
     while ( (*p = toupper(*p)) ) ++p;
     strcatW(string,quals);
@@ -833,7 +833,7 @@
   argno         = 0;
   argsProcessed = 0;
   argN          = cmd;
-  GetCurrentDirectory (MAX_PATH, cwd);
+  GetCurrentDirectoryW(MAX_PATH, cwd);
   strcatW(cwd, slashW);
 
   /* Loop through all args, calculating full effective directory */
@@ -850,10 +850,10 @@
       } else if (thisArg[1] == ':' && thisArg[2] != '\\') {
         WCHAR envvar[4];
         static const WCHAR envFmt[] = {'=','%','c',':','\0'};
-        wsprintf(envvar, envFmt, thisArg[0]);
-        if (!GetEnvironmentVariable(envvar, fullname, MAX_PATH)) {
+        wsprintfW(envvar, envFmt, thisArg[0]);
+        if (!GetEnvironmentVariableW(envvar, fullname, MAX_PATH)) {
           static const WCHAR noEnvFmt[] = {'%','c',':','\0'};
-          wsprintf(fullname, noEnvFmt, thisArg[0]);
+          wsprintfW(fullname, noEnvFmt, thisArg[0]);
         }
         strcatW(fullname, slashW);
         strcatW(fullname, &thisArg[2]);
@@ -866,7 +866,7 @@
       }
       WINE_TRACE("Using location '%s'\n", wine_dbgstr_w(fullname));
 
-      status = GetFullPathName (fullname, sizeof(path)/sizeof(WCHAR), path, NULL);
+      status = GetFullPathNameW(fullname, sizeof(path)/sizeof(WCHAR), path, NULL);
 
       /*
        *  If the path supplied does not include a wildcard, and the endpoint of the
@@ -874,7 +874,7 @@
        *  directory not the directory file itself.
        */
       if ((strchrW(path, '*') == NULL) && (strchrW(path, '%') == NULL)) {
-        status = GetFileAttributes (path);
+        status = GetFileAttributesW(path);
         if ((status != INVALID_FILE_ATTRIBUTES) && (status & FILE_ATTRIBUTE_DIRECTORY)) {
           if (path[strlenW(path)-1] == '\\') {
             strcatW (path, starW);
diff --git a/programs/cmd/wcmdmain.c b/programs/cmd/wcmdmain.c
index fed1fbd..1c55fce 100644
--- a/programs/cmd/wcmdmain.c
+++ b/programs/cmd/wcmdmain.c
@@ -269,7 +269,7 @@
       }
     } while (((message = ptr) != NULL) && (*ptr));
   } else {
-    WCMD_output_asis_len(message, lstrlen(message),
+    WCMD_output_asis_len(message, lstrlenW(message),
                          GetStdHandle(STD_OUTPUT_HANDLE));
   }
 }
@@ -286,18 +286,18 @@
   int status;
 
   error_code = GetLastError ();
-  status = FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
-			  NULL, error_code, 0, (LPTSTR) &lpMsgBuf, 0, NULL);
+  status = FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
+			  NULL, error_code, 0, (LPWSTR) &lpMsgBuf, 0, NULL);
   if (!status) {
     WINE_FIXME ("Cannot display message for error %d, status %d\n",
 			error_code, GetLastError());
     return;
   }
 
-  WCMD_output_asis_len(lpMsgBuf, lstrlen(lpMsgBuf),
+  WCMD_output_asis_len(lpMsgBuf, lstrlenW(lpMsgBuf),
                        GetStdHandle(STD_ERROR_HANDLE));
   LocalFree (lpMsgBuf);
-  WCMD_output_asis_len (newline, lstrlen(newline),
+  WCMD_output_asis_len (newline, lstrlenW(newline),
                         GetStdHandle(STD_ERROR_HANDLE));
   return;
 }
@@ -317,7 +317,7 @@
   DWORD len;
   static const WCHAR envPrompt[] = {'P','R','O','M','P','T','\0'};
 
-  len = GetEnvironmentVariable (envPrompt, prompt_string,
+  len = GetEnvironmentVariableW(envPrompt, prompt_string,
                                 sizeof(prompt_string)/sizeof(WCHAR));
   if ((len == 0) || (len >= (sizeof(prompt_string)/sizeof(WCHAR)))) {
     const WCHAR dfltPrompt[] = {'$','P','$','G','\0'};
@@ -347,7 +347,7 @@
 	  *q++ = '(';
 	  break;
 	case 'D':
-	  GetDateFormat (LOCALE_USER_DEFAULT, DATE_SHORTDATE, NULL, NULL, q, MAX_PATH);
+	  GetDateFormatW(LOCALE_USER_DEFAULT, DATE_SHORTDATE, NULL, NULL, q, MAX_PATH);
 	  while (*q) q++;
 	  break;
 	case 'E':
@@ -366,13 +366,13 @@
 	  *q++ = '<';
 	  break;
 	case 'N':
-          status = GetCurrentDirectory (sizeof(curdir)/sizeof(WCHAR), curdir);
+          status = GetCurrentDirectoryW(sizeof(curdir)/sizeof(WCHAR), curdir);
 	  if (status) {
 	    *q++ = curdir[0];
 	  }
 	  break;
 	case 'P':
-          status = GetCurrentDirectory (sizeof(curdir)/sizeof(WCHAR), curdir);
+          status = GetCurrentDirectoryW(sizeof(curdir)/sizeof(WCHAR), curdir);
 	  if (status) {
 	    strcatW (q, curdir);
 	    while (*q) q++;
@@ -385,7 +385,7 @@
 	  *q++ = ' ';
 	  break;
 	case 'T':
-	  GetTimeFormat (LOCALE_USER_DEFAULT, 0, NULL, NULL, q, MAX_PATH);
+	  GetTimeFormatW(LOCALE_USER_DEFAULT, 0, NULL, NULL, q, MAX_PATH);
 	  while (*q) q++;
 	  break;
         case 'V':
@@ -542,54 +542,54 @@
     /* Expand to contents, if unchanged, return */
     /* Handle DATE, TIME, ERRORLEVEL and CD replacements allowing */
     /* override if existing env var called that name              */
-    if ((CompareString (LOCALE_USER_DEFAULT,
+    if ((CompareStringW(LOCALE_USER_DEFAULT,
                         NORM_IGNORECASE | SORT_STRINGSORT,
                         thisVar, 12, ErrorLvlP, -1) == 2) &&
-                (GetEnvironmentVariable(ErrorLvl, thisVarContents, 1) == 0) &&
+                (GetEnvironmentVariableW(ErrorLvl, thisVarContents, 1) == 0) &&
                 (GetLastError() == ERROR_ENVVAR_NOT_FOUND)) {
       static const WCHAR fmt[] = {'%','d','\0'};
-      wsprintf(thisVarContents, fmt, errorlevel);
+      wsprintfW(thisVarContents, fmt, errorlevel);
       len = strlenW(thisVarContents);
 
-    } else if ((CompareString (LOCALE_USER_DEFAULT,
+    } else if ((CompareStringW(LOCALE_USER_DEFAULT,
                                NORM_IGNORECASE | SORT_STRINGSORT,
                                thisVar, 6, DateP, -1) == 2) &&
-                (GetEnvironmentVariable(Date, thisVarContents, 1) == 0) &&
+                (GetEnvironmentVariableW(Date, thisVarContents, 1) == 0) &&
                 (GetLastError() == ERROR_ENVVAR_NOT_FOUND)) {
 
-      GetDateFormat(LOCALE_USER_DEFAULT, DATE_SHORTDATE, NULL,
+      GetDateFormatW(LOCALE_USER_DEFAULT, DATE_SHORTDATE, NULL,
                     NULL, thisVarContents, MAXSTRING);
       len = strlenW(thisVarContents);
 
-    } else if ((CompareString (LOCALE_USER_DEFAULT,
+    } else if ((CompareStringW(LOCALE_USER_DEFAULT,
                                NORM_IGNORECASE | SORT_STRINGSORT,
                                thisVar, 6, TimeP, -1) == 2) &&
-                (GetEnvironmentVariable(Time, thisVarContents, 1) == 0) &&
+                (GetEnvironmentVariableW(Time, thisVarContents, 1) == 0) &&
                 (GetLastError() == ERROR_ENVVAR_NOT_FOUND)) {
-      GetTimeFormat(LOCALE_USER_DEFAULT, TIME_NOSECONDS, NULL,
+      GetTimeFormatW(LOCALE_USER_DEFAULT, TIME_NOSECONDS, NULL,
                         NULL, thisVarContents, MAXSTRING);
       len = strlenW(thisVarContents);
 
-    } else if ((CompareString (LOCALE_USER_DEFAULT,
+    } else if ((CompareStringW(LOCALE_USER_DEFAULT,
                                NORM_IGNORECASE | SORT_STRINGSORT,
                                thisVar, 4, CdP, -1) == 2) &&
-                (GetEnvironmentVariable(Cd, thisVarContents, 1) == 0) &&
+                (GetEnvironmentVariableW(Cd, thisVarContents, 1) == 0) &&
                 (GetLastError() == ERROR_ENVVAR_NOT_FOUND)) {
-      GetCurrentDirectory (MAXSTRING, thisVarContents);
+      GetCurrentDirectoryW(MAXSTRING, thisVarContents);
       len = strlenW(thisVarContents);
 
-    } else if ((CompareString (LOCALE_USER_DEFAULT,
+    } else if ((CompareStringW(LOCALE_USER_DEFAULT,
                                NORM_IGNORECASE | SORT_STRINGSORT,
                                thisVar, 8, RandomP, -1) == 2) &&
-                (GetEnvironmentVariable(Random, thisVarContents, 1) == 0) &&
+                (GetEnvironmentVariableW(Random, thisVarContents, 1) == 0) &&
                 (GetLastError() == ERROR_ENVVAR_NOT_FOUND)) {
       static const WCHAR fmt[] = {'%','d','\0'};
-      wsprintf(thisVarContents, fmt, rand() % 32768);
+      wsprintfW(thisVarContents, fmt, rand() % 32768);
       len = strlenW(thisVarContents);
 
     /* Look for a matching 'for' variable */
     } else if (forVar &&
-               (CompareString (LOCALE_USER_DEFAULT,
+               (CompareStringW(LOCALE_USER_DEFAULT,
                                SORT_STRINGSORT,
                                thisVar,
                                (colonpos - thisVar) - 1,
@@ -599,7 +599,7 @@
 
     } else {
 
-      len = ExpandEnvironmentStrings(thisVar, thisVarContents,
+      len = ExpandEnvironmentStringsW(thisVar, thisVarContents,
                                sizeof(thisVarContents)/sizeof(WCHAR));
     }
 
@@ -709,9 +709,9 @@
 
       /* Since we need to be case insensitive, copy the 2 buffers */
       searchIn  = WCMD_strdupW(thisVarContents);
-      CharUpperBuff(searchIn, strlenW(thisVarContents));
+      CharUpperBuffW(searchIn, strlenW(thisVarContents));
       searchFor = WCMD_strdupW(colonpos+1);
-      CharUpperBuff(searchFor, strlenW(colonpos+1));
+      CharUpperBuffW(searchFor, strlenW(colonpos+1));
 
       /* Handle wildcard case */
       if (*(colonpos+1) == '*') {
@@ -809,7 +809,7 @@
         WCMD_strsubstW(p, p+2, NULL, 0);
 
     } else if (forVariable &&
-               (CompareString (LOCALE_USER_DEFAULT,
+               (CompareStringW(LOCALE_USER_DEFAULT,
                                SORT_STRINGSORT,
                                p,
                                strlenW(forVariable),
@@ -886,14 +886,14 @@
   }
 }
 
-static void init_msvcrt_io_block(STARTUPINFO* st)
+static void init_msvcrt_io_block(STARTUPINFOW* st)
 {
-    STARTUPINFO st_p;
+    STARTUPINFOW st_p;
     /* fetch the parent MSVCRT info block if any, so that the child can use the
      * same handles as its grand-father
      */
-    st_p.cb = sizeof(STARTUPINFO);
-    GetStartupInfo(&st_p);
+    st_p.cb = sizeof(STARTUPINFOW);
+    GetStartupInfoW(&st_p);
     st->cbReserved2 = st_p.cbReserved2;
     st->lpReserved2 = st_p.lpReserved2;
     if (st_p.cbReserved2 && st_p.lpReserved2)
@@ -984,7 +984,7 @@
   if (strpbrkW (param1, delims) == NULL) {  /* No explicit path given, search path */
     static const WCHAR curDir[] = {'.',';','\0'};
     strcpyW(pathtosearch, curDir);
-    len = GetEnvironmentVariable (envPath, &pathtosearch[2], (sizeof(pathtosearch)/sizeof(WCHAR))-2);
+    len = GetEnvironmentVariableW(envPath, &pathtosearch[2], (sizeof(pathtosearch)/sizeof(WCHAR))-2);
     if ((len == 0) || (len >= (sizeof(pathtosearch)/sizeof(WCHAR)) - 2)) {
       static const WCHAR curDir[] = {'.','\0'};
       strcpyW (pathtosearch, curDir);
@@ -1001,7 +1001,7 @@
   } else {
 
     /* Convert eg. ..\fred to include a directory by removing file part */
-    GetFullPathName(param1, sizeof(pathtosearch)/sizeof(WCHAR), pathtosearch, NULL);
+    GetFullPathNameW(param1, sizeof(pathtosearch)/sizeof(WCHAR), pathtosearch, NULL);
     lastSlash = strrchrW(pathtosearch, '\\');
     if (lastSlash && strchrW(lastSlash, '.') != NULL) extensionsupplied = TRUE;
     strcpyW(stemofsearch, lastSlash+1);
@@ -1012,7 +1012,7 @@
   }
 
   /* Now extract PATHEXT */
-  len = GetEnvironmentVariable (envPathExt, pathext, sizeof(pathext)/sizeof(WCHAR));
+  len = GetEnvironmentVariableW(envPathExt, pathext, sizeof(pathext)/sizeof(WCHAR));
   if ((len == 0) || (len >= (sizeof(pathext)/sizeof(WCHAR)))) {
     static const WCHAR dfltPathExt[] = {'.','b','a','t',';',
                                         '.','c','o','m',';',
@@ -1047,7 +1047,7 @@
     /* Since you can have eg. ..\.. on the path, need to expand
        to full information                                      */
     strcpyW(temp, thisDir);
-    GetFullPathName(temp, MAX_PATH, thisDir, NULL);
+    GetFullPathNameW(temp, MAX_PATH, thisDir, NULL);
 
     /* 1. If extension supplied, see if that file exists */
     strcatW(thisDir, slashW);
@@ -1056,7 +1056,7 @@
 
     /* 1. If extension supplied, see if that file exists */
     if (extensionsupplied) {
-      if (GetFileAttributes(thisDir) != INVALID_FILE_ATTRIBUTES) {
+      if (GetFileAttributesW(thisDir) != INVALID_FILE_ATTRIBUTES) {
         found = TRUE;
       }
     }
@@ -1064,11 +1064,11 @@
     /* 2. Any .* matches? */
     if (!found) {
       HANDLE          h;
-      WIN32_FIND_DATA finddata;
+      WIN32_FIND_DATAW finddata;
       static const WCHAR allFiles[] = {'.','*','\0'};
 
       strcatW(thisDir,allFiles);
-      h = FindFirstFile(thisDir, &finddata);
+      h = FindFirstFileW(thisDir, &finddata);
       FindClose(h);
       if (h != INVALID_HANDLE_VALUE) {
 
@@ -1087,7 +1087,7 @@
             thisExt = NULL;
           }
 
-          if (GetFileAttributes(thisDir) != INVALID_FILE_ATTRIBUTES) {
+          if (GetFileAttributesW(thisDir) != INVALID_FILE_ATTRIBUTES) {
             found = TRUE;
             thisExt = NULL;
           }
@@ -1109,9 +1109,9 @@
 
     /* Once found, launch it */
     if (found || assumeInternal) {
-      STARTUPINFO st;
+      STARTUPINFOW st;
       PROCESS_INFORMATION pe;
-      SHFILEINFO psfi;
+      SHFILEINFOW psfi;
       DWORD console;
       HINSTANCE hinst;
       WCHAR *ext = strrchrW( thisDir, '.' );
@@ -1131,19 +1131,19 @@
 
         /* thisDir contains the file to be launched, but with what?
            eg. a.exe will require a.exe to be launched, a.html may be iexplore */
-        hinst = FindExecutable (thisDir, NULL, temp);
+        hinst = FindExecutableW (thisDir, NULL, temp);
         if ((INT_PTR)hinst < 32)
           console = 0;
         else
-          console = SHGetFileInfo (temp, 0, &psfi, sizeof(psfi), SHGFI_EXETYPE);
+          console = SHGetFileInfoW(temp, 0, &psfi, sizeof(psfi), SHGFI_EXETYPE);
 
-        ZeroMemory (&st, sizeof(STARTUPINFO));
-        st.cb = sizeof(STARTUPINFO);
+        ZeroMemory (&st, sizeof(STARTUPINFOW));
+        st.cb = sizeof(STARTUPINFOW);
         init_msvcrt_io_block(&st);
 
         /* Launch the process and if a CUI wait on it to complete
            Note: Launching internal wine processes cannot specify a full path to exe */
-        status = CreateProcess (assumeInternal?NULL : thisDir,
+        status = CreateProcessW(assumeInternal?NULL : thisDir,
                                 command, NULL, NULL, TRUE, 0, NULL, NULL, &st, &pe);
         if ((opt_c || opt_k) && !opt_s && !status
             && GetLastError()==ERROR_FILE_NOT_FOUND && command[0]=='\"') {
@@ -1228,8 +1228,8 @@
         piped = TRUE;
 
         /* Generate a unique temporary filename */
-        GetTempPath (sizeof(temp_path)/sizeof(WCHAR), temp_path);
-        GetTempFileName (temp_path, cmdW, 0, (*cmdList)->nextcommand->pipeFile);
+        GetTempPathW(sizeof(temp_path)/sizeof(WCHAR), temp_path);
+        GetTempFileNameW(temp_path, cmdW, 0, (*cmdList)->nextcommand->pipeFile);
         WINE_TRACE("Using temporary file of %s\n",
                    wine_dbgstr_w((*cmdList)->nextcommand->pipeFile));
     }
@@ -1255,7 +1255,7 @@
     /* If piped output, send stdout to the pipe by appending >filename to redirects */
     if (piped) {
         static const WCHAR redirOut[] = {'%','s',' ','>',' ','%','s','\0'};
-        wsprintf (new_redir, redirOut, redirects, (*cmdList)->nextcommand->pipeFile);
+        wsprintfW (new_redir, redirOut, redirects, (*cmdList)->nextcommand->pipeFile);
         WINE_TRACE("Redirects now %s\n", wine_dbgstr_w(new_redir));
     } else {
         strcpyW(new_redir, redirects);
@@ -1278,7 +1278,7 @@
  *	Changing default drive has to be handled as a special case.
  */
 
-    if ((cmd[1] == ':') && IsCharAlpha (cmd[0]) && (strlenW(cmd) == 2)) {
+    if ((cmd[1] == ':') && IsCharAlphaW(cmd[0]) && (strlenW(cmd) == 2)) {
       WCHAR envvar[5];
       WCHAR dir[MAX_PATH];
 
@@ -1287,13 +1287,13 @@
          so see if one specified, and if so go back to it             */
       strcpyW(envvar, equalsW);
       strcatW(envvar, cmd);
-      if (GetEnvironmentVariable(envvar, dir, MAX_PATH) == 0) {
+      if (GetEnvironmentVariableW(envvar, dir, MAX_PATH) == 0) {
         static const WCHAR fmt[] = {'%','s','\\','\0'};
-        wsprintf(cmd, fmt, cmd);
+        wsprintfW(cmd, fmt, cmd);
         WINE_TRACE("No special directory settings, using dir of %s\n", wine_dbgstr_w(cmd));
       }
       WINE_TRACE("Got directory %s as %s\n", wine_dbgstr_w(envvar), wine_dbgstr_w(cmd));
-      status = SetCurrentDirectory (cmd);
+      status = SetCurrentDirectoryW(cmd);
       if (!status) WCMD_print_error ();
       HeapFree( GetProcessHeap(), 0, cmd );
       HeapFree( GetProcessHeap(), 0, new_redir );
@@ -1311,7 +1311,7 @@
     /* STDIN could come from a preceding pipe, so delete on close if it does */
     if (cmdList && (*cmdList)->pipeFile[0] != 0x00) {
         WINE_TRACE("Input coming from %s\n", wine_dbgstr_w((*cmdList)->pipeFile));
-        h = CreateFile ((*cmdList)->pipeFile, GENERIC_READ,
+        h = CreateFileW((*cmdList)->pipeFile, GENERIC_READ,
                   FILE_SHARE_READ, &sa, OPEN_EXISTING,
                   FILE_ATTRIBUTE_NORMAL | FILE_FLAG_DELETE_ON_CLOSE, NULL);
         if (h == INVALID_HANDLE_VALUE) {
@@ -1327,7 +1327,7 @@
 
     /* Otherwise STDIN could come from a '<' redirect */
     } else if ((p = strchrW(new_redir,'<')) != NULL) {
-      h = CreateFile (WCMD_parameter (++p, 0, NULL), GENERIC_READ, FILE_SHARE_READ, &sa, OPEN_EXISTING,
+      h = CreateFileW(WCMD_parameter (++p, 0, NULL), GENERIC_READ, FILE_SHARE_READ, &sa, OPEN_EXISTING,
 		FILE_ATTRIBUTE_NORMAL, NULL);
       if (h == INVALID_HANDLE_VALUE) {
 	WCMD_print_error ();
@@ -1374,7 +1374,7 @@
 
       } else {
         WCHAR *param = WCMD_parameter (p, 0, NULL);
-        h = CreateFile (param, GENERIC_WRITE, 0, &sa, creationDisposition,
+        h = CreateFileW(param, GENERIC_WRITE, 0, &sa, creationDisposition,
                         FILE_ATTRIBUTE_NORMAL, NULL);
         if (h == INVALID_HANDLE_VALUE) {
           WCMD_print_error ();
@@ -1405,11 +1405,11 @@
  */
 
     count = 0;
-    while (IsCharAlphaNumeric(whichcmd[count])) {
+    while (IsCharAlphaNumericW(whichcmd[count])) {
       count++;
     }
     for (i=0; i<=WCMD_EXIT; i++) {
-      if (CompareString (LOCALE_USER_DEFAULT, NORM_IGNORECASE | SORT_STRINGSORT,
+      if (CompareStringW(LOCALE_USER_DEFAULT, NORM_IGNORECASE | SORT_STRINGSORT,
         whichcmd, count, inbuilt[i], -1) == 2) break;
     }
     p = WCMD_strtrim_leading_spaces (&whichcmd[count]);
@@ -1566,7 +1566,7 @@
     static WCHAR msg[2048];
     static const WCHAR failedMsg[]  = {'F','a','i','l','e','d','!','\0'};
 
-    if (!LoadString(GetModuleHandle(NULL), id, msg, sizeof(msg)/sizeof(WCHAR))) {
+    if (!LoadStringW(GetModuleHandleW(NULL), id, msg, sizeof(msg)/sizeof(WCHAR))) {
        WINE_FIXME("LoadString failed with %d\n", GetLastError());
        strcpyW(msg, failedMsg);
     }
@@ -1795,12 +1795,12 @@
         const WCHAR forDO[]  = {'d','o',' ','\0'};
 
         /* If command starts with 'rem', ignore any &&, ( etc */
-        if (CompareString (LOCALE_USER_DEFAULT, NORM_IGNORECASE | SORT_STRINGSORT,
+        if (CompareStringW(LOCALE_USER_DEFAULT, NORM_IGNORECASE | SORT_STRINGSORT,
           curPos, 4, remCmd, -1) == 2) {
           inRem = TRUE;
 
         /* If command starts with 'for', handle ('s mid line after IN or DO */
-        } else if (CompareString (LOCALE_USER_DEFAULT, NORM_IGNORECASE | SORT_STRINGSORT,
+        } else if (CompareStringW(LOCALE_USER_DEFAULT, NORM_IGNORECASE | SORT_STRINGSORT,
           curPos, 4, forCmd, -1) == 2) {
           inFor = TRUE;
 
@@ -1810,11 +1810,11 @@
             FIXME: Silly syntax like "if 1(==1( (
                                         echo they equal
                                       )" will be parsed wrong */
-        } else if (CompareString (LOCALE_USER_DEFAULT, NORM_IGNORECASE | SORT_STRINGSORT,
+        } else if (CompareStringW(LOCALE_USER_DEFAULT, NORM_IGNORECASE | SORT_STRINGSORT,
           curPos, 3, ifCmd, -1) == 2) {
           inIf = TRUE;
 
-        } else if (CompareString (LOCALE_USER_DEFAULT, NORM_IGNORECASE | SORT_STRINGSORT,
+        } else if (CompareStringW(LOCALE_USER_DEFAULT, NORM_IGNORECASE | SORT_STRINGSORT,
           curPos, 5, ifElse, -1) == 2) {
           inElse = TRUE;
           lastWasElse = TRUE;
@@ -1828,7 +1828,7 @@
            whitespace, followed by DO, ie closeBracket inserts a NULL entry, curLen
            is then 0, and all whitespace is skipped                                */
         } else if (inFor &&
-                   (CompareString (LOCALE_USER_DEFAULT, NORM_IGNORECASE | SORT_STRINGSORT,
+                   (CompareStringW(LOCALE_USER_DEFAULT, NORM_IGNORECASE | SORT_STRINGSORT,
                     curPos, 3, forDO, -1) == 2)) {
           WINE_TRACE("Found DO\n");
           lastWasDo = TRUE;
@@ -1846,7 +1846,7 @@
 
           WINE_TRACE("Found 'FOR', comparing next parm: '%s'\n", wine_dbgstr_w(curPos));
 
-          if (CompareString (LOCALE_USER_DEFAULT, NORM_IGNORECASE | SORT_STRINGSORT,
+          if (CompareStringW(LOCALE_USER_DEFAULT, NORM_IGNORECASE | SORT_STRINGSORT,
               curPos, 3, forIN, -1) == 2) {
             WINE_TRACE("Found IN\n");
             lastWasIn = TRUE;
@@ -2197,7 +2197,7 @@
   /* Pre initialize some messages */
   strcpy(ansiVersion, PACKAGE_VERSION);
   MultiByteToWideChar(CP_ACP, 0, ansiVersion, -1, string, 1024);
-  wsprintf(version_string, WCMD_LoadMessage(WCMD_VERSION), string);
+  wsprintfW(version_string, WCMD_LoadMessage(WCMD_VERSION), string);
   strcpyW(anykey, WCMD_LoadMessage(WCMD_ANYKEY));
 
   args  = argc;
@@ -2412,7 +2412,7 @@
 
   SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), ENABLE_LINE_INPUT |
                  ENABLE_ECHO_INPUT | ENABLE_PROCESSED_INPUT);
-  SetConsoleTitle(WCMD_LoadMessage(WCMD_CONSTITLE));
+  SetConsoleTitleW(WCMD_LoadMessage(WCMD_CONSTITLE));
 
   /* Note: cmd.exe /c dir does not get a new color, /k dir does */
   if (opt_t) {
@@ -2435,20 +2435,20 @@
                                       'C','o','m','m','a','n','d',' ','P','r','o','c','e','s','s','o','r','\0'};
       static const WCHAR dfltColorW[] = {'D','e','f','a','u','l','t','C','o','l','o','r','\0'};
 
-      if (RegOpenKeyEx(HKEY_CURRENT_USER, regKeyW,
+      if (RegOpenKeyExW(HKEY_CURRENT_USER, regKeyW,
                        0, KEY_READ, &key) == ERROR_SUCCESS) {
           WCHAR  strvalue[4];
 
           /* See if DWORD or REG_SZ */
-          if (RegQueryValueEx(key, dfltColorW, NULL, &type,
+          if (RegQueryValueExW(key, dfltColorW, NULL, &type,
                      NULL, NULL) == ERROR_SUCCESS) {
               if (type == REG_DWORD) {
                   size = sizeof(DWORD);
-                  RegQueryValueEx(key, dfltColorW, NULL, NULL,
+                  RegQueryValueExW(key, dfltColorW, NULL, NULL,
                                   (LPBYTE)&value, &size);
               } else if (type == REG_SZ) {
                   size = sizeof(strvalue)/sizeof(WCHAR);
-                  RegQueryValueEx(key, dfltColorW, NULL, NULL,
+                  RegQueryValueExW(key, dfltColorW, NULL, NULL,
                                   (LPBYTE)strvalue, &size);
                   value = strtoulW(strvalue, NULL, 10);
               }
@@ -2456,20 +2456,20 @@
           RegCloseKey(key);
       }
 
-      if (value == 0 && RegOpenKeyEx(HKEY_LOCAL_MACHINE, regKeyW,
+      if (value == 0 && RegOpenKeyExW(HKEY_LOCAL_MACHINE, regKeyW,
                        0, KEY_READ, &key) == ERROR_SUCCESS) {
           WCHAR  strvalue[4];
 
           /* See if DWORD or REG_SZ */
-          if (RegQueryValueEx(key, dfltColorW, NULL, &type,
+          if (RegQueryValueExW(key, dfltColorW, NULL, &type,
                      NULL, NULL) == ERROR_SUCCESS) {
               if (type == REG_DWORD) {
                   size = sizeof(DWORD);
-                  RegQueryValueEx(key, dfltColorW, NULL, NULL,
+                  RegQueryValueExW(key, dfltColorW, NULL, NULL,
                                   (LPBYTE)&value, &size);
               } else if (type == REG_SZ) {
                   size = sizeof(strvalue)/sizeof(WCHAR);
-                  RegQueryValueEx(key, dfltColorW, NULL, NULL,
+                  RegQueryValueExW(key, dfltColorW, NULL, NULL,
                                   (LPBYTE)strvalue, &size);
                   value = strtoulW(strvalue, NULL, 10);
               }
@@ -2487,11 +2487,11 @@
   }
 
   /* Save cwd into appropriate env var */
-  GetCurrentDirectory(1024, string);
-  if (IsCharAlpha(string[0]) && string[1] == ':') {
+  GetCurrentDirectoryW(1024, string);
+  if (IsCharAlphaW(string[0]) && string[1] == ':') {
     static const WCHAR fmt[] = {'=','%','c',':','\0'};
-    wsprintf(envvar, fmt, string[0]);
-    SetEnvironmentVariable(envvar, string);
+    wsprintfW(envvar, fmt, string[0]);
+    SetEnvironmentVariableW(envvar, string);
     WINE_TRACE("Set %s to %s\n", wine_dbgstr_w(envvar), wine_dbgstr_w(string));
   }
 
@@ -2508,8 +2508,8 @@
  *	If there is an AUTOEXEC.BAT file, try to execute it.
  */
 
-  GetFullPathName (autoexec, sizeof(string)/sizeof(WCHAR), string, NULL);
-  h = CreateFile (string, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
+  GetFullPathNameW (autoexec, sizeof(string)/sizeof(WCHAR), string, NULL);
+  h = CreateFileW(string, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
   if (h != INVALID_HANDLE_VALUE) {
     CloseHandle (h);
 #if 0