Fix some hackish usages of WideCharToMultiByte.
diff --git a/dlls/comdlg32/fontdlg.c b/dlls/comdlg32/fontdlg.c
index 2532f2f..9174ce0 100644
--- a/dlls/comdlg32/fontdlg.c
+++ b/dlls/comdlg32/fontdlg.c
@@ -1072,7 +1072,7 @@
                         LF_FACESIZE, lpcfa->lpLogFont->lfFaceName, LF_FACESIZE, 0, 0);
 
     if((lpcfw->Flags & CF_USESTYLE) && lpcfw->lpszStyle) {
-        len = WideCharToMultiByte(CP_ACP, 0, lpcfw->lpszStyle, -1, NULL, -1, 0, 0);
+        len = WideCharToMultiByte(CP_ACP, 0, lpcfw->lpszStyle, -1, NULL, 0, 0, 0);
         WideCharToMultiByte(CP_ACP, 0, lpcfw->lpszStyle, -1, lpcfa->lpszStyle, len, 0, 0);
         HeapFree(GetProcessHeap(), 0, lpcfw->lpszStyle);
     }
diff --git a/dlls/wininet/urlcache.c b/dlls/wininet/urlcache.c
index e175a7b..1cfa8de 100644
--- a/dlls/wininet/urlcache.c
+++ b/dlls/wininet/urlcache.c
@@ -2339,7 +2339,7 @@
         /* skip container path prefix */
         lpszLocalFileName += lstrlenW(pContainer->path);
 
-        WideCharToMultiByte(CP_ACP, 0, lpszLocalFileName, -1, achFile, -1, NULL, NULL);
+        WideCharToMultiByte(CP_ACP, 0, lpszLocalFileName, -1, achFile, MAX_PATH, NULL, NULL);
 	pchLocalFileName = achFile;
 
         for (cDirectory = 0; cDirectory < pHeader->DirectoryCount; cDirectory++)
diff --git a/programs/winecfg/theme.c b/programs/winecfg/theme.c
index abd016d..cdab531 100644
--- a/programs/winecfg/theme.c
+++ b/programs/winecfg/theme.c
@@ -554,7 +554,7 @@
 
     keyNameSize = WideCharToMultiByte(CP_ACP, 0, keyName, -1, keyNameA, 0, NULL, NULL);
     keyNameA = HeapAlloc(GetProcessHeap(), 0, keyNameSize);
-    WideCharToMultiByte(CP_ACP, 0, keyName, -1, keyNameA, -1, NULL, NULL);
+    WideCharToMultiByte(CP_ACP, 0, keyName, -1, keyNameA, keyNameSize, NULL, NULL);
 
     for (i=0; i<sizeof(metrics)/sizeof(metrics[0]); i++)
     {
@@ -593,7 +593,7 @@
         keyNameValueSize = WideCharToMultiByte(CP_ACP, 0, keyNameValue, -1,
                                                keyNameValueA, 0, NULL, NULL);
         keyNameValueA = HeapAlloc(GetProcessHeap(), 0, keyNameValueSize);
-        WideCharToMultiByte(CP_ACP, 0, keyNameValue, -1, keyNameValueA, -1, NULL, NULL);
+        WideCharToMultiByte(CP_ACP, 0, keyNameValue, -1, keyNameValueA, keyNameValueSize, NULL, NULL);
 
         WINE_TRACE("parsing key: %s with value: %s\n",
                    wine_dbgstr_w(keyNamePtr), wine_dbgstr_w(keyNameValue));