Regedit: Fixed exporting subtrees with Unicode

Core exporting code still ANSI; need to fix this


svn path=/trunk/; revision=18256
This commit is contained in:
Nathan Woods 2005-10-04 02:40:01 +00:00
parent e908a4d408
commit 2639ea0346
3 changed files with 15 additions and 8 deletions

View file

@ -365,10 +365,17 @@ static BOOL ExportRegistryFile(HWND hWnd)
ofn.lpTemplateName = MAKEINTRESOURCE(IDD_EXPORTRANGE);
if (GetSaveFileName(&ofn)) {
BOOL result;
/* FIXME - convert strings to ascii! */
result = export_registry_key((CHAR*)ofn.lpstrFile, (CHAR*)ExportKeyPath);
/*result = export_registry_key(ofn.lpstrFile, NULL);*/
/*if (!export_registry_key(ofn.lpstrFile, NULL)) {*/
LPCSTR pszExportKeyPath;
#ifdef UNICODE
CHAR buffer[_MAX_PATH];
WideCharToMultiByte(CP_ACP, 0, ExportKeyPath, -1, buffer, sizeof(buffer), NULL, NULL);
pszExportKeyPath = buffer;
#else
pszExportKeyPath = ExportKeyPath;
#endif
result = export_registry_key(ofn.lpstrFile, pszExportKeyPath);
if (!result) {
/*printf("Can't open file \"%s\"\n", ofn.lpstrFile);*/
return FALSE;

View file

@ -1285,9 +1285,9 @@ static void export_hkey(FILE *file, HKEY key,
/******************************************************************************
* Open file for export.
*/
static FILE *REGPROC_open_export_file(CHAR *file_name)
static FILE *REGPROC_open_export_file(const TCHAR *file_name)
{
FILE *file = fopen(file_name, "w");
FILE *file = _tfopen(file_name, _T("w"));
if (!file) {
perror("");
fprintf(stderr,"%s: Can't open file \"%s\"\n", getAppName(), file_name);
@ -1305,7 +1305,7 @@ static FILE *REGPROC_open_export_file(CHAR *file_name)
* reg_key_name - registry branch to export. The whole registry is exported if
* reg_key_name is NULL or contains an empty string.
*/
BOOL export_registry_key(CHAR *file_name, CHAR *reg_key_name)
BOOL export_registry_key(const TCHAR *file_name, CHAR *reg_key_name)
{
HKEY reg_key_class;

View file

@ -38,7 +38,7 @@ void doQueryValue(LPSTR lpsLine);
void doRegisterDLL(LPSTR lpsLine);
void doUnregisterDLL(LPSTR lpsLine);
BOOL export_registry_key(CHAR *file_name, CHAR *reg_key_name);
BOOL export_registry_key(const TCHAR *file_name, CHAR *reg_key_name);
BOOL import_registry_file(LPTSTR filename);
void delete_registry_key(CHAR *reg_key_name);