switching narrow char system calls to wide char in windows b=418703 r=bsmedberg r=dougt also looked at by stuart and roc a=beltzner and a=damon
git-svn-id: svn://10.0.0.236/trunk@247573 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -66,14 +66,14 @@ ClearVersion(verBlock *ver)
|
||||
}
|
||||
|
||||
static BOOL
|
||||
FileExists(LPCSTR szFile)
|
||||
FileExists(wchar_t* szFile)
|
||||
{
|
||||
return GetFileAttributes(szFile) != 0xFFFFFFFF;
|
||||
return GetFileAttributesW(szFile) != 0xFFFFFFFF;
|
||||
}
|
||||
|
||||
// Get file version information from a file
|
||||
static BOOL
|
||||
GetFileVersion(LPSTR szFile, verBlock *vbVersion)
|
||||
GetFileVersion(wchar_t* szFile, verBlock *vbVersion)
|
||||
{
|
||||
UINT uLen;
|
||||
UINT dwLen;
|
||||
@@ -86,12 +86,12 @@ GetFileVersion(LPSTR szFile, verBlock *vbVersion)
|
||||
ClearVersion(vbVersion);
|
||||
if (FileExists(szFile)) {
|
||||
bRv = TRUE;
|
||||
dwLen = GetFileVersionInfoSize(szFile, &dwHandle);
|
||||
dwLen = GetFileVersionInfoSizeW(szFile, &dwHandle);
|
||||
lpData = (LPVOID)malloc(dwLen);
|
||||
uLen = 0;
|
||||
|
||||
if (lpData && GetFileVersionInfo(szFile, dwHandle, dwLen, lpData) != 0) {
|
||||
if (VerQueryValue(lpData, "\\", &lpBuffer, &uLen) != 0) {
|
||||
if (lpData && GetFileVersionInfoW(szFile, dwHandle, dwLen, lpData) != 0) {
|
||||
if (VerQueryValueW(lpData, L"\\", &lpBuffer, &uLen) != 0) {
|
||||
lpBuffer2 = (VS_FIXEDFILEINFO *)lpBuffer;
|
||||
|
||||
vbVersion->wMajor = HIWORD(lpBuffer2->dwFileVersionMS);
|
||||
@@ -124,15 +124,15 @@ CopyVersion(verBlock *ver1, verBlock *ver2)
|
||||
static void
|
||||
TranslateVersionStr(const char* szVersion, verBlock *vbVersion)
|
||||
{
|
||||
LPSTR szNum1 = NULL;
|
||||
LPSTR szNum2 = NULL;
|
||||
LPSTR szNum3 = NULL;
|
||||
LPSTR szNum4 = NULL;
|
||||
LPSTR szJavaBuild = NULL;
|
||||
char* szNum1 = NULL;
|
||||
char* szNum2 = NULL;
|
||||
char* szNum3 = NULL;
|
||||
char* szNum4 = NULL;
|
||||
char* szJavaBuild = NULL;
|
||||
|
||||
char *strVer = nsnull;
|
||||
char* strVer = nsnull;
|
||||
if (szVersion) {
|
||||
strVer = PL_strdup(szVersion);
|
||||
strVer = strdup(szVersion);
|
||||
}
|
||||
|
||||
if (!strVer) {
|
||||
@@ -157,7 +157,7 @@ TranslateVersionStr(const char* szVersion, verBlock *vbVersion)
|
||||
vbVersion->wRelease = szNum3 ? atoi(szNum3) : 0;
|
||||
vbVersion->wBuild = szNum4 ? atoi(szNum4) : 0;
|
||||
|
||||
PL_strfree(strVer);
|
||||
free(strVer);
|
||||
}
|
||||
|
||||
// Compare two version struct, return zero if the same
|
||||
@@ -195,26 +195,28 @@ CompareVersion(verBlock vbVersionOld, verBlock vbVersionNew)
|
||||
// Indicate whether we should try to use the new NPRuntime-based Java
|
||||
// Plug-In if it's available
|
||||
static PRBool
|
||||
TryToUseNPRuntimeJavaPlugIn(const char* javaVersion)
|
||||
TryToUseNPRuntimeJavaPlugIn(const wchar_t* javaVersion)
|
||||
{
|
||||
HKEY javaKey = NULL;
|
||||
char keyName[_MAX_PATH];
|
||||
keyName[0] = 0;
|
||||
PL_strcat(keyName, "Software\\JavaSoft\\Java Plug-in\\");
|
||||
PL_strcat(keyName, javaVersion);
|
||||
wchar_t keyName[_MAX_PATH];
|
||||
|
||||
wcsncpy(keyName, L"Software\\JavaSoft\\Java Plug-in\\", wcslen(L"Software\\JavaSoft\\Java Plug-in\\"));
|
||||
wcscpy(keyName, javaVersion);
|
||||
|
||||
DWORD val;
|
||||
DWORD valSize = sizeof(DWORD);
|
||||
|
||||
if (ERROR_SUCCESS != ::RegOpenKeyEx(HKEY_LOCAL_MACHINE,
|
||||
if (ERROR_SUCCESS != ::RegOpenKeyExW(HKEY_LOCAL_MACHINE,
|
||||
keyName, 0, KEY_READ, &javaKey)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// Look for "UseNewJavaPlugin"
|
||||
if (ERROR_SUCCESS != ::RegQueryValueEx(javaKey, "UseNewJavaPlugin",
|
||||
NULL, NULL,
|
||||
(LPBYTE) &val,
|
||||
&valSize)) {
|
||||
if (ERROR_SUCCESS != ::RegQueryValueExW(javaKey,
|
||||
L"UseNewJavaPlugin",
|
||||
NULL, NULL,
|
||||
(LPBYTE) &val,
|
||||
&valSize)) {
|
||||
val = 0;
|
||||
}
|
||||
|
||||
@@ -262,7 +264,7 @@ nsPluginDirServiceProvider::GetFile(const char *prop, PRBool *persistant,
|
||||
return rv;
|
||||
}
|
||||
|
||||
if (nsCRT::strcmp(prop, NS_WIN_4DOTX_SCAN_KEY) == 0) {
|
||||
if (strcmp(prop, NS_WIN_4DOTX_SCAN_KEY) == 0) {
|
||||
// Check our prefs to see if scanning the 4.x folder has been
|
||||
// explictly overriden failure to get the pref is okay, we'll do
|
||||
// what we've been doing -- a filtered scan
|
||||
@@ -277,38 +279,38 @@ nsPluginDirServiceProvider::GetFile(const char *prop, PRBool *persistant,
|
||||
HKEY keyloc;
|
||||
long result;
|
||||
DWORD type;
|
||||
char szKey[_MAX_PATH] = "Software\\Netscape\\Netscape Navigator";
|
||||
char path[_MAX_PATH];
|
||||
wchar_t szKey[_MAX_PATH] = L"Software\\Netscape\\Netscape Navigator";
|
||||
wchar_t path[_MAX_PATH];
|
||||
|
||||
result = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, szKey, 0, KEY_READ, &keyloc);
|
||||
result = ::RegOpenKeyExW(HKEY_LOCAL_MACHINE, szKey, 0, KEY_READ, &keyloc);
|
||||
|
||||
if (result == ERROR_SUCCESS) {
|
||||
char current_version[80];
|
||||
wchar_t current_version[80];
|
||||
DWORD length = sizeof(current_version);
|
||||
|
||||
result = ::RegQueryValueEx(keyloc, "CurrentVersion", NULL, &type,
|
||||
result = ::RegQueryValueExW(keyloc, L"CurrentVersion", NULL, &type,
|
||||
(LPBYTE)¤t_version, &length);
|
||||
|
||||
::RegCloseKey(keyloc);
|
||||
PL_strcat(szKey, "\\");
|
||||
PL_strcat(szKey, current_version);
|
||||
PL_strcat(szKey, "\\Main");
|
||||
result = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, szKey, 0, KEY_READ, &keyloc);
|
||||
wcscat(szKey, L"\\");
|
||||
wcscat(szKey, current_version);
|
||||
wcscat(szKey, L"\\Main");
|
||||
result = ::RegOpenKeyExW(HKEY_LOCAL_MACHINE, szKey, 0, KEY_READ, &keyloc);
|
||||
|
||||
if (result == ERROR_SUCCESS) {
|
||||
DWORD pathlen = sizeof(path);
|
||||
|
||||
result = ::RegQueryValueEx(keyloc, "Plugins Directory", NULL, &type,
|
||||
result = ::RegQueryValueExW(keyloc, L"Plugins Directory", NULL, &type,
|
||||
(LPBYTE)&path, &pathlen);
|
||||
if (result == ERROR_SUCCESS) {
|
||||
rv = NS_NewNativeLocalFile(nsDependentCString(path), PR_TRUE,
|
||||
getter_AddRefs(localFile));
|
||||
rv = NS_NewLocalFile(nsDependentString(path), PR_TRUE,
|
||||
getter_AddRefs(localFile));
|
||||
}
|
||||
|
||||
::RegCloseKey(keyloc);
|
||||
}
|
||||
}
|
||||
} else if (nsCRT::strcmp(prop, NS_WIN_JRE_SCAN_KEY) == 0) {
|
||||
} else if (strcmp(prop, NS_WIN_JRE_SCAN_KEY) == 0) {
|
||||
nsXPIDLCString strVer;
|
||||
#ifdef OJI
|
||||
if (NS_FAILED(prefs->GetCharPref(prop, getter_Copies(strVer))))
|
||||
@@ -328,24 +330,25 @@ nsPluginDirServiceProvider::GetFile(const char *prop, PRBool *persistant,
|
||||
DWORD pathlen;
|
||||
verBlock maxVer;
|
||||
ClearVersion(&maxVer);
|
||||
char curKey[_MAX_PATH] = "Software\\JavaSoft\\Java Runtime Environment";
|
||||
char path[_MAX_PATH];
|
||||
wchar_t curKey[_MAX_PATH] = L"Software\\JavaSoft\\Java Runtime Environment";
|
||||
wchar_t path[_MAX_PATH];
|
||||
|
||||
// Add + 15 to prevent buffer overrun when adding \bin (+ optionally
|
||||
// \new_plugin)
|
||||
#define JAVA_PATH_SIZE _MAX_PATH + 15
|
||||
char newestPath[JAVA_PATH_SIZE];
|
||||
const char mozPath[_MAX_PATH] = "Software\\mozilla.org\\Mozilla";
|
||||
char browserJavaVersion[_MAX_PATH];
|
||||
wchar_t newestPath[JAVA_PATH_SIZE];
|
||||
const wchar_t mozPath[_MAX_PATH] = L"Software\\mozilla.org\\Mozilla";
|
||||
wchar_t browserJavaVersion[_MAX_PATH];
|
||||
PRBool tryNPRuntimeJavaPlugIn = PR_FALSE;
|
||||
|
||||
newestPath[0] = 0;
|
||||
LONG result = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, curKey, 0, KEY_READ,
|
||||
LONG result = ::RegOpenKeyExW(HKEY_LOCAL_MACHINE, curKey, 0, KEY_READ,
|
||||
&baseloc);
|
||||
if (ERROR_SUCCESS != result)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
// Look for "BrowserJavaVersion"
|
||||
if (ERROR_SUCCESS != ::RegQueryValueEx(baseloc, "BrowserJavaVersion", NULL,
|
||||
if (ERROR_SUCCESS != ::RegQueryValueExW(baseloc, L"BrowserJavaVersion", NULL,
|
||||
NULL, (LPBYTE)&browserJavaVersion,
|
||||
&numChars))
|
||||
browserJavaVersion[0] = 0;
|
||||
@@ -356,13 +359,13 @@ nsPluginDirServiceProvider::GetFile(const char *prop, PRBool *persistant,
|
||||
path[0] = 0;
|
||||
numChars = _MAX_PATH;
|
||||
pathlen = sizeof(path);
|
||||
result = ::RegEnumKeyEx(baseloc, index, curKey, &numChars, NULL, NULL,
|
||||
result = ::RegEnumKeyExW(baseloc, index, curKey, &numChars, NULL, NULL,
|
||||
NULL, &modTime);
|
||||
index++;
|
||||
|
||||
// Skip major.minor as it always points to latest in its family
|
||||
numChars = 0;
|
||||
for (char *p = curKey; *p; p++) {
|
||||
for (wchar_t *p = curKey; *p; p++) { // can I do this with wchar_t xxx?
|
||||
if (*p == '.') {
|
||||
numChars++;
|
||||
}
|
||||
@@ -371,24 +374,24 @@ nsPluginDirServiceProvider::GetFile(const char *prop, PRBool *persistant,
|
||||
continue;
|
||||
|
||||
if (ERROR_SUCCESS == result) {
|
||||
if (ERROR_SUCCESS == ::RegOpenKeyEx(baseloc, curKey, 0,
|
||||
if (ERROR_SUCCESS == ::RegOpenKeyExW(baseloc, curKey, 0,
|
||||
KEY_QUERY_VALUE, &keyloc)) {
|
||||
// We have a sub key
|
||||
if (ERROR_SUCCESS == ::RegQueryValueEx(keyloc, "JavaHome", NULL,
|
||||
if (ERROR_SUCCESS == ::RegQueryValueExW(keyloc, L"JavaHome", NULL,
|
||||
&type, (LPBYTE)&path,
|
||||
&pathlen)) {
|
||||
verBlock curVer;
|
||||
TranslateVersionStr(curKey, &curVer);
|
||||
TranslateVersionStr(NS_ConvertUTF16toUTF8(curKey).get(), &curVer);
|
||||
if (CompareVersion(curVer, minVer) >= 0) {
|
||||
if (!strncmp(browserJavaVersion, curKey, _MAX_PATH)) {
|
||||
PL_strcpy(newestPath, path);
|
||||
if (!wcsncmp(browserJavaVersion, curKey, _MAX_PATH)) {
|
||||
wcscpy(newestPath, path);
|
||||
tryNPRuntimeJavaPlugIn = TryToUseNPRuntimeJavaPlugIn(curKey);
|
||||
::RegCloseKey(keyloc);
|
||||
break;
|
||||
}
|
||||
|
||||
if (CompareVersion(curVer, maxVer) >= 0) {
|
||||
PL_strcpy(newestPath, path);
|
||||
wcscpy(newestPath, path);
|
||||
CopyVersion(&maxVer, &curVer);
|
||||
tryNPRuntimeJavaPlugIn = TryToUseNPRuntimeJavaPlugIn(curKey);
|
||||
}
|
||||
@@ -404,20 +407,20 @@ nsPluginDirServiceProvider::GetFile(const char *prop, PRBool *persistant,
|
||||
// If nothing is found, then don't add \bin dir and don't set
|
||||
// CurrentVersion for Mozilla
|
||||
if (newestPath[0] != 0) {
|
||||
if (ERROR_SUCCESS == ::RegCreateKeyEx(HKEY_LOCAL_MACHINE, mozPath, 0,
|
||||
if (ERROR_SUCCESS == ::RegCreateKeyExW(HKEY_LOCAL_MACHINE, mozPath, 0,
|
||||
NULL, REG_OPTION_NON_VOLATILE,
|
||||
KEY_SET_VALUE|KEY_QUERY_VALUE,
|
||||
NULL, &entryloc, NULL)) {
|
||||
if (ERROR_SUCCESS != ::RegQueryValueEx(entryloc, "CurrentVersion", 0,
|
||||
if (ERROR_SUCCESS != ::RegQueryValueExW(entryloc, L"CurrentVersion", 0,
|
||||
NULL, NULL, NULL)) {
|
||||
::RegSetValueEx(entryloc, "CurrentVersion", 0, REG_SZ,
|
||||
::RegSetValueExW(entryloc, L"CurrentVersion", 0, REG_SZ,
|
||||
(const BYTE*)MOZILLA_VERSION,
|
||||
sizeof(MOZILLA_VERSION));
|
||||
}
|
||||
::RegCloseKey(entryloc);
|
||||
}
|
||||
|
||||
PL_strcat(newestPath,"\\bin");
|
||||
wcscat(newestPath,L"\\bin");
|
||||
|
||||
// See whether we should use the new NPRuntime-based Java Plug-In:
|
||||
// - If tryNPRuntimeJavaPlugIn is true, and
|
||||
@@ -427,13 +430,13 @@ nsPluginDirServiceProvider::GetFile(const char *prop, PRBool *persistant,
|
||||
// one any more.
|
||||
if (tryNPRuntimeJavaPlugIn) {
|
||||
// See whether the "new_plugin" directory exists
|
||||
char tmpPath[JAVA_PATH_SIZE];
|
||||
PL_strcpy(tmpPath, newestPath);
|
||||
PL_strcat(tmpPath, "\\new_plugin");
|
||||
wchar_t tmpPath[JAVA_PATH_SIZE];
|
||||
wcscpy(tmpPath, newestPath);
|
||||
wcscat(tmpPath, L"\\new_plugin");
|
||||
nsCOMPtr<nsILocalFile> tmpFile;
|
||||
if (NS_SUCCEEDED(NS_NewNativeLocalFile(nsDependentCString(tmpPath),
|
||||
PR_TRUE,
|
||||
getter_AddRefs(tmpFile))) &&
|
||||
if (NS_SUCCEEDED(NS_NewLocalFile(nsDependentString(tmpPath),
|
||||
PR_TRUE,
|
||||
getter_AddRefs(tmpFile))) &&
|
||||
tmpFile) {
|
||||
PRBool exists = PR_FALSE;
|
||||
PRBool isDir = PR_FALSE;
|
||||
@@ -442,15 +445,15 @@ nsPluginDirServiceProvider::GetFile(const char *prop, PRBool *persistant,
|
||||
// Assume we're supposed to use this as the search
|
||||
// directory for the Java Plug-In instead of the normal
|
||||
// one
|
||||
PL_strcpy(newestPath, tmpPath);
|
||||
wcscpy(newestPath, tmpPath);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rv = NS_NewNativeLocalFile(nsDependentCString(newestPath), PR_TRUE,
|
||||
getter_AddRefs(localFile));
|
||||
rv = NS_NewLocalFile(nsDependentString(newestPath), PR_TRUE,
|
||||
getter_AddRefs(localFile));
|
||||
}
|
||||
} else if (nsCRT::strcmp(prop, NS_WIN_QUICKTIME_SCAN_KEY) == 0) {
|
||||
} else if (strcmp(prop, NS_WIN_QUICKTIME_SCAN_KEY) == 0) {
|
||||
nsXPIDLCString strVer;
|
||||
if (NS_FAILED(prefs->GetCharPref(prop, getter_Copies(strVer))))
|
||||
return NS_ERROR_FAILURE;
|
||||
@@ -463,33 +466,33 @@ nsPluginDirServiceProvider::GetFile(const char *prop, PRBool *persistant,
|
||||
DWORD type;
|
||||
verBlock qtVer;
|
||||
ClearVersion(&qtVer);
|
||||
char path[_MAX_PATH];
|
||||
wchar_t path[_MAX_PATH];
|
||||
DWORD pathlen = sizeof(path);
|
||||
|
||||
// First we need to check the version of Quicktime via checking
|
||||
// the EXE's version table
|
||||
if (ERROR_SUCCESS == ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, "software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\QuickTimePlayer.exe", 0, KEY_READ, &keyloc)) {
|
||||
if (ERROR_SUCCESS == ::RegQueryValueEx(keyloc, NULL, NULL, &type,
|
||||
(LPBYTE)&path, &pathlen)) {
|
||||
GetFileVersion((char*)path, &qtVer);
|
||||
if (ERROR_SUCCESS == ::RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\QuickTimePlayer.exe", 0, KEY_READ, &keyloc)) {
|
||||
if (ERROR_SUCCESS == ::RegQueryValueExW(keyloc, NULL, NULL, &type,
|
||||
(LPBYTE)&path, &pathlen)) {
|
||||
GetFileVersion(path, &qtVer);
|
||||
}
|
||||
::RegCloseKey(keyloc);
|
||||
}
|
||||
if (CompareVersion(qtVer, minVer) < 0)
|
||||
return rv;
|
||||
|
||||
if (ERROR_SUCCESS == ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, "software\\Apple Computer, Inc.\\QuickTime", 0, KEY_READ, &keyloc)) {
|
||||
if (ERROR_SUCCESS == ::RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"software\\Apple Computer, Inc.\\QuickTime", 0, KEY_READ, &keyloc)) {
|
||||
DWORD pathlen = sizeof(path);
|
||||
|
||||
result = ::RegQueryValueEx(keyloc, "InstallDir", NULL, &type,
|
||||
result = ::RegQueryValueExW(keyloc, L"InstallDir", NULL, &type,
|
||||
(LPBYTE)&path, &pathlen);
|
||||
PL_strcat(path, "\\Plugins");
|
||||
wcscat(path, L"\\Plugins");
|
||||
if (result == ERROR_SUCCESS)
|
||||
rv = NS_NewNativeLocalFile(nsDependentCString(path), PR_TRUE,
|
||||
getter_AddRefs(localFile));
|
||||
rv = NS_NewLocalFile(nsDependentString(path), PR_TRUE,
|
||||
getter_AddRefs(localFile));
|
||||
::RegCloseKey(keyloc);
|
||||
}
|
||||
} else if (nsCRT::strcmp(prop, NS_WIN_WMP_SCAN_KEY) == 0) {
|
||||
} else if (strcmp(prop, NS_WIN_WMP_SCAN_KEY) == 0) {
|
||||
nsXPIDLCString strVer;
|
||||
if (NS_FAILED(prefs->GetCharPref(prop, getter_Copies(strVer))))
|
||||
return NS_ERROR_FAILURE;
|
||||
@@ -501,33 +504,33 @@ nsPluginDirServiceProvider::GetFile(const char *prop, PRBool *persistant,
|
||||
DWORD type;
|
||||
verBlock wmpVer;
|
||||
ClearVersion(&wmpVer);
|
||||
char path[_MAX_PATH];
|
||||
wchar_t path[_MAX_PATH];
|
||||
DWORD pathlen = sizeof(path);
|
||||
|
||||
// First we need to check the version of WMP
|
||||
if (ERROR_SUCCESS == ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, "software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\wmplayer.exe", 0, KEY_READ, &keyloc)) {
|
||||
if (ERROR_SUCCESS == ::RegQueryValueEx(keyloc, NULL, NULL, &type,
|
||||
(LPBYTE)&path, &pathlen)) {
|
||||
GetFileVersion((char*)path, &wmpVer);
|
||||
if (ERROR_SUCCESS == ::RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\wmplayer.exe", 0, KEY_READ, &keyloc)) {
|
||||
if (ERROR_SUCCESS == ::RegQueryValueExW(keyloc, NULL, NULL, &type,
|
||||
(LPBYTE)&path, &pathlen)) {
|
||||
GetFileVersion(path, &wmpVer);
|
||||
}
|
||||
::RegCloseKey(keyloc);
|
||||
}
|
||||
if (CompareVersion(wmpVer, minVer) < 0)
|
||||
return rv;
|
||||
|
||||
if (ERROR_SUCCESS == ::RegOpenKeyEx(HKEY_LOCAL_MACHINE,
|
||||
"software\\Microsoft\\MediaPlayer", 0,
|
||||
if (ERROR_SUCCESS == ::RegOpenKeyExW(HKEY_LOCAL_MACHINE,
|
||||
L"software\\Microsoft\\MediaPlayer", 0,
|
||||
KEY_READ, &keyloc)) {
|
||||
if (ERROR_SUCCESS == ::RegQueryValueEx(keyloc, "Installation Directory",
|
||||
if (ERROR_SUCCESS == ::RegQueryValueExW(keyloc, L"Installation Directory",
|
||||
NULL, &type, (LPBYTE)&path,
|
||||
&pathlen)) {
|
||||
rv = NS_NewNativeLocalFile(nsDependentCString(path), PR_TRUE,
|
||||
getter_AddRefs(localFile));
|
||||
rv = NS_NewLocalFile(nsDependentString(path), PR_TRUE,
|
||||
getter_AddRefs(localFile));
|
||||
}
|
||||
|
||||
::RegCloseKey(keyloc);
|
||||
}
|
||||
} else if (nsCRT::strcmp(prop, NS_WIN_ACROBAT_SCAN_KEY) == 0) {
|
||||
} else if (strcmp(prop, NS_WIN_ACROBAT_SCAN_KEY) == 0) {
|
||||
nsXPIDLCString strVer;
|
||||
if (NS_FAILED(prefs->GetCharPref(prop, getter_Copies(strVer)))) {
|
||||
return NS_ERROR_FAILURE;
|
||||
@@ -546,16 +549,16 @@ nsPluginDirServiceProvider::GetFile(const char *prop, PRBool *persistant,
|
||||
DWORD pathlen;
|
||||
verBlock maxVer;
|
||||
ClearVersion(&maxVer);
|
||||
char curKey[_MAX_PATH] = "software\\Adobe\\Acrobat Reader";
|
||||
char path[_MAX_PATH];
|
||||
wchar_t curKey[_MAX_PATH] = L"software\\Adobe\\Acrobat Reader";
|
||||
wchar_t path[_MAX_PATH];
|
||||
// Add + 8 to prevent buffer overrun when adding \browser
|
||||
char newestPath[_MAX_PATH + 8];
|
||||
wchar_t newestPath[_MAX_PATH + 8];
|
||||
|
||||
newestPath[0] = 0;
|
||||
if (ERROR_SUCCESS != ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, curKey, 0,
|
||||
if (ERROR_SUCCESS != ::RegOpenKeyExW(HKEY_LOCAL_MACHINE, curKey, 0,
|
||||
KEY_READ, &baseloc)) {
|
||||
PL_strcpy(curKey, "software\\Adobe\\Adobe Acrobat");
|
||||
if (ERROR_SUCCESS != ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, curKey, 0,
|
||||
wcscpy(curKey, L"software\\Adobe\\Adobe Acrobat");
|
||||
if (ERROR_SUCCESS != ::RegOpenKeyExW(HKEY_LOCAL_MACHINE, curKey, 0,
|
||||
KEY_READ, &baseloc)) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
@@ -568,22 +571,22 @@ nsPluginDirServiceProvider::GetFile(const char *prop, PRBool *persistant,
|
||||
path[0] = 0;
|
||||
numChars = _MAX_PATH;
|
||||
pathlen = sizeof(path);
|
||||
result = ::RegEnumKeyEx(baseloc, index, curKey, &numChars, NULL, NULL,
|
||||
result = ::RegEnumKeyExW(baseloc, index, curKey, &numChars, NULL, NULL,
|
||||
NULL, &modTime);
|
||||
index++;
|
||||
|
||||
if (ERROR_SUCCESS == result) {
|
||||
verBlock curVer;
|
||||
TranslateVersionStr(curKey, &curVer);
|
||||
PL_strcat(curKey, "\\InstallPath");
|
||||
if (ERROR_SUCCESS == ::RegOpenKeyEx(baseloc, curKey, 0,
|
||||
TranslateVersionStr(NS_ConvertUTF16toUTF8(curKey).get(), &curVer);
|
||||
wcscat(curKey, L"\\InstallPath");
|
||||
if (ERROR_SUCCESS == ::RegOpenKeyExW(baseloc, curKey, 0,
|
||||
KEY_QUERY_VALUE, &keyloc)) {
|
||||
// We have a sub key
|
||||
if (ERROR_SUCCESS == ::RegQueryValueEx(keyloc, NULL, NULL, &type,
|
||||
if (ERROR_SUCCESS == ::RegQueryValueExW(keyloc, NULL, NULL, &type,
|
||||
(LPBYTE)&path, &pathlen)) {
|
||||
if (CompareVersion(curVer, maxVer) >= 0 &&
|
||||
CompareVersion(curVer, minVer) >= 0) {
|
||||
PL_strcpy(newestPath, path);
|
||||
wcscpy(newestPath, path);
|
||||
CopyVersion(&maxVer, &curVer);
|
||||
}
|
||||
}
|
||||
@@ -596,9 +599,9 @@ nsPluginDirServiceProvider::GetFile(const char *prop, PRBool *persistant,
|
||||
::RegCloseKey(baseloc);
|
||||
|
||||
if (newestPath[0] != 0) {
|
||||
PL_strcat(newestPath,"\\browser");
|
||||
rv = NS_NewNativeLocalFile(nsDependentCString(newestPath), PR_TRUE,
|
||||
getter_AddRefs(localFile));
|
||||
wcscat(newestPath, L"\\browser");
|
||||
rv = NS_NewLocalFile(nsDependentString(newestPath), PR_TRUE,
|
||||
getter_AddRefs(localFile));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -626,32 +629,32 @@ nsPluginDirServiceProvider::GetPLIDDirectories(nsISimpleEnumerator **aEnumerator
|
||||
nsresult
|
||||
nsPluginDirServiceProvider::GetPLIDDirectoriesWithHKEY(HKEY aKey, nsCOMArray<nsILocalFile> &aDirs)
|
||||
{
|
||||
char subkey[_MAX_PATH] = "Software\\MozillaPlugins";
|
||||
wchar_t subkey[_MAX_PATH] = L"Software\\MozillaPlugins";
|
||||
HKEY baseloc;
|
||||
|
||||
if (ERROR_SUCCESS != ::RegOpenKeyEx(aKey, subkey, 0, KEY_READ, &baseloc))
|
||||
if (ERROR_SUCCESS != ::RegOpenKeyExW(aKey, subkey, 0, KEY_READ, &baseloc))
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
DWORD index = 0;
|
||||
DWORD subkeylen = _MAX_PATH;
|
||||
FILETIME modTime;
|
||||
while (ERROR_SUCCESS == ::RegEnumKeyEx(baseloc, index++, subkey, &subkeylen,
|
||||
while (ERROR_SUCCESS == ::RegEnumKeyExW(baseloc, index++, subkey, &subkeylen,
|
||||
NULL, NULL, NULL, &modTime)) {
|
||||
subkeylen = _MAX_PATH;
|
||||
HKEY keyloc;
|
||||
|
||||
if (ERROR_SUCCESS == ::RegOpenKeyEx(baseloc, subkey, 0, KEY_QUERY_VALUE,
|
||||
if (ERROR_SUCCESS == ::RegOpenKeyExW(baseloc, subkey, 0, KEY_QUERY_VALUE,
|
||||
&keyloc)) {
|
||||
DWORD type;
|
||||
char path[_MAX_PATH];
|
||||
wchar_t path[_MAX_PATH];
|
||||
DWORD pathlen = sizeof(path);
|
||||
|
||||
if (ERROR_SUCCESS == ::RegQueryValueEx(keyloc, "Path", NULL, &type,
|
||||
if (ERROR_SUCCESS == ::RegQueryValueExW(keyloc, L"Path", NULL, &type,
|
||||
(LPBYTE)&path, &pathlen)) {
|
||||
nsCOMPtr<nsILocalFile> localFile;
|
||||
if (NS_SUCCEEDED(NS_NewNativeLocalFile(nsDependentCString(path),
|
||||
PR_TRUE,
|
||||
getter_AddRefs(localFile))) &&
|
||||
if (NS_SUCCEEDED(NS_NewLocalFile(nsDependentString(path),
|
||||
PR_TRUE,
|
||||
getter_AddRefs(localFile))) &&
|
||||
localFile) {
|
||||
// Some vendors use a path directly to the DLL so chop off
|
||||
// the filename
|
||||
|
||||
@@ -4052,18 +4052,18 @@ nsPluginHostImpl::TrySetUpPluginInstance(const char *aMimeType,
|
||||
#ifdef XP_WIN
|
||||
static BOOL firstJavaPlugin = FALSE;
|
||||
BOOL restoreOrigDir = FALSE;
|
||||
char origDir[_MAX_PATH];
|
||||
PRUnichar origDir[_MAX_PATH];
|
||||
if (isJavaPlugin && !firstJavaPlugin) {
|
||||
DWORD dw = ::GetCurrentDirectory(_MAX_PATH, origDir);
|
||||
DWORD dw = ::GetCurrentDirectoryW(_MAX_PATH, origDir);
|
||||
NS_ASSERTION(dw <= _MAX_PATH, "Falied to obtain the current directory, which may leads to incorrect class laoding");
|
||||
nsCOMPtr<nsIFile> binDirectory;
|
||||
result = NS_GetSpecialDirectory(NS_XPCOM_CURRENT_PROCESS_DIR,
|
||||
getter_AddRefs(binDirectory));
|
||||
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
nsCAutoString path;
|
||||
binDirectory->GetNativePath(path);
|
||||
restoreOrigDir = ::SetCurrentDirectory(path.get());
|
||||
nsAutoString path;
|
||||
binDirectory->GetPath(path);
|
||||
restoreOrigDir = ::SetCurrentDirectoryW(path.get());
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -4071,7 +4071,7 @@ nsPluginHostImpl::TrySetUpPluginInstance(const char *aMimeType,
|
||||
|
||||
#ifdef XP_WIN
|
||||
if (!firstJavaPlugin && restoreOrigDir) {
|
||||
BOOL bCheck = ::SetCurrentDirectory(origDir);
|
||||
BOOL bCheck = ::SetCurrentDirectoryW(origDir);
|
||||
NS_ASSERTION(bCheck, " Error restoring driectoy");
|
||||
firstJavaPlugin = TRUE;
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
|
||||
static NS_DEFINE_CID(kCPluginManagerCID, NS_PLUGINMANAGER_CID); // needed for NS_TRY_SAFE_CALL
|
||||
|
||||
#define NS_PLUGIN_WINDOW_PROPERTY_ASSOCIATION "MozillaPluginWindowPropertyAssociation"
|
||||
#define NS_PLUGIN_WINDOW_PROPERTY_ASSOCIATION L"MozillaPluginWindowPropertyAssociation"
|
||||
|
||||
typedef nsTWeakRef<class nsPluginNativeWindowWin> PluginWindowWeakRef;
|
||||
|
||||
@@ -203,7 +203,7 @@ NS_IMETHODIMP nsDelayedPopupsEnabledEvent::Run()
|
||||
*/
|
||||
static LRESULT CALLBACK PluginWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
nsPluginNativeWindowWin * win = (nsPluginNativeWindowWin *)::GetProp(hWnd, NS_PLUGIN_WINDOW_PROPERTY_ASSOCIATION);
|
||||
nsPluginNativeWindowWin * win = (nsPluginNativeWindowWin *)::GetPropW(hWnd, NS_PLUGIN_WINDOW_PROPERTY_ASSOCIATION);
|
||||
if (!win)
|
||||
return TRUE;
|
||||
|
||||
@@ -526,10 +526,10 @@ nsresult nsPluginNativeWindowWin::SubclassAndAssociateWindow()
|
||||
if (!mPluginWinProc)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
nsPluginNativeWindowWin * win = (nsPluginNativeWindowWin *)::GetProp(hWnd, NS_PLUGIN_WINDOW_PROPERTY_ASSOCIATION);
|
||||
nsPluginNativeWindowWin * win = (nsPluginNativeWindowWin *)::GetPropW(hWnd, NS_PLUGIN_WINDOW_PROPERTY_ASSOCIATION);
|
||||
NS_ASSERTION(!win || (win == this), "plugin window already has property and this is not us");
|
||||
|
||||
if (!::SetProp(hWnd, NS_PLUGIN_WINDOW_PROPERTY_ASSOCIATION, (HANDLE)this))
|
||||
if (!::SetPropW(hWnd, NS_PLUGIN_WINDOW_PROPERTY_ASSOCIATION, (HANDLE)this))
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
return NS_OK;
|
||||
@@ -543,7 +543,7 @@ nsresult nsPluginNativeWindowWin::UndoSubclassAndAssociateWindow()
|
||||
// remove window property
|
||||
HWND hWnd = (HWND)window;
|
||||
if (IsWindow(hWnd))
|
||||
::RemoveProp(hWnd, NS_PLUGIN_WINDOW_PROPERTY_ASSOCIATION);
|
||||
::RemovePropW(hWnd, NS_PLUGIN_WINDOW_PROPERTY_ASSOCIATION);
|
||||
|
||||
// restore the original win proc
|
||||
// but only do this if this were us last time
|
||||
|
||||
@@ -58,25 +58,18 @@
|
||||
|
||||
/* Local helper functions */
|
||||
|
||||
static char* GetKeyValue(char* verbuf, char* key)
|
||||
static char* GetKeyValue(wchar_t* verbuf, wchar_t* key)
|
||||
{
|
||||
char *buf = NULL;
|
||||
wchar_t *buf = NULL;
|
||||
UINT blen;
|
||||
|
||||
::VerQueryValue(verbuf,
|
||||
TEXT(key),
|
||||
::VerQueryValueW(verbuf,
|
||||
key,
|
||||
(void **)&buf, &blen);
|
||||
|
||||
if(buf != NULL)
|
||||
{
|
||||
#ifdef WINCE
|
||||
// On windows CE, the verbuf is wide and the shunt
|
||||
// layer can't do much about it. So, here we
|
||||
// convert the wide string.
|
||||
return PL_strdup(NS_ConvertUTF16toUTF8((PRUnichar*)buf).get());
|
||||
#else
|
||||
return PL_strdup(buf);
|
||||
#endif
|
||||
return strdup(NS_ConvertUTF16toUTF8(buf).get());
|
||||
}
|
||||
|
||||
return nsnull;
|
||||
@@ -216,35 +209,35 @@ nsresult nsPluginFile::LoadPlugin(PRLibrary* &outLibrary)
|
||||
if (!mPlugin)
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
|
||||
nsCAutoString temp;
|
||||
mPlugin->GetNativePath(temp);
|
||||
nsAutoString temp;
|
||||
mPlugin->GetPath(temp);
|
||||
|
||||
char* index;
|
||||
char* pluginFolderPath = PL_strdup(temp.get());
|
||||
PRUnichar* index;
|
||||
PRUnichar* pluginFolderPath = _wcsdup(temp.get());
|
||||
|
||||
index = PL_strrchr(pluginFolderPath, '\\');
|
||||
index = wcsrchr(pluginFolderPath, '\\');
|
||||
*index = 0;
|
||||
|
||||
BOOL restoreOrigDir = FALSE;
|
||||
char aOrigDir[MAX_PATH + 1];
|
||||
DWORD dwCheck = ::GetCurrentDirectory(sizeof(aOrigDir), aOrigDir);
|
||||
PRUnichar aOrigDir[MAX_PATH + 1];
|
||||
DWORD dwCheck = ::GetCurrentDirectoryW(sizeof(aOrigDir), aOrigDir);
|
||||
NS_ASSERTION(dwCheck <= MAX_PATH + 1, "Error in Loading plugin");
|
||||
|
||||
if (dwCheck <= MAX_PATH + 1)
|
||||
{
|
||||
restoreOrigDir = ::SetCurrentDirectory(pluginFolderPath);
|
||||
restoreOrigDir = ::SetCurrentDirectoryW(pluginFolderPath);
|
||||
NS_ASSERTION(restoreOrigDir, "Error in Loading plugin");
|
||||
}
|
||||
|
||||
outLibrary = PR_LoadLibrary(temp.get());
|
||||
outLibrary = PR_LoadLibrary(NS_ConvertUTF16toUTF8(temp).get());
|
||||
|
||||
if (restoreOrigDir)
|
||||
{
|
||||
BOOL bCheck = ::SetCurrentDirectory(aOrigDir);
|
||||
BOOL bCheck = ::SetCurrentDirectoryW(aOrigDir);
|
||||
NS_ASSERTION(bCheck, "Error in Loading plugin");
|
||||
}
|
||||
|
||||
PL_strfree(pluginFolderPath);
|
||||
free(pluginFolderPath);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
@@ -256,37 +249,39 @@ nsresult nsPluginFile::GetPluginInfo(nsPluginInfo& info)
|
||||
{
|
||||
nsresult res = NS_OK;
|
||||
DWORD zerome, versionsize;
|
||||
char* verbuf = nsnull;
|
||||
PRUnichar* verbuf = nsnull;
|
||||
|
||||
const char* path;
|
||||
const PRUnichar* path;
|
||||
|
||||
if (!mPlugin)
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
|
||||
nsCAutoString temp;
|
||||
mPlugin->GetNativePath(temp);
|
||||
nsAutoString temp;
|
||||
mPlugin->GetPath(temp);
|
||||
path = temp.get();
|
||||
|
||||
versionsize = ::GetFileVersionInfoSize((char*)path, &zerome);
|
||||
versionsize = ::GetFileVersionInfoSizeW(path, &zerome);
|
||||
if (versionsize > 0)
|
||||
verbuf = (char *)PR_Malloc(versionsize);
|
||||
verbuf = (wchar_t *)PR_Malloc(versionsize);
|
||||
if(!verbuf)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
if(::GetFileVersionInfo((char*)path, NULL, versionsize, verbuf))
|
||||
if(::GetFileVersionInfoW(path, NULL, versionsize, verbuf))
|
||||
{
|
||||
info.fName = GetKeyValue(verbuf, "\\StringFileInfo\\040904E4\\ProductName");
|
||||
info.fDescription = GetKeyValue(verbuf, "\\StringFileInfo\\040904E4\\FileDescription");
|
||||
info.fName = GetKeyValue(verbuf, L"\\StringFileInfo\\040904E4\\ProductName");
|
||||
info.fDescription = GetKeyValue(verbuf, L"\\StringFileInfo\\040904E4\\FileDescription");
|
||||
|
||||
char *mimeType = GetKeyValue(verbuf, "\\StringFileInfo\\040904E4\\MIMEType");
|
||||
char *mimeDescription = GetKeyValue(verbuf, "\\StringFileInfo\\040904E4\\FileOpenName");
|
||||
char *extensions = GetKeyValue(verbuf, "\\StringFileInfo\\040904E4\\FileExtents");
|
||||
char *mimeType = GetKeyValue(verbuf, L"\\StringFileInfo\\040904E4\\MIMEType");
|
||||
char *mimeDescription = GetKeyValue(verbuf, L"\\StringFileInfo\\040904E4\\FileOpenName");
|
||||
char *extensions = GetKeyValue(verbuf, L"\\StringFileInfo\\040904E4\\FileExtents");
|
||||
|
||||
info.fVariantCount = CalculateVariantCount(mimeType);
|
||||
info.fMimeTypeArray = MakeStringArray(info.fVariantCount, mimeType);
|
||||
info.fMimeDescriptionArray = MakeStringArray(info.fVariantCount, mimeDescription);
|
||||
info.fExtensionArray = MakeStringArray(info.fVariantCount, extensions);
|
||||
info.fFileName = PL_strdup(path);
|
||||
|
||||
// fFileName is narrow. fix?
|
||||
info.fFileName = PL_strdup(NS_ConvertUTF16toUTF8(path).get());
|
||||
|
||||
PL_strfree(mimeType);
|
||||
PL_strfree(mimeDescription);
|
||||
|
||||
@@ -79,17 +79,18 @@ static BOOL onInitDialog(HWND hWnd, HWND hWndFocus, LPARAM lParam)
|
||||
|
||||
pPlugin->m_hWndDialog = hWnd;
|
||||
|
||||
char szString[512];
|
||||
LoadString(hInst, IDS_TITLE, szString, sizeof(szString));
|
||||
SetWindowText(hWnd, szString);
|
||||
wchar_t szString[512];
|
||||
LoadStringW(hInst, IDS_TITLE, szString, sizeof(szString));
|
||||
SetWindowTextW(hWnd, szString);
|
||||
|
||||
LoadString(hInst, IDS_INFO, szString, sizeof(szString));
|
||||
SetDlgItemText(hWnd, IDC_STATIC_INFO, szString);
|
||||
LoadStringW(hInst, IDS_INFO, szString, sizeof(szString));
|
||||
SetDlgItemTextW(hWnd, IDC_STATIC_INFO, szString);
|
||||
|
||||
SetDlgItemText(hWnd, IDC_STATIC_INFOTYPE, (LPSTR)pPlugin->m_pNPMIMEType);
|
||||
// convert m_pNPMIMEType dougt
|
||||
SetDlgItemTextA(hWnd, IDC_STATIC_INFOTYPE, pPlugin->m_pNPMIMEType);
|
||||
|
||||
LoadString(hInst, IDS_LOCATION, szString, sizeof(szString));
|
||||
SetDlgItemText(hWnd, IDC_STATIC_LOCATION, szString);
|
||||
LoadStringW(hInst, IDS_LOCATION, szString, sizeof(szString));
|
||||
SetDlgItemTextW(hWnd, IDC_STATIC_LOCATION, szString);
|
||||
|
||||
char contentTypeIsJava = 0;
|
||||
|
||||
@@ -99,30 +100,36 @@ static BOOL onInitDialog(HWND hWnd, HWND hWndFocus, LPARAM lParam)
|
||||
}
|
||||
|
||||
if(pPlugin->m_szPageURL == NULL || contentTypeIsJava)
|
||||
LoadString(hInst, IDS_FINDER_PAGE, szString, sizeof(szString));
|
||||
LoadStringW(hInst, IDS_FINDER_PAGE, szString, sizeof(szString));
|
||||
else
|
||||
strncpy(szString, pPlugin->m_szPageURL,511); // defect #362738
|
||||
|
||||
{
|
||||
MultiByteToWideChar( CP_ACP, 0,
|
||||
pPlugin->m_szPageURL,
|
||||
strlen(pPlugin->m_szPageURL)+1,
|
||||
szString,
|
||||
511 ); // defect #362738
|
||||
}
|
||||
|
||||
SetDlgItemTextWrapped(hWnd, IDC_STATIC_URL, szString);
|
||||
|
||||
LoadString(hInst, IDS_QUESTION, szString, sizeof(szString));
|
||||
SetDlgItemText(hWnd, IDC_STATIC_QUESTION, szString);
|
||||
LoadStringW(hInst, IDS_QUESTION, szString, sizeof(szString));
|
||||
SetDlgItemTextW(hWnd, IDC_STATIC_QUESTION, szString);
|
||||
|
||||
SetDlgItemText(hWnd, IDC_STATIC_WARNING, "");
|
||||
SetDlgItemTextW(hWnd, IDC_STATIC_WARNING, L"");
|
||||
|
||||
if(!pPlugin->m_bOnline)
|
||||
{
|
||||
EnableWindow(GetDlgItem(hWnd, IDC_GET_PLUGIN), FALSE);
|
||||
LoadString(hInst, IDS_WARNING_OFFLINE, szString, sizeof(szString));
|
||||
SetDlgItemText(hWnd, IDC_STATIC_WARNING, szString);
|
||||
SetDlgItemText(hWnd, IDC_STATIC_QUESTION, "");
|
||||
LoadStringW(hInst, IDS_WARNING_OFFLINE, szString, sizeof(szString));
|
||||
SetDlgItemTextW(hWnd, IDC_STATIC_WARNING, szString);
|
||||
SetDlgItemTextW(hWnd, IDC_STATIC_QUESTION, L"");
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if((!pPlugin->m_bJava) || (!pPlugin->m_bJavaScript) || (!pPlugin->m_bSmartUpdate))
|
||||
{
|
||||
LoadString(hInst, IDS_WARNING_JS, szString, sizeof(szString));
|
||||
SetDlgItemText(hWnd, IDC_STATIC_WARNING, szString);
|
||||
LoadStringW(hInst, IDS_WARNING_JS, szString, sizeof(szString));
|
||||
SetDlgItemTextW(hWnd, IDC_STATIC_WARNING, szString);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
@@ -86,18 +86,18 @@ NPError NP_LOADDS NPP_New(NPMIMEType pluginType,
|
||||
|
||||
for(int i = 0; i < argc; i++)
|
||||
{
|
||||
if(lstrcmpi(argn[i],"pluginspage") == 0 && argv[i] != NULL)
|
||||
if(strcmpi(argn[i],"pluginspage") == 0 && argv[i] != NULL)
|
||||
szPageURL = (char *)argv[i];
|
||||
else if(lstrcmpi(argn[i],"codebase") == 0 && argv[i] != NULL)
|
||||
else if(strcmpi(argn[i],"codebase") == 0 && argv[i] != NULL)
|
||||
szPageURL = (char *)argv[i];
|
||||
else if(lstrcmpi(argn[i],"pluginurl") == 0 && argv[i] != NULL)
|
||||
else if(strcmpi(argn[i],"pluginurl") == 0 && argv[i] != NULL)
|
||||
szFileURL = (char *)argv[i];
|
||||
else if(lstrcmpi(argn[i],"classid") == 0 && argv[i] != NULL)
|
||||
else if(strcmpi(argn[i],"classid") == 0 && argv[i] != NULL)
|
||||
szFileURL = (char *)argv[i];
|
||||
else if(lstrcmpi(argn[i],"SRC") == 0 && argv[i] != NULL)
|
||||
else if(strcmpi(argn[i],"SRC") == 0 && argv[i] != NULL)
|
||||
buf = (char *)argv[i];
|
||||
else if(lstrcmpi(argn[i],"HIDDEN") == 0 && argv[i] != NULL)
|
||||
bHidden = (lstrcmp((char *)argv[i], "TRUE") == 0);
|
||||
else if(strcmpi(argn[i],"HIDDEN") == 0 && argv[i] != NULL)
|
||||
bHidden = (strcmp((char *)argv[i], "TRUE") == 0);
|
||||
}
|
||||
|
||||
/* some post-processing on the filename to attempt to extract the extension: */
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
|
||||
nsIServiceManager * gServiceManager = NULL;
|
||||
|
||||
static char szNullPluginWindowClassName[] = CLASS_NULL_PLUGIN;
|
||||
static wchar_t szNullPluginWindowClassName[] = CLASS_NULL_PLUGIN;
|
||||
|
||||
static LRESULT CALLBACK NP_LOADDS PluginWndProc(HWND, UINT, WPARAM, LPARAM);
|
||||
|
||||
@@ -66,7 +66,7 @@ BOOL RegisterNullPluginWindowClass()
|
||||
{
|
||||
assert(hInst != NULL);
|
||||
|
||||
WNDCLASS wc;
|
||||
WNDCLASSW wc;
|
||||
|
||||
memset(&wc, 0, sizeof(wc));
|
||||
|
||||
@@ -78,14 +78,14 @@ BOOL RegisterNullPluginWindowClass()
|
||||
wc.hbrBackground = HBRUSH(COLOR_WINDOW + 1);
|
||||
wc.lpszClassName = szNullPluginWindowClassName;
|
||||
|
||||
ATOM aRet = RegisterClass(&wc);
|
||||
ATOM aRet = RegisterClassW(&wc);
|
||||
return (aRet != NULL);
|
||||
}
|
||||
|
||||
void UnregisterNullPluginWindowClass()
|
||||
{
|
||||
assert(hInst != NULL);
|
||||
UnregisterClass(szNullPluginWindowClassName, hInst);
|
||||
UnregisterClassW(szNullPluginWindowClassName, hInst);
|
||||
}
|
||||
|
||||
/*********************************************/
|
||||
@@ -129,41 +129,41 @@ CPlugin::CPlugin(HINSTANCE hInst,
|
||||
|
||||
if(pluginType && *pluginType)
|
||||
{
|
||||
m_pNPMIMEType = (NPMIMEType)new char[lstrlen((LPSTR)pluginType) + 1];
|
||||
m_pNPMIMEType = (NPMIMEType) new char[strlen(pluginType) + 1];
|
||||
if(m_pNPMIMEType != NULL)
|
||||
lstrcpy((LPSTR)m_pNPMIMEType, pluginType);
|
||||
strcpy(m_pNPMIMEType, pluginType);
|
||||
}
|
||||
|
||||
if(szPageURL && *szPageURL)
|
||||
{
|
||||
m_szPageURL = new char[lstrlen(szPageURL) + 1];
|
||||
m_szPageURL = new char[strlen(szPageURL) + 1];
|
||||
if(m_szPageURL != NULL)
|
||||
lstrcpy(m_szPageURL, szPageURL);
|
||||
strcpy(m_szPageURL, szPageURL);
|
||||
}
|
||||
|
||||
if(szFileURL && *szFileURL)
|
||||
{
|
||||
m_szFileURL = new char[lstrlen(szFileURL) + 1];
|
||||
m_szFileURL = new char[strlen(szFileURL) + 1];
|
||||
if(m_szFileURL != NULL)
|
||||
lstrcpy(m_szFileURL, szFileURL);
|
||||
strcpy(m_szFileURL, szFileURL);
|
||||
}
|
||||
|
||||
if(szFileExtension && *szFileExtension)
|
||||
{
|
||||
m_szFileExtension = new char[lstrlen(szFileExtension) + 1];
|
||||
m_szFileExtension = new char[strlen(szFileExtension) + 1];
|
||||
if(m_szFileExtension != NULL)
|
||||
lstrcpy(m_szFileExtension, szFileExtension);
|
||||
strcpy(m_szFileExtension, szFileExtension);
|
||||
}
|
||||
|
||||
m_hIcon = LoadIcon(m_hInst, MAKEINTRESOURCE(IDI_PLUGICON));
|
||||
|
||||
char szString[1024] = {'\0'};
|
||||
LoadString(m_hInst, IDS_CLICK_TO_GET, szString, sizeof(szString));
|
||||
wchar_t szString[1024] = {'\0'};
|
||||
LoadStringW(m_hInst, IDS_CLICK_TO_GET, szString, sizeof(szString));
|
||||
if(*szString)
|
||||
{
|
||||
m_szCommandMessage = new char[lstrlen(szString) + 1];
|
||||
m_szCommandMessage = new wchar_t[wcslen(szString) + 1];
|
||||
if(m_szCommandMessage != NULL)
|
||||
lstrcpy(m_szCommandMessage, szString);
|
||||
wcscpy(m_szCommandMessage, szString);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -253,8 +253,8 @@ BOOL CPlugin::init(HWND hWndParent)
|
||||
RECT rcParent;
|
||||
GetClientRect(m_hWndParent, &rcParent);
|
||||
|
||||
CreateWindow(szNullPluginWindowClassName,
|
||||
"NULL Plugin",
|
||||
CreateWindowW(szNullPluginWindowClassName,
|
||||
L"NULL Plugin",
|
||||
WS_CHILD,
|
||||
0,0, rcParent.right, rcParent.bottom,
|
||||
m_hWndParent,
|
||||
@@ -332,10 +332,10 @@ LPSTR CPlugin::createURLString()
|
||||
// check if there is file URL first
|
||||
if(!m_bSmartUpdate && m_szFileURL != NULL)
|
||||
{
|
||||
m_szURLString = new char[lstrlen(m_szFileURL) + 1];
|
||||
m_szURLString = new char[strlen(m_szFileURL) + 1];
|
||||
if(m_szURLString == NULL)
|
||||
return NULL;
|
||||
lstrcpy(m_szURLString, m_szFileURL);
|
||||
strcpy(m_szURLString, m_szFileURL);
|
||||
return m_szURLString;
|
||||
}
|
||||
|
||||
@@ -351,18 +351,18 @@ LPSTR CPlugin::createURLString()
|
||||
|
||||
if(!m_bSmartUpdate && m_szPageURL != NULL && !contentTypeIsJava)
|
||||
{
|
||||
szAddress = new char[lstrlen(m_szPageURL) + 1];
|
||||
szAddress = new char[strlen(m_szPageURL) + 1];
|
||||
if(szAddress == NULL)
|
||||
return NULL;
|
||||
lstrcpy(szAddress, m_szPageURL);
|
||||
strcpy(szAddress, m_szPageURL);
|
||||
|
||||
m_szURLString = new char[lstrlen(szAddress) + 1 + lstrlen((LPSTR)m_pNPMIMEType) + 1];
|
||||
m_szURLString = new char[strlen(szAddress) + 1 + strlen(m_pNPMIMEType) + 1];
|
||||
|
||||
if(m_szURLString == NULL)
|
||||
return NULL;
|
||||
|
||||
// Append the MIME type to the URL
|
||||
wsprintf(m_szURLString, "%s?%s", szAddress, (LPSTR)m_pNPMIMEType);
|
||||
sprintf(m_szURLString, "%s?%s", szAddress, (LPSTR)m_pNPMIMEType);
|
||||
}
|
||||
else // default
|
||||
{
|
||||
@@ -374,20 +374,20 @@ LPSTR CPlugin::createURLString()
|
||||
urlToOpen = szPageUrlForJVM;
|
||||
}
|
||||
|
||||
szAddress = new char[lstrlen(urlToOpen) + 1];
|
||||
szAddress = new char[strlen(urlToOpen) + 1];
|
||||
if(szAddress == NULL)
|
||||
return NULL;
|
||||
lstrcpy(szAddress, urlToOpen);
|
||||
strcpy(szAddress, urlToOpen);
|
||||
|
||||
m_szURLString = new char[lstrlen(szAddress) + 10 +
|
||||
lstrlen((LPSTR)m_pNPMIMEType) + 1];
|
||||
m_szURLString = new char[strlen(szAddress) + 10 +
|
||||
strlen(m_pNPMIMEType) + 1];
|
||||
|
||||
if(m_szURLString == NULL)
|
||||
return NULL;
|
||||
|
||||
// Append the MIME type to the URL
|
||||
wsprintf(m_szURLString, "%s?mimetype=%s",
|
||||
szAddress, (LPSTR)m_pNPMIMEType);
|
||||
sprintf(m_szURLString, "%s?mimetype=%s",
|
||||
szAddress, m_pNPMIMEType);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -409,14 +409,15 @@ LPSTR CPlugin::createURLString()
|
||||
m_szFileURL[0] = '\0';
|
||||
}
|
||||
|
||||
m_szURLString = new char[lstrlen(szPluginFinderCommandBeginning) + lstrlen(urlToOpen) + 10 +
|
||||
lstrlen((LPSTR)m_pNPMIMEType) + 13 +
|
||||
lstrlen((LPSTR)m_szPageURL) + 11 +
|
||||
lstrlen((LPSTR)m_szFileURL) +
|
||||
lstrlen(szPluginFinderCommandEnd) + 1];
|
||||
wsprintf(m_szURLString, "%s%s?mimetype=%s&pluginspage=%s&pluginurl=%s%s",
|
||||
szPluginFinderCommandBeginning, urlToOpen,
|
||||
(LPSTR)m_pNPMIMEType, m_szPageURL, m_szFileURL, szPluginFinderCommandEnd);
|
||||
m_szURLString = new char[strlen(szPluginFinderCommandBeginning) + strlen(urlToOpen) + 10 +
|
||||
strlen((LPSTR)m_pNPMIMEType) + 13 +
|
||||
strlen((LPSTR)m_szPageURL) + 11 +
|
||||
strlen((LPSTR)m_szFileURL) +
|
||||
strlen(szPluginFinderCommandEnd) + 1];
|
||||
sprintf(m_szURLString, "%s%s?mimetype=%s&pluginspage=%s&pluginurl=%s%s",
|
||||
szPluginFinderCommandBeginning, urlToOpen,
|
||||
m_pNPMIMEType, m_szPageURL, m_szFileURL,
|
||||
szPluginFinderCommandEnd);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -512,13 +513,13 @@ void CPlugin::getPlugin()
|
||||
m_szCommandMessage = NULL;
|
||||
}
|
||||
|
||||
char szString[1024] = {'\0'};
|
||||
LoadString(m_hInst, IDS_CLICK_WHEN_DONE, szString, sizeof(szString));
|
||||
wchar_t szString[1024] = {'\0'};
|
||||
LoadStringW(m_hInst, IDS_CLICK_WHEN_DONE, szString, sizeof(szString));
|
||||
if(*szString)
|
||||
{
|
||||
m_szCommandMessage = new char[lstrlen(szString) + 1];
|
||||
m_szCommandMessage = new wchar_t[wcslen(szString) + 1];
|
||||
if(m_szCommandMessage != NULL)
|
||||
lstrcpy(m_szCommandMessage, szString);
|
||||
wcscpy(m_szCommandMessage, szString);
|
||||
}
|
||||
|
||||
InvalidateRect(m_hWnd, NULL, TRUE);
|
||||
@@ -548,20 +549,20 @@ void CPlugin::URLNotify(const char * szURL)
|
||||
dbgOut2("CPlugin::URLNotify(), URL '%s'", szURL);
|
||||
|
||||
NPStream * pStream = NULL;
|
||||
char buf[256];
|
||||
wchar_t buf[256];
|
||||
|
||||
assert(m_hInst != NULL);
|
||||
assert(m_pNPInstance != NULL);
|
||||
|
||||
int iSize = LoadString(m_hInst, IDS_GOING2HTML, buf, sizeof(buf));
|
||||
int iSize = LoadStringW(m_hInst, IDS_GOING2HTML, buf, sizeof(buf));
|
||||
|
||||
NPError rc = NPN_NewStream(m_pNPInstance, "text/html", "asd_plugin_finder", &pStream);
|
||||
if (rc != NPERR_NO_ERROR)
|
||||
return;
|
||||
|
||||
//char buf[] = "<html>\n<body>\n\n<h2 align=center>NPN_NewStream / NPN_Write - This seems to work.</h2>\n\n</body>\n</html>";
|
||||
//wchar_t buf[] = L"<html>\n<body>\n\n<h2 align=center>NPN_NewStream / NPN_Write - This seems to work.</h2>\n\n</body>\n</html>";
|
||||
|
||||
NPN_Write(m_pNPInstance, pStream, iSize, buf);
|
||||
NPN_Write(m_pNPInstance, pStream, iSize, buf); // buf is unicode now.
|
||||
|
||||
NPN_DestroyStream(m_pNPInstance, pStream, NPRES_DONE);
|
||||
}
|
||||
@@ -594,12 +595,12 @@ NPError CPlugin::destroyStream(NPStream *stream, NPError reason)
|
||||
|
||||
BOOL CPlugin::readyToRefresh()
|
||||
{
|
||||
char szString[1024] = {'\0'};
|
||||
LoadString(m_hInst, IDS_CLICK_WHEN_DONE, szString, sizeof(szString));
|
||||
wchar_t szString[1024] = {'\0'};
|
||||
LoadStringW(m_hInst, IDS_CLICK_WHEN_DONE, szString, sizeof(szString));
|
||||
if(m_szCommandMessage == NULL)
|
||||
return FALSE;
|
||||
|
||||
return (lstrcmp(m_szCommandMessage, szString) == 0);
|
||||
return (wcscmp(m_szCommandMessage, szString) == 0);
|
||||
}
|
||||
|
||||
//***************************
|
||||
@@ -626,7 +627,7 @@ void CPlugin::onRButtonUp(HWND hWnd, int x, int y, UINT keyFlags)
|
||||
NPN_GetURL(m_pNPInstance, "javascript:navigator.plugins.refresh(true)", "_self");
|
||||
}
|
||||
|
||||
static void DrawCommandMessage(HDC hDC, LPSTR szString, LPRECT lprc)
|
||||
static void DrawCommandMessage(HDC hDC, wchar_t* szString, LPRECT lprc)
|
||||
{
|
||||
if(szString == NULL)
|
||||
return;
|
||||
@@ -637,7 +638,7 @@ static void DrawCommandMessage(HDC hDC, LPSTR szString, LPRECT lprc)
|
||||
|
||||
HFONT hFontOld = SelectFont(hDC, hFont);
|
||||
SIZE sz;
|
||||
GetTextExtentPoint32(hDC, szString, lstrlen(szString), &sz);
|
||||
GetTextExtentPoint32W(hDC, szString, wcslen(szString), &sz);
|
||||
POINT pt;
|
||||
pt.x = sz.cx;
|
||||
pt.y = sz.cy;
|
||||
@@ -659,7 +660,7 @@ static void DrawCommandMessage(HDC hDC, LPSTR szString, LPRECT lprc)
|
||||
|
||||
int iModeOld = SetBkMode(hDC, TRANSPARENT);
|
||||
COLORREF crColorOld = SetTextColor(hDC, RGB(0,0,0));
|
||||
DrawText(hDC, szString, lstrlen(szString), &rcText, DT_CENTER|DT_VCENTER);
|
||||
DrawTextW(hDC, szString, wcslen(szString), &rcText, DT_CENTER|DT_VCENTER);
|
||||
SetTextColor(hDC, crColorOld);
|
||||
SetBkMode(hDC, iModeOld);
|
||||
SelectFont(hDC, hFontOld);
|
||||
|
||||
@@ -51,7 +51,7 @@ private:
|
||||
HICON m_hIcon;
|
||||
char* m_szURLString;
|
||||
|
||||
char* m_szCommandMessage;
|
||||
wchar_t* m_szCommandMessage;
|
||||
BOOL m_bWaitingStreamFromPFS;
|
||||
NPStream* m_PFSStream;
|
||||
|
||||
@@ -118,7 +118,7 @@ public:
|
||||
#define JVM_SMARTUPDATE_URL "http://java.com/download"
|
||||
|
||||
#ifdef WIN32
|
||||
#define REGISTRY_PLACE "Software\\Netscape\\Netscape Navigator\\Default Plugin"
|
||||
#define REGISTRY_PLACE L"Software\\Netscape\\Netscape Navigator\\Default Plugin"
|
||||
#else
|
||||
#define GWL_USERDATA 0
|
||||
#define COLOR_3DSHADOW COLOR_BTNFACE
|
||||
@@ -126,7 +126,7 @@ public:
|
||||
#define COLOR_3DDKSHADOW COLOR_BTNSHADOW
|
||||
#endif
|
||||
|
||||
#define CLASS_NULL_PLUGIN "NullPluginClass"
|
||||
#define CLASS_NULL_PLUGIN L"NullPluginClass"
|
||||
|
||||
BOOL RegisterNullPluginWindowClass();
|
||||
void UnregisterNullPluginWindowClass();
|
||||
|
||||
@@ -45,8 +45,8 @@ HKEY openRegistry()
|
||||
{
|
||||
HKEY phkResult;
|
||||
|
||||
if(RegCreateKey(HKEY_CURRENT_USER, REGISTRY_PLACE, &phkResult) != ERROR_SUCCESS)
|
||||
MessageBox(0, "Error creating Default Plugin registry key", "Default Plugin", MB_OK);
|
||||
if(RegCreateKeyW(HKEY_CURRENT_USER, REGISTRY_PLACE, &phkResult) != ERROR_SUCCESS)
|
||||
MessageBoxW(0, L"Error creating Default Plugin registry key", L"Default Plugin", MB_OK);
|
||||
|
||||
return phkResult;
|
||||
}
|
||||
@@ -56,30 +56,37 @@ BOOL IsNewMimeType(LPSTR mime)
|
||||
{
|
||||
HKEY hkey = openRegistry();
|
||||
DWORD dwType, keysize = 512;
|
||||
char keybuf[512];
|
||||
wchar_t keybuf[512];
|
||||
wchar_t wideMime[64];
|
||||
|
||||
if(RegQueryValueEx(hkey, mime, 0, &dwType, (LPBYTE) &keybuf, &keysize) == ERROR_SUCCESS)
|
||||
MultiByteToWideChar(CP_ACP, 0,
|
||||
mime,
|
||||
strlen(mime) + 1,
|
||||
wideMime,
|
||||
64);
|
||||
|
||||
if(RegQueryValueExW(hkey, wideMime, 0, &dwType, (LPBYTE) &keybuf, &keysize) == ERROR_SUCCESS)
|
||||
{
|
||||
// key exists, must have already been here...
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(RegSetValueEx(hkey, mime, 0, REG_SZ, (LPBYTE) "(none)", 7) != ERROR_SUCCESS)
|
||||
MessageBox(0, "Error adding MIME type value", "Default Plugin", MB_OK);
|
||||
if(RegSetValueExW(hkey, wideMime, 0, REG_SZ, (LPBYTE) L"(none)", 7) != ERROR_SUCCESS)
|
||||
MessageBoxW(0, L"Error adding MIME type value", L"Default Plugin", MB_OK);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
// string length in pixels for the specific window (selected font)
|
||||
static int getWindowStringLength(HWND hWnd, LPSTR lpsz)
|
||||
static int getWindowStringLength(HWND hWnd, wchar_t* lpsz)
|
||||
{
|
||||
SIZE sz;
|
||||
HDC hDC = GetDC(hWnd);
|
||||
HFONT hWindowFont = GetWindowFont(hWnd);
|
||||
HFONT hFontOld = SelectFont(hDC, hWindowFont);
|
||||
GetTextExtentPoint32(hDC, lpsz, lstrlen(lpsz), &sz);
|
||||
GetTextExtentPoint32W(hDC, lpsz, wcslen(lpsz), &sz);
|
||||
POINT pt;
|
||||
pt.x = sz.cx;
|
||||
pt.y = sz.cy;
|
||||
@@ -89,20 +96,20 @@ static int getWindowStringLength(HWND hWnd, LPSTR lpsz)
|
||||
return (int)pt.x;
|
||||
}
|
||||
|
||||
/****************************************************************/
|
||||
/* */
|
||||
/* void SetDlgItemTextWrapped(HWND hWnd, int iID, LPSTR szText) */
|
||||
/* */
|
||||
/* helper to wrap long lines in a static control, which do not */
|
||||
/* wrap automatically if they do not have space characters */
|
||||
/* */
|
||||
/****************************************************************/
|
||||
void SetDlgItemTextWrapped(HWND hWnd, int iID, LPSTR szText)
|
||||
/*******************************************************************/
|
||||
/* */
|
||||
/* void SetDlgItemTextWrapped(HWND hWnd, int iID, wchar_t* szText) */
|
||||
/* */
|
||||
/* helper to wrap long lines in a static control, which do not */
|
||||
/* wrap automatically if they do not have space characters */
|
||||
/* */
|
||||
/*******************************************************************/
|
||||
void SetDlgItemTextWrapped(HWND hWnd, int iID, wchar_t* szText)
|
||||
{
|
||||
HWND hWndStatic = GetDlgItem(hWnd, iID);
|
||||
if((szText == NULL) || (lstrlen(szText) == 0))
|
||||
if((szText == NULL) || (wcslen(szText) == 0))
|
||||
{
|
||||
SetDlgItemText(hWnd, iID, "");
|
||||
SetDlgItemTextW(hWnd, iID, L"");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -114,7 +121,7 @@ void SetDlgItemTextWrapped(HWND hWnd, int iID, LPSTR szText)
|
||||
|
||||
if(iStringLength <= iStaticLength)
|
||||
{
|
||||
SetDlgItemText(hWnd, iID, szText);
|
||||
SetDlgItemTextW(hWnd, iID, szText);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -122,19 +129,19 @@ void SetDlgItemTextWrapped(HWND hWnd, int iID, LPSTR szText)
|
||||
if(iBreaks <= 0)
|
||||
return;
|
||||
|
||||
char * pBuf = new char[iStringLength + iBreaks + 1];
|
||||
wchar_t * pBuf = new wchar_t[iStringLength + iBreaks + 1];
|
||||
if(pBuf == NULL)
|
||||
return;
|
||||
|
||||
lstrcpy(pBuf, "");
|
||||
wcscpy(pBuf, L"");
|
||||
|
||||
int iStart = 0;
|
||||
int iLines = 0;
|
||||
for(int i = 0; i < iStringLength; i++)
|
||||
{
|
||||
char * sz = &szText[iStart];
|
||||
wchar_t* sz = &szText[iStart];
|
||||
int iIndex = i - iStart;
|
||||
char ch = sz[iIndex + 1];
|
||||
wchar_t ch = sz[iIndex + 1];
|
||||
|
||||
sz[iIndex + 1] = '\0';
|
||||
|
||||
@@ -145,7 +152,7 @@ void SetDlgItemTextWrapped(HWND hWnd, int iID, LPSTR szText)
|
||||
sz[iIndex + 1] = ch;
|
||||
if(iLines == iBreaks)
|
||||
{
|
||||
lstrcat(pBuf, sz);
|
||||
wcscat(pBuf, sz);
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
@@ -157,15 +164,15 @@ void SetDlgItemTextWrapped(HWND hWnd, int iID, LPSTR szText)
|
||||
ch = sz[iIndex];
|
||||
sz[iIndex] = '\0'; // terminate string one char shorter
|
||||
|
||||
lstrcat(pBuf, sz); // append the string
|
||||
lstrcat(pBuf, " "); // append space character for successful wrapping
|
||||
wcscat(pBuf, sz); // append the string
|
||||
wcscat(pBuf, L" "); // append space character for successful wrapping
|
||||
|
||||
iStart += lstrlen(sz);// shift new start position
|
||||
iStart += wcslen(sz); // shift new start position
|
||||
sz[iIndex] = ch; // restore zeroed element
|
||||
iLines++; // count lines
|
||||
}
|
||||
|
||||
SetDlgItemText(hWnd, iID, pBuf);
|
||||
SetDlgItemTextW(hWnd, iID, pBuf);
|
||||
|
||||
delete [] pBuf;
|
||||
}
|
||||
|
||||
@@ -40,6 +40,6 @@
|
||||
|
||||
HKEY openRegistry();
|
||||
BOOL IsNewMimeType(LPSTR szMimeType);
|
||||
void SetDlgItemTextWrapped(HWND hWnd, int iID, LPSTR szText);
|
||||
void SetDlgItemTextWrapped(HWND hWnd, int iID, wchar_t* szText);
|
||||
|
||||
#endif // __UTILS_H__
|
||||
|
||||
@@ -146,11 +146,11 @@ static LRESULT CALLBACK PluginWinProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM
|
||||
nsPluginInstance *plugin = (nsPluginInstance *)GetWindowLong(hWnd, GWL_USERDATA);
|
||||
if (plugin) {
|
||||
const char * string = plugin->getVersion();
|
||||
DrawText(hdc, string, strlen(string), &rc, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
|
||||
DrawTextA(hdc, string, strlen(string), &rc, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
|
||||
}
|
||||
else {
|
||||
char string[] = "Error occured";
|
||||
DrawText(hdc, string, strlen(string), &rc, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
|
||||
DrawTextA(hdc, string, strlen(string), &rc, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
|
||||
}
|
||||
|
||||
EndPaint(hWnd, &ps);
|
||||
|
||||
@@ -220,10 +220,10 @@ static LRESULT CALLBACK PluginWinProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM
|
||||
// get our plugin instance object and ask it for the version string
|
||||
nsPluginInstance *plugin = (nsPluginInstance *)GetWindowLong(hWnd, GWL_USERDATA);
|
||||
if (plugin)
|
||||
DrawText(hdc, plugin->mString, strlen(plugin->mString), &rc, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
|
||||
DrawTextA(hdc, plugin->mString, strlen(plugin->mString), &rc, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
|
||||
else {
|
||||
char string[] = "Error occured";
|
||||
DrawText(hdc, string, strlen(string), &rc, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
|
||||
DrawTextA(hdc, string, strlen(string), &rc, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
|
||||
}
|
||||
|
||||
EndPaint(hWnd, &ps);
|
||||
|
||||
Reference in New Issue
Block a user