Synchronize with trunk r58457.

svn path=/branches/ros-csrss/; revision=58458
This commit is contained in:
Hermès Bélusca-Maïto 2013-03-10 01:01:36 +00:00
commit 840ea98cba
800 changed files with 80556 additions and 50942 deletions

View file

@ -36,4 +36,4 @@ add_subdirectory(taskmgr)
add_subdirectory(winhlp32)
add_subdirectory(winver)
add_subdirectory(wordpad)
add_subdirectory(write)
add_subdirectory(write)

View file

@ -151,7 +151,7 @@ BEGIN
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "CE",IDC_BUTTON_CE,222,38,43,18,BS_CENTER | BS_VCENTER |
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
PUSHBUTTON "Back",IDC_BUTTON_BACK,177,38,43,18,BS_CENTER |
PUSHBUTTON "חזרה",IDC_BUTTON_BACK,177,38,43,18,BS_CENTER |
BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
RTEXT "",IDC_TEXT_OUTPUT,5,1,305,14,SS_CENTERIMAGE,
WS_EX_CLIENTEDGE
@ -350,7 +350,7 @@ BEGIN
BEGIN
MENUITEM "רגילה", IDM_VIEW_STANDARD, CHECKED
MENUITEM "מדעית", IDM_VIEW_SCIENTIFIC, CHECKED
MENUITEM "Conversion", IDM_VIEW_CONVERSION
MENUITEM "המרה", IDM_VIEW_CONVERSION
MENUITEM SEPARATOR
MENUITEM "הקס\tF5", IDM_VIEW_HEX, CHECKED
MENUITEM "עשרוני\tF6", IDM_VIEW_DEC, CHECKED
@ -382,7 +382,7 @@ BEGIN
BEGIN
MENUITEM "רגילה", IDM_VIEW_STANDARD, CHECKED
MENUITEM "מדעית", IDM_VIEW_SCIENTIFIC, CHECKED
MENUITEM "Conversion", IDM_VIEW_CONVERSION
MENUITEM "המרה", IDM_VIEW_CONVERSION
MENUITEM SEPARATOR
MENUITEM "הקס\tF5", IDM_VIEW_HEX, CHECKED
MENUITEM "עשרוני\tF6", IDM_VIEW_DEC, CHECKED
@ -415,7 +415,7 @@ BEGIN
BEGIN
MENUITEM "רגילה", IDM_VIEW_STANDARD, CHECKED
MENUITEM "מדעית", IDM_VIEW_SCIENTIFIC, CHECKED
MENUITEM "Conversion", IDM_VIEW_CONVERSION
MENUITEM "המרה", IDM_VIEW_CONVERSION
MENUITEM SEPARATOR
MENUITEM "קיבוץ ספרות", IDM_VIEW_GROUP, CHECKED
END
@ -441,7 +441,7 @@ STRINGTABLE DISCARDABLE
BEGIN
IDS_CONV_ANGLE "זוית"
IDS_CONV_AREA "שטח"
IDS_CONV_CONSUMPTION "Consumption (engines)"
IDS_CONV_CONSUMPTION "צריכה (מנועים)"
IDS_CONV_CURRENCY "מטבע"
IDS_CONV_ENERGY "אנרגיה"
IDS_CONV_LENGTH "מרחק"
@ -449,7 +449,7 @@ BEGIN
IDS_CONV_PRESSURE "לחץ"
IDS_CONV_TEMPERATURE "טמפרטורה"
IDS_CONV_TIME "זמן"
IDS_CONV_VELOCITY "Velocity"
IDS_CONV_VELOCITY "תאוצה"
IDS_CONV_VOLUME "נפח"
IDS_CONV_WEIGHT "משקל"
END
@ -536,18 +536,18 @@ END
// TYPES OF ENERGIES
STRINGTABLE DISCARDABLE
BEGIN
IDS_ENERGY_15_C_CALORIES "15 °C calories"
IDS_ENERGY_15_C_CALORIES "15 °C קלוריות"
IDS_ENERGY_BTUS "British Thermal Units"
IDS_ENERGY_ERGS "Ergs"
IDS_ENERGY_EVS "Electron-Volts"
IDS_ENERGY_FOOT_POUNDS "Foot-Pounds"
IDS_ENERGY_IT_CALORIES "International Table calories"
IDS_ENERGY_IT_KILOCALORIES "International Table kilocalories"
IDS_ENERGY_JOULES "Joules"
IDS_ENERGY_KILOJOULES "Kilojoules"
IDS_ENERGY_KILOWATT_HOURS "Kilowatt hours"
IDS_ENERGY_NUTRITION_CALORIES "Nutrition calories"
IDS_ENERGY_TH_CALORIES "Thermochemical calorie"
IDS_ENERGY_JOULES "ג'ול"
IDS_ENERGY_KILOJOULES "קילוג'ול"
IDS_ENERGY_KILOWATT_HOURS "קילוואט שעה"
IDS_ENERGY_NUTRITION_CALORIES "קלוריות תזונתיות"
IDS_ENERGY_TH_CALORIES "קלוריה תרמו כימית"
END
// TYPES OF LENGTHS
@ -617,11 +617,11 @@ END
STRINGTABLE DISCARDABLE
BEGIN
IDS_PRESSURE_ATMOSPHERES "אטמוספירות"
IDS_PRESSURE_BARS "Bars"
IDS_PRESSURE_BARS "בר"
IDS_PRESSURE_HECTOPASCALS "Hectopascals"
IDS_PRESSURE_KILOPASCALS "Kilopascals"
IDS_PRESSURE_KILOPASCALS "קילופסקל"
IDS_PRESSURE_MM_OF_MERCURY "Millimeters of mercury"
IDS_PRESSURE_PASCALS "Pascals"
IDS_PRESSURE_PASCALS "פסקל"
IDS_PRESSURE_PSI "Pounds-force per square inch"
END

View file

@ -5,4 +5,5 @@ add_subdirectory(hostname)
add_subdirectory(lodctr)
add_subdirectory(more)
add_subdirectory(reg)
add_subdirectory(taskkill)
add_subdirectory(xcopy)

View file

@ -0,0 +1,6 @@
add_executable(taskkill taskkill.c taskkill.rc)
target_link_libraries(taskkill wine)
set_module_type(taskkill win32cui UNICODE)
add_importlibs(taskkill psapi user32 msvcrt kernel32 ntdll)
add_cd_file(TARGET taskkill DESTINATION reactos/system32 FOR all)

View file

@ -0,0 +1,540 @@
/*
* Task termination utility
*
* Copyright 2008 Andrew Riedi
* Copyright 2010 Andrew Nguyen
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include <stdarg.h>
#include <windef.h>
#include <winbase.h>
#include <wincon.h>
#include <winuser.h>
#include <psapi.h>
#include <wine/debug.h>
#include <wine/unicode.h>
#include "taskkill.h"
WINE_DEFAULT_DEBUG_CHANNEL(taskkill);
static int force_termination;
static WCHAR **task_list;
static unsigned int task_count;
struct pid_close_info
{
DWORD pid;
BOOL found;
};
static int taskkill_vprintfW(const WCHAR *msg, __ms_va_list va_args)
{
int wlen;
DWORD count, ret;
WCHAR msg_buffer[8192];
wlen = FormatMessageW(FORMAT_MESSAGE_FROM_STRING, msg, 0, 0, msg_buffer,
sizeof(msg_buffer)/sizeof(*msg_buffer), &va_args);
ret = WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE), msg_buffer, wlen, &count, NULL);
if (!ret)
{
DWORD len;
char *msgA;
/* On Windows WriteConsoleW() fails if the output is redirected. So fall
* back to WriteFile(), assuming the console encoding is still the right
* one in that case.
*/
len = WideCharToMultiByte(GetConsoleOutputCP(), 0, msg_buffer, wlen,
NULL, 0, NULL, NULL);
msgA = HeapAlloc(GetProcessHeap(), 0, len);
if (!msgA)
return 0;
WideCharToMultiByte(GetConsoleOutputCP(), 0, msg_buffer, wlen, msgA, len,
NULL, NULL);
WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), msgA, len, &count, FALSE);
HeapFree(GetProcessHeap(), 0, msgA);
}
return count;
}
static int CDECL taskkill_printfW(const WCHAR *msg, ...)
{
__ms_va_list va_args;
int len;
__ms_va_start(va_args, msg);
len = taskkill_vprintfW(msg, va_args);
__ms_va_end(va_args);
return len;
}
static int CDECL taskkill_message_printfW(int msg, ...)
{
__ms_va_list va_args;
WCHAR msg_buffer[8192];
int len;
LoadStringW(GetModuleHandleW(NULL), msg, msg_buffer,
sizeof(msg_buffer)/sizeof(WCHAR));
__ms_va_start(va_args, msg);
len = taskkill_vprintfW(msg_buffer, va_args);
__ms_va_end(va_args);
return len;
}
static int taskkill_message(int msg)
{
static const WCHAR formatW[] = {'%','1',0};
WCHAR msg_buffer[8192];
LoadStringW(GetModuleHandleW(NULL), msg, msg_buffer,
sizeof(msg_buffer)/sizeof(WCHAR));
return taskkill_printfW(formatW, msg_buffer);
}
/* Post WM_CLOSE to all top-level windows belonging to the process with specified PID. */
static BOOL CALLBACK pid_enum_proc(HWND hwnd, LPARAM lParam)
{
struct pid_close_info *info = (struct pid_close_info *)lParam;
DWORD hwnd_pid;
GetWindowThreadProcessId(hwnd, &hwnd_pid);
if (hwnd_pid == info->pid)
{
PostMessageW(hwnd, WM_CLOSE, 0, 0);
info->found = TRUE;
}
return TRUE;
}
static DWORD *enumerate_processes(DWORD *list_count)
{
DWORD *pid_list, alloc_bytes = 1024 * sizeof(*pid_list), needed_bytes;
pid_list = HeapAlloc(GetProcessHeap(), 0, alloc_bytes);
if (!pid_list)
return NULL;
for (;;)
{
DWORD *realloc_list;
if (!EnumProcesses(pid_list, alloc_bytes, &needed_bytes))
{
HeapFree(GetProcessHeap(), 0, pid_list);
return NULL;
}
/* EnumProcesses can't signal an insufficient buffer condition, so the
* only way to possibly determine whether a larger buffer is required
* is to see whether the written number of bytes is the same as the
* buffer size. If so, the buffer will be reallocated to twice the
* size. */
if (alloc_bytes != needed_bytes)
break;
alloc_bytes *= 2;
realloc_list = HeapReAlloc(GetProcessHeap(), 0, pid_list, alloc_bytes);
if (!realloc_list)
{
HeapFree(GetProcessHeap(), 0, pid_list);
return NULL;
}
pid_list = realloc_list;
}
*list_count = needed_bytes / sizeof(*pid_list);
return pid_list;
}
static BOOL get_process_name_from_pid(DWORD pid, WCHAR *buf, DWORD chars)
{
HANDLE process;
HMODULE module;
DWORD required_size;
process = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, pid);
if (!process)
return FALSE;
if (!EnumProcessModules(process, &module, sizeof(module), &required_size))
{
CloseHandle(process);
return FALSE;
}
if (!GetModuleBaseNameW(process, module, buf, chars))
{
CloseHandle(process);
return FALSE;
}
CloseHandle(process);
return TRUE;
}
/* The implemented task enumeration and termination behavior does not
* exactly match native behavior. On Windows:
*
* In the case of terminating by process name, specifying a particular
* process name more times than the number of running instances causes
* all instances to be terminated, but termination failure messages to
* be printed as many times as the difference between the specification
* quantity and the number of running instances.
*
* Successful terminations are all listed first in order, with failing
* terminations being listed at the end.
*
* A PID of zero causes taskkill to warn about the inability to terminate
* system processes. */
static int send_close_messages(void)
{
DWORD *pid_list, pid_list_size;
DWORD self_pid = GetCurrentProcessId();
unsigned int i;
int status_code = 0;
pid_list = enumerate_processes(&pid_list_size);
if (!pid_list)
{
taskkill_message(STRING_ENUM_FAILED);
return 1;
}
for (i = 0; i < task_count; i++)
{
WCHAR *p = task_list[i];
BOOL is_numeric = TRUE;
/* Determine whether the string is not numeric. */
while (*p)
{
if (!isdigitW(*p++))
{
is_numeric = FALSE;
break;
}
}
if (is_numeric)
{
DWORD pid = atoiW(task_list[i]);
struct pid_close_info info = { pid };
if (pid == self_pid)
{
taskkill_message(STRING_SELF_TERMINATION);
status_code = 1;
continue;
}
EnumWindows(pid_enum_proc, (LPARAM)&info);
if (info.found)
taskkill_message_printfW(STRING_CLOSE_PID_SEARCH, pid);
else
{
taskkill_message_printfW(STRING_SEARCH_FAILED, task_list[i]);
status_code = 128;
}
}
else
{
DWORD index;
BOOL found_process = FALSE;
for (index = 0; index < pid_list_size; index++)
{
WCHAR process_name[MAX_PATH];
if (get_process_name_from_pid(pid_list[index], process_name, MAX_PATH) &&
!strcmpiW(process_name, task_list[i]))
{
struct pid_close_info info = { pid_list[index] };
found_process = TRUE;
if (pid_list[index] == self_pid)
{
taskkill_message(STRING_SELF_TERMINATION);
status_code = 1;
continue;
}
EnumWindows(pid_enum_proc, (LPARAM)&info);
taskkill_message_printfW(STRING_CLOSE_PROC_SRCH, process_name, pid_list[index]);
}
}
if (!found_process)
{
taskkill_message_printfW(STRING_SEARCH_FAILED, task_list[i]);
status_code = 128;
}
}
}
HeapFree(GetProcessHeap(), 0, pid_list);
return status_code;
}
static int terminate_processes(void)
{
DWORD *pid_list, pid_list_size;
DWORD self_pid = GetCurrentProcessId();
unsigned int i;
int status_code = 0;
pid_list = enumerate_processes(&pid_list_size);
if (!pid_list)
{
taskkill_message(STRING_ENUM_FAILED);
return 1;
}
for (i = 0; i < task_count; i++)
{
WCHAR *p = task_list[i];
BOOL is_numeric = TRUE;
/* Determine whether the string is not numeric. */
while (*p)
{
if (!isdigitW(*p++))
{
is_numeric = FALSE;
break;
}
}
if (is_numeric)
{
DWORD pid = atoiW(task_list[i]);
HANDLE process;
if (pid == self_pid)
{
taskkill_message(STRING_SELF_TERMINATION);
status_code = 1;
continue;
}
process = OpenProcess(PROCESS_TERMINATE, FALSE, pid);
if (!process)
{
taskkill_message_printfW(STRING_SEARCH_FAILED, task_list[i]);
status_code = 128;
continue;
}
if (!TerminateProcess(process, 0))
{
taskkill_message_printfW(STRING_TERMINATE_FAILED, task_list[i]);
status_code = 1;
CloseHandle(process);
continue;
}
taskkill_message_printfW(STRING_TERM_PID_SEARCH, pid);
CloseHandle(process);
}
else
{
DWORD index;
BOOL found_process = FALSE;
for (index = 0; index < pid_list_size; index++)
{
WCHAR process_name[MAX_PATH];
if (get_process_name_from_pid(pid_list[index], process_name, MAX_PATH) &&
!strcmpiW(process_name, task_list[i]))
{
HANDLE process;
if (pid_list[index] == self_pid)
{
taskkill_message(STRING_SELF_TERMINATION);
status_code = 1;
continue;
}
process = OpenProcess(PROCESS_TERMINATE, FALSE, pid_list[index]);
if (!process)
{
taskkill_message_printfW(STRING_SEARCH_FAILED, task_list[i]);
status_code = 128;
continue;
}
if (!TerminateProcess(process, 0))
{
taskkill_message_printfW(STRING_TERMINATE_FAILED, task_list[i]);
status_code = 1;
CloseHandle(process);
continue;
}
found_process = TRUE;
taskkill_message_printfW(STRING_TERM_PROC_SEARCH, task_list[i], pid_list[index]);
CloseHandle(process);
}
}
if (!found_process)
{
taskkill_message_printfW(STRING_SEARCH_FAILED, task_list[i]);
status_code = 128;
}
}
}
HeapFree(GetProcessHeap(), 0, pid_list);
return status_code;
}
static BOOL add_to_task_list(WCHAR *name)
{
static unsigned int list_size = 16;
if (!task_list)
{
task_list = HeapAlloc(GetProcessHeap(), 0,
list_size * sizeof(*task_list));
if (!task_list)
return FALSE;
}
else if (task_count == list_size)
{
void *realloc_list;
list_size *= 2;
realloc_list = HeapReAlloc(GetProcessHeap(), 0, task_list,
list_size * sizeof(*task_list));
if (!realloc_list)
return FALSE;
task_list = realloc_list;
}
task_list[task_count++] = name;
return TRUE;
}
/* FIXME Argument processing does not match behavior observed on Windows.
* Stringent argument counting and processing is performed, and unrecognized
* options are detected as parameters when placed after options that accept one. */
static BOOL process_arguments(int argc, WCHAR *argv[])
{
static const WCHAR slashForceTerminate[] = {'/','f',0};
static const WCHAR slashImage[] = {'/','i','m',0};
static const WCHAR slashPID[] = {'/','p','i','d',0};
static const WCHAR slashHelp[] = {'/','?',0};
static const WCHAR slashTerminateChildren[] = {'/','t',0};
if (argc > 1)
{
int i;
BOOL has_im = 0, has_pid = 0;
/* Only the lone help option is recognized. */
if (argc == 2 && !strcmpW(slashHelp, argv[1]))
{
taskkill_message(STRING_USAGE);
exit(0);
}
for (i = 1; i < argc; i++)
{
int got_im = 0, got_pid = 0;
if (!strcmpiW(slashTerminateChildren, argv[i]))
WINE_FIXME("/T not supported\n");
if (!strcmpiW(slashForceTerminate, argv[i]))
force_termination = 1;
/* Options /IM and /PID appear to behave identically, except for
* the fact that they cannot be specified at the same time. */
else if ((got_im = !strcmpiW(slashImage, argv[i])) ||
(got_pid = !strcmpiW(slashPID, argv[i])))
{
if (!argv[i + 1])
{
taskkill_message_printfW(STRING_MISSING_PARAM, argv[i]);
taskkill_message(STRING_USAGE);
return FALSE;
}
if (got_im) has_im = 1;
if (got_pid) has_pid = 1;
if (has_im && has_pid)
{
taskkill_message(STRING_MUTUAL_EXCLUSIVE);
taskkill_message(STRING_USAGE);
return FALSE;
}
if (!add_to_task_list(argv[i + 1]))
return FALSE;
i++;
}
else
{
taskkill_message(STRING_INVALID_OPTION);
taskkill_message(STRING_USAGE);
return FALSE;
}
}
}
else
{
taskkill_message(STRING_MISSING_OPTION);
taskkill_message(STRING_USAGE);
return FALSE;
}
return TRUE;
}
int wmain(int argc, WCHAR *argv[])
{
int status_code = 0;
if (!process_arguments(argc, argv))
{
HeapFree(GetProcessHeap(), 0, task_list);
return 1;
}
if (force_termination)
status_code = terminate_processes();
else
status_code = send_close_messages();
HeapFree(GetProcessHeap(), 0, task_list);
return status_code;
}

View file

@ -0,0 +1,37 @@
/*
* Task termination utility private definitions
*
* Copyright 2010 Andrew Nguyen
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include <windef.h>
/* Translation IDs. */
#define STRING_USAGE 101
#define STRING_INVALID_OPTION 102
#define STRING_INVALID_PARAM 103
#define STRING_MISSING_OPTION 104
#define STRING_MISSING_PARAM 105
#define STRING_MUTUAL_EXCLUSIVE 106
#define STRING_CLOSE_PID_SEARCH 107
#define STRING_CLOSE_PROC_SRCH 108
#define STRING_TERM_PID_SEARCH 109
#define STRING_TERM_PROC_SEARCH 110
#define STRING_SEARCH_FAILED 111
#define STRING_ENUM_FAILED 112
#define STRING_TERMINATE_FAILED 113
#define STRING_SELF_TERMINATION 114

View file

@ -0,0 +1,41 @@
/*
* Task termination utility
*
* Copyright 2010 Andrew Nguyen
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "taskkill.h"
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
STRINGTABLE
{
STRING_USAGE, "Usage: taskkill [/?] [/f] [/im ProcessName | /pid ProcessID]\n"
STRING_INVALID_OPTION, "Error: Unknown or invalid command line option specified.\n"
STRING_INVALID_PARAM, "Error: Invalid command line parameter specified.\n"
STRING_MISSING_OPTION, "Error: One of options /im or /pid must be specified.\n"
STRING_MISSING_PARAM, "Error: Option %1 expects a command line parameter.\n"
STRING_MUTUAL_EXCLUSIVE, "Error: Options /im and /pid are mutually exclusive.\n"
STRING_CLOSE_PID_SEARCH, "Close message sent to top-level windows of process with PID %1!u!.\n"
STRING_CLOSE_PROC_SRCH, "Close message sent to top-level windows of process ""%1"" with PID %2!u!.\n"
STRING_TERM_PID_SEARCH, "Process with PID %1!u! was forcibly terminated.\n"
STRING_TERM_PROC_SEARCH, "Process ""%1"" with PID %2!u! was forcibly terminated.\n"
STRING_SEARCH_FAILED, "Error: Could not find process ""%1"".\n"
STRING_ENUM_FAILED, "Error: Unable to enumerate the process list.\n"
STRING_TERMINATE_FAILED, "Error: Unable to terminate process ""%1"".\n"
STRING_SELF_TERMINATION, "Error: Process self-termination is not permitted.\n"
}

View file

@ -88,7 +88,7 @@ Display_DrawText(HDC hDC, DISPLAYDATA* pData, int nYPos)
GetTextMetrics(hDC, &tm);
swprintf(szCaption, L"%s%s", pData->szTypeFaceName, pData->szFormat);
TextOutW(hDC, 0, y, szCaption, wcslen(szCaption));
TextOutW(hDC, 0, y, szCaption, (INT)wcslen(szCaption));
y += tm.tmHeight + SPACING1;
/* Draw a seperation Line */
@ -103,15 +103,15 @@ Display_DrawText(HDC hDC, DISPLAYDATA* pData, int nYPos)
SelectObject(hDC, pData->hCharSetFont);
GetTextMetrics(hDC, &tm);
swprintf(szCaption, L"abcdefghijklmnopqrstuvwxyz");
TextOutW(hDC, 0, y, szCaption, wcslen(szCaption));
TextOutW(hDC, 0, y, szCaption, (INT)wcslen(szCaption));
y += tm.tmHeight + 1;
swprintf(szCaption, L"ABCDEFGHIJKLMNOPQRSTUVWXYZ");
TextOutW(hDC, 0, y, szCaption, wcslen(szCaption));
TextOutW(hDC, 0, y, szCaption, (INT)wcslen(szCaption));
y += tm.tmHeight + 1;
swprintf(szCaption, L"0123456789.:,;(\"~!@#$%^&*')");
TextOutW(hDC, 0, y, szCaption, wcslen(szCaption));
TextOutW(hDC, 0, y, szCaption, (INT)wcslen(szCaption));
y += tm.tmHeight + 1;
/* Draw a seperation Line */
@ -124,18 +124,40 @@ Display_DrawText(HDC hDC, DISPLAYDATA* pData, int nYPos)
for (i = 0; i < MAX_SIZES; i++)
{
SelectObject(hDC, pData->hFonts[i]);
TextOutW(hDC, 20, y, pData->szString, wcslen(pData->szString));
TextOutW(hDC, 20, y, pData->szString, (INT)wcslen(pData->szString));
GetTextMetrics(hDC, &tm);
y += tm.tmHeight + 1;
SelectObject(hDC, pData->hSizeFont);
swprintf(szSize, L"%d", pData->nSizes[i]);
TextOutW(hDC, 0, y - 13 - tm.tmDescent, szSize, wcslen(szSize));
TextOutW(hDC, 0, y - 13 - tm.tmDescent, szSize, (INT)wcslen(szSize));
}
SelectObject(hDC, hOldFont);
return y;
}
static int
CALLBACK
EnumFontFamProcW(
const LOGFONTW *lpelfe,
const TEXTMETRICW *lptm,
DWORD FontType,
LPARAM lParam)
{
PNEWTEXTMETRICW pntmw = (PNEWTEXTMETRICW)lptm;
PBOOL pfOpenType = (PBOOL)lParam;
if (FontType & TRUETYPE_FONTTYPE)
{
if (pntmw->ntmFlags & (NTM_TT_OPENTYPE | NTM_PS_OPENTYPE))
{
*pfOpenType = TRUE;
return FALSE;
}
}
return TRUE;
}
static LRESULT
Display_SetTypeFace(HWND hwnd, PEXTLOGFONTW pExtLogFont)
{
@ -160,12 +182,27 @@ Display_SetTypeFace(HWND hwnd, PEXTLOGFONTW pExtLogFont)
pData->hCharSetFont = CreateFontIndirectW(&logfont);
/* Get font format */
// FIXME: Get the real font format (OpenType?)
SelectObject(hDC, pData->hCharSetFont);
GetTextMetrics(hDC, &tm);
if ((tm.tmPitchAndFamily & TMPF_TRUETYPE) == TMPF_TRUETYPE)
if (tm.tmPitchAndFamily & TMPF_TRUETYPE)
{
swprintf(pData->szFormat, L" (TrueType)");
BOOL fOpenType = FALSE;
EnumFontFamiliesExW(hDC, &logfont,
EnumFontFamProcW, (LPARAM)&fOpenType, 0);
if (fOpenType)
swprintf(pData->szFormat, L" (OpenType)");
else
swprintf(pData->szFormat, L" (TrueType)");
}
else if (tm.tmPitchAndFamily & TMPF_VECTOR)
{
swprintf(pData->szFormat, L" (Vector)");
}
else
{
swprintf(pData->szFormat, L" (Raster)");
}
for (i = 0; i < MAX_SIZES; i++)
@ -381,7 +418,7 @@ Display_OnPrint(HWND hwnd)
TEXTMETRIC tm;
int copies, yPos;
DISPLAYDATA* pData;
pData = malloc(sizeof(DISPLAYDATA));
ZeroMemory(pData, sizeof(DISPLAYDATA));

View file

@ -104,14 +104,14 @@ WinMain (HINSTANCE hThisInstance,
OPENFILENAMEW fontOpen;
WCHAR szFileName[MAX_PATH] = L"";
HLOCAL dialogTitle = NULL;
/* Gets the title for the dialog box ready */
FormatString(FORMAT_MESSAGE_ALLOCATE_BUFFER,
NULL, IDS_OPEN, 0, (LPWSTR)&dialogTitle, 0, NULL);
/* Clears out any values of fontOpen before we use it */
ZeroMemory(&fontOpen, sizeof(fontOpen));
/* Sets up the open dialog box */
fontOpen.lStructSize = sizeof(fontOpen);
fontOpen.hwndOwner = NULL;
@ -122,7 +122,7 @@ WinMain (HINSTANCE hThisInstance,
fontOpen.nMaxFile = MAX_PATH;
fontOpen.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
fontOpen.lpstrDefExt = L"ttf";
/* Opens up the Open File dialog box in order to chose a font file. */
if(GetOpenFileNameW(&fontOpen))
{
@ -133,7 +133,7 @@ WinMain (HINSTANCE hThisInstance,
exiting the program altogether */
return 0;
}
LocalFree(dialogTitle);
}
else
@ -142,7 +142,7 @@ WinMain (HINSTANCE hThisInstance,
fileName = argv[1];
g_fileName = fileName;
}
if (!AddFontResourceW(fileName))
{
ErrorMsgBox(0, IDS_ERROR, IDS_ERROR_NOFONT, fileName);
@ -221,7 +221,7 @@ WinMain (HINSTANCE hThisInstance,
RemoveFontResourceW(argv[1]);
return msg.wParam;
return (int)msg.wParam;
}
static LRESULT
@ -326,7 +326,7 @@ static LRESULT
MainWnd_OnInstall(HWND hwnd)
{
DWORD fontExists;
/* First, we have to find out if the font still exists. */
fontExists = GetFileAttributes((LPCSTR)g_fileName);
if (fontExists != 0xFFFFFFFF) /* If the file does not exist */
@ -334,11 +334,11 @@ MainWnd_OnInstall(HWND hwnd)
ErrorMsgBox(0, IDS_ERROR, IDS_ERROR_NOFONT, g_fileName);
return -1;
}
//CopyFile(g_fileName, NULL, TRUE);
MessageBox(hwnd, TEXT("This function is unimplemented"), TEXT("Unimplemented"), MB_OK);
return 0;
}

View file

@ -5,6 +5,7 @@
* PURPOSE: English Language File for Solitaire
* PROGRAMMERS: Daniel "EmuandCo" Reimer (reimer.daniel@freenet.de)
*/
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US

View file

@ -20,7 +20,7 @@ BEGIN
AUTORADIOBUTTON "משוך &אחד", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
AUTORADIOBUTTON "משוך &שלושה", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
AUTOCHECKBOX "משחק קצוב בזמן", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
AUTOCHECKBOX "משחק קצוב בזמן", IDC_OPT_SHOWTIME, 7 ,51 ,72 ,10, WS_TABSTOP | WS_DISABLED
AUTOCHECKBOX "שורת מצב", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
DEFPUSHBUTTON "אישור", IDOK, 35, 97, 50, 14

View file

@ -0,0 +1,94 @@
/*
* PROJECT: Solitaire
* LICENSE: Freeware, permission to use under Public Domain
* FILE: base/applications/games/solitaire/lang/tr-TR.rc
* PURPOSE: Turkish Language File for Solitaire
* PROGRAMMERS: Daniel "EmuandCo" Reimer (reimer.daniel@freenet.de)
* TRANSLATOR: Erdem Ersoy (eersoy93)
*/
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
/* Dialogs */
IDD_OPTIONS DIALOGEX DISCARDABLE 0, 0, 186, 118
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_SHELLFONT
CAPTION "Ayarlar"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Kağıtlar", -1, 7, 7, 90, 40
AUTORADIOBUTTON "&Tekli çek", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
AUTORADIOBUTTON "&Üçlü çek", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
AUTOCHECKBOX "&Süreyi göster", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
AUTOCHECKBOX "&Durum çubuğu", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
DEFPUSHBUTTON "Tamam", IDOK, 35, 97, 50, 14
PUSHBUTTON "Vazgeç", IDCANCEL, 101, 97, 50, 14
END
IDD_CARDBACK DIALOGEX 6, 6, 186, 104
CAPTION "Deste Seç"
FONT 8, "MS Shell Dlg"
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_SHELLFONT
BEGIN
CONTROL "", IDC_CARDBACK1, "Static", SS_NOTIFY, 4, 7, 26, 32
CONTROL "", IDC_CARDBACK2, "Static", SS_NOTIFY, 34, 7, 26, 32
CONTROL "", IDC_CARDBACK3, "Static", SS_NOTIFY, 64, 7, 26, 32
CONTROL "", IDC_CARDBACK4, "Static", SS_NOTIFY, 94, 7, 26, 32
CONTROL "", IDC_CARDBACK5, "Static", SS_NOTIFY, 124, 7, 26, 32
CONTROL "", IDC_CARDBACK6, "Static", SS_NOTIFY, 154, 7, 26, 32
CONTROL "", IDC_CARDBACK7, "Static", SS_NOTIFY, 4, 46, 26, 32
CONTROL "", IDC_CARDBACK8, "Static", SS_NOTIFY, 34, 46, 26, 32
CONTROL "", IDC_CARDBACK9, "Static", SS_NOTIFY, 64, 46, 26, 32
CONTROL "", IDC_CARDBACK10, "Static", SS_NOTIFY, 94, 46, 26, 32
CONTROL "", IDC_CARDBACK11, "Static", SS_NOTIFY, 124, 46, 26, 32
CONTROL "", IDC_CARDBACK12, "Static", SS_NOTIFY, 154, 46, 26, 32
DEFPUSHBUTTON "Tamam", IDOK, 66, 84, 54, 13
PUSHBUTTON "Vazgeç", IDCANCEL, 126, 84, 54, 13
END
/* Strings */
STRINGTABLE
BEGIN
IDS_SOL_NAME "Solitaire"
IDS_SOL_ABOUT "Solitaire, J Brown tarafından yapılmıştır.\n\nCardLib sürümü: 1.0"
IDS_SOL_QUIT "Bu oyundan çıkmak ister misiniz?"
IDS_SOL_WIN "Tebrikler, kazandınız!"
IDS_SOL_DEAL "Tekrar dağıtılsın mı?"
END
/* Menus */
IDR_MENU1 MENU DISCARDABLE
BEGIN
POPUP "&Oyun"
BEGIN
MENUITEM "&Dağıt\tF2", IDM_GAME_NEW
MENUITEM SEPARATOR
MENUITEM "D&esteler", IDM_GAME_DECK
MENUITEM "&Ayarlar", IDM_GAME_OPTIONS
MENUITEM SEPARATOR
MENUITEM "&Çıkış", IDM_GAME_EXIT
END
POPUP "&Yardım"
BEGIN
MENUITEM "&İçerik\tF1", IDM_HELP_CONTENTS
MENUITEM "&Hakkında", IDM_HELP_ABOUT
END
END
/* Accelerator */
IDR_ACCELERATOR1 ACCELERATORS DISCARDABLE
BEGIN
VK_F1, IDM_HELP_CONTENTS, VIRTKEY, NOINVERT
VK_F2, IDM_GAME_NEW, VIRTKEY, NOINVERT
END

View file

@ -81,6 +81,9 @@ IDI_SOLITAIRE ICON DISCARDABLE "solitaire.ico"
#ifdef LANGUAGE_TH_TH
#include "lang/th-TH.rc"
#endif
#ifdef LANGUAGE_TR_TR
#include "lang/tr-TR.rc"
#endif
#ifdef LANGUAGE_UK_UA
#include "lang/uk-UA.rc"
#endif

View file

@ -0,0 +1,86 @@
/*
* PROJECT: Spider Solitaire
* LICENSE: See COPYING in top level directory
* FILE: base/applications/games/spider/lang/tr-TR.rc
* PURPOSE: Turkish Language File for Spider Solitaire
* TRANSLATOR: Erdem Ersoy (eersoy93)
*/
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
/* Dialogs */
IDD_CARDBACK DIALOGEX 6, 6, 186, 104
CAPTION "Deste Seç"
FONT 8, "MS Shell Dlg"
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_SHELLFONT
BEGIN
CONTROL "", IDC_CARDBACK1, "Static", SS_NOTIFY, 4, 7, 26, 32
CONTROL "", IDC_CARDBACK2, "Static", SS_NOTIFY, 34, 7, 26, 32
CONTROL "", IDC_CARDBACK3, "Static", SS_NOTIFY, 64, 7, 26, 32
CONTROL "", IDC_CARDBACK4, "Static", SS_NOTIFY, 94, 7, 26, 32
CONTROL "", IDC_CARDBACK5, "Static", SS_NOTIFY, 124, 7, 26, 32
CONTROL "", IDC_CARDBACK6, "Static", SS_NOTIFY, 154, 7, 26, 32
CONTROL "", IDC_CARDBACK7, "Static", SS_NOTIFY, 4, 46, 26, 32
CONTROL "", IDC_CARDBACK8, "Static", SS_NOTIFY, 34, 46, 26, 32
CONTROL "", IDC_CARDBACK9, "Static", SS_NOTIFY, 64, 46, 26, 32
CONTROL "", IDC_CARDBACK10, "Static", SS_NOTIFY, 94, 46, 26, 32
CONTROL "", IDC_CARDBACK11, "Static", SS_NOTIFY, 124, 46, 26, 32
CONTROL "", IDC_CARDBACK12, "Static", SS_NOTIFY, 154, 46, 26, 32
DEFPUSHBUTTON "Tamam", IDOK, 66, 84, 54, 13
PUSHBUTTON "Vazgeç", IDCANCEL, 126, 84, 54, 13
END
IDD_DIFFICULTY DIALOGEX DISCARDABLE 100, 100, 106, 80
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_SHELLFONT
CAPTION "Zorluk"
FONT 8, "MS Shell Dlg"
BEGIN
AUTORADIOBUTTON "Kolay: &Tek renk", IDC_DIF_ONECOLOR, 8, 10, 80, 10, WS_GROUP | WS_TABSTOP
AUTORADIOBUTTON "Orta: &İki renk", IDC_DIF_TWOCOLORS, 8, 23, 80, 10
AUTORADIOBUTTON "Zor: &Dört Renk", IDC_DIF_FOURCOLORS, 8, 36, 80, 10
DEFPUSHBUTTON "Tamam", IDOK, 8, 58, 40, 14
PUSHBUTTON "Vazgeç", IDCANCEL, 58, 58, 40, 14
END
/* Strings */
STRINGTABLE
BEGIN
IDS_SPI_NAME "Spider"
IDS_SPI_ABOUT "Spider Solitaire Gregor Schneider tarafından yapılmıştır.\n\nCardLib sürümü: 1.0"
IDS_SPI_QUIT "Bu oyundan çıkmak ister misiniz?"
IDS_SPI_WIN "Tebrikler, kazandınız!"
IDS_SPI_DEAL "Tekrar dağıtılsın mı?"
END
/* Menus */
IDR_MENU1 MENU DISCARDABLE
BEGIN
POPUP "&Oyun"
BEGIN
MENUITEM "&Yeni oyun\tF2", IDM_GAME_NEW
MENUITEM SEPARATOR
MENUITEM "&Desteler", IDM_GAME_DECK
MENUITEM SEPARATOR
MENUITEM "&Çıkış", IDM_GAME_EXIT
END
POPUP "&Yardım"
BEGIN
MENUITEM "&İçerik\tF1", IDM_HELP_CONTENTS
MENUITEM "&Hakkında", IDM_HELP_ABOUT
END
END
/* Accelerator */
IDR_ACCELERATOR1 ACCELERATORS DISCARDABLE
BEGIN
VK_F1, IDM_HELP_CONTENTS, VIRTKEY, NOINVERT
VK_F2, IDM_GAME_NEW, VIRTKEY, NOINVERT
END

View file

@ -57,6 +57,9 @@ IDI_SPIDER ICON DISCARDABLE "spider.ico"
#ifdef LANGUAGE_SV_SE
#include "lang/sv-SE.rc"
#endif
#ifdef LANGUAGE_TR_TR
#include "lang/tr-TR.rc"
#endif
#ifdef LANGUAGE_UK_UA
#include "lang/uk-UA.rc"
#endif

View file

@ -35,7 +35,7 @@ BEGIN
POPUP "&אפשרויות" BEGIN
MENUITEM "&חדש\tF2", IDM_NEW
MENUITEM SEPARATOR
MENUITEM "&Mark Question", IDM_MARKQ // to be invented
MENUITEM "סימון בשאלה", IDM_MARKQ // to be invented
MENUITEM SEPARATOR
MENUITEM "&מתחיל", IDM_BEGINNER
MENUITEM "מ&תקדם", IDM_ADVANCED

View file

@ -2,7 +2,8 @@
* WineMine
* Turkish Language Support
*
* Copyright 2006 Fatih Aþýcý
* Copyright 2006 Fatih Aşıcı
* Copyright 2013 Erdem Ersoy (eersoy93)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@ -22,40 +23,40 @@
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
STRINGTABLE BEGIN
IDS_APPNAME, "Wine Mayýn Tarlasý"
IDS_APPNAME, "Wine Mayın Tarlası"
IDS_NOBODY, "Hiç kimse"
IDS_ABOUT, "Telif hakký 2000, Joshua Thielen"
IDS_ABOUT, "Telif hakkı: Joshua Thielen, 2000"
END
MENU_WINEMINE MENU
BEGIN
POPUP "&Seçenekler" BEGIN
MENUITEM "&Yeni\tF2", IDM_NEW
MENUITEM "&Yeni\tF2", IDM_NEW
MENUITEM SEPARATOR
MENUITEM "&Soru Ýþareti", IDM_MARKQ
MENUITEM "&Soru İmi", IDM_MARKQ
MENUITEM SEPARATOR
MENUITEM "&Acemi", IDM_BEGINNER
MENUITEM "&Geliþmiþ", IDM_ADVANCED
MENUITEM "&Uzman", IDM_EXPERT
MENUITEM "&Özel", IDM_CUSTOM
MENUITEM "&Başlangıç", IDM_BEGINNER
MENUITEM "&Orta", IDM_ADVANCED
MENUITEM "&İleri", IDM_EXPERT
MENUITEM "&Özel", IDM_CUSTOM
MENUITEM SEPARATOR
MENUITEM "&Çýkýþ\tAlt+X", IDM_EXIT
MENUITEM "&Çıkış\tAlt+X", IDM_EXIT
END
POPUP "&Bilgi" BEGIN
MENUITEM "&En Kýsa Süreler", IDM_TIMES
MENUITEM "&Hakkýnda", IDM_ABOUT
MENUITEM "&En Kısa Süreler", IDM_TIMES
MENUITEM "&Hakkında", IDM_ABOUT
END
END
DLG_TIMES DIALOGEX 0, 0, 160, 80
STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHELLFONT
CAPTION "En Kýsa Süreler"
CAPTION "En Kısa Süreler"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "En Kýsa Süreler", -1, 10, 10, 140, 45
LTEXT "Acemi", -1, 20, 20, 40, 8
LTEXT "Geliþmiþ", -1, 20, 30, 40, 8
LTEXT "Uzman", -1, 20, 40, 40, 8
GROUPBOX "En Kısa Süreler", -1, 10, 10, 140, 45
LTEXT "Başlangıç", -1, 20, 20, 40, 8
LTEXT "Orta", -1, 20, 30, 40, 8
LTEXT "İleri", -1, 20, 40, 40, 8
LTEXT "999", IDC_TIME1, 70, 20, 15, 8
LTEXT "999", IDC_TIME2, 70, 30, 15, 8
LTEXT "999", IDC_TIME3, 70, 40, 15, 8
@ -70,9 +71,9 @@ STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHEL
CAPTION "Tebrikler!"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Lütfen adýnýzý girin", -1, 10, 10, 150, 10
LTEXT "Lütfen adınızı giriniz:", -1, 10, 10, 150, 10
EDITTEXT IDC_EDITNAME, 25, 20, 110, 12
DEFPUSHBUTTON "Tamam", IDOK, 60, 40, 40, 15
DEFPUSHBUTTON "Tamam", IDOK, 60, 40, 40, 15
END
DLG_CUSTOM DIALOGEX 0, 0, 100, 100
@ -80,12 +81,12 @@ STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP | DS_SHEL
CAPTION "Özel Oyun"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Satýrlar", -1, 5, 5, 30, 10
LTEXT "Satırlar", -1, 5, 5, 30, 10
LTEXT "Sütunlar", -1, 5, 35, 30, 10
LTEXT "Mayýnlar", -1, 5, 65, 30, 10
LTEXT "Mayınlar", -1, 5, 65, 30, 10
EDITTEXT IDC_EDITROWS, 5, 15, 20, 12, ES_NUMBER
EDITTEXT IDC_EDITCOLS, 5, 45, 20, 12, ES_NUMBER
EDITTEXT IDC_EDITMINES, 5, 75, 20, 12, ES_NUMBER
DEFPUSHBUTTON "Tamam", IDOK, 40, 30, 50, 15
PUSHBUTTON "Ýptal", IDCANCEL, 40, 50, 50, 15
DEFPUSHBUTTON "Tamam", IDOK, 40, 30, 50, 15
PUSHBUTTON "Vazgeç", IDCANCEL, 40, 50, 50, 15
END

View file

@ -1,4 +1,3 @@
/*
/*
* WineMine
* Ukrainian Language Support

View file

@ -66,10 +66,10 @@ STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "בחירת אתחול", -1, 10, 10, 340, 150,0,WS_EX_TRANSPARENT
CONTROL "אתחול רגיל - טען את כל מנהלי ההתקנים והשירותים", IDC_CBX_NORMAL_START, "Button", 0x50010009, 20, 30, 180, 10
CONTROL "אתחול רגיל - טען את כל מנהלי ההתקנים והשירותים", IDC_CBX_NORMAL_START, "Button", 0x50010009, 20, 30, 191, 10
CONTROL "אתחול מאבחן - טען התקנים ושירותים בסיסיים בלבד", IDC_CBX_DIAGNOSTIC_START, "Button", 0x50010009, 20, 45, 195, 10
CONTROL "אתחול סלקטיבי", IDC_CBX_SELECTIVE_STARTUP, "Button", 0x50010009, 20, 60, 70, 10
AUTOCHECKBOX "עבד את הקובץ SYSTEM.INI", IDC_CBX_SYSTEM_INI, 30, 80, 95, 10
AUTOCHECKBOX "עבד את הקובץ SYSTEM.INI", IDC_CBX_SYSTEM_INI, 30, 80, 105, 10
AUTOCHECKBOX "&טען שירותי מערכת", IDC_CBX_SYSTEM_SERVICE, 30, 95, 90, 10
AUTOCHECKBOX "טען פריטי אתחול", IDC_CBX_STARTUP_ITEM, 30, 110, 75, 10
END
@ -79,8 +79,8 @@ STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
FONT 8, "MS Shell Dlg"
BEGIN
LISTBOX IDC_LIST_BOX, 10, 10, 340, 50, WS_CHILD | WS_VISIBLE | WS_TABSTOP | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL
PUSHBUTTON "&בדוק את כל נתיבי האתחול", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 70, 12
PUSHBUTTON "&קבע כברירת מחדל", IDC_BTN_SET_DEFAULT_BOOT, 100, 65, 70, 12
PUSHBUTTON "&בדוק את כל נתיבי האתחול", IDC_BTN_CHECK_BOOT_PATH, 114, 65, 97, 12
PUSHBUTTON "&קבע כברירת מחדל", IDC_BTN_SET_DEFAULT_BOOT, 198, 65, 70, 12
PUSHBUTTON "הזז למעלה", IDC_BTN_MOVE_UP_BOOT_OPTION, 190, 65, 70, 12
PUSHBUTTON "הזז למטה", IDC_BTN_MOVE_DOWN_BOOT_OPTION, 280, 65, 70, 12
GROUPBOX "אפשרויות אתחול", -1, 10, 80, 250, 90,0,WS_EX_TRANSPARENT
@ -91,8 +91,8 @@ BEGIN
CHECKBOX "/S&OS", IDC_CBX_SOS, 15, 150, 50, 10
PUSHBUTTON "&אפשרויות מתקדמות", IDC_BTN_ADVANCED_OPTIONS, 100, 150, 70, 12
LTEXT "זמן קצוב:", -1, 280, 91, 30, 10
EDITTEXT IDC_TXT_BOOT_TIMEOUT, 310, 90, 25, 12, ES_LEFT
LTEXT "שניות", -1, 340, 91, 15, 10
EDITTEXT IDC_TXT_BOOT_TIMEOUT, 303, 90, 25, 12, ES_LEFT
LTEXT "שניות", -1, 330, 91, 21, 10
END
IDD_FREELDR_ADVANCED_PAGE DIALOGEX DISCARDABLE 0, 0, 175, 175

View file

@ -50,10 +50,10 @@ END
IDD_PROGRESSBOX DIALOGEX 0, 0, 230, 40
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER
CAPTION "חכה.."
CAPTION "נא להמתין..."
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
CTEXT "טוען יומני אירועים. נא לחכות...",IDC_STATIC,0,15,230,8,SS_NOPREFIX
CTEXT "טוען יומני אירועים, נא להמתין...",IDC_STATIC,0,15,230,8,SS_NOPREFIX
END
IDD_EVENTDETAILDIALOG DIALOGEX 0, 0, 276, 282

View file

@ -148,29 +148,29 @@ BEGIN
END
IDD_DLG_DEPEND_STOP DIALOGEX 6,6,240,148
CAPTION "Stop Other Services"
CAPTION "עצירת שירותים אחרים"
FONT 8, "MS Shell Dlg",0,0
STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | DS_MODALFRAME
BEGIN
ICON IDI_WARNING, IDC_STATIC, 10, 8, 24, 22
LTEXT "", IDC_STOP_DEPENDS, 40, 8, 170, 25
LISTBOX IDC_STOP_DEPENDS_LB, 15, 40, 210, 70, WS_CHILD | WS_VISIBLE | WS_EX_STATICEDGE | LBS_NOSEL
LTEXT "Do you want to stop these services?",IDC_STATIC, 15, 110, 150, 10
DEFPUSHBUTTON "Yes", IDOK, 60, 129, 54, 14
PUSHBUTTON "No", IDCANCEL, 120, 129, 54, 14
LTEXT "האם ברצונך לעצור את השירותים הבאים?",IDC_STATIC, 15, 110, 150, 10
DEFPUSHBUTTON "כן", IDOK, 60, 129, 54, 14
PUSHBUTTON "לא", IDCANCEL, 120, 129, 54, 14
END
IDD_DLG_HELP_OPTIONS DIALOGEX 6,6,200,150
CAPTION "Options"
CAPTION "אפשרויות"
FONT 8, "MS Shell Dlg",0,0
STYLE 0x10CF0000
BEGIN
LTEXT "", IDC_CREATE_HELP, 6, 5, 200, 150
PUSHBUTTON "Ok", IDOK, 75, 130, 44, 13
PUSHBUTTON "אישור", IDOK, 75, 130, 44, 13
END
IDD_DLG_PROGRESS DIALOGEX 6,6,255,89
CAPTION "Service Control"
CAPTION "בקרת שירות"
FONT 8, "MS Shell Dlg",0,0
STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | WS_VISIBLE | DS_MODALFRAME
EXSTYLE WS_EX_TOOLWINDOW
@ -178,48 +178,48 @@ BEGIN
CONTROL "", IDC_SERVCON_PROGRESS, "msctls_progress32", 0x50000000, 8, 46, 238, 13
LTEXT "", IDC_SERVCON_INFO, 8, 5, 236, 11
LTEXT "", IDC_SERVCON_NAME, 8, 25, 66, 11
PUSHBUTTON "&Close", IDOK, 100, 70, 54, 13
PUSHBUTTON "סגור", IDOK, 100, 70, 54, 13
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_FIRSTCOLUMN "Name"
IDS_SECONDCOLUMN "Description"
IDS_THIRDCOLUMN "Status"
IDS_FOURTHCOLUMN "Startup Type"
IDS_FITHCOLUMN "Log On As"
IDS_FIRSTCOLUMN "שם"
IDS_SECONDCOLUMN "תיאור"
IDS_THIRDCOLUMN "מצב"
IDS_FOURTHCOLUMN "סוג הפעלה"
IDS_FITHCOLUMN "התחבר כ"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_SERVICES_STARTED "Started"
IDS_SERVICES_STOPPED "Stopped"
IDS_SERVICES_AUTO "Automatic"
IDS_SERVICES_MAN "Manual"
IDS_SERVICES_DIS "Disabled"
IDS_SERVICES_STARTED "הופעל"
IDS_SERVICES_STOPPED "נעצר"
IDS_SERVICES_AUTO "אוטומטי"
IDS_SERVICES_MAN "ידני"
IDS_SERVICES_DIS "הופסק"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_NUM_SERVICES "Num Services: %d"
IDS_STOP_DEPENDS "When %s stops, these other services will also stop"
IDS_NO_DEPENDS "<No Dependencies>"
IDS_NUM_SERVICES "מספר השירותים: %d"
IDS_STOP_DEPENDS "מתי ש %s יעצור, השירותים הללו גם יעצרו."
IDS_NO_DEPENDS "<אין יחסי תלות>"
IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_TOOLTIP_PROP "Properties"
IDS_TOOLTIP_REFRESH "Refresh"
IDS_TOOLTIP_EXPORT "Export list"
IDS_TOOLTIP_CREATE "Create a new service"
IDS_TOOLTIP_DELETE "Deletes an existing service"
IDS_TOOLTIP_START "Start service"
IDS_TOOLTIP_STOP "Stop service"
IDS_TOOLTIP_PAUSE "Pause service"
IDS_TOOLTIP_RESTART "Restart service"
IDS_TOOLTIP_PROP "מאפיינים"
IDS_TOOLTIP_REFRESH "רענון"
IDS_TOOLTIP_EXPORT "יצא רשימה"
IDS_TOOLTIP_CREATE "יצירת שירות חדש"
IDS_TOOLTIP_DELETE "מחיקת שירות קיים"
IDS_TOOLTIP_START "הפעל שירות"
IDS_TOOLTIP_STOP "עצור שירות"
IDS_TOOLTIP_PAUSE "השעה שירות"
IDS_TOOLTIP_RESTART "אתחול שירות"
END
STRINGTABLE DISCARDABLE
@ -228,8 +228,8 @@ BEGIN
IDS_PROGRESS_INFO_STOP "ReactOS is attempting to stop the following service"
IDS_PROGRESS_INFO_PAUSE "ReactOS is attempting to pause the following service"
IDS_PROGRESS_INFO_RESUME "ReactOS is attempting to resume the following service"
IDS_CREATE_SUCCESS "Service Created Succesfully"
IDS_DELETE_SUCCESS "Service Deleted Succesfully"
IDS_CREATE_SUCCESS "השירות נוצר בהצלחה"
IDS_DELETE_SUCCESS "השירות נמחק בהצלחה"
IDS_CREATE_REQ "Fields marked with an\nasterix are mandatory"
IDS_DELETE_STOP "You must manually stop the service before deleting!"
END
@ -264,8 +264,8 @@ BEGIN
IDS_HINT_DETAILS " Display information about each item in a window."
IDS_HINT_CUST " Customizes the view."
IDS_HINT_HELP " Display help window."
IDS_HINT_ABOUT " About ReactOS Service Manager."
IDS_HINT_HELP " מציג חלון עזרה."
IDS_HINT_ABOUT " אודות מנהל השירותים של ReactOS"
IDS_HINT_SYS_RESTORE " Restores this window to normal size."
IDS_HINT_SYS_MOVE " Moves this window."
@ -278,5 +278,5 @@ END
/* Application title */
STRINGTABLE DISCARDABLE
BEGIN
IDS_APPNAME "ReactOS Service Manager"
IDS_APPNAME "מנהל השירותים של ReactOS"
END

View file

@ -33,7 +33,7 @@ BEGIN
MENUITEM "העתק\tCtrl+C", IDM_EDITCOPY
MENUITEM "הדבק\tCtrl+V", IDM_EDITPASTE
MENUITEM "מחק בחירה\tDel", IDM_EDITDELETESELECTION
MENUITEM "Invert selection", IDM_EDITINVERTSELECTION
MENUITEM "הפוך בחירה", IDM_EDITINVERTSELECTION
MENUITEM "בחר הכל\tCtrl+A", IDM_EDITSELECTALL
MENUITEM SEPARATOR
MENUITEM "העתק ל...", IDM_EDITCOPYTO
@ -44,10 +44,10 @@ BEGIN
BEGIN
MENUITEM "ערכת כלים\tCtrl+T", IDM_VIEWTOOLBOX, CHECKED
MENUITEM "ערכת צבעים\tCtrl+L", IDM_VIEWCOLORPALETTE, CHECKED
MENUITEM "Status bar", IDM_VIEWSTATUSBAR, CHECKED
MENUITEM "Text Toolbar", IDM_FORMATICONBAR, CHECKED, GRAYED
MENUITEM "שורת מצב", IDM_VIEWSTATUSBAR, CHECKED
MENUITEM "סרגל טקסט", IDM_FORMATICONBAR, CHECKED, GRAYED
MENUITEM SEPARATOR
POPUP "Zoom"
POPUP "הגדלה"
BEGIN
POPUP "הגדרת משתמש"
BEGIN
@ -61,7 +61,7 @@ BEGIN
END
MENUITEM SEPARATOR
MENUITEM "הראה רשת\tCtrl+G", IDM_VIEWSHOWGRID
MENUITEM "Show miniature", IDM_VIEWSHOWMINIATURE
MENUITEM "הראה ממוזער", IDM_VIEWSHOWMINIATURE
END
MENUITEM "מסך מלא\tCtrl+F", IDM_VIEWFULLSCREEN
END
@ -72,14 +72,14 @@ BEGIN
MENUITEM "שנה גודל...\tCtrl+W", IDM_IMAGECHANGESIZE
MENUITEM "חתוך", IDM_IMAGECROP
MENUITEM "הפוך צבעים\tCtrl+I", IDM_IMAGEINVERTCOLORS
MENUITEM "Attributes...\tCtrl+E", IDM_IMAGEATTRIBUTES
MENUITEM "תכונות...\tCtrl+E", IDM_IMAGEATTRIBUTES
MENUITEM "מחק תמונה\tCtrl+Shft+N", IDM_IMAGEDELETEIMAGE
MENUITEM "צביעה אטומה", IDM_IMAGEDRAWOPAQUE
END
POPUP "&צבעים"
BEGIN
MENUITEM "Edit palette...", IDM_COLORSEDITPALETTE
MENUITEM "עריכת ערכה...", IDM_COLORSEDITPALETTE
END
POPUP "&?"
@ -119,8 +119,8 @@ FONT 8, "MS Shell Dlg"
CAPTION "סובב והפוך את התמונה"
BEGIN
GROUPBOX "סובב או הפוך", IDD_MIRRORROTATEGROUP, 6, 6, 112, 86
AUTORADIOBUTTON "Mirror horizontally", IDD_MIRRORROTATERB1, 12, 18, 100, 10, WS_GROUP
AUTORADIOBUTTON "Mirror vertically", IDD_MIRRORROTATERB2, 12, 30, 100, 10
AUTORADIOBUTTON "מראה אופקית", IDD_MIRRORROTATERB1, 12, 18, 100, 10, WS_GROUP
AUTORADIOBUTTON "מראה אנכית", IDD_MIRRORROTATERB2, 12, 30, 100, 10
AUTORADIOBUTTON "סובב בזווית", IDD_MIRRORROTATERB3, 12, 42, 100, 10
AUTORADIOBUTTON "90°", IDD_MIRRORROTATERB4, 42, 54, 50, 10, WS_GROUP | WS_DISABLED
AUTORADIOBUTTON "180°", IDD_MIRRORROTATERB5, 42, 66, 50, 10, WS_DISABLED
@ -146,7 +146,7 @@ BEGIN
LTEXT "לא זמין", IDD_ATTRIBUTESTEXT8, 60, 25, 90, 10
GROUPBOX "יחידות מדידה", IDD_ATTRIBUTESGROUP1, 6, 57, 158, 27
AUTORADIOBUTTON "אינצ'ים", IDD_ATTRIBUTESRB1, 12, 69, 45, 10, WS_GROUP
AUTORADIOBUTTON "סנטימטרים", IDD_ATTRIBUTESRB2, 62, 69, 45, 10
AUTORADIOBUTTON "סנטימטרים", IDD_ATTRIBUTESRB2, 55, 69, 51, 10
AUTORADIOBUTTON "פיקסלים", IDD_ATTRIBUTESRB3, 112, 69, 45, 10
GROUPBOX "צבעים", IDD_ATTRIBUTESGROUP2, 6, 88, 158, 27
AUTORADIOBUTTON "שחור ולבן", IDD_ATTRIBUTESRB4, 12, 100, 70, 10, WS_GROUP
@ -182,12 +182,12 @@ BEGIN
IDS_INFOTEXT, "Paint for ReactOS is available under the GNU Lesser General Public License (LGPL) version 3 (see www.gnu.org)"
IDS_SAVEPROMPTTEXT, "האם ברצונך לשמור את השינויים של %s?"
IDS_DEFAULTFILENAME, "ללא שם.bmp"
IDS_MINIATURETITLE, "Miniature"
IDS_MINIATURETITLE, "ממוזער"
IDS_TOOLTIP1, "בחירה חופשית"
IDS_TOOLTIP2, "Selection"
IDS_TOOLTIP2, "בחירה"
IDS_TOOLTIP3, "מחק"
IDS_TOOLTIP4, "מלא עם צבע"
IDS_TOOLTIP5, "Select color"
IDS_TOOLTIP5, "בחירת צבע"
IDS_TOOLTIP6, "זכוכית מגדלת"
IDS_TOOLTIP7, "עפרון"
IDS_TOOLTIP8, "מברשת"
@ -201,6 +201,6 @@ BEGIN
IDS_TOOLTIP16, "מרובע עם קודקודים מרובעים"
IDS_OPENFILTER, "קבצי מפת סיביות (*.bmp;*.dib)\1*.bmp;*.dib\1All files (*.*)\1*.*\1"
IDS_SAVEFILTER, "קבצי מפת סיביות של 24 סיביות (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_FILESIZE, "%d bytes"
IDS_FILESIZE, "%d בתים"
IDS_PRINTRES, "%d x %d פיקסלים למטר"
END

View file

@ -710,12 +710,38 @@ WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
SendMessage(hwnd, WM_CLOSE, wParam, lParam);
break;
case IDM_FILENEW:
ShowWindow(hSelection, SW_HIDE);
clearHistory();
Rectangle(hDrawingDC, 0 - 1, 0 - 1, imgXRes + 1, imgYRes + 1);
SendMessage(hImageArea, WM_PAINT, 0, 0);
{
BOOL reset = TRUE;
if (!imageSaved)
{
TCHAR programname[20];
TCHAR saveprompttext[100];
TCHAR temptext[500];
LoadString(hProgInstance, IDS_PROGRAMNAME, programname, SIZEOF(programname));
LoadString(hProgInstance, IDS_SAVEPROMPTTEXT, saveprompttext, SIZEOF(saveprompttext));
_stprintf(temptext, saveprompttext, filename);
switch (MessageBox(hwnd, temptext, programname, MB_YESNOCANCEL | MB_ICONQUESTION))
{
case IDNO:
imageSaved = TRUE;
break;
case IDYES:
SendMessage(hwnd, WM_COMMAND, IDM_FILESAVEAS, 0);
break;
case IDCANCEL:
reset = FALSE;
break;
}
}
if (reset && imageSaved)
{
Rectangle(hDrawingDC, 0 - 1, 0 - 1, imgXRes + 1, imgYRes + 1);
SendMessage(hImageArea, WM_PAINT, 0, 0);
updateCanvasAndScrollbars();
clearHistory();
}
break;
}
case IDM_FILEOPEN:
if (GetOpenFileName(&ofn) != 0)
{

View file

@ -48,7 +48,7 @@ BEGIN
END
STRINGTABLE
STRINGTABLE
BEGIN
IDS_TAB_GENERAL "General"
IDS_TAB_DISPLAY "Display"

View file

@ -27,13 +27,13 @@ BEGIN
GROUPBOX "צבעים",IDC_STATIC,7,83,228,85
ICON "", IDC_REMICON, 15,19,20,20
ICON "", IDC_COLORSICON, 15,98,20,20
LTEXT "בחר את גודלו של שולחן העבודה המרוחק שלך. גרור את המחוון עד\nלקצה השמאלי כדי להשתמש במסך מלא.",IDC_STATIC,53,22,175,21
CONTROL "", IDC_GEOSLIDER, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 56, 42, 124, 17
LTEXT "בחר את גודלו של שולחן העבודה המרוחק שלך. גרור את המחוון עד\nלקצה השמאלי כדי להשתמש במסך מלא.",IDC_STATIC,51,19,175,25
CONTROL "", IDC_GEOSLIDER, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 57, 48, 124, 17
COMBOBOX IDC_BPPCOMBO,56,102,128,80, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
CONTROL "",IDC_COLORIMAGE,"Static",SS_OWNERDRAW | SS_SUNKEN, 56,121,127,10
LTEXT "שימו לב: ההגדרות במחשב המרוחק יכולות לשנות את ההגדרות שלכם.",IDC_STATIC,56,143,165,18
LTEXT "פחות",IDC_STATIC,35,42,15,8
LTEXT "יותר",IDC_STATIC,189,42,17,8
LTEXT "פחות",IDC_STATIC,40,51,19,8
LTEXT "יותר",IDC_STATIC,183,51,19,8
LTEXT "", IDC_SETTINGS_RESOLUTION_TEXT, 56, 62, 120, 10, SS_CENTER
END
@ -48,14 +48,14 @@ BEGIN
END
STRINGTABLE
STRINGTABLE
BEGIN
IDS_TAB_GENERAL "כללי"
IDS_TAB_DISPLAY "תצוגה"
IDS_256COLORS "256 צבעים"
IDS_HIGHCOLOR15 "32,768 צבעים (15 bit)"
IDS_HIGHCOLOR16 "65,536 צבעים (16 bit)"
IDS_HIGHCOLOR24 "16,777,216 צבעים (24 bit)"
IDS_HIGHCOLOR15 "32,768 צבעים (15 סיביות)"
IDS_HIGHCOLOR16 "65,536 צבעים (16 סיביות)"
IDS_HIGHCOLOR24 "16,777,216 צבעים (24 סיביות)"
IDS_PIXEL "%lux%lu פיקסלים"
IDS_FULLSCREEN "מסך מלא"
IDS_BROWSESERVER "<Browse for more...>"

View file

@ -19,4 +19,4 @@ Unfortunately, all the ssh clients I've found don't work this way. You can outp
3) Get Openssh from http://www.openssh.com
4) Modify Openssh so it will compile, and get rid of all the termios stuff
Obviously this is a lot of work. If you need a good ssh client, try PuTTY from http://www.chiark.greenend.org.uk/~sgtatham/putty/. It may be possible to integrate PuTTY and Telnet, and that would certainly be easier than the above option. PuTTY is licensed under the MIT license, which seems to be compatible with the GPL. The primary advantage of integrating the two projects is that PuTTY would gain the key mappings that telnet has, and telnet would gain encryption.
Obviously this is a lot of work. If you need a good ssh client, try PuTTY from http://www.chiark.greenend.org.uk/~sgtatham/putty/. It may be possible to integrate PuTTY and Telnet, and that would certainly be easier than the above option. PuTTY is licensed under the MIT license, which seems to be compatible with the GPL. The primary advantage of integrating the two projects is that PuTTY would gain the key mappings that telnet has, and telnet would gain encryption.

View file

@ -4,12 +4,6 @@ include_directories(
${REACTOS_SOURCE_DIR}/include/reactos/drivers/ndisuio)
add_executable(wlanconf wlanconf.c wlanconf.rc)
# FIXME: http://www.cmake.org/Bug/view.php?id=12998
if(NOT MSVC)
#add_target_compile_flags(wlanconf "-Wno-format")
set_source_files_properties(wlanconf.c PROPERTIES COMPILE_FLAGS "-Wno-format")
endif()
set_module_type(wlanconf win32cui)
set_module_type(wlanconf win32cui UNICODE)
add_importlibs(wlanconf msvcrt user32 iphlpapi kernel32)
add_cd_file(TARGET wlanconf DESTINATION reactos/system32 FOR all)

View file

@ -25,8 +25,8 @@
BOOL bScan = FALSE;
BOOL bConnect = FALSE;
char *sSsid = NULL;
char *sWepKey = NULL;
WCHAR *sSsid = NULL;
WCHAR *sWepKey = NULL;
BOOL bAdhoc = FALSE;
BOOL bDisconnect = FALSE;
@ -35,12 +35,12 @@ BOOL bDisconnect = FALSE;
the command prompt. */
VOID PrintResourceString(INT resID, ...)
{
TCHAR szMsgBuf[MAX_BUFFER_SIZE];
WCHAR szMsgBuf[MAX_BUFFER_SIZE];
va_list arg_ptr;
va_start(arg_ptr, resID);
LoadString(GetModuleHandle(NULL), resID, szMsgBuf, MAX_BUFFER_SIZE);
_vtprintf(szMsgBuf, arg_ptr);
LoadStringW(GetModuleHandle(NULL), resID, szMsgBuf, MAX_BUFFER_SIZE);
vwprintf(szMsgBuf, arg_ptr);
va_end(arg_ptr);
}
@ -49,22 +49,22 @@ DWORD DoFormatMessage(DWORD ErrorCode)
LPVOID lpMsgBuf;
DWORD RetVal;
if ((RetVal = FormatMessage(
if ((RetVal = FormatMessageW(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
ErrorCode,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), /* Default language */
(LPTSTR) &lpMsgBuf,
(LPWSTR) &lpMsgBuf,
0,
NULL )))
{
_tprintf(_T("%s"), (LPTSTR)lpMsgBuf);
printf("%S", (LPWSTR)lpMsgBuf);
LocalFree(lpMsgBuf);
/* return number of TCHAR's stored in output buffer
/* return number of WCHAR's stored in output buffer
* excluding '\0' - as FormatMessage does*/
return RetVal;
}
@ -285,47 +285,18 @@ WlanDisconnect(HANDLE hAdapter, PIP_ADAPTER_INDEX_MAP IpInfo)
static
UCHAR
CharToHex(CHAR Char)
CharToHex(WCHAR Char)
{
Char = toupper(Char);
if ((Char >= L'0') && (Char <= L'9'))
return Char - L'0';
switch (Char)
{
case '0':
return 0x0;
case '1':
return 0x1;
case '2':
return 0x2;
case '3':
return 0x3;
case '4':
return 0x4;
case '5':
return 0x5;
case '6':
return 0x6;
case '7':
return 0x7;
case '8':
return 0x8;
case '9':
return 0x9;
case 'A':
return 0xA;
case 'B':
return 0xB;
case 'C':
return 0xC;
case 'D':
return 0xD;
case 'E':
return 0xE;
case 'F':
return 0xF;
default:
return 0;
}
if ((Char >= L'a') && (Char <= L'f'))
return Char - L'a' + 10;
if ((Char >= L'A') && (Char <= L'F'))
return Char - L'A' + 10;
return 0;
}
BOOL
@ -338,7 +309,7 @@ WlanPrintCurrentStatus(HANDLE hAdapter)
PNDIS_802_11_SSID SsidInfo;
CHAR SsidBuffer[NDIS_802_11_LENGTH_SSID + 1];
DWORD i;
TCHAR szMsgBuf[128];
WCHAR szMsgBuf[128];
QueryOidSize = FIELD_OFFSET(NDISUIO_QUERY_OID, Data) + sizeof(NDIS_802_11_SSID);
QueryOid = HeapAlloc(GetProcessHeap(), 0, QueryOidSize);
@ -393,19 +364,19 @@ WlanPrintCurrentStatus(HANDLE hAdapter)
PrintResourceString(IDS_MSG_CURRENT_WIRELESS);
}
_tprintf(_T("SSID: %hs\n"), SsidBuffer);
printf("SSID: %s\n", SsidBuffer);
_tprintf(_T("BSSID: "));
printf("BSSID: ");
for (i = 0; i < sizeof(NDIS_802_11_MAC_ADDRESS); i++)
{
UINT BssidData = QueryOid->Data[i];
_tprintf(_T("%.2x"), BssidData);
printf("%.2x", BssidData);
if (i != sizeof(NDIS_802_11_MAC_ADDRESS) - 1)
_tprintf(_T(":"));
printf(":");
}
_tprintf(_T("\n"));
printf("\n");
HeapFree(GetProcessHeap(), 0, QueryOid);
QueryOidSize = sizeof(NDISUIO_QUERY_OID);
@ -429,10 +400,10 @@ WlanPrintCurrentStatus(HANDLE hAdapter)
return FALSE;
}
LoadString(GetModuleHandle(NULL),
*(PUINT)QueryOid->Data == Ndis802_11IBSS ? IDS_ADHOC : IDS_INFRASTRUCTURE,
szMsgBuf,
COUNT_OF(szMsgBuf));
LoadStringW(GetModuleHandle(NULL),
*(PUINT)QueryOid->Data == Ndis802_11IBSS ? IDS_ADHOC : IDS_INFRASTRUCTURE,
szMsgBuf,
COUNT_OF(szMsgBuf));
PrintResourceString(IDS_MSG_NETWORK_MODE, szMsgBuf);
QueryOid->Oid = OID_802_11_WEP_STATUS;
@ -451,13 +422,13 @@ WlanPrintCurrentStatus(HANDLE hAdapter)
return FALSE;
}
LoadString(GetModuleHandle(NULL),
*(PUINT)QueryOid->Data == Ndis802_11WEPEnabled ? IDS_YES : IDS_NO,
szMsgBuf,
COUNT_OF(szMsgBuf));
LoadStringW(GetModuleHandle(NULL),
*(PUINT)QueryOid->Data == Ndis802_11WEPEnabled ? IDS_YES : IDS_NO,
szMsgBuf,
COUNT_OF(szMsgBuf));
PrintResourceString(IDS_MSG_WEP_ENABLED, szMsgBuf);
_tprintf(_T("\n"));
printf("\n");
QueryOid->Oid = OID_802_11_RSSI;
bSuccess = DeviceIoControl(hAdapter,
@ -471,7 +442,7 @@ WlanPrintCurrentStatus(HANDLE hAdapter)
if (bSuccess)
{
/* This OID is optional */
_tprintf(_T("RSSI: %i dBm\n"), *(PINT)QueryOid->Data);
printf("RSSI: %i dBm\n", *(PINT)QueryOid->Data);
}
QueryOid->Oid = OID_802_11_TX_POWER_LEVEL;
@ -490,7 +461,7 @@ WlanPrintCurrentStatus(HANDLE hAdapter)
PrintResourceString(IDS_MSG_TRANSMISSION_POWER, *(PUINT)QueryOid->Data);
}
_tprintf(_T("\n"));
printf("\n");
QueryOid->Oid = OID_802_11_NUMBER_OF_ANTENNAS;
@ -548,7 +519,7 @@ WlanPrintCurrentStatus(HANDLE hAdapter)
PrintResourceString(IDS_MSG_RECEIVE_ANTENNA_ANY);
}
_tprintf(_T("\n"));
printf("\n");
QueryOid->Oid = OID_802_11_FRAGMENTATION_THRESHOLD;
@ -584,13 +555,14 @@ WlanPrintCurrentStatus(HANDLE hAdapter)
HeapFree(GetProcessHeap(), 0, QueryOid);
_tprintf(_T("\n"));
printf("\n");
return TRUE;
}
BOOL
WlanConnect(HANDLE hAdapter)
{
CHAR SsidBuffer[NDIS_802_11_LENGTH_SSID + 1];
BOOL bSuccess;
DWORD dwBytesReturned, SetOidSize;
PNDISUIO_SET_OID SetOid;
@ -646,7 +618,7 @@ WlanConnect(HANDLE hAdapter)
SetOidSize = FIELD_OFFSET(NDISUIO_SET_OID, Data) +
FIELD_OFFSET(NDIS_802_11_WEP, KeyMaterial) +
(strlen(sWepKey) >> 1);
(wcslen(sWepKey) >> 1);
SetOid = HeapAlloc(GetProcessHeap(), 0, SetOidSize);
if (!SetOid)
return FALSE;
@ -656,7 +628,7 @@ WlanConnect(HANDLE hAdapter)
WepData = (PNDIS_802_11_WEP)SetOid->Data;
WepData->KeyIndex = 0x80000000;
WepData->KeyLength = strlen(sWepKey) >> 1;
WepData->KeyLength = wcslen(sWepKey) >> 1;
WepData->Length = FIELD_OFFSET(NDIS_802_11_WEP, KeyMaterial) + WepData->KeyLength;
/* Assemble the hex key */
@ -735,8 +707,9 @@ WlanConnect(HANDLE hAdapter)
SetOid->Oid = OID_802_11_SSID;
Ssid = (PNDIS_802_11_SSID)SetOid->Data;
RtlCopyMemory(Ssid->Ssid, sSsid, strlen(sSsid));
Ssid->SsidLength = strlen(sSsid);
snprintf(SsidBuffer, sizeof(SsidBuffer), "%S", sSsid);
RtlCopyMemory(Ssid->Ssid, SsidBuffer, strlen(SsidBuffer));
Ssid->SsidLength = strlen(SsidBuffer);
bSuccess = DeviceIoControl(hAdapter,
IOCTL_NDISUIO_SET_OID_VALUE,
@ -766,7 +739,7 @@ WlanScan(HANDLE hAdapter)
DWORD QueryOidSize;
PNDIS_802_11_BSSID_LIST BssidList;
DWORD i, j;
TCHAR szMsgBuf[128];
WCHAR szMsgBuf[128];
SetOid.Oid = OID_802_11_BSSID_LIST_SCAN;
@ -824,29 +797,29 @@ WlanScan(HANDLE hAdapter)
RtlCopyMemory(SsidBuffer, Ssid->Ssid, Ssid->SsidLength);
SsidBuffer[Ssid->SsidLength] = 0;
_tprintf(_T("\nSSID: %hs\n"), SsidBuffer);
printf("\nSSID: %s\n", SsidBuffer);
_tprintf(_T("BSSID: "));
printf("BSSID: ");
for (j = 0; j < sizeof(NDIS_802_11_MAC_ADDRESS); j++)
{
UINT BssidData = BssidInfo->MacAddress[j];
_tprintf(_T("%.2x"), BssidData);
printf("%.2x", BssidData);
if (j != sizeof(NDIS_802_11_MAC_ADDRESS) - 1)
_tprintf(_T(":"));
printf(":");
}
_tprintf(_T("\n"));
printf("\n");
LoadString(GetModuleHandle(NULL),
BssidInfo->Privacy == 0 ? IDS_NO : IDS_YES,
szMsgBuf,
COUNT_OF(szMsgBuf));
LoadStringW(GetModuleHandle(NULL),
BssidInfo->Privacy == 0 ? IDS_NO : IDS_YES,
szMsgBuf,
COUNT_OF(szMsgBuf));
PrintResourceString(IDS_MSG_ENCRYPTED, szMsgBuf);
LoadString(GetModuleHandle(NULL),
NetworkType == Ndis802_11IBSS ? IDS_ADHOC : IDS_INFRASTRUCTURE,
szMsgBuf,
COUNT_OF(szMsgBuf));
LoadStringW(GetModuleHandle(NULL),
NetworkType == Ndis802_11IBSS ? IDS_ADHOC : IDS_INFRASTRUCTURE,
szMsgBuf,
COUNT_OF(szMsgBuf));
PrintResourceString(IDS_MSG_NETWORK_TYPE, szMsgBuf);
PrintResourceString(IDS_MSG_RSSI, (int)Rssi);
PrintResourceString(IDS_MSG_SUPPORT_RATE);
@ -863,16 +836,16 @@ WlanScan(HANDLE hAdapter)
if (Rate & 0x01)
{
/* Bit 0 is set so we need to add 0.5 */
_tprintf(_T("%u.5 "), (Rate >> 1));
printf("%u.5 ", (Rate >> 1));
}
else
{
/* Bit 0 is clear so just print the conversion */
_tprintf(_T("%u "), (Rate >> 1));
printf("%u ", (Rate >> 1));
}
}
}
_tprintf(_T("\n"));
printf("\n");
/* Move to the next entry */
BssidInfo = (PNDIS_WLAN_BSSID)((PUCHAR)BssidInfo + BssidInfo->Length);
@ -884,23 +857,23 @@ WlanScan(HANDLE hAdapter)
return bSuccess;
}
BOOL ParseCmdline(int argc, char *argv[])
BOOL ParseCmdline(int argc, WCHAR *argv[])
{
INT i;
for (i = 1; i < argc; i++)
{
if (argv[i][0] == '-')
if (argv[i][0] == L'-')
{
switch (argv[i][1])
{
case 's':
case L's':
bScan = TRUE;
break;
case 'd':
case L'd':
bDisconnect = TRUE;
break;
case 'c':
case L'c':
if (i == argc - 1)
{
PrintResourceString(IDS_USAGE);
@ -909,7 +882,7 @@ BOOL ParseCmdline(int argc, char *argv[])
bConnect = TRUE;
sSsid = argv[++i];
break;
case 'w':
case L'w':
if (i == argc - 1)
{
PrintResourceString(IDS_USAGE);
@ -917,7 +890,7 @@ BOOL ParseCmdline(int argc, char *argv[])
}
sWepKey = argv[++i];
break;
case 'a':
case L'a':
bAdhoc = TRUE;
break;
default :
@ -936,7 +909,7 @@ BOOL ParseCmdline(int argc, char *argv[])
return TRUE;
}
int main(int argc, char *argv[])
int wmain(int argc, WCHAR *argv[])
{
HANDLE hAdapter;
IP_ADAPTER_INDEX_MAP IpInfo;

View file

@ -106,13 +106,13 @@ LTEXT "כותרת תחתונה:", 0x142, 10, 24, 40, 15
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
GROUPBOX "שוליים:", 0x144, 10, 43,160, 45
LTEXT "שמאליים:", 0x145, 20, 55, 30, 10, WS_CHILD
LTEXT "שמאליים:", 0x145, 14, 55, 35, 10, WS_CHILD
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
LTEXT "עליונים:", 0x148, 20, 73, 30, 10, WS_CHILD
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
LTEXT "ימניים:", 0x14B, 100, 55, 30, 10, WS_CHILD
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
LTEXT "תחתונים:", 0x14E, 100, 73, 30, 10, WS_CHILD
LTEXT "תחתונים:", 0x14E, 97, 73, 33, 10, WS_CHILD
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
DEFPUSHBUTTON "אישור", IDOK, 180, 3, 40, 15, WS_TABSTOP
@ -139,7 +139,7 @@ FONT 8, "MS Shell Dlg"
CAPTION "מעבר אל שורה"
BEGIN
EDITTEXT ID_LINENUMBER,54,10,106,12,WS_CHILD | WS_BORDER | WS_TABSTOP
LTEXT "מספר שורה:",0x155,5,12,41,12,WS_CHILD | WS_TABSTOP | ES_NUMBER
LTEXT "מספר שורה:",0x155,3,12,43,11,WS_CHILD | WS_TABSTOP | ES_NUMBER
DEFPUSHBUTTON "אישור", IDOK, 75, 30, 40, 15, WS_CHILD | WS_TABSTOP
PUSHBUTTON "ביטול", IDCANCEL, 120, 30, 40, 15, WS_CHILD | WS_TABSTOP
END
@ -196,7 +196,7 @@ STRING_OUT_OF_MEMORY, "Not enough memory to complete t
task. \nClose one or more applications to increase the amount of \nfree memory."
STRING_CANNOTFIND "לא יכול למצוא את '%s'"
STRING_ANSI, "ANSI"
STRING_UNICODE, "Unicode"
STRING_UNICODE, "יוניקוד"
STRING_UNICODE_BE, "Unicode (big endian)"
STRING_UTF8, "UTF-8"
STRING_CRLF, "חלונות"

View file

@ -30,8 +30,8 @@ IDR_LINKMENU MENU
BEGIN
POPUP "popup"
BEGIN
MENUITEM "פתיחת קישור בדפדפן", ID_OPEN_LINK
MENUITEM "העתקת קישור", ID_COPY_LINK
MENUITEM "פתיחת הקישור בדפדפן", ID_OPEN_LINK
MENUITEM "העתקת הקישור", ID_COPY_LINK
END
END
@ -56,8 +56,8 @@ FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "כללי", -1, 4, 2, 240, 61
AUTOCHECKBOX "שמור מיקום חלון", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12
AUTOCHECKBOX "&Update the list of accessible programs at start", IDC_UPDATE_AVLIST, 15, 29, 222, 12
AUTOCHECKBOX "&Log of installation and removal of programs", IDC_LOG_ENABLED, 15, 46, 219, 12
AUTOCHECKBOX "עדכן את רשימת התוכניות האפשרויות בהפעלה", IDC_UPDATE_AVLIST, 15, 29, 222, 12
AUTOCHECKBOX "תעד התקנה והסרה של תכניות", IDC_LOG_ENABLED, 15, 46, 219, 12
GROUPBOX "הורדה", -1, 4, 65, 240, 51
LTEXT "תיקיית הורדות:", -1, 16, 75, 100, 9
@ -156,7 +156,7 @@ BEGIN
IDS_CAT_AUDIO "צלילים"
IDS_CAT_DEVEL "פיתוח"
IDS_CAT_DRIVERS "מנהלי התקנים"
IDS_CAT_EDU "Edutainment"
IDS_CAT_EDU "בידור"
IDS_CAT_ENGINEER "הנדסה"
IDS_CAT_FINANCE "כלכלי"
IDS_CAT_GAMES "משחקים וכיף"
@ -178,7 +178,7 @@ BEGIN
IDS_UNINSTALL "הסרה"
IDS_MODIFY "שינוי"
IDS_APPS_COUNT "ספירת יישומים: %d"
IDS_WELCOME_TITLE "Welcome to ReactOS Applications Manager!\n\n"
IDS_WELCOME_TITLE "ברוכים הבאים למנהל היישומים של ReactOS!\n\n"
IDS_WELCOME_TEXT "Choose a category on the left, then choose an application to install or uninstall.\nReactOS Web Site: "
IDS_WELCOME_URL "http://www.reactos.org"
IDS_INSTALLED "מותקן"

View file

@ -342,7 +342,7 @@ BEGIN
ID_EDIT_RENAME "Renomme la sélection"
ID_EDIT_COPYKEYNAME "Copie le nom de la clé sélectionnée vers le presse-papier"
ID_EDIT_FIND "Recherche du texte dans une clé, une valeur ou des données"
ID_EDIT_FINDNEXT "Recherche l'occurence suivante du texte de la dernière recherche"
ID_EDIT_FINDNEXT "Recherche l'occurrence suivante du texte de la dernière recherche"
END
STRINGTABLE DISCARDABLE

View file

@ -194,7 +194,7 @@ END
IDD_EDIT_MULTI_STRING DIALOGEX 32, 24, 252, 174
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Edit Multi-String"
CAPTION "עריכת מרובה מחרזות"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "שם הערך:",IDC_STATIC,6,6,134,8
@ -223,7 +223,7 @@ END
IDD_EDIT_DWORD DIALOGEX 32, 24, 252, 104
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Edit DWORD"
CAPTION "עריכת DWORD"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "שם הערך:",IDC_STATIC,6,6,134,8
@ -264,10 +264,10 @@ FONT 8, "MS Shell Dlg"
CONTROL "", IDC_MEMORY_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 10, 101, 261, 31
LTEXT "יציאה:", IDC_STATIC, 10, 134, 38, 8
CONTROL "", IDC_PORT_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 10, 144, 261, 31
LTEXT "Device specific data:", IDC_STATIC, 10, 177, 80, 8
LTEXT "מידע מסוים של ההתקן:", IDC_STATIC, 10, 177, 80, 8
CONTROL "", IDC_DEVICE_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 10, 188, 261, 31
GROUPBOX "שימוש", IDC_STATIC, 10, 219, 125, 39
LTEXT "Undetermined", IDC_UNDETERMINED, 18, 230, 46, 8, WS_DISABLED
LTEXT "לא נקבע", IDC_UNDETERMINED, 18, 230, 46, 8, WS_DISABLED
LTEXT "משותף", IDC_SHARED, 18, 240, 48, 8, WS_DISABLED
LTEXT "התקן בלעדי", IDC_DEVICE_EXCLUSIVE, 72, 230, 58, 8, WS_DISABLED
LTEXT "מנהל התקן בלעדי", IDC_DRIVER_EXCLUSIVE, 72, 240, 54, 8, WS_DISABLED
@ -378,41 +378,41 @@ END
STRINGTABLE DISCARDABLE
BEGIN
IDS_BINARY_EMPTY "(zero-length binary value)"
IDS_DEFAULT_VALUE_NAME "(Default)"
IDS_VALUE_NOT_SET "(value not set)"
IDS_DEFAULT_VALUE_NAME "(ברירת מחדל)"
IDS_VALUE_NOT_SET "(ערך לא נקבע)"
IDS_UNKNOWN_TYPE "Unknown type: (0x%lx)"
IDS_MY_COMPUTER "My Computer"
IDS_IMPORT_REG_FILE "Import Registry File"
IDS_EXPORT_REG_FILE "Export Registry File"
IDS_LOAD_HIVE "Load Hive"
IDS_UNLOAD_HIVE "Unload Hive"
IDS_MY_COMPUTER "המחשב שלי"
IDS_IMPORT_REG_FILE "יבא קובץ רשום"
IDS_EXPORT_REG_FILE "יצא קובץ רשום"
IDS_LOAD_HIVE "טעינת כוורת"
IDS_UNLOAD_HIVE "פריקת כוורת"
IDS_INVALID_DWORD "(invalid DWORD value)"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_FLT_REGFILE "Registration File"
IDS_FLT_REGFILES "Registration Files (*.reg)"
IDS_FLT_REGFILE "קובץ רשום"
IDS_FLT_REGFILES "קבצי רשום (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES "קבצי כוורות רשום (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Win9x/NT4 Registration Files (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4 "Win9x/NT4 קבצי רשום (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "All Files (*.*)"
IDS_FLT_ALLFILES "כל הקבצים (*.*)"
IDS_FLT_ALLFILES_FLT "*.*"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ACCESS_FULLCONTROL "Full Control"
IDS_ACCESS_READ "Read"
IDS_ACCESS_FULLCONTROL "שליטה מלאה"
IDS_ACCESS_READ "קרא"
IDS_ACCESS_QUERYVALUE "Query Value"
IDS_ACCESS_SETVALUE "Set Value"
IDS_ACCESS_CREATESUBKEY "Create Subkey"
IDS_ACCESS_SETVALUE "קבע ערך"
IDS_ACCESS_CREATESUBKEY "צור מפתח משנה"
IDS_ACCESS_ENUMERATESUBKEYS "Enumerate Subkeys"
IDS_ACCESS_NOTIFY "Notify"
IDS_ACCESS_CREATELINK "Create Link"
IDS_ACCESS_DELETE "Delete"
IDS_ACCESS_CREATELINK "צור קישור"
IDS_ACCESS_DELETE "מחק"
IDS_ACCESS_WRITEDAC "Write DAC"
IDS_ACCESS_WRITEOWNER "Write Owner"
IDS_ACCESS_READCONTROL "Read Control"
@ -427,9 +427,9 @@ END
STRINGTABLE DISCARDABLE
BEGIN
IDS_EXPAND "&Expand"
IDS_COLLAPSE "&Collapse"
IDS_GOTO_SUGGESTED_KEY "&Go to '%s'"
IDS_EXPAND "הרחב"
IDS_COLLAPSE "כווץ"
IDS_GOTO_SUGGESTED_KEY "עבור אל '%s'"
IDS_FINISHEDFIND "Finished searching through the registry."
END
@ -444,39 +444,39 @@ END
STRINGTABLE DISCARDABLE
BEGIN
IDS_BUSNUMBER "Bus Number"
IDS_INTERFACE "Interface"
IDS_DMA_CHANNEL "Channel"
IDS_DMA_PORT "Port"
IDS_INTERRUPT_VECTOR "Vector"
IDS_INTERFACE "ממשק"
IDS_DMA_CHANNEL "ערוץ"
IDS_DMA_PORT "יציאה"
IDS_INTERRUPT_VECTOR "וקטור"
IDS_INTERRUPT_LEVEL "Level"
IDS_INTERRUPT_AFFINITY "Affinity"
IDS_INTERRUPT_TYPE "Type"
IDS_MEMORY_ADDRESS "Physical Address"
IDS_MEMORY_LENGTH "Length"
IDS_MEMORY_ACCESS "Access"
IDS_PORT_ADDRESS "Physical Address"
IDS_PORT_LENGTH "Length"
IDS_PORT_ACCESS "Access"
IDS_SPECIFIC_RESERVED1 "Reserved 1"
IDS_SPECIFIC_RESERVED2 "Reserved 2"
IDS_INTERRUPT_AFFINITY "שייכות"
IDS_INTERRUPT_TYPE "סוג"
IDS_MEMORY_ADDRESS "כתובת פיזית"
IDS_MEMORY_LENGTH "אורך"
IDS_MEMORY_ACCESS "גישה"
IDS_PORT_ADDRESS "כתובת פיזית"
IDS_PORT_LENGTH "אורך"
IDS_PORT_ACCESS "גישה"
IDS_SPECIFIC_RESERVED1 "שמור 1"
IDS_SPECIFIC_RESERVED2 "שמור 2"
IDS_SPECIFIC_DATASIZE "Data Size"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_PORT_PORT_IO "Port"
IDS_PORT_MEMORY_IO "Memory"
IDS_PORT_PORT_IO "יציאה"
IDS_PORT_MEMORY_IO "זיכרון"
IDS_INTERRUPT_EDGE_SENSITIVE "Edge Sensitive"
IDS_INTERRUPT_LEVEL_SENSITIVE "Level Sensitive"
IDS_MEMORY_READ_ONLY "Read Only"
IDS_MEMORY_WRITE_ONLY "Write Only"
IDS_MEMORY_READ_WRITE "Read / Write"
IDS_MEMORY_READ_ONLY "קריאה בלבד"
IDS_MEMORY_WRITE_ONLY "כתיבה בלבד"
IDS_MEMORY_READ_WRITE "קריאה / כתיבה"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_BUS_UNDEFINED "Undefined"
IDS_BUS_INTERNAL "Internal"
IDS_BUS_UNDEFINED "לא מוגדר"
IDS_BUS_INTERNAL "פנימי"
IDS_BUS_ISA "ISA"
IDS_BUS_EISA "EISA"
IDS_BUS_MICROCHANNEL "MicroChannel"
@ -506,9 +506,9 @@ IDD_EXPORTRANGE DIALOGEX DISCARDABLE 50, 50, 370, 50
STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Export Range",IDC_STATIC,2,0,366,48
CONTROL "&All",IDC_EXPORT_ALL,"Button",BS_AUTORADIOBUTTON,10,10, 29,11
CONTROL "S&elected Branch",IDC_EXPORT_BRANCH,"Button",BS_AUTORADIOBUTTON,10,22, 100,11
GROUPBOX "טווח יצוא",IDC_STATIC,2,0,366,48
CONTROL "הכל",IDC_EXPORT_ALL,"Button",BS_AUTORADIOBUTTON,10,10, 29,11
CONTROL "בחירת ענף",IDC_EXPORT_BRANCH,"Button",BS_AUTORADIOBUTTON,10,22, 100,11
EDITTEXT IDC_EXPORT_BRANCH_TEXT,30,34,335,12
END
@ -517,53 +517,53 @@ END
//
IDD_LOADHIVE DIALOGEX DISCARDABLE 0, 0, 193, 34
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Load Hive"
CAPTION "טעינת כוורות"
FONT 8, "Ms Shell Dlg"
{
LTEXT "&Key:", IDC_STATIC, 4, 4, 15, 8, SS_LEFT
LTEXT "מפתח:", IDC_STATIC, 4, 4, 15, 8, SS_LEFT
EDITTEXT IDC_EDIT_KEY, 23, 2, 167, 13
DEFPUSHBUTTON "OK", IDOK, 140, 17, 50, 14
PUSHBUTTON "Cancel", IDCANCEL, 89, 17, 50, 14
DEFPUSHBUTTON "אישור", IDOK, 140, 17, 50, 14
PUSHBUTTON "ביטול", IDCANCEL, 89, 17, 50, 14
}
IDD_ADDFAVORITES DIALOGEX DISCARDABLE 0, 0, 186, 46
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Add to Favorites"
CAPTION "הוספה למועדפים"
FONT 8, "MS Shell Dlg"
BEGIN
DEFPUSHBUTTON "OK",IDOK,129,7,50,14
PUSHBUTTON "Cancel",IDCANCEL,129,24,50,14
LTEXT "&Favorite Name:",IDC_STATIC,7,7,70,10
DEFPUSHBUTTON "אישור",IDOK,129,7,50,14
PUSHBUTTON "ביטול",IDCANCEL,129,24,50,14
LTEXT "שם מועדף:",IDC_STATIC,7,7,70,10
EDITTEXT IDC_FAVORITENAME,7,26,110,13,ES_AUTOHSCROLL
END
IDD_REMOVEFAVORITES DIALOGEX DISCARDABLE 0, 0, 164, 135
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Remove Favorites"
CAPTION "הסרת מועדפים"
FONT 8, "MS Shell Dlg"
BEGIN
DEFPUSHBUTTON "OK",IDOK,107,114,50,14
PUSHBUTTON "Cancel",IDCANCEL,7,114,50,14
DEFPUSHBUTTON "אישור",IDOK,107,114,50,14
PUSHBUTTON "ביטול",IDCANCEL,7,114,50,14
CONTROL "List1",IDC_FAVORITESLIST,"SysListView32",LVS_LIST |
WS_BORDER | WS_TABSTOP,7,20,150,90
LTEXT "Select Favorite(s):",IDC_STATIC,7,7,99,12
LTEXT "בחירת מועדפים:",IDC_STATIC,7,7,99,12
END
IDD_FIND DIALOGEX DISCARDABLE 0, 0, 254, 82
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Find"
CAPTION "חפש"
FONT 8, "MS Shell Dlg"
BEGIN
DEFPUSHBUTTON "&Find Next",IDOK,197,7,50,14
PUSHBUTTON "Cancel",IDCANCEL,197,24,50,14
GROUPBOX "Look at",IDC_STATIC,7,25,63,51
DEFPUSHBUTTON "חפש את הבא:",IDOK,197,7,50,14
PUSHBUTTON "ביטול",IDCANCEL,197,24,50,14
GROUPBOX "חפש ב",IDC_STATIC,7,25,63,51
LTEXT "Fi&nd what:",IDC_STATIC,7,8,37,10
EDITTEXT IDC_FINDWHAT,47,7,142,13,ES_AUTOHSCROLL
CONTROL "&Keys",IDC_LOOKAT_KEYS,"Button",BS_AUTOCHECKBOX |
CONTROL "מפתחות",IDC_LOOKAT_KEYS,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,14,36,35,8
CONTROL "&Values",IDC_LOOKAT_VALUES,"Button",BS_AUTOCHECKBOX |
CONTROL "ערכים",IDC_LOOKAT_VALUES,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,14,48,36,8
CONTROL "&Data",IDC_LOOKAT_DATA,"Button",BS_AUTOCHECKBOX |
CONTROL "מידע",IDC_LOOKAT_DATA,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,14,60,42,8
CONTROL "Match &whole string only",IDC_MATCHSTRING,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,83,32,94,13
@ -574,12 +574,12 @@ END
IDD_FINDING DIALOGEX 0, 0, 145, 50
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP |
WS_CAPTION | WS_SYSMENU
CAPTION "Find"
CAPTION "חפש"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
ICON IDI_REGEDIT,IDC_STATIC,7,7,20,20
DEFPUSHBUTTON "&Cancel",IDCANCEL,93,29,45,14
LTEXT "Searching the registry...",IDC_STATIC,33,12,83,8
DEFPUSHBUTTON "ביטול",IDCANCEL,93,29,45,14
LTEXT "מחפש ברשום...",IDC_STATIC,33,12,83,8
END
/*

View file

@ -55,7 +55,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "ハイブの読み込み...", ID_REGISTRY_LOADHIVE, GRAYED
MENUITEM "ハイブのアンロード...", ID_REGISTRY_UNLOADHIVE, GRAYED
MENUITEM "ハイブのアンロード...", ID_REGISTRY_UNLOADHIVE, GRAYED
MENUITEM SEPARATOR
MENUITEM "ネットワーク レジストリへの接続(&C)...",
ID_REGISTRY_CONNECTNETWORKREGISTRY
@ -80,7 +80,7 @@ BEGIN
MENUITEM "バイナリ値(&B)", ID_EDIT_NEW_BINARYVALUE
MENUITEM "DWORD 値(&D)", ID_EDIT_NEW_DWORDVALUE
MENUITEM "複数行文字列値(&M)", ID_EDIT_NEW_MULTISTRINGVALUE
MENUITEM "展開可能 な文字列値(&E)", ID_EDIT_NEW_EXPANDABLESTRINGVALUE
MENUITEM "展開可能な文字列値(&E)", ID_EDIT_NEW_EXPANDABLESTRINGVALUE
END
MENUITEM SEPARATOR
MENUITEM "アクセス許可(&P)...", ID_EDIT_PERMISSIONS
@ -93,7 +93,7 @@ BEGIN
MENUITEM "検索(&F)\tCtrl+F", ID_EDIT_FIND
MENUITEM "次を検索(&X)\tF3", ID_EDIT_FINDNEXT
END
POPUP "表 示(&V)"
POPUP "表示(&V)"
BEGIN
MENUITEM "ステータス バー(&B)", ID_VIEW_STATUSBAR
MENUITEM SEPARATOR
@ -134,7 +134,7 @@ BEGIN
MENUITEM "バイナリ値(&B)", ID_EDIT_NEW_BINARYVALUE
MENUITEM "DWORD 値(&D)", ID_EDIT_NEW_DWORDVALUE
MENUITEM "複数行文字列値(&M)", ID_EDIT_NEW_MULTISTRINGVALUE
MENUITEM "展開可能 な文字列値(&E)", ID_EDIT_NEW_EXPANDABLESTRINGVALUE
MENUITEM "展開可能な文字列値(&E)", ID_EDIT_NEW_EXPANDABLESTRINGVALUE
END
END
POPUP ""
@ -148,7 +148,7 @@ BEGIN
MENUITEM "バイナリ値(&B)", ID_EDIT_NEW_BINARYVALUE
MENUITEM "DWORD 値(&D)", ID_EDIT_NEW_DWORDVALUE
MENUITEM "複数行文字列値(&M)", ID_EDIT_NEW_MULTISTRINGVALUE
MENUITEM "展開可能 な文字列値(&E)", ID_EDIT_NEW_EXPANDABLESTRINGVALUE
MENUITEM "展開可能な文字列値(&E)", ID_EDIT_NEW_EXPANDABLESTRINGVALUE
END
MENUITEM "検索(&F)", ID_EDIT_FIND
MENUITEM SEPARATOR
@ -240,12 +240,12 @@ END
IDD_EDIT_RESOURCE_LIST DIALOGEX 32, 24, 170, 120
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Resource List"
FONT 8, "MS Shell Dlg"
CAPTION "リソース リスト"
FONT 9, "MS UI Gothic"
{
CONTROL "", IDC_RESOURCE_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 10, 10, 150, 75
DEFPUSHBUTTON "OK", IDOK, 27, 100, 50, 14
PUSHBUTTON "Show...", IDC_SHOW_RESOURCE, 93, 100, 50, 14, WS_DISABLED
PUSHBUTTON "表示(S)...", IDC_SHOW_RESOURCE, 93, 100, 50, 14, WS_DISABLED
}
@ -307,7 +307,7 @@ BEGIN
ID_EDIT_MENU "値やキーを編集するコマンドです。"
ID_VIEW_MENU "レジストリ ウィンドウをカスタマイズするコマンドです。"
ID_FAVOURITES_MENU "頻繁に使用されるキーにアクセスするコマンドです。"
ID_HELP_MENU "ヘルプとレジストリ エディタのバージョン情報を表 示するコマンドです。"
ID_HELP_MENU "ヘルプとレジストリ エディタのバージョン情報を表示するコマンドです。"
ID_EDIT_NEW_MENU "新しいキーや値を作成するコマンドです。"
END
@ -317,21 +317,21 @@ BEGIN
ID_EDIT_NEW_KEY "新しいキーを追加します。"
ID_EDIT_NEW_STRINGVALUE "新しい文字列値を追加します。"
ID_EDIT_NEW_BINARYVALUE "新しいバイナリ値を追加します。"
ID_EDIT_NEW_DWORDVALUE "新しい複数行文字列値を追加します。"
ID_EDIT_NEW_DWORDVALUE "新しい DWORD 値を追加します。"
ID_REGISTRY_IMPORTREGISTRYFILE "テキスト ファイルをレジストリにインポートします。"
ID_REGISTRY_EXPORTREGISTRYFILE
"レジストリの一部または全体をテキスト ファイルにエクスポートします。"
ID_REGISTRY_LOADHIVE
"Loads a hive file into the registry"
"ハイブ ファイルをレジストリに読み込みます。"
ID_REGISTRY_UNLOADHIVE
"Unloads a hive from the registry"
"レジストリからハイブをアンロードします。"
ID_REGISTRY_CONNECTNETWORKREGISTRY
"リモート コンピュータのレジストリに接続します。"
ID_REGISTRY_DISCONNECTNETWORKREGISTRY
"リモート コンピュータのレジストリを切断します。"
ID_REGISTRY_PRINT "レジストリの一部または全体を印刷します。"
/* ID_HELP_HELPTOPICS "レジストリ エディタのヘルプを開きます。" */
ID_HELP_ABOUT "プログラムの情報、バージョン番号および著作権を表 示します。"
ID_HELP_ABOUT "プログラムの情報、バージョン番号および著作権を表示します。"
END
STRINGTABLE DISCARDABLE
@ -339,8 +339,8 @@ BEGIN
ID_REGISTRY_EXIT "レジストリ エディタを終了します。"
ID_FAVOURITES_ADDTOFAVOURITES "お気に入りの一覧にキーを追加します。"
ID_FAVOURITES_REMOVEFAVOURITE "お気に入りの一覧からキーを削除します。"
ID_VIEW_STATUSBAR "ステータス バーの表 示/非表 示を切り替えます。"
ID_VIEW_SPLIT "2 つのパネルの境界の位置を変更します。"
ID_VIEW_STATUSBAR "ステータス バーの表示/非表示を切り替えます。"
ID_VIEW_SPLIT "2つのパネルの境界の位置を変更します。"
ID_VIEW_REFRESH "ウィンドウの内容を最新の情報に更新します。"
ID_EDIT_DELETE "選択範囲を削除します。"
ID_EDIT_RENAME "名前を変更します。"
@ -369,7 +369,7 @@ BEGIN
IDS_ERR_RENVAL_CAPTION "値の名前を変更するときにエラーが発生しました。"
IDS_ERR_RENVAL_TOEMPTY "%s の名前を変更できません。指定された値の名前には文字が含まれていません。別の名前でやり直してください。"
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_QUERY_IMPORT_HIVE_MSG "現在選択中のキーの最上部にキーが格納されます。\nこのキーのすべての値とサブキーが削除されます。\nこの処理を続行しますか?"
IDS_NEW_KEY "新しいキー #%d"
IDS_NEW_VALUE "新しい値 #%d"
END
@ -383,8 +383,8 @@ BEGIN
IDS_MY_COMPUTER "マイ コンピュータ"
IDS_IMPORT_REG_FILE "レジストリ ファイルのインポート"
IDS_EXPORT_REG_FILE "レジストリ ファイルのエクスポート"
IDS_LOAD_HIVE "Load Hive"
IDS_UNLOAD_HIVE "Unload Hive"
IDS_LOAD_HIVE "ハイブを読み込む"
IDS_UNLOAD_HIVE "ハイブをアンロードする"
IDS_INVALID_DWORD "(無効な DWORD 値)"
END
@ -434,10 +434,10 @@ END
STRINGTABLE DISCARDABLE
BEGIN
IDS_IMPORT_PROMPT "Adding information can unintentionally change or delete values and cause components to stop working correctly.\nIf you do not trust the source of this information in '%s', do not add it to registry.\n\nAre you sure you want to continue?"
IDS_IMPORT_OK "The keys and values contained in '%s' have been successfully added to the registry."
IDS_IMPORT_ERROR "Cannot import '%s': Error opening the file. There may be a disk, file system error or file may not exist."
IDS_EXPORT_ERROR "Cannot export '%s': Error creating or writing to the file. There may be a disk or file system error."
IDS_IMPORT_PROMPT "情報を追加することは、意図せずに値を変更または削除し、コンポーネントの正しい動作の停止を引き起こすかも知れません。\nもし '%1' の情報の入手元を信頼していないのなら、レジストリに追加しないで下さい。\n\n続行しますか?"
IDS_IMPORT_OK "'%1' に含まれるキーと値は、正しくレジストリに追加されました。"
IDS_IMPORT_ERROR "'%1' をインポートできません: ファイルを開くときにエラーが発生しました。ディスクかファイル システムのエラー、もしくはファイルが存在していないのかも知れません。"
IDS_EXPORT_ERROR "'%1' をエクスポートできません: ファイルを作成または書き込むときにエラーが発生しました。ディスクかファイル システムのエラーかも知れません。"
END
STRINGTABLE DISCARDABLE
@ -506,20 +506,20 @@ STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_B
FONT 9, "MS UI Gothic"
BEGIN
GROUPBOX "エクスポート範囲",IDC_STATIC,2,0,366,48
CONTROL "すべて(&A)",IDC_EXPORT_ALL,"Button",BS_AUTORADIOBUTTON,10,10, 29,11
CONTROL "選択された部分(&E)",IDC_EXPORT_BRANCH,"Button",BS_AUTORADIOBUTTON,10,22, 100,11
CONTROL "すべて(&A)",IDC_EXPORT_ALL,"Button",BS_AUTORADIOBUTTON,10,10,100,11
CONTROL "選択された部分(&E)",IDC_EXPORT_BRANCH,"Button",BS_AUTORADIOBUTTON,10,22,100,11
EDITTEXT IDC_EXPORT_BRANCH_TEXT,30,34,335,12
END
IDD_LOADHIVE DIALOGEX DISCARDABLE 0, 0, 193, 34
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Load Hive"
FONT 8, "Ms Shell Dlg"
CAPTION "ハイブを読み込む"
FONT 9, "MS UI Gothic"
{
LTEXT "&Key:", IDC_STATIC, 4, 4, 15, 8, SS_LEFT
EDITTEXT IDC_EDIT_KEY, 23, 2, 167, 13
LTEXT "キー(&K):", IDC_STATIC, 4, 4, 25, 8, SS_LEFT
EDITTEXT IDC_EDIT_KEY, 33, 2, 157, 13
DEFPUSHBUTTON "OK", IDOK, 140, 17, 50, 14
PUSHBUTTON "Cancel", IDCANCEL, 89, 17, 50, 14
PUSHBUTTON "キャンセル", IDCANCEL, 89, 17, 50, 14
}
IDD_ADDFAVORITES DIALOGEX DISCARDABLE 0, 0, 186, 46
@ -553,8 +553,8 @@ BEGIN
DEFPUSHBUTTON "次を検索(&F)",IDOK,197,7,50,14
PUSHBUTTON "キャンセル",IDCANCEL,197,24,50,14
GROUPBOX "検索対象",IDC_STATIC,7,25,63,51
LTEXT "検索する値(&N):",IDC_STATIC,7,8,37,10
EDITTEXT IDC_FINDWHAT,47,7,142,13,ES_AUTOHSCROLL
LTEXT "検索する値(&N):",IDC_STATIC,7,8,50,10
EDITTEXT IDC_FINDWHAT,57,7,135,13,ES_AUTOHSCROLL
CONTROL "キー(&K)",IDC_LOOKAT_KEYS,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,14,36,35,8
CONTROL "値(&V)",IDC_LOOKAT_VALUES,"Button",BS_AUTOCHECKBOX |
@ -597,7 +597,7 @@ END
*STRINGTABLE DISCARDABLE
*BEGIN
* ID_HELP_HELPTOPICS "レジストリ エディタのヘルプを開きます。"
* ID_HELP_ABOUT "プログラムの情報、バージョン番号および著作権を表\示します。"
* ID_HELP_ABOUT "プログラムの情報、バージョン番号および著作権を表示します。"
*END
*/

View file

@ -8,7 +8,7 @@ BEGIN
DEFPUSHBUTTON "אישור",IDOK,216,7,50,14
PUSHBUTTON "ביטול",IDCANCEL,216,24,50,14
EDITTEXT IDC_MESSAGE_TEXT,18,28,122,14,ES_AUTOHSCROLL
LTEXT "טקסט מותאם אישית:",IDC_STATIC,18,17,65,8
LTEXT "טקסט מותאם אישית:",IDC_STATIC,18,17,77,8
END
STRINGTABLE DISCARDABLE

View file

@ -31,60 +31,59 @@
#define RANDOM( min, max ) ((rand() % (int)(((max)+1) - (min))) + (min))
#define APPNAME _T("Logon")
#define APP_TIMER 1
#define APP_TIMER_INTERVAL 2000
#define APPNAME _T("Logon")
#define APP_TIMER 1
#define APP_TIMER_INTERVAL 2000
HBITMAP GetScreenSaverBitmap (void)
HBITMAP
GetScreenSaverBitmap(VOID)
{
OSVERSIONINFOEX osvi;
OSVERSIONINFOEX osvi;
ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
GetVersionEx ((OSVERSIONINFO *) &osvi);
ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
GetVersionEx ((OSVERSIONINFO *) &osvi);
switch(osvi.wProductType)
{
case VER_NT_WORKSTATION:
return LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_WORKSTATION), IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION);
break;
default:
return LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_SERVER), IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION);
break;
}
switch(osvi.wProductType)
{
case VER_NT_WORKSTATION:
return LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_WORKSTATION), IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION);
break;
default:
return LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_SERVER), IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION);
break;
}
}
LRESULT CALLBACK
LRESULT
CALLBACK
ScreenSaverProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static RECT rect;
static HBITMAP bitmap;
static RECT rect;
static HBITMAP bitmap;
switch (message)
{
case WM_CREATE:
{
bitmap = GetScreenSaverBitmap ();
switch (message)
{
case WM_CREATE:
{
bitmap = GetScreenSaverBitmap ();
if (bitmap == NULL)
{
MessageBox(hWnd,
_T("Fatal Error: Could not load bitmap"),
_T("Error"),
MB_OK | MB_ICONEXCLAMATION);
}
if(bitmap == NULL)
{
MessageBox(
hWnd,
_T("Fatal Error: Could not load bitmap"),
_T("Error"),
MB_OK | MB_ICONEXCLAMATION);
}
SetTimer(hWnd,
APP_TIMER,
APP_TIMER_INTERVAL,
NULL);
SetTimer (
hWnd,
APP_TIMER,
APP_TIMER_INTERVAL,
NULL);
break;
}
case WM_PAINT:
{
break;
}
case WM_PAINT:
{
BITMAP bm; /* Bitmap structure as seen in bmWidth & bmHeight */
PAINTSTRUCT ps;
HDC hdc;
@ -135,36 +134,40 @@ ScreenSaverProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
EndPaint(hWnd, &ps);
break;
}
}
case WM_TIMER:
{
InvalidateRect(hWnd, NULL, 1);
break;
}
case WM_DESTROY:
{
KillTimer (hWnd, APP_TIMER);
DeleteObject(bitmap);
PostQuitMessage(0);
break;
}
case WM_DESTROY:
{
KillTimer(hWnd, APP_TIMER);
DeleteObject(bitmap);
PostQuitMessage(0);
break;
}
default:
// Pass Windows Messages to the default screensaver window procedure
return DefScreenSaverProc(hWnd, message, wParam, lParam);
}
return 0;
return 0;
}
BOOL WINAPI ScreenSaverConfigureDialog(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
BOOL
WINAPI
ScreenSaverConfigureDialog(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
return FALSE;
}
// This function is only called one time before opening the configuration dialog.
// Use it to show a message that no configuration is necesssary and return FALSE to indicate that no configuration dialog shall be opened.
BOOL WINAPI RegisterDialogClasses(HANDLE hInst)
BOOL
WINAPI
RegisterDialogClasses(HANDLE hInst)
{
TCHAR szMessage[256];
TCHAR szTitle[25];

View file

@ -15,13 +15,13 @@ BEGIN
PUSHBUTTON "סייר...",IDC_BROWSE_SYSTEM,179,53,50,14
CTEXT "Which action do you want these computers to execute?", IDC_ACTION,14,81,20,14
COMBOBOX IDC_ACTION_TYPE,37,79,129,14,WS_TABSTOP | CBS_DROPDOWN
CHECKBOX "הזהר משתמשים",IDC_WARN_USERS,178,79,50,14,BS_AUTOCHECKBOX | WS_TABSTOP
CHECKBOX "הזהר משתמשים",IDC_WARN_USERS,167,78,68,14,BS_AUTOCHECKBOX | WS_TABSTOP
CTEXT "הצג אזהרה ל-",IDC_SHOW_WARN_ONE,11,99,65,14
EDITTEXT IDC_SHOW_WARN,78,97,41,14
CTEXT "שניה/ות",IDC_SHOW_WARN_TWO,124,99,32,10
GROUPBOX "מעקב אירועי כיבוי",IDC_STATIC,5,114,224,114
CTEXT "סיבה:",IDC_STATIC,16,130,27,8
CHECKBOX "מתוכנן...",IDC_PLANNED,175,130,40,12,BS_AUTOCHECKBOX | WS_TABSTOP
CHECKBOX "מתוכנן...",IDC_PLANNED,175,130,43,12,BS_AUTOCHECKBOX | WS_TABSTOP
COMBOBOX IDC_REASON_CODE,17,142,198,13,WS_TABSTOP | CBS_DROPDOWN
CTEXT "הערה:",IDC_COMMENT_CAPTION,17,159,30,8
EDITTEXT IDC_COMMENT_TEXT,17,171,198,50,WS_VSCROLL

View file

@ -47,11 +47,11 @@ STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Master", IDC_LINE_NAME, 4, 7, 100, 15
CONTROL "", -1, "static", SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE, 4, 30, 82, 1
CONTROL "", -1, "static", SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE, 4, 30, 82, 1
LTEXT "Balance", -1, 4, 35, 80, 42
LTEXT "Volume", -1, 4, 100, 77, 108
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 25, 55, 85, 30
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 115, 30, 70
CHECKBOX "&Mute", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END

View file

@ -5,7 +5,7 @@ BEGIN
POPUP "אפשרויות"
BEGIN
MENUITEM "מאפיינים", IDC_PROPERTIES
MENUITEM "&Advanced Controls", IDC_ADVANCED_CONTROLS
MENUITEM "בקרים מתקדמים", IDC_ADVANCED_CONTROLS
MENUITEM SEPARATOR
MENUITEM "יציאה", IDC_EXIT
END
@ -47,11 +47,11 @@ STYLE WS_POPUP | WS_BORDER
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "ראשי", IDC_LINE_NAME, 4, 7, 100, 15
CONTROL "", -1, "static", SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE, 4, 30, 82, 1
CONTROL "", -1, "static", SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE, 4, 30, 82, 1
LTEXT "איזון", -1, 4, 35, 80, 42
LTEXT "עוצמה", -1, 4, 100, 77, 108
CONTROL "", IDC_LINE_SLIDER_HORZ, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | TBS_BOTH | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 25, 55, 85, 30
CONTROL "", IDC_LINE_SLIDER_VERT, "msctls_trackbar32", TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | TBS_DOWNISLEFT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 32, 115, 30, 70
CHECKBOX "השתק", IDC_LINE_SWITCH, 4, 190, 90, 12, BS_AUTOCHECKBOX
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
CONTROL "", IDC_LINE_SEP, "static", SS_ETCHEDVERT | WS_CHILD | WS_VISIBLE, 130, 7, 1, 200
END

View file

@ -50,11 +50,11 @@ BEGIN
END
POPUP "&חלונות"
BEGIN
MENUITEM "Tile &Horizontally", ID_WINDOWS_TILEHORIZONTALLY
MENUITEM "Tile &Vertically", ID_WINDOWS_TILEVERTICALLY
MENUITEM "חלונות מוערמים", ID_WINDOWS_TILEHORIZONTALLY
MENUITEM "חלונות זה לצד זה", ID_WINDOWS_TILEVERTICALLY
MENUITEM "&מזער", ID_WINDOWS_MINIMIZE
MENUITEM "&הגדל", ID_WINDOWS_MAXIMIZE
MENUITEM "&Cascade", ID_WINDOWS_CASCADE
MENUITEM "מדורג", ID_WINDOWS_CASCADE
MENUITEM "ה&בא לפנים", ID_WINDOWS_BRINGTOFRONT
END
POPUP "&עזרה"
@ -67,11 +67,11 @@ END
IDR_WINDOWSMENU MENU DISCARDABLE
BEGIN
MENUITEM "Tile &Horizontally", ID_WINDOWS_TILEHORIZONTALLY
MENUITEM "Tile &Vertically", ID_WINDOWS_TILEVERTICALLY
MENUITEM "חלונות מוערמים", ID_WINDOWS_TILEHORIZONTALLY
MENUITEM "חלונות זה לצד זה", ID_WINDOWS_TILEVERTICALLY
MENUITEM "&מזער", ID_WINDOWS_MINIMIZE
MENUITEM "&הגדל", ID_WINDOWS_MAXIMIZE
MENUITEM "&Cascade", ID_WINDOWS_CASCADE
MENUITEM "מדורג", ID_WINDOWS_CASCADE
MENUITEM "ה&בא לפנים", ID_WINDOWS_BRINGTOFRONT
END
@ -98,7 +98,7 @@ BEGIN
MENUITEM "Tile &Vertically", ID_WINDOWS_TILEVERTICALLY
MENUITEM "&מזער", ID_WINDOWS_MINIMIZE
MENUITEM "&הגדל", ID_WINDOWS_MAXIMIZE
MENUITEM "&Cascade", ID_WINDOWS_CASCADE
MENUITEM "מדורג", ID_WINDOWS_CASCADE
MENUITEM SEPARATOR
MENUITEM "&סיים משימה", ID_APPLICATION_PAGE_ENDTASK
MENUITEM "&עבור אל תהליך", ID_APPLICATION_PAGE_GOTOPROCESS
@ -183,7 +183,7 @@ BEGIN
WS_BORDER | WS_TABSTOP,7,7,233,177
PUSHBUTTON "&סיים תהליך",IDC_ENDPROCESS,171,189,69,14
CONTROL "&הראה תהליכים מכל המשתמשים",IDC_SHOWALLPROCESSES,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,191,111,10
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,191,126,10
END
//IDD_PERFORMANCE_PAGE DIALOGEX 0, 0, 247, 210
@ -195,10 +195,10 @@ BEGIN
GROUPBOX "שימוש בזיכרון",IDC_MEM_USAGE_FRAME,5,63,60,54,BS_LEFTTEXT,WS_EX_TRANSPARENT
GROUPBOX "סך הכל",IDC_TOTALS_FRAME,5,122,111,39,0,WS_EX_TRANSPARENT
GROUPBOX "Commit Charge (K)",IDC_COMMIT_CHARGE_FRAME,5,166,111,39,0,WS_EX_TRANSPARENT
GROUPBOX "Physical Memory (K)",IDC_PHYSICAL_MEMORY_FRAME,131,122,111,39,0,WS_EX_TRANSPARENT
GROUPBOX "Kernel Memory (K)",IDC_KERNEL_MEMORY_FRAME,131,166,111,39,0,WS_EX_TRANSPARENT
GROUPBOX "זכרון פיזי (K)",IDC_PHYSICAL_MEMORY_FRAME,131,122,111,39,0,WS_EX_TRANSPARENT
GROUPBOX "זיכרון ליבה (K)",IDC_KERNEL_MEMORY_FRAME,131,166,111,39,0,WS_EX_TRANSPARENT
LTEXT "מזהים יחודיים",IDS_TOTALS_HANDLE_COUNT,12,131,27,8
LTEXT "Threads",IDS_TOTALS_THREAD_COUNT,12,140,27,8
LTEXT "תהליכי משנה",IDS_TOTALS_THREAD_COUNT,12,140,27,8
LTEXT "תהליכים",IDS_TOTALS_PROCESS_COUNT,12,149,34,8
EDITTEXT IDC_TOTALS_HANDLE_COUNT,65,131,45,8,ES_RIGHT |
ES_READONLY | ES_NUMBER | NOT WS_BORDER | NOT WS_TABSTOP
@ -206,9 +206,9 @@ BEGIN
ES_READONLY | ES_NUMBER | NOT WS_BORDER | NOT WS_TABSTOP
EDITTEXT IDC_TOTALS_PROCESS_COUNT,65,149,45,8,ES_RIGHT |
ES_READONLY | ES_NUMBER | NOT WS_BORDER | NOT WS_TABSTOP
LTEXT "Total",IDS_COMMIT_CHARGE_TOTAL,12,175,27,8
LTEXT "Limit",IDS_COMMIT_CHARGE_LIMIT,12,184,15,8,NOT WS_BORDER
LTEXT "Peak",IDS_COMMIT_CHARGE_PEAK,12,193,34,8
LTEXT "סה""כ",IDS_COMMIT_CHARGE_TOTAL,12,175,27,8
LTEXT "הגבלה",IDS_COMMIT_CHARGE_LIMIT,12,184,15,8,NOT WS_BORDER
LTEXT "שיא",IDS_COMMIT_CHARGE_PEAK,12,193,34,8
EDITTEXT IDC_COMMIT_CHARGE_TOTAL,65,174,45,8,ES_RIGHT |
ES_READONLY | ES_NUMBER | NOT WS_BORDER | NOT WS_TABSTOP
EDITTEXT IDC_COMMIT_CHARGE_LIMIT,65,184,45,8,ES_RIGHT |
@ -251,7 +251,7 @@ BEGIN
CONTROL "List2",IDC_DEBUG_CHANNELS_LIST,"SysListView32",LVS_REPORT |
LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP |
LVS_SORTASCENDING,7,7,233,177
PUSHBUTTON "Close",IDOK,171,189,69,14
PUSHBUTTON "סגירה",IDOK,171,189,69,14
END
IDD_AFFINITY_DIALOG DIALOGEX DISCARDABLE 0, 0, 231, 154

View file

@ -162,14 +162,14 @@ STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "עיצוב פסקה"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Indentation", -1, 10, 10, 120, 68
LTEXT "Left", -1, 15, 22, 40, 13
GROUPBOX "ריווח", -1, 10, 10, 120, 68
LTEXT "שמאל", -1, 15, 22, 40, 13
EDITTEXT IDC_PARA_LEFT, 55, 20, 60, 13
LTEXT "Right", -1, 15, 40, 40, 13
LTEXT "ימין", -1, 15, 40, 40, 13
EDITTEXT IDC_PARA_RIGHT, 55, 38, 60, 13
LTEXT "First line", -1, 15, 58, 40, 13
LTEXT "שורה ראשונה", -1, 15, 58, 40, 13
EDITTEXT IDC_PARA_FIRST, 55, 56, 60, 13
LTEXT "Alignment", -1, 15, 87, 40, 13
LTEXT "יישור", -1, 15, 87, 40, 13
COMBOBOX IDC_PARA_ALIGN, 55, 85, 60, 60, CBS_DROPDOWNLIST
PUSHBUTTON "אישור", IDOK, 137, 15, 50, 15
PUSHBUTTON "ביטול", IDCANCEL, 137, 33, 50, 15
@ -177,7 +177,7 @@ END
IDD_TABSTOPS DIALOG 30, 20, 200, 110
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Tabs"
CAPTION "טאבים"
FONT 8, "MS SHell DLg"
BEGIN
GROUPBOX "Tab stops", -1, 10, 10, 120, 90

View file

@ -19,4 +19,4 @@ add_pch(tcpsvcs tcpsvcs.h)
add_cd_file(TARGET tcpsvcs DESTINATION reactos/system32 FOR all)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/quotes DESTINATION reactos/system32/drivers/etc FOR all)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/quotes DESTINATION reactos/system32/drivers/etc FOR all)

View file

@ -124,7 +124,7 @@ FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Completing the first stage of ReactOS Setup", IDC_FINISHTITLE, "Button", BS_GROUPBOX, 10,0,297,172
LTEXT "You have successfully completed the first stage of ReactOS Setup.", IDC_STATIC, 20, 50, 277, 10
LTEXT "When you click Finish, your computer will restart.", IDC_STATIC, 20, 80, 277, 10
CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 20, 120, 277, 8
LTEXT "If there is a CD in a drive, remove it. Then, to restart your computer, click Finish.", IDC_STATIC, 10, 180, 297, 20

View file

@ -1,4 +1,5 @@
// Translate by Baruch Rutman
// Translated by Baruch Rutman
LANGUAGE LANG_HEBREW, SUBLANG_DEFAULT
IDD_STARTPAGE DIALOGEX DISCARDABLE 0, 0, 317, 193
@ -6,9 +7,9 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS
CAPTION "התקנת ReactOS"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Welcome to the ReactOS Setup Wizard.", IDC_STARTTITLE, 115, 8, 195, 24
LTEXT "You cannot install ReactOS directly from this CD yet! Please restart your computer from this CD in order to install ReactOS.", IDC_STATIC, 115, 40, 195, 100
LTEXT "Click Finish to exit the Setup.", IDC_STATIC, 115, 169, 195, 17
LTEXT "ברוכים הבאים לאשף ההתקנה של ReactOS/", IDC_STARTTITLE, 115, 8, 195, 24
LTEXT "עדיין אי אפשר להתקין את ReactOS ישירות מהתקליטור הזה! נא אתחל מחדש מחשבך מהדיסק כדי להתקין את ReactOS.", IDC_STATIC, 115, 40, 195, 100
LTEXT "לחץ על סיום כדי לסיים את ההתקנה.", IDC_STATIC, 115, 169, 195, 17
END
IDD_LANGSELPAGE DIALOGEX DISCARDABLE 0, 0, 317, 193
@ -17,11 +18,11 @@ CAPTION "התקנת ReactOS"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99
CONTROL "Setup language:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11
CONTROL "שפת התקנה:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11
CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142
CONTROL "Keyboard or input method:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11
CONTROL "מקלדת או שיטת הזנה:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11
CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81
LTEXT "Click Next to select the setup type.", IDC_STATIC, 10, 180 ,297, 10
LTEXT "לחץ על הבא כדי לבחור סוג התקנה:", IDC_STATIC, 10, 180 ,297, 10
END
IDD_TYPEPAGE DIALOGEX DISCARDABLE 0, 0, 317, 193
@ -29,10 +30,10 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS
CAPTION "התקנת ReactOS"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Type of setup", IDC_STATIC, "Button", BS_GROUPBOX, 10,0,297,172
CONTROL "Install ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10
CONTROL "Repair or update an installed ReactOS", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED , 20, 30, 277, 10
LTEXT "Click Next to setup the devices.", IDC_STATIC, 10, 180 ,297, 10
CONTROL "סוג התקנה", IDC_STATIC, "Button", BS_GROUPBOX, 10,0,297,172
CONTROL "התקנת ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10
CONTROL "תיקון או עדכון גרסה קיימת", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED , 20, 30, 277, 10
LTEXT "לחץ על הבא כדי להגדיר את ההתקנים", IDC_STATIC, 10, 180 ,297, 10
END
IDD_DEVICEPAGE DIALOGEX DISCARDABLE 0, 0, 317, 193
@ -40,14 +41,14 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS
CAPTION "התקנת ReactOS"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Device settings", IDC_STATIC, "Button", BS_GROUPBOX, 10,0,297,172
LTEXT "Computer:", IDC_STATIC, 20,15, 80, 10
CONTROL "הגדרות התקנים", IDC_STATIC, "Button", BS_GROUPBOX, 10,0,297,172
LTEXT "מחשב:", IDC_STATIC, 20,15, 80, 10
CONTROL "", IDC_COMPUTER, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST , 100, 15, 180, 80
LTEXT "Display:", IDC_STATIC, 20,35, 80, 10
LTEXT "תצוגה:", IDC_STATIC, 20,35, 80, 10
CONTROL "", IDC_DISPLAY, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST , 100, 35, 180, 80
LTEXT "Keyboard:", IDC_STATIC, 20,55, 80, 10
LTEXT "תצוגה:", IDC_STATIC, 20,55, 80, 10
CONTROL "", IDC_KEYBOARD, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST , 100, 55, 180, 80
LTEXT "Click Next to setup of the installation device.", IDC_STATIC, 10, 180 ,277, 20
LTEXT "לחץ על הבא כדי להגדיר את התקן ההתקנה.", IDC_STATIC, 10, 180 ,277, 20
END
IDD_DRIVEPAGE DIALOGEX DISCARDABLE 0, 0, 317, 193
@ -55,37 +56,37 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS
CAPTION "התקנת ReactOS"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Partition for ReactOS installation", IDC_STATIC, "Button", BS_GROUPBOX, 10,1,298,176
CONTROL "מחיצה עבור התקנת ReactOS", IDC_STATIC, "Button", BS_GROUPBOX, 10,1,298,176
LISTBOX IDC_PARTITION, 20,12,278,142,LBS_HASSTRINGS | WS_VSCROLL
PUSHBUTTON "&Create", IDC_PARTCREATE, 20,155,50,15
PUSHBUTTON "&Delete", IDC_PARTDELETE, 76,155,50,15
PUSHBUTTON "D&river", IDC_DEVICEDRIVER, 162,155,50,15, WS_DISABLED
PUSHBUTTON "&Advanced Options...", IDC_PARTMOREOPTS, 218,155,80,15
LTEXT "Click Next to check the summary.", IDC_STATIC, 10, 180 ,277, 20
PUSHBUTTON "צור", IDC_PARTCREATE, 20,155,50,15
PUSHBUTTON "מחק", IDC_PARTDELETE, 76,155,50,15
PUSHBUTTON "טעינת מנהל התקן", IDC_DEVICEDRIVER, 162,155,50,15, WS_DISABLED
PUSHBUTTON "אפשרויות מתקדמות...", IDC_PARTMOREOPTS, 218,155,80,15
LTEXT "לחץ על הבא כדי לראות סיכום.", IDC_STATIC, 10, 180 ,277, 20
END
IDD_PARTITION DIALOGEX DISCARDABLE 0, 0, 145, 90
STYLE WS_VISIBLE|WS_CAPTION|WS_THICKFRAME
CAPTION "Create Partition"
CAPTION "יצירת מחיצה"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "",IDC_UPDOWN1,"msctls_updown32", WS_VISIBLE,104,22,9,13
CONTROL "Create and format partition",IDC_STATIC,"Button",BS_GROUPBOX,7,5,129,57
LTEXT "Size:",IDC_STATIC, 13,24,27,9
CONTROL "יצירת ואתחול המחיצה",IDC_STATIC,"Button",BS_GROUPBOX,7,5,129,57
LTEXT "גודל:",IDC_STATIC, 13,24,27,9
EDITTEXT IDC_PARTSIZE,52,23,53,13, WS_VISIBLE|WS_TABSTOP
LTEXT "GB",IDC_UNIT, 117,24,14,9
LTEXT "Filesystem:",IDC_STATIC,13,46,35,9
LTEXT "ג""ב",IDC_UNIT, 117,24,14,9
LTEXT "מערכת קבצים:",IDC_STATIC,13,46,35,9
CONTROL "",IDC_FSTYPE,"ComboBox",WS_VISIBLE|WS_TABSTOP|CBS_DROPDOWNLIST,52,42,79,50
PUSHBUTTON "&OK",IDOK,35,68,47,15, WS_VISIBLE|WS_TABSTOP
PUSHBUTTON "&Cancel",IDCANCEL,87,68,47,15, WS_VISIBLE|WS_TABSTOP
PUSHBUTTON "אישור",IDOK,35,68,47,15, WS_VISIBLE|WS_TABSTOP
PUSHBUTTON "ביטול",IDCANCEL,87,68,47,15, WS_VISIBLE|WS_TABSTOP
END
IDD_BOOTOPTIONS DIALOGEX DISCARDABLE 0, 0, 305, 116
STYLE WS_VISIBLE|WS_CAPTION|WS_THICKFRAME
CAPTION "Advanced Partition Settings"
CAPTION "הגדרות מחיצה מתקדמות"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Installation folder", IDC_STATIC, "Button", BS_GROUPBOX, 4,1,298,30
CONTROL "תיקיית התקנה", IDC_STATIC, "Button", BS_GROUPBOX, 4,1,298,30
EDITTEXT IDC_PATH, 10,11,278,13, WS_VISIBLE
CONTROL "Boot loader installation", IDC_STATIC, "Button", BS_GROUPBOX, 4,36,298,52
@ -93,8 +94,8 @@ BEGIN
CONTROL "Install boot loader on the hard disk (MBR and VBR)", IDC_INSTFREELDR, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 10,46,278,11
CONTROL "Install boot loader on the hard disk (VBR only)", IDC_INSTVBRONLY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 10,57,278,11
CONTROL "No installation of bootloader", IDC_NOINSTFREELDR, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED , 10,68,278,11
PUSHBUTTON "&OK", IDOK, 180,94,50,15, WS_TABSTOP | WS_VISIBLE
PUSHBUTTON "&Cancel", IDCANCEL, 240,94,50,15, WS_TABSTOP | WS_VISIBLE
PUSHBUTTON "אישור", IDOK, 180,94,50,15, WS_TABSTOP | WS_VISIBLE
PUSHBUTTON "ביטול", IDCANCEL, 240,94,50,15, WS_TABSTOP | WS_VISIBLE
END
IDD_SUMMARYPAGE DIALOGEX 0, 0, 317, 193
@ -102,8 +103,8 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS
CAPTION "התקנת ReactOS"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Installation summary", IDC_ACTION, "Button", BS_GROUPBOX, 10,0,297,172
LTEXT "Click Next to start the installation process.", IDC_STATIC, 10, 180 ,277, 20
CONTROL "סיכום ההתקנה", IDC_ACTION, "Button", BS_GROUPBOX, 10,0,297,172
LTEXT "לחץ על הבא כדי להתחיל בתהליך ההתקנה.", IDC_STATIC, 10, 180 ,277, 20
END
IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193
@ -111,7 +112,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS
CAPTION "התקנת ReactOS"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Setup action", IDC_ACTION, "Button", BS_GROUPBOX, 10,0,297,172
CONTROL "פעולת ההתקנה", IDC_ACTION, "Button", BS_GROUPBOX, 10,0,297,172
LTEXT "Install files...", IDC_ACTIVITY, 20, 50, 277, 10
LTEXT "test.txt", IDC_ITEM, 30, 80, 257, 10
CONTROL "", IDC_PROCESSPROGRESS, "msctls_progress32",
@ -120,12 +121,12 @@ END
IDD_RESTARTPAGE DIALOGEX DISCARDABLE 0, 0, 317, 193
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Completing ReactOS Setup"
CAPTION "השלמת התקנת ReactOS"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Completing the first stage of ReactOS Setup", IDC_FINISHTITLE, "Button", BS_GROUPBOX, 10,0,297,172
LTEXT "You have successfully completed the first stage of ReactOS Setup.", IDC_STATIC, 20, 50, 277, 10
LTEXT "When you click Finish, your computer will restart.", IDC_STATIC, 20, 80, 277, 10
CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 20, 120, 277, 8
LTEXT "If there is a CD in a drive, remove it. Then, to restart your computer, click Finish.", IDC_STATIC, 10, 180, 297, 20
@ -133,10 +134,10 @@ END
STRINGTABLE
BEGIN
IDS_LANGTITLE "Language Selection"
IDS_LANGTITLE "בחירת שפה"
IDS_LANGSUBTITLE "Choose language for setup and final system."
IDS_TYPETITLE "Welcome to ReactOS Setup"
IDS_TYPESUBTITLE "Choose setup type."
IDS_TYPETITLE "ברוכים הבאים אל תכנית ההתקנה של ReactOS"
IDS_TYPESUBTITLE "בחירת סוג התקנה."
IDS_DEVICETITLE "Setup the basic devices"
IDS_DEVICESUBTITLE "Set the settings of display and keyboard."
IDS_DRIVETITLE "Setup the installation partition and system folder"

View file

@ -12,37 +12,37 @@ static MUI_ENTRY heILLanguagePageEntries[] =
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " š—<EFBFBD>š ",
" ReactOS " KERNEL_VERSION_STR " š<EFBFBD>—š",
TEXT_STYLE_UNDERLINE
},
{
6,
8,
"<EFBFBD>‡‰˜š ™”„",
"„”™ š˜‰‡<E280B0>",
TEXT_STYLE_NORMAL
},
{
8,
10,
"\x07 Please choose the language used for the installation process.",
"\x07 <EFBFBD>—š„„ ŠŒ„Ž<E2809E><> ™Žš™š™ „”™„ š€ „™—<E284A2><E28094> ˜<CB9C><>.",
TEXT_STYLE_NORMAL
},
{
8,
11,
" €‡˜ ‹Š „—™ ENTER.",
" .ENTER ™—„ Š‹ ˜‡€",
TEXT_STYLE_NORMAL
},
{
8,
13,
"\x07 This Language will be the default language for the final system.",
"\x07 .š‰”…‘„ š˜Ž<E28099> Œƒ‡Ž„ š˜˜<E280B0> š”™ „‰„š …†„ „”™„",
TEXT_STYLE_NORMAL
},
{
0,
0,
"ENTER = „ޙРF3 = <20>ˆŒ",
"Œˆ<EFBFBD> = F3 Йބ = ENTER",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
{
@ -58,55 +58,55 @@ static MUI_ENTRY heILWelcomePageEntries[] =
{
4,
3,
" ReactOS " KERNEL_VERSION_STR "š—<EFBFBD>š ",
" ReactOS " KERNEL_VERSION_STR "<EFBFBD>—š„ ",
TEXT_STYLE_UNDERLINE
},
{
6,
8,
"<EFBFBD>˜…Š „<>€ Œš<C5A1>‰š „„š—<C5A1>„ ™Œ ReactOS",
"ReactOS Œ™ „<>—š„„ š‰<C5A1>šŒ €<>„ Š…˜<E280A6>",
TEXT_STYLE_HIGHLIGHT
},
{
6,
11,
"This part of the setup copies the ReactOS Operating System to your",
"„Œ’”„„ š‹˜’Ž š€ š€ —‰š’Ž „<>—š„„ Œ™ „†„ —Œ‡„",
TEXT_STYLE_NORMAL
},
{
6,
12,
"computer and prepares the second part of the setup.",
"<EFBFBD>—š„„ Œ™ ‰<>™„ —Œ‡Œ <20><>šŽ… Š<>™‡ŽŒ.",
TEXT_STYLE_NORMAL
},
{
8,
15,
"\x07 „—™ ENTER ‹ƒ‰ Œ„š—‰<E28094> €š ReactOS",
"\x07 ReactOS š€ <20>‰—š„Œ ‰ƒ‹ ENTER ™—„",
TEXT_STYLE_NORMAL
},
{
8,
17,
"\x07 Press R to repair or update ReactOS.",
"\x07 .ReactOS š€ <20>ƒŒ …€ <20>—šŒ ‰ƒ‹ R ™—„",
TEXT_STYLE_NORMAL
},
{
8,
19,
"\x07 Press L to view the ReactOS Licensing Terms and Conditions.",
"\x07 .ReactOS Œ™ <20>…™‰˜„ ‰€<E280B0>š… ‰‚™…Ž š€ š…€˜Œ ‰ƒ‹ L ™—„",
TEXT_STYLE_NORMAL
},
{
8,
21,
"\x07 Press F3 to quit without installing ReactOS.",
"\x07 .ReactOS š€ <20>‰—š„Œ ‰Œ<E280B0> Œˆ<C592>Œ ‰ƒ‹ F3 ™—„",
TEXT_STYLE_NORMAL
},
{
6,
23,
"For more information on ReactOS, please visit:",
":<3A> ˜<CB9C><> ,ReactOS ‰<>Œ ’ƒ‰Ž ƒ…’Œ",
TEXT_STYLE_NORMAL
},
{
@ -118,7 +118,7 @@ static MUI_ENTRY heILWelcomePageEntries[] =
{
0,
0,
"ENTER = „ޙРR = š—<C5A1> L = ˜™‰…<E280B0> F3 = <20>ˆŒ",
"Œˆ<EFBFBD> = F3 <20>…‰™˜ = L <20>—š = R Йބ = ENTER",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
{
@ -134,43 +134,43 @@ static MUI_ENTRY heILIntroPageEntries[] =
{
4,
3,
" ReactOS " KERNEL_VERSION_STR " Setup ",
" ReactOS " KERNEL_VERSION_STR " <EFBFBD>—š„ ",
TEXT_STYLE_UNDERLINE
},
{
6,
8,
"ReactOS Setup is in an early development phase. It does not yet",
"š‹Ž…š €Œ <20>‰‰ƒ €‰„ .<2E>‰Žƒ—…Ž ‡…š‰” <20>Œ™<C592> š€Ž<E28093> ReactOS š<>—š„",
TEXT_STYLE_NORMAL
},
{
6,
9,
"support all the functions of a fully usable setup application.",
".„€ŒŽ š…‰™…މ™ <20><>—š„ <20>…™‰‰ Œ™ š…‰…˜™”€„ Œ<C592>",
TEXT_STYLE_NORMAL
},
{
6,
12,
"The following limitations apply:",
":š…Ž™…‰Ž š…€<E280A6>„„ š…Œ<E280A6>„„",
TEXT_STYLE_NORMAL
},
{
8,
13,
"- Setup can not handle more than one primary partition per disk.",
".—‘‰ƒŒ š‡€ š‰™€˜ „–‰‡ŽŽ ˜š…‰ <20> —…‘’Œ „Œ…‹‰ €Œ „<>—š„„ -",
TEXT_STYLE_NORMAL
},
{
8,
14,
"- Setup can not delete a primary partition from a disk",
"—‘‰ƒŽ š‰™€˜ „–‰‡Ž —…‡ŽŒ „Œ…‹‰ €Œ „<>—š„„ -",
TEXT_STYLE_NORMAL
},
{
8,
15,
" as long as extended partitions exist on this disk.",
".—‘‰ƒ„ Œ’ š…<C5A1>˜…Ž š…–‰‡Ž š…€Ž<E28093> ƒ…’ Œ‹ ",
TEXT_STYLE_NORMAL
},
{

View file

@ -614,7 +614,7 @@ AddFontsSettingsToRegistry(IN const MUI_SUBFONT * MuiSubFonts)
ULONG uIndex = 0;
RtlInitUnicodeString(&KeyName,
L"\\Registry\\Machine\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SysFontSubstitutes");
L"\\Registry\\Machine\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\FontSubstitutes");
InitializeObjectAttributes(&ObjectAttributes,
&KeyName,
OBJ_CASE_INSENSITIVE,

View file

@ -7,9 +7,10 @@ MUI_SUBFONT LatinFonts[] =
{ L"Arial", L"Liberation Sans" },
{ L"Courier", L"FreeMono" },
{ L"Courier New", L"FreeMono" },
{ L"Fixedsys", L"Fixedsys Excelsior 3.01" },
{ L"Fixedsys", L"Fixedsys Excelsior 3.01-L2" },
{ L"Helv", L"Tahoma" },
{ L"Helvetica", L"Liberation Sans" },
{ L"Lucida Console", L"DejaVu Sans Mono" },
{ L"MS Sans Serif", L"Tahoma" },
{ L"MS Shell Dlg", L"Tahoma" },
{ L"MS Shell Dlg 2", L"Tahoma" },
@ -24,9 +25,10 @@ MUI_SUBFONT CyrillicFonts[] =
{ L"Arial", L"Liberation Sans" },
{ L"Courier", L"FreeMono" },
{ L"Courier New", L"FreeMono" },
{ L"Fixedsys", L"Fixedsys Excelsior 3.01" },
{ L"Fixedsys", L"Fixedsys Excelsior 3.01-L2" },
{ L"Helv", L"Tahoma" },
{ L"Helvetica", L"Liberation Sans" },
{ L"Lucida Console", L"DejaVu Sans Mono" },
{ L"MS Sans Serif", L"Tahoma" },
{ L"MS Shell Dlg", L"Tahoma" },
{ L"MS Shell Dlg 2", L"Tahoma" },
@ -41,9 +43,10 @@ MUI_SUBFONT GreekFonts[] =
{ L"Arial", L"Liberation Sans" },
{ L"Courier", L"FreeMono" },
{ L"Courier New", L"FreeMono" },
{ L"Fixedsys", L"Fixedsys Excelsior 3.01" },
{ L"Fixedsys", L"Fixedsys Excelsior 3.01-L2" },
{ L"Helv", L"DejaVu Sans" },
{ L"Helvetica", L"Liberation Sans" },
{ L"Lucida Console", L"DejaVu Sans Mono" },
{ L"MS Sans Serif", L"DejaVu Sans" },
{ L"MS Shell Dlg", L"DejaVu Sans" },
{ L"MS Shell Dlg 2", L"DejaVu Sans" },
@ -58,9 +61,10 @@ MUI_SUBFONT HebrewFonts[] =
{ L"Arial", L"DejaVu Sans" },
{ L"Courier", L"FreeMono" },
{ L"Courier New", L"FreeMono" },
{ L"Fixedsys", L"Fixedsys Excelsior 3.01" },
{ L"Fixedsys", L"Fixedsys Excelsior 3.01-L2" },
{ L"Helv", L"DejaVu Sans" },
{ L"Helvetica", L"DejaVu Sans" },
{ L"Lucida Console", L"DejaVu Sans Mono" },
{ L"MS Sans Serif", L"DejaVu Sans" },
{ L"MS Shell Dlg", L"DejaVu Sans" },
{ L"MS Shell Dlg 2", L"DejaVu Sans" },
@ -75,9 +79,10 @@ MUI_SUBFONT CJKFonts[] =
{ L"Arial", L"Liberation Sans" },
{ L"Courier", L"FreeMono" },
{ L"Courier New", L"FreeMono" },
{ L"Fixedsys", L"Fixedsys Excelsior 3.01" },
{ L"Fixedsys", L"Fixedsys Excelsior 3.01-L2" },
{ L"Helv", L"Droid Sans Fallback" },
{ L"Helvetica", L"Liberation Sans" },
{ L"Lucida Console", L"DejaVu Sans Mono" },
{ L"MS Sans Serif", L"Droid Sans Fallback" },
{ L"MS Shell Dlg", L"Droid Sans Fallback" },
{ L"MS Shell Dlg 2", L"Droid Sans Fallback" },
@ -94,9 +99,10 @@ MUI_SUBFONT UnicodeFonts[] =
{ L"Arial", L"DejaVu Sans" },
{ L"Courier", L"DejaVu Sans Mono" },
{ L"Courier New", L"DejaVu Sans Mono" },
{ L"Fixedsys", L"Fixedsys Excelsior 3.01" },
{ L"Fixedsys", L"Fixedsys Excelsior 3.01-L2" },
{ L"Helv", L"DejaVu Sans" },
{ L"Helvetica", L"DejaVu Sans" },
{ L"Lucida Console", L"DejaVu Sans Mono" },
{ L"MS Sans Serif", L"DejaVu Sans" },
{ L"MS Shell Dlg", L"DejaVu Sans" },
{ L"MS Shell Dlg 2", L"DejaVu Sans" },

View file

@ -47,6 +47,18 @@
#define FLG_ADDREG_TYPE_MASK (0xFFFF0000 | FLG_ADDREG_BINVALUETYPE)
#endif
#ifdef _M_IX86
#define Architecture L"x86"
#elif defined(_M_AMD64)
#define Architecture L"amd64"
#elif defined(_M_IA64)
#define Architecture L"ia64"
#elif defined(_M_ARM)
#define Architecture L"arm"
#elif defined(_M_PPC)
#define Architecture L"ppc"
#endif
#include <pshpack1.h>
typedef struct _REG_DISK_MOUNT_INFO
@ -643,6 +655,11 @@ ImportRegistryFile(PWSTR Filename,
DPRINT1("registry_callback() failed\n");
}
if (!registry_callback (hInf, L"AddReg.NT" Architecture, FALSE))
{
DPRINT1("registry_callback() failed\n");
}
InfCloseFile (hInf);
return TRUE;

View file

@ -7,7 +7,7 @@ CAPTION "התקנת מנהל ההתקן של כרטיס המסך"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
LTEXT "תכנית ההתקנה זיהתה שהינך מריץ את ReactOS בתוך VMware(r)", -1, 117, 8, 140, 24
LTEXT "If you like to install the VMware(r) SVGA driver click 'Next', otherwise click 'Cancel'.", -1, 117, 140, 140, 24
LTEXT "אם ברצונך להתקין את מנהל ההתקן של VMware(r) SVGA לחץ על 'הבא', אם אחרת לחץ על 'ביטול'.", -1, 117, 140, 140, 24
END
IDD_INSERT_VMWARE_TOOLS DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
@ -44,7 +44,7 @@ BEGIN
PUSHBUTTON "1792x1344", 3136, 195, 30, 65, 15, BS_AUTORADIOBUTTON
PUSHBUTTON "1856x1392", 3248, 195, 45, 65, 15, BS_AUTORADIOBUTTON
PUSHBUTTON "1920x1440", 3360, 195, 60, 50, 15, BS_AUTORADIOBUTTON
LTEXT "Please select your favorite color quality:", -1, 25, 93, 225, 12
LTEXT "נא בחר את איכות הצבעים המועדפת עליך:", -1, 25, 93, 225, 12
COMBOBOX IDC_COLORQUALITY, 25, 105, 75, 80, CBS_DROPDOWNLIST | WS_TABSTOP
END

View file

@ -21,4 +21,4 @@ This is mostly done thanks to Greatlord(cmd.c is the hardest spot that is left).
Not sure where to put this code even
*Reg Testing
We need more batch files like the one Royce made for "set /a". What out for if bugs when doing this... could lead to in the wrong direction when looking for a regression.
We need more batch files like the one Royce made for "set /a". What out for if bugs when doing this... could lead to in the wrong direction when looking for a regression.

View file

@ -131,14 +131,11 @@ CreateDropTarget(IN HWND hwndTarget,
HRESULT hr;
This = HeapAlloc(hProcessHeap,
0,
HEAP_ZERO_MEMORY,
FIELD_OFFSET(IDropTargetImpl,
Formats[nSupportedFormats]));
if (This != NULL)
{
ZeroMemory(This,
sizeof(*This));
This->lpVtbl = &IDropTargetImpl_Vtbl;
This->Ref = 1;
This->hwndTarget = hwndTarget;

View file

@ -332,7 +332,7 @@ GetVersionInfoString(IN TCHAR *szFileName,
(LPVOID *)&lpszLocalBuf,
&cbLen) != 0)
{
wcsncpy(szBuffer, lpszLocalBuf, cbBufLen);
_tcsncpy(szBuffer, lpszLocalBuf, cbBufLen / sizeof(*szBuffer));
bRet = TRUE;
break;
@ -401,6 +401,8 @@ _tWinMain(IN HINSTANCE hInstance,
InitCommonControls();
OleInitialize(NULL);
ProcessStartupItems();
if (GetShellWindow() == NULL)
CreateShellDesktop = TRUE;
@ -424,8 +426,6 @@ _tWinMain(IN HINSTANCE hInstance,
/* WinXP: Notify msgina to hide the welcome screen */
if (!SetShellReadyEvent(TEXT("msgina: ShellReadyEvent")))
SetShellReadyEvent(TEXT("Global\\msgina: ShellReadyEvent"));
ProcessStartupItems();
}
else
{

View file

@ -104,7 +104,7 @@ BEGIN
AUTOCHECKBOX "החבא סמלים לא פעילים", IDC_TASKBARPROP_HIDEICONS, 13,70,125,10, WS_DISABLED
PUSHBUTTON "התאם אישית...", IDC_TASKBARPROP_ICONCUST, 188,70,50,14, WS_DISABLED
GROUPBOX "סמלי המערכת", IDC_STATIC, 6,97,240,84, WS_DISABLED
LTEXT "Select which system icons to always show.", IDC_STATIC, 13,112,223,16, WS_DISABLED
LTEXT "בחר אילו סמלי מערכת כל הזמן יהיו נראים.", IDC_STATIC, 13,112,223,16, WS_DISABLED
AUTOCHECKBOX "שעון", IDC_TASKBARPROP_CLOCK, 13,126,200,10, WS_DISABLED
AUTOCHECKBOX "בקרת עוצמה", IDC_TASKBARPROP_VOLUME, 13,139,200,10, WS_DISABLED
AUTOCHECKBOX "רשת", IDC_TASKBARPROP_NETWORK, 13,152,200,10, WS_DISABLED
@ -117,7 +117,7 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT
CAPTION "סרגלי כלים"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
LTEXT "Select which toolbars to add to the taskbar.", IDC_STATIC, 7,7,223,12, WS_DISABLED
LTEXT "בחר אילו סרגלי כלים להוסיף לשורת המשימות.", IDC_STATIC, 7,7,223,12, WS_DISABLED
CONTROL "", IDC_TASKBARPROP_DESKBANDLIST, "SysTreeView32",WS_BORDER | WS_TABSTOP | WS_DISABLED, 7,20,236,160, WS_EX_CLIENTEDGE
END
@ -143,5 +143,5 @@ END
STRINGTABLE DISCARDABLE
BEGIN
IDS_TASKBAR_STARTMENU_PROP_CAPTION "Taskbar and Start Menu"
IDS_TASKBAR_STARTMENU_PROP_CAPTION "שורת המשימות ושולחן העבודה"
END

View file

@ -79,12 +79,12 @@ Win32DbgPrint(const char *filename, int line, const char *lpFormat, ...)
}
#define ASSERT(cond) \
if (!(cond)) { \
do if (!(cond)) { \
Win32DbgPrint(__FILE__, __LINE__, "ASSERTION %s FAILED!\n", #cond); \
}
} while (0)
#define DbgPrint(fmt, ...) \
Win32DbgPrint(__FILE__, __LINE__, fmt, ##__VA_ARGS__);
Win32DbgPrint(__FILE__, __LINE__, fmt, ##__VA_ARGS__)
extern HINSTANCE hExplorerInstance;
extern HMODULE hUser32;
@ -170,6 +170,8 @@ GetExplorerRegValueSet(IN HKEY hKey,
* traywnd.c
*/
#define TWM_OPENSTARTMENU (WM_USER + 260)
typedef HMENU (*PCREATECTXMENU)(IN HWND hWndOwner,
IN PVOID *ppcmContext,
IN PVOID Context OPTIONAL);
@ -426,7 +428,7 @@ TrayNotify_NotifyMsg(IN HWND hwnd,
* taskswnd.c
*/
#define TSWM_ENABLEGROUPING (WM_USER + 1)
#define TSWM_ENABLEGROUPING (WM_USER + 1)
#define TSWM_UPDATETASKBARPOS (WM_USER + 2)
BOOL

View file

@ -773,14 +773,11 @@ IStartMenuSiteImpl_Construct(IN ITrayWindow *Tray)
IStartMenuSiteImpl *This;
This = HeapAlloc(hProcessHeap,
0,
HEAP_ZERO_MEMORY,
sizeof(*This));
if (This == NULL)
return NULL;
ZeroMemory(This,
sizeof(*This));
This->lpVtbl = &IStartMenuSiteImpl_Vtbl;
This->lpServiceProviderVtbl = &IServiceProviderImpl_Vtbl;
This->lpStartMenuCallbackVtbl = &ITrayPrivImpl_Vtbl;

View file

@ -26,19 +26,16 @@
* Also, 119941 has some info on grpconv.exe
* The operations performed are (by order of execution):
*
* Startup (before the user logs in)
* - Services (NT, ?semi-synchronous?, not implemented yet)
* - HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce (9x, asynch)
* - HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices (9x, asynch)
*
* After log in
* - HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce (all, synch)
* - HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run (all, asynch)
* - HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run (all, asynch)
* - Startup folders (all, ?asynch?, no imp)
* - HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce (all, asynch)
* - HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx (synch, no imp)
* - HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce (synch)
* - HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run (asynch)
* - HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run (asynch)
* - All users Startup folder "%ALLUSERSPROFILE%\Start Menu\Programs\Startup" (asynch, no imp)
* - Current user Startup folder "%USERPROFILE%\Start Menu\Programs\Startup" (asynch, no imp)
* - HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce (asynch)
*
* Somewhere in there is processing the RunOnceEx entries (also no imp)
* None is processed in Safe Mode // FIXME: Check RunOnceEx in Safe Mode
*/
#include "precomp.h"
@ -78,12 +75,12 @@ static int runCmd(LPWSTR cmdline, LPCWSTR dir, BOOL wait, BOOL minimized)
if (!CreateProcessW(NULL, szCmdLineExp, NULL, NULL, FALSE, 0, NULL, dir, &si, &info))
{
printf("Failed to run command (%ld)\n", GetLastError());
DbgPrint("Failed to run command (%lu)\n", GetLastError());
return INVALID_RUNCMD_RETURN;
}
printf("Successfully ran command\n");
DbgPrint("Successfully ran command\n");
if (wait)
{ /* wait for the process to exit */
@ -110,87 +107,116 @@ static int runCmd(LPWSTR cmdline, LPCWSTR dir, BOOL wait, BOOL minimized)
static BOOL ProcessRunKeys(HKEY hkRoot, LPCWSTR szKeyName, BOOL bDelete,
BOOL bSynchronous)
{
static const WCHAR WINKEY_NAME[]={'S','o','f','t','w','a','r','e','\\',
'M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\',
'C','u','r','r','e','n','t','V','e','r','s','i','o','n',0};
HKEY hkWin = NULL, hkRun=NULL;
HKEY hkWin = NULL, hkRun = NULL;
LONG res = ERROR_SUCCESS;
DWORD i, nMaxCmdLine = 0, nMaxValue = 0;
DWORD i, cbMaxCmdLine = 0, cchMaxValue = 0;
WCHAR *szCmdLine = NULL;
WCHAR *szValue = NULL;
if (hkRoot == HKEY_LOCAL_MACHINE)
wprintf(L"processing %s entries under HKLM\n", szKeyName);
DbgPrint("processing %ls entries under HKLM\n", szKeyName);
else
wprintf(L"processing %s entries under HKCU\n", szKeyName);
DbgPrint("processing %ls entries under HKCU\n", szKeyName);
if ((res = RegOpenKeyExW(hkRoot, WINKEY_NAME, 0, KEY_READ, &hkWin)) != ERROR_SUCCESS)
res = RegOpenKeyExW(hkRoot,
L"Software\\Microsoft\\Windows\\CurrentVersion",
0,
KEY_READ,
&hkWin);
if (res != ERROR_SUCCESS)
{
printf("RegOpenKey failed on Software\\Microsoft\\Windows\\CurrentVersion (%ld)\n",
res);
DbgPrint("RegOpenKey failed on Software\\Microsoft\\Windows\\CurrentVersion (%ld)\n", res);
goto end;
}
if ((res = RegOpenKeyExW(hkWin, szKeyName, 0, bDelete?KEY_ALL_ACCESS:KEY_READ, &hkRun))!=
ERROR_SUCCESS)
res = RegOpenKeyExW(hkWin,
szKeyName,
0,
bDelete ? KEY_ALL_ACCESS : KEY_READ,
&hkRun);
if (res != ERROR_SUCCESS)
{
if (res == ERROR_FILE_NOT_FOUND)
{
printf("Key doesn't exist - nothing to be done\n");
DbgPrint("Key doesn't exist - nothing to be done\n");
res = ERROR_SUCCESS;
}
else
printf("RegOpenKey failed on run key (%ld)\n", res);
DbgPrint("RegOpenKeyEx failed on run key (%ld)\n", res);
goto end;
}
if ((res = RegQueryInfoKeyW(hkRun, NULL, NULL, NULL, NULL, NULL, NULL, &i, &nMaxValue,
&nMaxCmdLine, NULL, NULL)) != ERROR_SUCCESS)
res = RegQueryInfoKeyW(hkRun,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
&i,
&cchMaxValue,
&cbMaxCmdLine,
NULL,
NULL);
if (res != ERROR_SUCCESS)
{
printf("Couldn't query key info (%ld)\n", res);
DbgPrint("Couldn't query key info (%ld)\n", res);
goto end;
}
if (i == 0)
{
printf("No commands to execute.\n");
DbgPrint("No commands to execute.\n");
res = ERROR_SUCCESS;
goto end;
}
if ((szCmdLine = malloc(nMaxCmdLine)) == NULL)
szCmdLine = HeapAlloc(hProcessHeap,
0,
cbMaxCmdLine);
if (szCmdLine == NULL)
{
printf("Couldn't allocate memory for the commands to be executed\n");
DbgPrint("Couldn't allocate memory for the commands to be executed\n");
res = ERROR_NOT_ENOUGH_MEMORY;
goto end;
}
if ((szValue = malloc((++nMaxValue)*sizeof(*szValue))) == NULL)
++cchMaxValue;
szValue = HeapAlloc(hProcessHeap,
0,
cchMaxValue * sizeof(*szValue));
if (szValue == NULL)
{
printf("Couldn't allocate memory for the value names\n");
DbgPrint("Couldn't allocate memory for the value names\n");
free(szCmdLine);
res = ERROR_NOT_ENOUGH_MEMORY;
goto end;
}
while(i > 0)
while (i > 0)
{
DWORD nValLength=nMaxValue, nDataLength=nMaxCmdLine;
DWORD cchValLength = cchMaxValue, cbDataLength = cbMaxCmdLine;
DWORD type;
--i;
if ((res = RegEnumValueW(hkRun, i, szValue, &nValLength, 0, &type,
(LPBYTE)szCmdLine, &nDataLength)) != ERROR_SUCCESS)
res = RegEnumValueW(hkRun,
i,
szValue,
&cchValLength,
0,
&type,
(PBYTE)szCmdLine,
&cbDataLength);
if (res != ERROR_SUCCESS)
{
printf("Couldn't read in value %ld - %ld\n", i, res);
DbgPrint("Couldn't read in value %lu - %ld\n", i, res);
continue;
}
@ -200,35 +226,37 @@ static BOOL ProcessRunKeys(HKEY hkRoot, LPCWSTR szKeyName, BOOL bDelete,
if (bDelete && (res = RegDeleteValueW(hkRun, szValue)) != ERROR_SUCCESS)
{
printf("Couldn't delete value - %ld, %ld. Running command anyways.\n", i, res);
DbgPrint("Couldn't delete value - %lu, %ld. Running command anyways.\n", i, res);
}
if (type != REG_SZ)
{
printf("Incorrect type of value #%ld (%ld)\n", i, type);
DbgPrint("Incorrect type of value #%lu (%lu)\n", i, type);
continue;
}
if ((res = runCmd(szCmdLine, NULL, bSynchronous, FALSE)) == INVALID_RUNCMD_RETURN)
res = runCmd(szCmdLine, NULL, bSynchronous, FALSE);
if (res == INVALID_RUNCMD_RETURN)
{
printf("Error running cmd #%ld (%ld)\n", i, GetLastError());
DbgPrint("Error running cmd #%lu (%lu)\n", i, GetLastError());
}
printf("Done processing cmd #%ld\n", i);
DbgPrint("Done processing cmd #%lu\n", i);
}
free(szValue);
free(szCmdLine);
res = ERROR_SUCCESS;
end:
if (szValue != NULL)
HeapFree(hProcessHeap, 0, szValue);
if (szCmdLine != NULL)
HeapFree(hProcessHeap, 0, szCmdLine);
if (hkRun != NULL)
RegCloseKey(hkRun);
if (hkWin != NULL)
RegCloseKey(hkWin);
printf("done\n");
DbgPrint("done\n");
return res == ERROR_SUCCESS ? TRUE : FALSE;
}
@ -237,26 +265,25 @@ end:
int
ProcessStartupItems(VOID)
{
/* TODO: ProcessRunKeys already checks SM_CLEANBOOT -- items prefixed with * should probably run even in safe mode */
BOOL bNormalBoot = GetSystemMetrics(SM_CLEANBOOT) == 0; /* Perform the operations that are performed every boot */
/* First, set the current directory to SystemRoot */
TCHAR gen_path[MAX_PATH];
WCHAR gen_path[MAX_PATH];
DWORD res;
HKEY hSessionKey, hKey;
HRESULT hr;
res = GetWindowsDirectory(gen_path, sizeof(gen_path));
res = GetWindowsDirectoryW(gen_path, sizeof(gen_path) / sizeof(gen_path[0]));
if (res == 0)
{
printf("Couldn't get the windows directory - error %ld\n",
GetLastError());
DbgPrint("Couldn't get the windows directory - error %lu\n", GetLastError());
return 100;
}
if (!SetCurrentDirectory(gen_path))
if (!SetCurrentDirectoryW(gen_path))
{
wprintf(L"Cannot set the dir to %s (%ld)\n", gen_path, GetLastError());
DbgPrint("Cannot set the dir to %ls (%lu)\n", gen_path, GetLastError());
return 100;
}
@ -267,7 +294,7 @@ ProcessStartupItems(VOID)
LONG Error;
DWORD dwDisp;
Error = RegCreateKeyEx(hSessionKey, L"StartupHasBeenRun", 0, NULL, REG_OPTION_VOLATILE, KEY_WRITE, NULL, &hKey, &dwDisp);
Error = RegCreateKeyExW(hSessionKey, L"StartupHasBeenRun", 0, NULL, REG_OPTION_VOLATILE, KEY_WRITE, NULL, &hKey, &dwDisp);
RegCloseKey(hSessionKey);
if (Error == ERROR_SUCCESS)
{
@ -284,6 +311,8 @@ ProcessStartupItems(VOID)
* stopping if one fails, skipping if necessary.
*/
res = TRUE;
/* TODO: RunOnceEx */
if (res && (SHRestricted(REST_NOLOCALMACHINERUNONCE) == 0))
res = ProcessRunKeys(HKEY_LOCAL_MACHINE, L"RunOnce", TRUE, TRUE);
@ -293,10 +322,15 @@ ProcessStartupItems(VOID)
if (res && bNormalBoot && (SHRestricted(REST_NOCURRENTUSERRUNONCE) == 0))
res = ProcessRunKeys(HKEY_CURRENT_USER, L"Run", FALSE, FALSE);
/* TODO: All users Startup folder */
/* TODO: Current user Startup folder */
/* TODO: HKCU\RunOnce runs even if StartupHasBeenRun exists */
if (res && bNormalBoot && (SHRestricted(REST_NOCURRENTUSERRUNONCE) == 0))
res = ProcessRunKeys(HKEY_CURRENT_USER, L"RunOnce", TRUE, FALSE);
printf("Operation done\n");
DbgPrint("Operation done\n");
return res ? 0 : 101;
}

View file

@ -629,13 +629,11 @@ ITaskBandImpl_Construct(IN OUT ITrayWindow *Tray)
ITaskBandImpl *This;
This = HeapAlloc(hProcessHeap,
0,
HEAP_ZERO_MEMORY,
sizeof(*This));
if (This == NULL)
return NULL;
ZeroMemory(This,
sizeof(*This));
This->lpVtbl = &ITaskBandImpl_Vtbl;
This->lpDeskBandVtbl = &IDeskBandImpl_Vtbl;
This->lpObjectWithSiteVtbl = &IObjectWithSiteImpl_Vtbl;

View file

@ -709,13 +709,10 @@ TaskSwitchWnd_AddToTaskGroup(IN OUT PTASK_SWITCH_WND This,
/* Allocate a new task group */
TaskGroup = HeapAlloc(hProcessHeap,
0,
HEAP_ZERO_MEMORY,
sizeof(*TaskGroup));
if (TaskGroup != NULL)
{
ZeroMemory(TaskGroup,
sizeof(*TaskGroup));
TaskGroup->dwTaskCount = 1;
TaskGroup->dwProcessId = dwProcessId;
TaskGroup->Index = -1;
@ -1465,7 +1462,7 @@ TaskSwitchWnd_Create(IN OUT PTASK_SWITCH_WND This)
sizeof(TBBUTTON),
0);
This->TaskIcons = ImageList_Create(16, 16, ILC_COLOR32, 0, 1000);
This->TaskIcons = ImageList_Create(16, 16, ILC_COLOR32 | ILC_MASK, 0, 1000);
SendMessage(This->hWndToolbar, TB_SETIMAGELIST, 0, (LPARAM)This->TaskIcons);
/* Calculate the default button size. Don't save this in This->ButtonSize.cx so that
@ -2065,13 +2062,11 @@ ForwardContextMenuMsg:
{
LPCREATESTRUCT CreateStruct = (LPCREATESTRUCT)lParam;
This = HeapAlloc(hProcessHeap,
0,
HEAP_ZERO_MEMORY,
sizeof(*This));
if (This == NULL)
return FALSE;
ZeroMemory(This,
sizeof(*This));
This->hWnd = hwnd;
This->hWndNotify = CreateStruct->hwndParent;
This->Tray = (ITrayWindow*)CreateStruct->lpCreateParams;

View file

@ -910,13 +910,11 @@ ITrayBandSiteImpl_Construct(IN OUT ITrayWindow *Tray,
*phwndTaskSwitch = NULL;
This = HeapAlloc(hProcessHeap,
0,
HEAP_ZERO_MEMORY,
sizeof(*This));
if (This == NULL)
return NULL;
ZeroMemory(This,
sizeof(*This));
This->lpVtbl = &ITrayBandSiteImpl_Vtbl;
This->lpBandSiteVtbl = &IBandSiteImpl_Vtbl;
This->Ref = 1;

View file

@ -51,11 +51,12 @@ SysPagerWnd_CreateNotifyItemData(IN OUT PSYS_PAGER_WND_DATA This)
PNOTIFY_ITEM *findNotifyPointer = &This->NotifyItems;
PNOTIFY_ITEM notifyItem;
notifyItem = malloc(sizeof(*notifyItem));
notifyItem = HeapAlloc(hProcessHeap,
HEAP_ZERO_MEMORY,
sizeof(*notifyItem));
if (notifyItem == NULL)
return NULL;
ZeroMemory(notifyItem, sizeof(*notifyItem));
notifyItem->next = NULL;
while (*findNotifyPointer != NULL)
@ -248,7 +249,9 @@ SysPagerWnd_RemoveButton(IN OUT PSYS_PAGER_WND_DATA This,
if (!(deleteItem->iconData.dwState & NIS_HIDDEN))
This->VisibleButtonCount--;
free(deleteItem);
HeapFree(hProcessHeap,
0,
deleteItem);
This->ButtonCount--;
while (updateItem != NULL)
@ -377,7 +380,7 @@ SysPagerWnd_Create(IN OUT PSYS_PAGER_WND_DATA This)
sizeof(TBBUTTON),
0);
This->SysIcons = ImageList_Create(16, 16, ILC_COLOR32, 0, 1000);
This->SysIcons = ImageList_Create(16, 16, ILC_COLOR32 | ILC_MASK, 0, 1000);
SendMessage(This->hWndToolbar, TB_SETIMAGELIST, 0, (LPARAM)This->SysIcons);
BtnSize.cx = BtnSize.cy = 18;
@ -615,12 +618,10 @@ CreateSysPagerWnd(IN HWND hWndParent,
HWND hWnd = NULL;
SpData = HeapAlloc(hProcessHeap,
0,
HEAP_ZERO_MEMORY,
sizeof(*SpData));
if (SpData != NULL)
{
ZeroMemory(SpData, sizeof(*SpData));
/* Create the window. The tray window is going to move it to the correct
position and resize it as needed. */
dwStyle = WS_CHILD | WS_CLIPSIBLINGS;
@ -757,7 +758,7 @@ TrayClockWnd_UpdateTheme(IN OUT PTRAY_CLOCK_WND_DATA This)
TMT_FONT,
&clockFont);
hFont = CreateFontIndirect(&clockFont);
hFont = CreateFontIndirectW(&clockFont);
TrayClockWnd_SetFont(This,
hFont,
@ -1357,13 +1358,10 @@ CreateTrayClockWnd(IN HWND hWndParent,
HWND hWnd = NULL;
TcData = HeapAlloc(hProcessHeap,
0,
HEAP_ZERO_MEMORY,
sizeof(*TcData));
if (TcData != NULL)
{
ZeroMemory(TcData,
sizeof(*TcData));
TcData->IsHorizontal = TRUE;
/* Create the window. The tray window is going to move it to the correct
position and resize it as needed. */
@ -1841,13 +1839,10 @@ CreateTrayNotifyWnd(IN OUT ITrayWindow *TrayWindow,
return NULL;
TnData = HeapAlloc(hProcessHeap,
0,
HEAP_ZERO_MEMORY,
sizeof(*TnData));
if (TnData != NULL)
{
ZeroMemory(TnData,
sizeof(*TnData));
TnData->TrayWindow = TrayWindow;
TnData->HideClock = bHideClock;

View file

@ -1620,13 +1620,11 @@ ITrayWindowImpl_Construct(VOID)
ITrayWindowImpl *This;
This = HeapAlloc(hProcessHeap,
0,
HEAP_ZERO_MEMORY,
sizeof(*This));
if (This == NULL)
return NULL;
ZeroMemory(This,
sizeof(*This));
This->lpVtbl = &ITrayWindowImpl_Vtbl;
This->lpVtblShellDesktopTray = &IShellDesktopTrayImpl_Vtbl;
This->Ref = 1;
@ -2532,6 +2530,10 @@ HandleTrayContextMenu:
DestroyWindow(hwnd);
break;
case TWM_OPENSTARTMENU:
SendMessage(This->hWnd, WM_COMMAND, MAKEWPARAM(BN_CLICKED, IDC_STARTBTN), (LPARAM)This->hwndStart);
break;
case WM_COMMAND:
if ((HWND)lParam == This->hwndStart)
{

View file

@ -0,0 +1,405 @@
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include <windows.h>
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// Hebrew resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_HEBREW, SUBLANG_DEFAULT
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_MDIFRAME MENU DISCARDABLE
BEGIN
POPUP "&קובץ"
BEGIN
MENUITEM "הרצה...", ID_EXECUTE
MENUITEM SEPARATOR
MENUITEM "יציאה", ID_FILE_EXIT
END
POPUP "תצוגה"
BEGIN
MENUITEM "סרגל כלים", ID_VIEW_TOOL_BAR
MENUITEM "סרגל תוספת", ID_VIEW_EXTRA_BAR
MENUITEM "סרגל כונן", ID_VIEW_DRIVE_BAR
MENUITEM "סרגל צד", ID_VIEW_SIDE_BAR
MENUITEM "שורת מצב", ID_VIEW_STATUSBAR
MENUITEM SEPARATOR
MENUITEM "רענון\tF5", ID_REFRESH
MENUITEM "מסך מלא\tCtrl+Shift+S", ID_VIEW_FULLSCREEN
MENUITEM "SDI", ID_VIEW_SDI
END
POPUP "חלון"
BEGIN
MENUITEM "חלון חדש", ID_WINDOW_NEW
MENUITEM "מדורגים\tShift+F5", ID_WINDOW_CASCADE
MENUITEM "חלונות מוערמים", ID_WINDOW_TILE_HORZ
MENUITEM "חלונות זה לצד זה\tShift+F4", ID_WINDOW_TILE_VERT
MENUITEM "סדר אוטומטית", ID_WINDOW_AUTOSORT
MENUITEM "סדר סמלים", ID_WINDOW_ARRANGE
END
POPUP "כלים"
BEGIN
MENUITEM "אפשרויות", ID_TOOLS_OPTIONS
END
POPUP "עזרה"
BEGIN
MENUITEM "שאלות ותשובות...", ID_EXPLORER_FAQ
MENUITEM "אודות הסייר...", ID_ABOUT_EXPLORER
MENUITEM "אודות מערכת ההפעלה...", ID_ABOUT_WINDOWS
END
END
IDM_DESKTOPBAR MENU DISCARDABLE
BEGIN
POPUP ""
BEGIN
MENUITEM "הגדרות...", ID_DESKTOPBAR_SETTINGS
MENUITEM "מנהל המשימות...", ID_TASKMGR
MENUITEM SEPARATOR
MENUITEM "אודות הסייר...", ID_ABOUT_EXPLORER
END
END
IDM_VOLUME MENU DISCARDABLE
BEGIN
POPUP ""
BEGIN
MENUITEM "פתח בקרת עוצמה", ID_TRAY_VOLUME
MENUITEM "התאם תכונות שמע", ID_VOLUME_PROPERTIES
END
END
IDM_NOTIFYAREA MENU DISCARDABLE
BEGIN
POPUP ""
BEGIN
MENUITEM "הראה סמלים מוסתרים", ID_SHOW_HIDDEN_ICONS
MENUITEM "Show Icon &Button", ID_SHOW_ICON_BUTTON
MENUITEM "הגדר התראות...", ID_CONFIG_NOTIFYAREA
MENUITEM "התאמת תאריך/שעה...", ID_CONFIG_TIME
MENUITEM SEPARATOR
MENUITEM "אודות הסייר...", ID_ABOUT_EXPLORER
END
END
IDM_SDIFRAME MENU DISCARDABLE
BEGIN
POPUP "קובץ"
BEGIN
MENUITEM "הרצה...", ID_EXECUTE
MENUITEM SEPARATOR
MENUITEM "יציאה", ID_FILE_EXIT
END
POPUP "תצוגה"
BEGIN
MENUITEM "סרגל כלים", ID_VIEW_TOOL_BAR
MENUITEM "סרגל צד", ID_VIEW_SIDE_BAR, GRAYED
MENUITEM "שורת המצב", ID_VIEW_STATUSBAR
MENUITEM SEPARATOR
MENUITEM "רענון\tF5", ID_REFRESH
MENUITEM "מסך מלא\tCtrl+Shift+S", ID_VIEW_FULLSCREEN
MENUITEM "&MDI", ID_VIEW_MDI
END
POPUP "כלים"
BEGIN
MENUITEM "אפשרויות", ID_TOOLS_OPTIONS
END
POPUP "עזרה"
BEGIN
MENUITEM "שאלות ותשובות...", ID_EXPLORER_FAQ
MENUITEM "אודות הסייר...", ID_ABOUT_EXPLORER
MENUITEM "אודות מערכת ההפעלה...", ID_ABOUT_WINDOWS
END
END
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_EXECUTE DIALOGEX DISCARDABLE 15, 13, 210, 63
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "הרצה"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "",101,"Static",SS_SIMPLE | SS_NOPREFIX,3,6,150,10
CONTROL "פקודה:",-1,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,3,
18,60,10
EDITTEXT 201,3,29,134,12,ES_AUTOHSCROLL
CONTROL "As &Symbol",214,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,3,
45,71,12
DEFPUSHBUTTON "אישור",1,158,6,47,14
PUSHBUTTON "ביטול",2,158,23,47,14
PUSHBUTTON "עזרה",254,158,43,47,14
END
IDD_SEARCH_PROGRAM DIALOGEX 0, 0, 200, 65
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
WS_SYSMENU | WS_THICKFRAME
EXSTYLE WS_EX_APPWINDOW
CAPTION "חיפוש תכנית בתפריט התחל"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
LTEXT "מסנן:",IDC_STATIC,7,9,18,8
EDITTEXT IDC_FILTER,34,7,100,14,ES_AUTOHSCROLL
CONTROL "List1",IDC_PROGRAMS_FOUND,"SysListView32",LVS_REPORT |
LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER |
WS_TABSTOP,7,25,186,33
PUSHBUTTON "בדוק כניסות",IDC_CHECK_ENTRIES,143,7,50,14
END
IDD_DESKBAR_DESKTOP DIALOGEX DISCARDABLE 0, 0, 212, 194
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "מאפייני שולחן העבודה"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Please select your preferred icon alignment algorithm:",
IDC_STATIC,7,7,166,8
CONTROL "left/top dwn",IDC_ICON_ALIGN_0,"Button",BS_OWNERDRAW |
BS_BOTTOM | WS_TABSTOP,7,25,46,44
CONTROL "left/top right",IDC_ICON_ALIGN_1,"Button",BS_OWNERDRAW |
BS_BOTTOM | WS_TABSTOP,57,25,46,44
CONTROL "right/top left",IDC_ICON_ALIGN_2,"Button",BS_OWNERDRAW |
BS_BOTTOM | WS_TABSTOP,110,25,46,44
CONTROL "rig./top dwn",IDC_ICON_ALIGN_3,"Button",BS_OWNERDRAW |
BS_BOTTOM | WS_TABSTOP,159,25,46,44
CONTROL "left/bot. up",IDC_ICON_ALIGN_4,"Button",BS_OWNERDRAW |
BS_BOTTOM | WS_TABSTOP,7,73,46,44
CONTROL "left/bot. right",IDC_ICON_ALIGN_5,"Button",BS_OWNERDRAW |
BS_BOTTOM | WS_TABSTOP,57,73,46,44
CONTROL "right/bot. left",IDC_ICON_ALIGN_6,"Button",BS_OWNERDRAW |
BS_BOTTOM | WS_TABSTOP,110,73,46,44
CONTROL "rig./bot. up",IDC_ICON_ALIGN_7,"Button",BS_OWNERDRAW |
BS_BOTTOM | WS_TABSTOP,159,73,46,44
CONTROL "border down",IDC_ICON_ALIGN_8,"Button",BS_OWNERDRAW |
BS_BOTTOM | WS_TABSTOP,7,121,46,44
CONTROL "border H/V",IDC_ICON_ALIGN_9,"Button",BS_OWNERDRAW |
BS_BOTTOM | WS_TABSTOP,57,121,46,44
CONTROL "round about",IDC_ICON_ALIGN_10,"Button",BS_OWNERDRAW |
BS_BOTTOM | WS_TABSTOP,110,121,46,44
CONTROL "",IDC_ICON_ALIGN_11,"Button",BS_OWNERDRAW | BS_BOTTOM |
WS_TABSTOP,159,121,46,44
// CONTROL "Display &Version Number",ID_DESKTOP_VERSION,"Button",
// BS_AUTOCHECKBOX | WS_TABSTOP,7,177,91,10
END
IDD_DESKBAR_TASKBAR DIALOGEX DISCARDABLE 0, 0, 210, 194
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "מאפייני שורת המשימות"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "הצג שעון",ID_SHOW_CLOCK,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,7,152,52,10
CONTROL "הסתר סמלי התראות לא פעילים",
ID_HIDE_INACTIVE_ICONS,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,7,174,111,10
PUSHBUTTON "התראות...",ID_CONFIG_NOTIFYAREA,153,173,50,14
END
IDD_DESKBAR_STARTMENU DIALOGEX DISCARDABLE 0, 0, 210, 194
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "מאפייני תפריט התחל"
FONT 8, "MS Shell Dlg"
BEGIN
END
IDD_NOTIFYAREA DIALOGEX 0, 0, 208, 174
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
WS_SYSMENU | WS_THICKFRAME
EXSTYLE WS_EX_APPWINDOW
CAPTION "Configure Notification Icons"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
CONTROL "Tree1",IDC_NOTIFY_ICONS,"SysTreeView32",TVS_HASLINES |
TVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,7,7,194,31
LTEXT "&Tooltip Text:",IDC_LABEL1,7,44,40,8
EDITTEXT IDC_NOTIFY_TOOLTIP,58,42,143,14,ES_AUTOHSCROLL
LTEXT "W&indow Title:",IDC_LABEL2,7,63,44,8
EDITTEXT IDC_NOTIFY_TITLE,58,60,143,14,ES_AUTOHSCROLL
LTEXT "&Module Path:",IDC_LABEL3,7,81,43,8
EDITTEXT IDC_NOTIFY_MODULE,58,78,143,14,ES_AUTOHSCROLL
GROUPBOX "&Display Mode",IDC_LABEL4,7,96,157,28
CONTROL "&show",IDC_NOTIFY_SHOW,"Button",BS_AUTORADIOBUTTON |
WS_TABSTOP,15,108,33,10
CONTROL "&hide",IDC_NOTIFY_HIDE,"Button",BS_AUTORADIOBUTTON,66,
108,29,10
CONTROL "a&utohide",IDC_NOTIFY_AUTOHIDE,"Button",
BS_AUTORADIOBUTTON,112,108,43,10
ICON "",IDC_PICTURE,173,101,21,20
LTEXT "&Last Change:",IDC_LABEL6,7,132,43,8
EDITTEXT IDC_LAST_CHANGE,59,129,105,14,ES_AUTOHSCROLL |
ES_READONLY
CONTROL "sho&w hidden",ID_SHOW_HIDDEN_ICONS,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,7,154,56,10
DEFPUSHBUTTON "&OK",IDOK,91,153,50,14,WS_GROUP
PUSHBUTTON "&Cancel",IDCANCEL,151,153,50,14
END
IDD_MDI_SDI DIALOGEX 0, 0, 194, 157
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "Choose Explorer window mode"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
LTEXT "Please select your preferred Explorer user interface:",
IDC_STATIC,7,7,160,8
CONTROL "&MDI (Multiple Document Interface)",IDC_MDI,"Button",
BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,7,31,124,10
CONTROL "&SDI (Single Document Interface)",IDC_SDI,"Button",
BS_AUTORADIOBUTTON,7,62,118,10
CONTROL 170,IDC_STATIC,"Static",SS_BITMAP,145,23,15,13
CONTROL 171,IDC_STATIC,"Static",SS_BITMAP,145,57,15,13
CONTROL "Open Subfolders in s&eparate windows",
IDC_SEPARATE_SUBFOLDERS,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,7,90,135,10
LTEXT "This setting will be used as default for all Explorer windows in the future.",
IDC_STATIC,7,111,174,22
DEFPUSHBUTTON "אישור",IDOK,29,136,50,14,WS_GROUP
PUSHBUTTON "ביטול",IDCANCEL,106,136,50,14
END
IDD_ABOUT_EXPLORER DIALOGEX DISCARDABLE 0, 0, 199, 106
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "אודות סייר ReactOS"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "סייר ReactOS",IDC_ROS_EXPLORER,91,13,104,11
LTEXT "גרסה 0.9",IDC_VERSION_TXT,91,27,104,8
LTEXT "(c) 2003-2005 Martin Fuchs",IDC_STATIC,91,42,104,8
LTEXT "",IDC_WIN_VERSION,91,58,98,22
LTEXT "http://www.sky.franken.de/explorer/",IDC_WWW,17,84,129,
8
CONTROL "אישור",IDOK,"Button",BS_OWNERDRAW | BS_FLAT | WS_GROUP,
154,90,38,12
END
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE MOVEABLE PURE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE MOVEABLE PURE
BEGIN
"#include <windows.h>\r\n"
"\0"
END
3 TEXTINCLUDE MOVEABLE PURE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
IDS_TITLE "ReactOS סייר"
IDS_START "התחל"
IDS_LOGOFF "התנתקות..."
IDS_SHUTDOWN "כיבוי..."
IDS_RESTART "הפעלה מחדש..."
IDS_LAUNCH "הפעלה..."
IDS_START_HELP "עזרה"
IDS_SEARCH_FILES "חיפוש..."
IDS_DOCUMENTS "המסמכים שלי"
IDS_FAVORITES "מועדפים"
IDS_PROGRAMS "תכניות"
IDS_SETTINGS "הגדרות"
IDS_EXPLORE "סייר"
IDS_EMPTY "(ריק)"
IDS_RECENT "מסמכים אחרונים"
IDS_ADMIN "ניהול"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_STARTMENU "תפריט התחל"
IDS_MINIMIZE_ALL "מזער את כל החלונות"
IDS_DESKTOP_NUM "שולחן עבודה %d"
IDS_VOLUME "עוצמה"
IDS_ITEMS_CUR "פריטים נוכחיים"
IDS_ITEMS_CONFIGURED "הגדרה"
IDS_ITEMS_VISIBLE "נראה"
IDS_ITEMS_HIDDEN "מוסתר"
IDS_NOTIFY_SHOW "הראה"
IDS_NOTIFY_HIDE "הסתר"
IDS_NOTIFY_AUTOHIDE "הסתר אוטומטית"
IDS_SHOW_HIDDEN_ICONS "הצג סמלים מוסתרים"
IDS_HIDE_ICONS "הסתר סמלים"
IDS_TERMINATE "סגור את הסייר"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_NETWORK "רשת"
IDS_CONNECTIONS "חיבורי רשת"
IDS_DRIVES "כוננים"
IDS_SEARCH_COMPUTER "חיפוש מחשב..."
IDS_SETTINGS_MENU "תפריט ההגדרות"
IDS_CONTROL_PANEL "לוח הבקרה"
IDS_PRINTERS "מדפסות"
IDS_BROWSE "עייו בקבצים"
IDS_SEARCH_PRG "חיפוש תכנית..."
IDS_ALL_USERS "כל המשתמשים\\"
IDS_SEARCH "חיפוש"
IDS_ABOUT_EXPLORER "אודות הסייר"
IDS_LAUNCH_MANY_PROGRAMS
"You have selected more than one program.\nAre you sure you want to launch all of them?"
IDS_DESKTOPBAR_SETTINGS "הגדרות שולחן העבודה"
IDS_DESKTOP "שולחן העבודה"
IDS_TASKBAR "שורת המשימות"
IDS_NAMECOLUMN "שם"
IDS_PATHCOLUMN "נתיב"
IDS_MENUCOLUMN "נתיב התפריט"
END
#endif // Hebrew resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

View file

@ -128,6 +128,7 @@ BEGIN
"#include ""explorer-sv.rc""\r\n"
"\r\n"
"#pragma code_page(65001)"
"#include ""explorer-he.rc""\r\n"
"#include ""explorer-pl.rc""\r\n"
"#include ""explorer-ro.rc""\r\n"
"#include ""explorer-ru.rc""\r\n"
@ -267,6 +268,9 @@ CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST DISCARDABLE PURE "explorer.exe.ma
// UTF-8
#pragma code_page(65001)
#ifdef LANGUAGE_HE_IL
#include "explorer-he.rc"
#endif
#ifdef LANGUAGE_PL_PL
#include "explorer-pl.rc"
#endif

View file

@ -516,33 +516,39 @@ void TaskBar::Refresh()
for(set<int>::reverse_iterator it=btn_idx_to_delete.rbegin(); it!=btn_idx_to_delete.rend(); ++it) {
int idx = *it;
SendMessage(_htoolbar, TB_DELETEBUTTON, idx, 0);
if (!SendMessage(_htoolbar, TB_DELETEBUTTON, idx, 0))
MessageBoxW(NULL, L"failed to delete button", NULL, MB_OK);
for(TaskBarMap::iterator it=_map.begin(); it!=_map.end(); ++it) {
TaskBarEntry& entry = it->second;
for(TaskBarMap::iterator it2=_map.begin(); it2!=_map.end(); ++it2) {
TaskBarEntry& entry = it2->second;
// adjust button indexes
if (entry._btn_idx > idx) {
--entry._btn_idx;
#if 0
--entry._bmp_idx;
TBBUTTONINFO info;
info.cbSize = sizeof(TBBUTTONINFO);
info.dwMask = TBIF_IMAGE;
info.iImage = entry._bmp_idx;
SendMessage(_htoolbar, TB_SETBUTTONINFO, entry._id, (LPARAM)&info);
if (!SendMessage(_htoolbar, TB_SETBUTTONINFO, entry._id, (LPARAM)&info))
MessageBoxW(NULL, L"failed to set button info", NULL, MB_OK);
#endif
}
}
}
for(set<HBITMAP>::iterator it=hbmp_to_delete.begin(); it!=hbmp_to_delete.end(); ++it) {
HBITMAP hbmp = *it;
#if 0
TBREPLACEBITMAP tbrepl = {0, (UINT_PTR)hbmp, 0, 0};
SendMessage(_htoolbar, TB_REPLACEBITMAP, 0, (LPARAM)&tbrepl);
#endif
DeleteObject(hbmp);
for(TaskBarMap::iterator it=_map.begin(); it!=_map.end(); ++it)

View file

@ -36,10 +36,10 @@ LIST_ENTRY ImageListHead;
LIST_ENTRY ServiceListHead;
static RTL_RESOURCE DatabaseLock;
static DWORD dwResumeCount = 1;
static DWORD ResumeCount = 1;
static CRITICAL_SECTION ControlServiceCriticalSection;
static DWORD dwPipeTimeout = 30000; /* 30 Seconds */
static DWORD PipeTimeout = 30000; /* 30 Seconds */
/* FUNCTIONS *****************************************************************/
@ -110,7 +110,7 @@ ScmCreateNewControlPipe(PSERVICE_IMAGE pServiceImage)
100,
8000,
4,
dwPipeTimeout,
PipeTimeout,
NULL);
DPRINT("CreateNamedPipeW(%S) done\n", szControlPipeName);
if (pServiceImage->hControlPipe == INVALID_HANDLE_VALUE)
@ -380,7 +380,7 @@ ScmCreateNewServiceRecord(LPCWSTR lpServiceName,
lpService->lpDisplayName = lpService->lpServiceName;
/* Set the resume count */
lpService->dwResumeCount = dwResumeCount++;
lpService->dwResumeCount = ResumeCount++;
/* Append service record */
InsertTailList(&ServiceListHead,
@ -941,7 +941,7 @@ ScmControlService(PSERVICE Service,
DPRINT1("dwError: ERROR_IO_PENDING\n");
dwError = WaitForSingleObject(Service->lpImage->hControlPipe,
dwPipeTimeout);
PipeTimeout);
DPRINT1("WaitForSingleObject() returned %lu\n", dwError);
if (dwError == WAIT_TIMEOUT)
@ -995,7 +995,7 @@ ScmControlService(PSERVICE Service,
DPRINT1("dwError: ERROR_IO_PENDING\n");
dwError = WaitForSingleObject(Service->lpImage->hControlPipe,
dwPipeTimeout);
PipeTimeout);
DPRINT1("WaitForSingleObject() returned %lu\n", dwError);
if (dwError == WAIT_TIMEOUT)
@ -1192,7 +1192,7 @@ ScmSendStartCommand(PSERVICE Service,
DPRINT1("dwError: ERROR_IO_PENDING\n");
dwError = WaitForSingleObject(Service->lpImage->hControlPipe,
dwPipeTimeout);
PipeTimeout);
DPRINT1("WaitForSingleObject() returned %lu\n", dwError);
if (dwError == WAIT_TIMEOUT)
@ -1246,7 +1246,7 @@ ScmSendStartCommand(PSERVICE Service,
DPRINT1("dwError: ERROR_IO_PENDING\n");
dwError = WaitForSingleObject(Service->lpImage->hControlPipe,
dwPipeTimeout);
PipeTimeout);
DPRINT1("WaitForSingleObject() returned %lu\n", dwError);
if (dwError == WAIT_TIMEOUT)
@ -1354,7 +1354,7 @@ ScmWaitForServiceConnect(PSERVICE Service)
DPRINT("dwError: ERROR_IO_PENDING\n");
dwError = WaitForSingleObject(Service->lpImage->hControlPipe,
dwPipeTimeout);
PipeTimeout);
DPRINT("WaitForSingleObject() returned %lu\n", dwError);
if (dwError == WAIT_TIMEOUT)
@ -1411,7 +1411,7 @@ ScmWaitForServiceConnect(PSERVICE Service)
DPRINT("dwError: ERROR_IO_PENDING\n");
dwError = WaitForSingleObject(Service->lpImage->hControlPipe,
dwPipeTimeout);
PipeTimeout);
if (dwError == WAIT_TIMEOUT)
{
DPRINT("WaitForSingleObject() returned WAIT_TIMEOUT\n");
@ -1927,7 +1927,7 @@ ScmInitNamedPipeCriticalSection(VOID)
L"ServicesPipeTimeout",
0,
NULL,
(LPBYTE)&dwPipeTimeout,
(LPBYTE)&PipeTimeout,
&dwKeySize);
RegCloseKey(hKey);

View file

@ -96,7 +96,7 @@ CreateGroupOrderListRoutine(PWSTR ValueName,
{
PSERVICE_GROUP Group;
DPRINT("CreateGroupOrderListRoutine(%S, %x, %x, %x, %x, %x)\n",
DPRINT("CreateGroupOrderListRoutine(%S, %x, %p, %x, %p, %p)\n",
ValueName, ValueType, ValueData, ValueLength, Context, EntryContext);
if (ValueType == REG_BINARY &&
@ -172,7 +172,7 @@ CreateGroupListRoutine(PWSTR ValueName,
QueryTable,
(PVOID)Group,
NULL);
DPRINT("%x %d %S\n", Status, Group->TagCount, (PWSTR)ValueData);
DPRINT("%x %lu %S\n", Status, Group->TagCount, (PWSTR)ValueData);
InsertTailList(&GroupListHead,
&Group->GroupListEntry);

View file

@ -1619,7 +1619,7 @@ DWORD RSetServiceStatus(
WCHAR szErrorBuffer[32];
DPRINT("RSetServiceStatus() called\n");
DPRINT("hServiceStatus = %p\n", hServiceStatus);
DPRINT("hServiceStatus = %lu\n", hServiceStatus);
DPRINT("dwServiceType = %lu\n", lpServiceStatus->dwServiceType);
DPRINT("dwCurrentState = %lu\n", lpServiceStatus->dwCurrentState);
DPRINT("dwControlsAccepted = %lu\n", lpServiceStatus->dwControlsAccepted);
@ -2655,7 +2655,6 @@ DWORD RQueryServiceConfigW(
LPWSTR lpDependencies = NULL;
DWORD dwDependenciesLength = 0;
DWORD dwRequiredSize;
LPQUERY_SERVICE_CONFIGW lpConfig = NULL;
WCHAR lpEmptyString[] = {0,0};
LPWSTR lpStr;
@ -2718,7 +2717,7 @@ DWORD RQueryServiceConfigW(
else
dwRequiredSize += 2 * sizeof(WCHAR);
if (lpService->lpGroup != NULL)
if ((lpService->lpGroup != NULL) && (lpService->lpGroup->lpGroupName != NULL))
dwRequiredSize += (DWORD)((wcslen(lpService->lpGroup->lpGroupName) + 1) * sizeof(WCHAR));
else
dwRequiredSize += 2 * sizeof(WCHAR);
@ -2744,13 +2743,12 @@ DWORD RQueryServiceConfigW(
}
else
{
lpConfig = (LPQUERY_SERVICE_CONFIGW)lpServiceConfig;
lpConfig->dwServiceType = lpService->Status.dwServiceType;
lpConfig->dwStartType = lpService->dwStartType;
lpConfig->dwErrorControl = lpService->dwErrorControl;
lpConfig->dwTagId = lpService->dwTag;
lpServiceConfig->dwServiceType = lpService->Status.dwServiceType;
lpServiceConfig->dwStartType = lpService->dwStartType;
lpServiceConfig->dwErrorControl = lpService->dwErrorControl;
lpServiceConfig->dwTagId = lpService->dwTag;
lpStr = (LPWSTR)(lpConfig + 1);
lpStr = (LPWSTR)(lpServiceConfig + 1);
/* Append the image path */
if (lpImagePath != NULL)
@ -2762,11 +2760,11 @@ DWORD RQueryServiceConfigW(
wcscpy(lpStr, lpEmptyString);
}
lpConfig->lpBinaryPathName = (LPWSTR)((ULONG_PTR)lpStr - (ULONG_PTR)lpConfig);
lpServiceConfig->lpBinaryPathName = (LPWSTR)((ULONG_PTR)lpStr - (ULONG_PTR)lpServiceConfig);
lpStr += (wcslen(lpStr) + 1);
/* Append the group name */
if (lpService->lpGroup != NULL)
if ((lpService->lpGroup != NULL) && (lpService->lpGroup->lpGroupName != NULL))
{
wcscpy(lpStr, lpService->lpGroup->lpGroupName);
}
@ -2775,7 +2773,7 @@ DWORD RQueryServiceConfigW(
wcscpy(lpStr, lpEmptyString);
}
lpConfig->lpLoadOrderGroup = (LPWSTR)((ULONG_PTR)lpStr - (ULONG_PTR)lpConfig);
lpServiceConfig->lpLoadOrderGroup = (LPWSTR)((ULONG_PTR)lpStr - (ULONG_PTR)lpServiceConfig);
lpStr += (wcslen(lpStr) + 1);
/* Append Dependencies */
@ -2790,7 +2788,7 @@ DWORD RQueryServiceConfigW(
wcscpy(lpStr, lpEmptyString);
}
lpConfig->lpDependencies = (LPWSTR)((ULONG_PTR)lpStr - (ULONG_PTR)lpConfig);
lpServiceConfig->lpDependencies = (LPWSTR)((ULONG_PTR)lpStr - (ULONG_PTR)lpServiceConfig);
if (lpDependencies != NULL)
lpStr += dwDependenciesLength;
else
@ -2806,7 +2804,7 @@ DWORD RQueryServiceConfigW(
wcscpy(lpStr, lpEmptyString);
}
lpConfig->lpServiceStartName = (LPWSTR)((ULONG_PTR)lpStr - (ULONG_PTR)lpConfig);
lpServiceConfig->lpServiceStartName = (LPWSTR)((ULONG_PTR)lpStr - (ULONG_PTR)lpServiceConfig);
lpStr += (wcslen(lpStr) + 1);
/* Append the display name */
@ -2819,7 +2817,7 @@ DWORD RQueryServiceConfigW(
wcscpy(lpStr, lpEmptyString);
}
lpConfig->lpDisplayName = (LPWSTR)((ULONG_PTR)lpStr - (ULONG_PTR)lpConfig);
lpServiceConfig->lpDisplayName = (LPWSTR)((ULONG_PTR)lpStr - (ULONG_PTR)lpServiceConfig);
}
if (pcbBytesNeeded != NULL)
@ -2898,6 +2896,8 @@ DWORD RStartServiceW(
PSERVICE_HANDLE hSvc;
PSERVICE lpService = NULL;
SC_RPC_LOCK Lock = NULL;
#ifndef NDEBUG
DWORD i;
DPRINT("RStartServiceW(%p %lu %p) called\n", hService, argc, argv);
@ -2906,9 +2906,10 @@ DWORD RStartServiceW(
{
for (i = 0; i < argc; i++)
{
DPRINT(" argv[%lu]: %S\n", i, argv[i]);
DPRINT(" argv[%lu]: %S\n", i, argv[i].StringPtr);
}
}
#endif
if (ScmShutdown)
return ERROR_SHUTDOWN_IN_PROGRESS;
@ -3732,6 +3733,11 @@ DWORD REnumServicesStatusA(
DPRINT("REnumServicesStatusA() called\n");
if (pcbBytesNeeded == NULL || lpServicesReturned == NULL)
{
return ERROR_INVALID_ADDRESS;
}
if ((dwBufSize > 0) && (lpBuffer))
{
lpStatusPtrW = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwBufSize);
@ -3892,7 +3898,6 @@ DWORD RQueryServiceConfigA(
LPWSTR lpDependencies = NULL;
DWORD dwDependenciesLength = 0;
DWORD dwRequiredSize;
LPQUERY_SERVICE_CONFIGA lpConfig = NULL;
CHAR lpEmptyString[]={0,0};
LPSTR lpStr;
@ -3982,11 +3987,10 @@ DWORD RQueryServiceConfigA(
}
else
{
lpConfig = (LPQUERY_SERVICE_CONFIGA)lpServiceConfig;
lpConfig->dwServiceType = lpService->Status.dwServiceType;
lpConfig->dwStartType = lpService->dwStartType;
lpConfig->dwErrorControl = lpService->dwErrorControl;
lpConfig->dwTagId = lpService->dwTag;
lpServiceConfig->dwServiceType = lpService->Status.dwServiceType;
lpServiceConfig->dwStartType = lpService->dwStartType;
lpServiceConfig->dwErrorControl = lpService->dwErrorControl;
lpServiceConfig->dwTagId = lpService->dwTag;
lpStr = (LPSTR)(lpServiceConfig + 1);
@ -4009,7 +4013,7 @@ DWORD RQueryServiceConfigA(
strcpy(lpStr, lpEmptyString);
}
lpConfig->lpBinaryPathName = (LPSTR)((ULONG_PTR)lpStr - (ULONG_PTR)lpConfig);
lpServiceConfig->lpBinaryPathName = (LPSTR)((ULONG_PTR)lpStr - (ULONG_PTR)lpServiceConfig);
lpStr += (strlen((LPSTR)lpStr) + 1);
if (lpService->lpGroup && lpService->lpGroup->lpGroupName)
@ -4028,7 +4032,7 @@ DWORD RQueryServiceConfigA(
strcpy(lpStr, lpEmptyString);
}
lpConfig->lpLoadOrderGroup = (LPSTR)((ULONG_PTR)lpStr - (ULONG_PTR)lpConfig);
lpServiceConfig->lpLoadOrderGroup = (LPSTR)((ULONG_PTR)lpStr - (ULONG_PTR)lpServiceConfig);
lpStr += (strlen(lpStr) + 1);
/* Append Dependencies */
@ -4048,7 +4052,7 @@ DWORD RQueryServiceConfigA(
strcpy(lpStr, lpEmptyString);
}
lpConfig->lpDependencies = (LPSTR)((ULONG_PTR)lpStr - (ULONG_PTR)lpConfig);
lpServiceConfig->lpDependencies = (LPSTR)((ULONG_PTR)lpStr - (ULONG_PTR)lpServiceConfig);
if (lpDependencies)
lpStr += dwDependenciesLength;
else
@ -4070,7 +4074,7 @@ DWORD RQueryServiceConfigA(
strcpy(lpStr, lpEmptyString);
}
lpConfig->lpServiceStartName = (LPSTR)((ULONG_PTR)lpStr - (ULONG_PTR)lpConfig);
lpServiceConfig->lpServiceStartName = (LPSTR)((ULONG_PTR)lpStr - (ULONG_PTR)lpServiceConfig);
lpStr += (strlen(lpStr) + 1);
if (lpService->lpDisplayName)
@ -4089,7 +4093,7 @@ DWORD RQueryServiceConfigA(
strcpy(lpStr, lpEmptyString);
}
lpConfig->lpDisplayName = (LPSTR)((ULONG_PTR)lpStr - (ULONG_PTR)lpConfig);
lpServiceConfig->lpDisplayName = (LPSTR)((ULONG_PTR)lpStr - (ULONG_PTR)lpServiceConfig);
}
if (pcbBytesNeeded != NULL)
@ -4499,6 +4503,11 @@ DWORD REnumServiceGroupW(
return ERROR_INVALID_HANDLE;
}
if (pcbBytesNeeded == NULL || lpServicesReturned == NULL)
{
return ERROR_INVALID_ADDRESS;
}
*pcbBytesNeeded = 0;
*lpServicesReturned = 0;
@ -5751,6 +5760,11 @@ DWORD REnumServicesStatusExA(
DPRINT("REnumServicesStatusExA() called\n");
if (pcbBytesNeeded == NULL || lpServicesReturned == NULL)
{
return ERROR_INVALID_ADDRESS;
}
if (pszGroupName)
{
pszGroupNameW = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, (strlen(pszGroupName) + 1) * sizeof(WCHAR));
@ -5896,6 +5910,11 @@ DWORD REnumServicesStatusExW(
return ERROR_INVALID_HANDLE;
}
if (pcbBytesNeeded == NULL || lpServicesReturned == NULL)
{
return ERROR_INVALID_ADDRESS;
}
*pcbBytesNeeded = 0;
*lpServicesReturned = 0;

View file

@ -55,7 +55,7 @@ ScmLogError(DWORD dwEventId,
L"Service Control Manager");
if (hLog == NULL)
{
DPRINT1("ScmLogEvent: RegisterEventSourceW failed %d\n", GetLastError());
DPRINT1("ScmLogEvent: RegisterEventSourceW failed %lu\n", GetLastError());
return;
}
@ -69,7 +69,7 @@ ScmLogError(DWORD dwEventId,
lpStrings,
NULL))
{
DPRINT1("ScmLogEvent: ReportEventW failed %d\n", GetLastError());
DPRINT1("ScmLogEvent: ReportEventW failed %lu\n", GetLastError());
}
DeregisterEventSource(hLog);
@ -153,7 +153,7 @@ ScmNamedPipeHandleRequest(PVOID Request,
PVOID Reply,
LPDWORD ReplySize)
{
DbgPrint("SCM READ: %s\n", Request);
DbgPrint("SCM READ: %p\n", Request);
*ReplySize = 0;
return FALSE;
@ -173,7 +173,7 @@ ScmNamedPipeThread(LPVOID Context)
hPipe = (HANDLE)Context;
DPRINT("ScmNamedPipeThread(%x) - Accepting SCM commands through named pipe\n", hPipe);
DPRINT("ScmNamedPipeThread(%p) - Accepting SCM commands through named pipe\n", hPipe);
for (;;)
{
@ -201,13 +201,13 @@ ScmNamedPipeThread(LPVOID Context)
}
}
DPRINT("ScmNamedPipeThread(%x) - Disconnecting named pipe connection\n", hPipe);
DPRINT("ScmNamedPipeThread(%p) - Disconnecting named pipe connection\n", hPipe);
FlushFileBuffers(hPipe);
DisconnectNamedPipe(hPipe);
CloseHandle(hPipe);
DPRINT("ScmNamedPipeThread(%x) - Done.\n", hPipe);
DPRINT("ScmNamedPipeThread(%p) - Done.\n", hPipe);
return ERROR_SUCCESS;
}
@ -233,11 +233,11 @@ ScmCreateNamedPipe(VOID)
NULL);
if (hPipe == INVALID_HANDLE_VALUE)
{
DPRINT("CreateNamedPipe() failed (%d)\n", GetLastError());
DPRINT("CreateNamedPipe() failed (%lu)\n", GetLastError());
return FALSE;
}
DPRINT("CreateNamedPipe() - calling ConnectNamedPipe(%x)\n", hPipe);
DPRINT("CreateNamedPipe() - calling ConnectNamedPipe(%p)\n", hPipe);
bConnected = ConnectNamedPipe(hPipe,
NULL) ? TRUE : (GetLastError() == ERROR_PIPE_CONNECTED);
DPRINT("CreateNamedPipe() - ConnectNamedPipe() returned %d\n", bConnected);
@ -253,7 +253,7 @@ ScmCreateNamedPipe(VOID)
&dwThreadId);
if (!hThread)
{
DPRINT("Could not create thread (%d)\n", GetLastError());
DPRINT("Could not create thread (%lu)\n", GetLastError());
DisconnectNamedPipe(hPipe);
CloseHandle(hPipe);
DPRINT("CreateNamedPipe() - returning FALSE\n");
@ -278,7 +278,7 @@ DWORD WINAPI
ScmNamedPipeListenerThread(LPVOID Context)
{
// HANDLE hPipe;
DPRINT("ScmNamedPipeListenerThread(%x) - aka SCM.\n", Context);
DPRINT("ScmNamedPipeListenerThread(%p) - aka SCM.\n", Context);
// hPipe = (HANDLE)Context;
for (;;)
@ -294,7 +294,7 @@ ScmNamedPipeListenerThread(LPVOID Context)
DPRINT("\nSCM: named pipe session created.\n");
Sleep(10);
}
DPRINT("\n\nWARNING: ScmNamedPipeListenerThread(%x) - Aborted.\n\n", Context);
DPRINT("\n\nWARNING: ScmNamedPipeListenerThread(%p) - Aborted.\n\n", Context);
return ERROR_SUCCESS;
}

View file

@ -17,7 +17,7 @@ FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "The Logon User Interface DLL %s failed to load.", IDC_GINALOADFAILED, 39, 16, 156, 24
LTEXT "Contact your system administrator to replace the DLL, or restore the original DLL.", IDC_GINALOADFAILEDCONTACT, 39, 53, 151, 25
DEFPUSHBUTTON "הפעל מחדש", 1, 80, 91, 68, 14
DEFPUSHBUTTON "הפעל מחדש", 1, 59, 32, 49, 14
END
STRINGTABLE

View file

@ -23,8 +23,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(winlogon);
#define HK_CTRL_ALT_DEL 0
#define HK_CTRL_SHIFT_ESC 1
static BOOL inScrn = FALSE;
/* FUNCTIONS ****************************************************************/
static BOOL
@ -702,7 +700,7 @@ HandleLogoff(
UnloadUserProfile(Session->UserToken, Session->hProfileInfo);
CloseHandle(Session->UserToken);
UpdatePerUserSystemParameters(0, FALSE);
Session->LogonStatus = WKSTA_IS_LOGGED_OFF;
Session->LogonState = STATE_LOGGED_OFF;
Session->UserToken = NULL;
return STATUS_SUCCESS;
}
@ -830,7 +828,7 @@ DoGenericAction(
if (HandleLogon(Session))
{
SwitchDesktop(Session->ApplicationDesktop);
Session->LogonStatus = WKSTA_IS_LOGGED_ON;
Session->LogonState = STATE_LOGGED_ON;
}
else
Session->Gina.Functions.WlxDisplaySASNotice(Session->Gina.Context);
@ -841,7 +839,7 @@ DoGenericAction(
if (Session->Gina.Functions.WlxIsLockOk(Session->Gina.Context))
{
SwitchDesktop(WLSession->WinlogonDesktop);
Session->LogonStatus = WKSTA_IS_LOCKED;
Session->LogonState = STATE_LOCKED;
Session->Gina.Functions.WlxDisplayLockedNotice(Session->Gina.Context);
}
break;
@ -849,7 +847,7 @@ DoGenericAction(
case WLX_SAS_ACTION_SHUTDOWN: /* 0x05 */
case WLX_SAS_ACTION_SHUTDOWN_POWER_OFF: /* 0x0a */
case WLX_SAS_ACTION_SHUTDOWN_REBOOT: /* 0x0b */
if (Session->LogonStatus != WKSTA_IS_LOGGED_OFF)
if (Session->LogonState != STATE_LOGGED_OFF)
{
if (!Session->Gina.Functions.WlxIsLogoffOk(Session->Gina.Context))
break;
@ -882,7 +880,7 @@ DoGenericAction(
break;
case WLX_SAS_ACTION_UNLOCK_WKSTA: /* 0x08 */
SwitchDesktop(WLSession->ApplicationDesktop);
Session->LogonStatus = WKSTA_IS_LOGGED_ON;
Session->LogonState = STATE_LOGGED_ON;
break;
default:
WARN("Unknown SAS action 0x%lx\n", wlxAction);
@ -896,9 +894,9 @@ DispatchSAS(
{
DWORD wlxAction = WLX_SAS_ACTION_NONE;
if (Session->LogonStatus == WKSTA_IS_LOGGED_ON)
if (Session->LogonState == STATE_LOGGED_ON)
wlxAction = (DWORD)Session->Gina.Functions.WlxLoggedOnSAS(Session->Gina.Context, dwSasType, NULL);
else if (Session->LogonStatus == WKSTA_IS_LOCKED)
else if (Session->LogonState == STATE_LOCKED)
wlxAction = (DWORD)Session->Gina.Functions.WlxWkstaLockedSAS(Session->Gina.Context, dwSasType);
else
{
@ -940,9 +938,9 @@ DispatchSAS(
}
else
{
StartScreenSaver(Session);
if (bSecure)
DoGenericAction(Session, WLX_SAS_ACTION_LOCK_WKSTA);
StartScreenSaver(Session);
}
}
else if (dwSasType == WLX_SAS_TYPE_SCRNSVR_ACTIVITY)
@ -1154,24 +1152,12 @@ SASWindowProc(
}
case LN_START_SCREENSAVE:
{
BOOL bSecure = FALSE;
if (inScrn)
break;
inScrn = TRUE;
// lParam 1 == Secure
if (lParam)
{
if (Session->Gina.Functions.WlxScreenSaverNotify(Session->Gina.Context, &bSecure))
{
if (bSecure) DoGenericAction(Session, WLX_SAS_ACTION_LOCK_WKSTA);
}
}
StartScreenSaver(Session);
inScrn = FALSE;
DispatchSAS(Session, WLX_SAS_TYPE_SCRNSVR_TIMEOUT);
break;
}
case LN_LOCK_WORKSTATION:
{
DoGenericAction(Session, WLX_SAS_ACTION_LOCK_WKSTA);
break;
}
default:

View file

@ -15,348 +15,362 @@ WINE_DEFAULT_DEBUG_CHANNEL(winlogon);
/* FUNCTIONS ****************************************************************/
#ifndef USE_GETLASTINPUTINFO
static LRESULT CALLBACK
KeyboardActivityProc(
IN INT nCode,
IN WPARAM wParam,
IN LPARAM lParam)
static
LRESULT
CALLBACK
KeyboardActivityProc(IN INT nCode,
IN WPARAM wParam,
IN LPARAM lParam)
{
InterlockedExchange((LONG*)&WLSession->LastActivity, ((PKBDLLHOOKSTRUCT)lParam)->time);
return CallNextHookEx(NULL, nCode, wParam, lParam);
InterlockedExchange((LONG*)&WLSession->LastActivity, ((PKBDLLHOOKSTRUCT)lParam)->time);
return CallNextHookEx(NULL, nCode, wParam, lParam);
}
static LRESULT CALLBACK
MouseActivityProc(
IN INT nCode,
IN WPARAM wParam,
IN LPARAM lParam)
static
LRESULT
CALLBACK
MouseActivityProc(IN INT nCode,
IN WPARAM wParam,
IN LPARAM lParam)
{
InterlockedExchange((LONG*)&WLSession->LastActivity, ((PMSLLHOOKSTRUCT)lParam)->time);
return CallNextHookEx(NULL, nCode, wParam, lParam);
InterlockedExchange((LONG*)&WLSession->LastActivity, ((PMSLLHOOKSTRUCT)lParam)->time);
return CallNextHookEx(NULL, nCode, wParam, lParam);
}
#endif
static VOID
LoadScreenSaverParameters(
OUT LPDWORD Timeout)
{
BOOL Enabled;
if (!SystemParametersInfoW(SPI_GETSCREENSAVETIMEOUT, 0, Timeout, 0))
{
WARN("WL: Unable to get screen saver timeout (error %lu). Disabling it\n", GetLastError());
*Timeout = INFINITE;
}
else if (!SystemParametersInfoW(SPI_GETSCREENSAVEACTIVE, 0, &Enabled, 0))
{
WARN("WL: Unable to check if screen saver is enabled (error %lu). Disabling it\n", GetLastError());
*Timeout = INFINITE;
}
else if (!Enabled)
{
TRACE("WL: Screen saver is disabled\n");
*Timeout = INFINITE;
}
else
{
TRACE("WL: Screen saver timeout: %lu seconds\n", *Timeout);
*Timeout *= 1000;
}
static
VOID
LoadScreenSaverParameters(OUT LPDWORD Timeout)
{
BOOL Enabled;
if (!SystemParametersInfoW(SPI_GETSCREENSAVETIMEOUT, 0, Timeout, 0))
{
WARN("WL: Unable to get screen saver timeout (error %lu). Disabling it\n", GetLastError());
*Timeout = INFINITE;
}
else if (!SystemParametersInfoW(SPI_GETSCREENSAVEACTIVE, 0, &Enabled, 0))
{
WARN("WL: Unable to check if screen saver is enabled (error %lu). Disabling it\n", GetLastError());
*Timeout = INFINITE;
}
else if (!Enabled)
{
TRACE("WL: Screen saver is disabled\n");
*Timeout = INFINITE;
}
else
{
TRACE("WL: Screen saver timeout: %lu seconds\n", *Timeout);
*Timeout *= 1000;
}
}
static DWORD WINAPI
ScreenSaverThreadMain(
IN LPVOID lpParameter)
static
DWORD
WINAPI
ScreenSaverThreadMain(IN LPVOID lpParameter)
{
PWLSESSION Session = (PWLSESSION)lpParameter;
HANDLE HandleArray[3];
PWLSESSION Session = (PWLSESSION)lpParameter;
HANDLE HandleArray[3];
#ifdef USE_GETLASTINPUTINFO
LASTINPUTINFO lastInputInfo;
LASTINPUTINFO lastInputInfo;
#else
DWORD LastActivity;
DWORD LastActivity;
#endif
DWORD TimeToWait;
DWORD Timeout; /* Timeout before screen saver starts, in milliseconds */
DWORD ret;
DWORD TimeToWait;
DWORD Timeout; /* Timeout before screen saver starts, in milliseconds */
DWORD ret;
if (!ImpersonateLoggedOnUser(Session->UserToken))
{
ERR("ImpersonateLoggedOnUser() failed with error %lu\n", GetLastError());
return 0;
}
if (!ImpersonateLoggedOnUser(Session->UserToken))
{
ERR("ImpersonateLoggedOnUser() failed with error %lu\n", GetLastError());
return 0;
}
Session->hUserActivity = CreateEventW(NULL, FALSE, FALSE, NULL);
if (!Session->hUserActivity)
{
ERR("WL: Unable to create event (error %lu)\n", GetLastError());
goto cleanup;
}
Session->hUserActivity = CreateEventW(NULL, FALSE, FALSE, NULL);
if (!Session->hUserActivity)
{
ERR("WL: Unable to create event (error %lu)\n", GetLastError());
goto cleanup;
}
Session->hEndOfScreenSaver = CreateEventW(NULL, FALSE, FALSE, NULL);
if (!Session->hEndOfScreenSaver)
{
ERR("WL: Unable to create event (error %lu)\n", GetLastError());
goto cleanup;
}
Session->hEndOfScreenSaver = CreateEventW(NULL, FALSE, FALSE, NULL);
if (!Session->hEndOfScreenSaver)
{
ERR("WL: Unable to create event (error %lu)\n", GetLastError());
goto cleanup;
}
HandleArray[0] = Session->hEndOfScreenSaverThread;
HandleArray[1] = Session->hScreenSaverParametersChanged;
HandleArray[2] = Session->hEndOfScreenSaver;
HandleArray[0] = Session->hEndOfScreenSaverThread;
HandleArray[1] = Session->hScreenSaverParametersChanged;
HandleArray[2] = Session->hEndOfScreenSaver;
LoadScreenSaverParameters(&Timeout);
LoadScreenSaverParameters(&Timeout);
#ifndef USE_GETLASTINPUTINFO
InterlockedExchange((LONG*)&Session->LastActivity, GetTickCount());
InterlockedExchange((LONG*)&Session->LastActivity, GetTickCount());
#else
lastInputInfo.cbSize = sizeof(LASTINPUTINFO);
lastInputInfo.cbSize = sizeof(LASTINPUTINFO);
#endif
for (;;)
{
/* See the time of last activity and calculate a timeout */
for (;;)
{
/* See the time of last activity and calculate a timeout */
#ifndef USE_GETLASTINPUTINFO
LastActivity = InterlockedCompareExchange((LONG*)&Session->LastActivity, 0, 0);
TimeToWait = Timeout - (GetTickCount() - LastActivity);
LastActivity = InterlockedCompareExchange((LONG*)&Session->LastActivity, 0, 0);
TimeToWait = Timeout - (GetTickCount() - LastActivity);
#else
if (GetLastInputInfo(&lastInputInfo))
TimeToWait = Timeout - (GetTickCount() - lastInputInfo.dwTime);
else
{
WARN("GetLastInputInfo() failed with error %lu\n", GetLastError());
TimeToWait = 10; /* Try again in 10 ms */
}
if (GetLastInputInfo(&lastInputInfo))
TimeToWait = Timeout - (GetTickCount() - lastInputInfo.dwTime);
else
{
WARN("GetLastInputInfo() failed with error %lu\n", GetLastError());
TimeToWait = 10; /* Try again in 10 ms */
}
#endif
if (TimeToWait > Timeout)
{
/* GetTickCount() got back to 0 */
TimeToWait = Timeout;
}
/* Wait for the timeout, or the end of this thread */
ret = WaitForMultipleObjects(2, HandleArray, FALSE, TimeToWait);
if (ret == WAIT_OBJECT_0)
break;
else if (ret == WAIT_OBJECT_0 + 1)
LoadScreenSaverParameters(&Timeout);
if (TimeToWait > Timeout)
{
/* GetTickCount() got back to 0 */
TimeToWait = Timeout;
}
/* Check if we didn't had recent activity */
/* Wait for the timeout, or the end of this thread */
ret = WaitForMultipleObjects(2, HandleArray, FALSE, TimeToWait);
if (ret == WAIT_OBJECT_0)
break;
else if (ret == WAIT_OBJECT_0 + 1)
LoadScreenSaverParameters(&Timeout);
/* Check if we didn't had recent activity */
#ifndef USE_GETLASTINPUTINFO
LastActivity = InterlockedCompareExchange((LONG*)&Session->LastActivity, 0, 0);
if (LastActivity + Timeout > GetTickCount())
continue;
LastActivity = InterlockedCompareExchange((LONG*)&Session->LastActivity, 0, 0);
if (LastActivity + Timeout > GetTickCount())
continue;
#else
if (!GetLastInputInfo(&lastInputInfo))
{
WARN("GetLastInputInfo() failed with error %lu\n", GetLastError());
continue;
}
if (lastInputInfo.dwTime + Timeout > GetTickCount())
continue;
if (!GetLastInputInfo(&lastInputInfo))
{
WARN("GetLastInputInfo() failed with error %lu\n", GetLastError());
continue;
}
if (lastInputInfo.dwTime + Timeout > GetTickCount())
continue;
#endif
/* Run screen saver */
PostMessageW(Session->SASWindow, WLX_WM_SAS, WLX_SAS_TYPE_SCRNSVR_TIMEOUT, 0);
/* Run screen saver */
PostMessageW(Session->SASWindow, WLX_WM_SAS, WLX_SAS_TYPE_SCRNSVR_TIMEOUT, 0);
/* Wait for the end of this thread or of the screen saver */
ret = WaitForMultipleObjects(3, HandleArray, FALSE, INFINITE);
if (ret == WAIT_OBJECT_0)
break;
else if (ret == WAIT_OBJECT_0 + 1)
LoadScreenSaverParameters(&Timeout);
else if (ret == WAIT_OBJECT_0 + 2)
SystemParametersInfoW(SPI_SETSCREENSAVERRUNNING, FALSE, NULL, 0);
}
/* Wait for the end of this thread or of the screen saver */
ret = WaitForMultipleObjects(3, HandleArray, FALSE, INFINITE);
if (ret == WAIT_OBJECT_0)
break;
else if (ret == WAIT_OBJECT_0 + 1)
LoadScreenSaverParameters(&Timeout);
else if (ret == WAIT_OBJECT_0 + 2)
SystemParametersInfoW(SPI_SETSCREENSAVERRUNNING, FALSE, NULL, 0);
}
cleanup:
RevertToSelf();
if (Session->hUserActivity)
CloseHandle(Session->hUserActivity);
if (Session->hEndOfScreenSaver)
CloseHandle(Session->hEndOfScreenSaver);
RevertToSelf();
if (Session->hUserActivity)
CloseHandle(Session->hUserActivity);
if (Session->hEndOfScreenSaver)
CloseHandle(Session->hEndOfScreenSaver);
#ifndef USE_GETLASTINPUTINFO
if (Session->KeyboardHook)
UnhookWindowsHookEx(Session->KeyboardHook);
if (Session->MouseHook)
UnhookWindowsHookEx(Session->MouseHook);
if (Session->KeyboardHook)
UnhookWindowsHookEx(Session->KeyboardHook);
if (Session->MouseHook)
UnhookWindowsHookEx(Session->MouseHook);
#endif
CloseHandle(Session->hEndOfScreenSaverThread);
CloseHandle(Session->hScreenSaverParametersChanged);
return 0;
CloseHandle(Session->hEndOfScreenSaverThread);
CloseHandle(Session->hScreenSaverParametersChanged);
return 0;
}
BOOL
InitializeScreenSaver(
IN OUT PWLSESSION Session)
InitializeScreenSaver(IN OUT PWLSESSION Session)
{
HANDLE ScreenSaverThread;
HANDLE ScreenSaverThread;
#ifndef USE_GETLASTINPUTINFO
/* Register hooks to detect keyboard and mouse activity */
Session->KeyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardActivityProc, hAppInstance, 0);
if (!Session->KeyboardHook)
{
ERR("WL: Unable to register keyboard hook\n");
return FALSE;
}
Session->MouseHook = SetWindowsHookEx(WH_MOUSE_LL, MouseActivityProc, hAppInstance, 0);
if (!Session->MouseHook)
{
ERR("WL: Unable to register mouse hook\n");
return FALSE;
}
/* Register hooks to detect keyboard and mouse activity */
Session->KeyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardActivityProc, hAppInstance, 0);
if (!Session->KeyboardHook)
{
ERR("WL: Unable to register keyboard hook\n");
return FALSE;
}
Session->MouseHook = SetWindowsHookEx(WH_MOUSE_LL, MouseActivityProc, hAppInstance, 0);
if (!Session->MouseHook)
{
ERR("WL: Unable to register mouse hook\n");
return FALSE;
}
#endif
Session->hScreenSaverParametersChanged = CreateEventW(NULL, FALSE, FALSE, NULL);
if (!Session->hScreenSaverParametersChanged)
{
WARN("WL: Unable to create screen saver event (error %lu)\n", GetLastError());
return TRUE;
}
Session->hEndOfScreenSaverThread = CreateEventW(NULL, FALSE, FALSE, NULL);
if (!Session->hEndOfScreenSaverThread)
{
WARN("WL: Unable to create screen saver event (error %lu)\n", GetLastError());
CloseHandle(Session->hScreenSaverParametersChanged);
return TRUE;
}
Session->hScreenSaverParametersChanged = CreateEventW(NULL, FALSE, FALSE, NULL);
if (!Session->hScreenSaverParametersChanged)
{
WARN("WL: Unable to create screen saver event (error %lu)\n", GetLastError());
return TRUE;
}
ScreenSaverThread = CreateThread(
NULL,
0,
ScreenSaverThreadMain,
Session,
0,
NULL);
if (ScreenSaverThread)
CloseHandle(ScreenSaverThread);
else
ERR("WL: Unable to start screen saver thread\n");
Session->hEndOfScreenSaverThread = CreateEventW(NULL, FALSE, FALSE, NULL);
if (!Session->hEndOfScreenSaverThread)
{
WARN("WL: Unable to create screen saver event (error %lu)\n", GetLastError());
CloseHandle(Session->hScreenSaverParametersChanged);
return TRUE;
}
return TRUE;
ScreenSaverThread = CreateThread(NULL,
0,
ScreenSaverThreadMain,
Session,
0,
NULL);
if (ScreenSaverThread)
CloseHandle(ScreenSaverThread);
else
ERR("WL: Unable to start screen saver thread\n");
return TRUE;
}
VOID
StartScreenSaver(
IN PWLSESSION Session)
StartScreenSaver(IN PWLSESSION Session)
{
HKEY hKey = NULL, hCurrentUser = NULL;
WCHAR szApplicationName[MAX_PATH];
WCHAR szCommandLine[MAX_PATH + 3];
DWORD bufferSize = sizeof(szApplicationName) - sizeof(WCHAR);
DWORD dwType;
STARTUPINFOW StartupInfo;
PROCESS_INFORMATION ProcessInformation;
HANDLE HandleArray[2];
LONG rc;
DWORD Status;
BOOL ret = FALSE;
HKEY hKey = NULL, hCurrentUser = NULL;
WCHAR szApplicationName[MAX_PATH];
WCHAR szCommandLine[MAX_PATH + 3];
DWORD bufferSize = sizeof(szApplicationName) - sizeof(WCHAR);
DWORD dwType;
STARTUPINFOW StartupInfo;
PROCESS_INFORMATION ProcessInformation;
HANDLE HandleArray[2];
LONG rc;
DWORD Status;
BOOL ret = FALSE;
if (!ImpersonateLoggedOnUser(Session->UserToken))
{
ERR("WL: ImpersonateLoggedOnUser() failed with error %lu\n", GetLastError());
goto cleanup;
}
if (!ImpersonateLoggedOnUser(Session->UserToken))
{
ERR("WL: ImpersonateLoggedOnUser() failed with error %lu\n", GetLastError());
goto cleanup;
}
rc = RegOpenCurrentUser(
KEY_READ,
&hCurrentUser);
if (rc != ERROR_SUCCESS)
{
ERR("WL: RegOpenCurrentUser Error!\n");
goto cleanup;
}
rc = RegOpenCurrentUser(KEY_READ,
&hCurrentUser);
if (rc != ERROR_SUCCESS)
{
ERR("WL: RegOpenCurrentUser Error!\n");
goto cleanup;
}
rc = RegOpenKeyExW(
hCurrentUser,
L"Control Panel\\Desktop",
0,
KEY_QUERY_VALUE,
&hKey);
if (rc != ERROR_SUCCESS)
{
ERR("WL: RegOpenKeyEx Error!\n");
goto cleanup;
}
rc = RegOpenKeyExW(hCurrentUser,
L"Control Panel\\Desktop",
0,
KEY_QUERY_VALUE,
&hKey);
if (rc != ERROR_SUCCESS)
{
ERR("WL: RegOpenKeyEx Error!\n");
goto cleanup;
}
rc = RegQueryValueExW(
hKey,
L"SCRNSAVE.EXE",
0,
&dwType,
(LPBYTE)szApplicationName,
&bufferSize);
if (rc != ERROR_SUCCESS || dwType != REG_SZ)
{
ERR("WL: RegQueryValueEx Error!\n");
goto cleanup;
}
rc = RegQueryValueExW(hKey,
L"SCRNSAVE.EXE",
0,
&dwType,
(LPBYTE)szApplicationName,
&bufferSize);
if (rc != ERROR_SUCCESS || dwType != REG_SZ)
{
ERR("WL: RegQueryValueEx Error!\n");
goto cleanup;
}
if (bufferSize == 0)
{
ERR("WL: Buffer size is NULL!\n");
goto cleanup;
}
if (bufferSize == 0)
{
ERR("WL: Buffer size is NULL!\n");
goto cleanup;
}
szApplicationName[bufferSize / sizeof(WCHAR)] = 0; /* Terminate the string */
szApplicationName[bufferSize / sizeof(WCHAR)] = 0; /* Terminate the string */
if (wcslen(szApplicationName) == 0)
{
ERR("WL: Application Name length is zero!\n");
goto cleanup;
}
if (wcslen(szApplicationName) == 0)
{
ERR("WL: Application Name length is zero!\n");
goto cleanup;
}
wsprintfW(szCommandLine, L"%s /s", szApplicationName);
TRACE("WL: Executing %S\n", szCommandLine);
wsprintfW(szCommandLine, L"%s /s", szApplicationName);
TRACE("WL: Executing %S\n", szCommandLine);
ZeroMemory(&StartupInfo, sizeof(STARTUPINFOW));
ZeroMemory(&ProcessInformation, sizeof(PROCESS_INFORMATION));
StartupInfo.cb = sizeof(STARTUPINFOW);
StartupInfo.dwFlags = STARTF_SCRNSAVER;
/* FIXME: run the screen saver on the screen saver desktop */
ret = CreateProcessW(
szApplicationName,
szCommandLine,
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&StartupInfo,
&ProcessInformation);
if (!ret)
{
ERR("WL: Unable to start %S, error %lu\n", szApplicationName, GetLastError());
goto cleanup;
}
CloseHandle(ProcessInformation.hThread);
ZeroMemory(&StartupInfo, sizeof(STARTUPINFOW));
ZeroMemory(&ProcessInformation, sizeof(PROCESS_INFORMATION));
StartupInfo.cb = sizeof(STARTUPINFOW);
StartupInfo.dwFlags = STARTF_SCRNSAVER;
SystemParametersInfoW(SPI_SETSCREENSAVERRUNNING, TRUE, NULL, 0);
/* FIXME: run the screen saver on the screen saver desktop */
ret = CreateProcessW(szApplicationName,
szCommandLine,
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&StartupInfo,
&ProcessInformation);
if (!ret)
{
ERR("WL: Unable to start %S, error %lu\n", szApplicationName, GetLastError());
goto cleanup;
}
/* Wait the end of the process or some other activity */
ResetEvent(Session->hUserActivity);
HandleArray[0] = ProcessInformation.hProcess;
HandleArray[1] = Session->hUserActivity;
Status = WaitForMultipleObjects(2, HandleArray, FALSE, INFINITE);
if (Status == WAIT_OBJECT_0 + 1)
{
/* Kill the screen saver */
TerminateProcess(ProcessInformation.hProcess, 0);
}
SetEvent(Session->hEndOfScreenSaver);
CloseHandle(ProcessInformation.hThread);
CloseHandle(ProcessInformation.hProcess);
SystemParametersInfoW(SPI_SETSCREENSAVERRUNNING, TRUE, NULL, 0);
/* Wait the end of the process or some other activity */
ResetEvent(Session->hUserActivity);
HandleArray[0] = ProcessInformation.hProcess;
HandleArray[1] = Session->hUserActivity;
Status = WaitForMultipleObjects(2, HandleArray, FALSE, INFINITE);
if (Status == WAIT_OBJECT_0 + 1)
{
/* Kill the screen saver */
TerminateProcess(ProcessInformation.hProcess, 0);
}
SetEvent(Session->hEndOfScreenSaver);
CloseHandle(ProcessInformation.hProcess);
cleanup:
RevertToSelf();
if (hKey)
RegCloseKey(hKey);
if (hCurrentUser)
RegCloseKey(hCurrentUser);
if (!ret)
{
PostMessageW(Session->SASWindow, WLX_WM_SAS, WLX_SAS_TYPE_SCRNSVR_ACTIVITY, 0);
RevertToSelf();
if (hKey)
RegCloseKey(hKey);
if (hCurrentUser)
RegCloseKey(hCurrentUser);
if (!ret)
{
PostMessageW(Session->SASWindow, WLX_WM_SAS, WLX_SAS_TYPE_SCRNSVR_ACTIVITY, 0);
#ifndef USE_GETLASTINPUTINFO
InterlockedExchange((LONG*)&Session->LastActivity, GetTickCount());
InterlockedExchange((LONG*)&Session->LastActivity, GetTickCount());
#endif
}
}
}

View file

@ -17,142 +17,147 @@ WINE_DEFAULT_DEBUG_CHANNEL(winlogon);
DWORD
GetSetupType(VOID)
{
DWORD dwError;
HKEY hKey;
DWORD dwType;
DWORD dwSize;
DWORD dwSetupType;
DWORD dwError;
HKEY hKey;
DWORD dwType;
DWORD dwSize;
DWORD dwSetupType;
TRACE("GetSetupType()\n");
TRACE("GetSetupType()\n");
/* Open key */
dwError = RegOpenKeyExW(
HKEY_LOCAL_MACHINE,
L"SYSTEM\\Setup",
0,
KEY_QUERY_VALUE,
&hKey);
if (dwError != ERROR_SUCCESS)
return 0;
/* Open key */
dwError = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
L"SYSTEM\\Setup",
0,
KEY_QUERY_VALUE,
&hKey);
if (dwError != ERROR_SUCCESS)
return 0;
/* Read key */
dwSize = sizeof(DWORD);
dwError = RegQueryValueExW(
hKey,
L"SetupType",
NULL,
&dwType,
(LPBYTE)&dwSetupType,
&dwSize);
/* Read key */
dwSize = sizeof(DWORD);
dwError = RegQueryValueExW(hKey,
L"SetupType",
NULL,
&dwType,
(LPBYTE)&dwSetupType,
&dwSize);
/* Close key, and check if returned values are correct */
RegCloseKey(hKey);
if (dwError != ERROR_SUCCESS || dwType != REG_DWORD || dwSize != sizeof(DWORD))
return 0;
/* Close key, and check if returned values are correct */
RegCloseKey(hKey);
if (dwError != ERROR_SUCCESS || dwType != REG_DWORD || dwSize != sizeof(DWORD))
return 0;
TRACE("GetSetupType() returns %lu\n", dwSetupType);
return dwSetupType;
TRACE("GetSetupType() returns %lu\n", dwSetupType);
return dwSetupType;
}
static DWORD WINAPI
RunSetupThreadProc(
IN LPVOID lpParameter)
static
DWORD
WINAPI
RunSetupThreadProc(IN LPVOID lpParameter)
{
PROCESS_INFORMATION ProcessInformation;
STARTUPINFOW StartupInfo;
WCHAR Shell[MAX_PATH];
WCHAR CommandLine[MAX_PATH];
BOOL Result;
DWORD dwError;
HKEY hKey;
DWORD dwType;
DWORD dwSize;
DWORD dwExitCode;
PROCESS_INFORMATION ProcessInformation;
STARTUPINFOW StartupInfo;
WCHAR Shell[MAX_PATH];
WCHAR CommandLine[MAX_PATH];
BOOL Result;
DWORD dwError;
HKEY hKey;
DWORD dwType;
DWORD dwSize;
DWORD dwExitCode;
TRACE("RunSetup() called\n");
TRACE("RunSetup() called\n");
/* Open key */
dwError = RegOpenKeyExW(
HKEY_LOCAL_MACHINE,
L"SYSTEM\\Setup",
0,
KEY_QUERY_VALUE,
&hKey);
if (dwError != ERROR_SUCCESS)
return FALSE;
/* Open key */
dwError = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
L"SYSTEM\\Setup",
0,
KEY_QUERY_VALUE,
&hKey);
if (dwError != ERROR_SUCCESS)
return FALSE;
/* Read key */
dwSize = (sizeof(Shell) / sizeof(Shell[0])) - 1;
dwError = RegQueryValueExW(
hKey,
L"CmdLine",
NULL,
&dwType,
(LPBYTE)Shell,
&dwSize);
RegCloseKey(hKey);
if (dwError != ERROR_SUCCESS)
return FALSE;
/* Read key */
dwSize = (sizeof(Shell) / sizeof(Shell[0])) - 1;
dwError = RegQueryValueExW(hKey,
L"CmdLine",
NULL,
&dwType,
(LPBYTE)Shell,
&dwSize);
RegCloseKey(hKey);
if (dwError != ERROR_SUCCESS)
return FALSE;
/* Finish string */
Shell[dwSize / sizeof(WCHAR)] = UNICODE_NULL;
/* Finish string */
Shell[dwSize / sizeof(WCHAR)] = UNICODE_NULL;
/* Expand string (if applicable) */
if (dwType == REG_EXPAND_SZ)
ExpandEnvironmentStringsW(Shell, CommandLine, MAX_PATH);
else if (dwType == REG_SZ)
wcscpy(CommandLine, Shell);
else
return FALSE;
/* Expand string (if applicable) */
if (dwType == REG_EXPAND_SZ)
ExpandEnvironmentStringsW(Shell, CommandLine, MAX_PATH);
else if (dwType == REG_SZ)
wcscpy(CommandLine, Shell);
else
return FALSE;
TRACE("Should run '%s' now\n", debugstr_w(CommandLine));
TRACE("Should run '%s' now\n", debugstr_w(CommandLine));
/* Start process */
StartupInfo.cb = sizeof(StartupInfo);
StartupInfo.lpReserved = NULL;
StartupInfo.lpDesktop = NULL;
StartupInfo.lpTitle = NULL;
StartupInfo.dwFlags = 0;
StartupInfo.cbReserved2 = 0;
StartupInfo.lpReserved2 = 0;
Result = CreateProcessW(
NULL,
CommandLine,
NULL,
NULL,
FALSE,
DETACHED_PROCESS,
NULL,
NULL,
&StartupInfo,
&ProcessInformation);
if (!Result)
{
TRACE("Failed to run setup process\n");
return FALSE;
}
/* Start process */
StartupInfo.cb = sizeof(StartupInfo);
StartupInfo.lpReserved = NULL;
StartupInfo.lpDesktop = NULL;
StartupInfo.lpTitle = NULL;
StartupInfo.dwFlags = 0;
StartupInfo.cbReserved2 = 0;
StartupInfo.lpReserved2 = 0;
/* Wait for process termination */
WaitForSingleObject(ProcessInformation.hProcess, INFINITE);
Result = CreateProcessW(NULL,
CommandLine,
NULL,
NULL,
FALSE,
DETACHED_PROCESS,
NULL,
NULL,
&StartupInfo,
&ProcessInformation);
if (!Result)
{
TRACE("Failed to run setup process\n");
return FALSE;
}
GetExitCodeProcess(ProcessInformation.hProcess, &dwExitCode);
/* Wait for process termination */
WaitForSingleObject(ProcessInformation.hProcess, INFINITE);
/* Close handles */
CloseHandle(ProcessInformation.hThread);
CloseHandle(ProcessInformation.hProcess);
GetExitCodeProcess(ProcessInformation.hProcess, &dwExitCode);
TRACE ("RunSetup() done\n");
/* Close handles */
CloseHandle(ProcessInformation.hThread);
CloseHandle(ProcessInformation.hProcess);
return TRUE;
TRACE ("RunSetup() done\n");
return TRUE;
}
BOOL
RunSetup(VOID)
{
HANDLE hThread;
HANDLE hThread;
hThread = CreateThread(NULL, 0, RunSetupThreadProc, NULL, 0, NULL);
return hThread != NULL;
hThread = CreateThread(NULL,
0,
RunSetupThreadProc,
NULL,
0,
NULL);
return hThread != NULL;
}
/* EOF */

View file

@ -21,96 +21,97 @@ PWLSESSION WLSession = NULL;
/* FUNCTIONS *****************************************************************/
static BOOL
static
BOOL
StartServicesManager(VOID)
{
STARTUPINFOW StartupInfo;
PROCESS_INFORMATION ProcessInformation;
LPCWSTR ServiceString = L"services.exe";
BOOL res;
STARTUPINFOW StartupInfo;
PROCESS_INFORMATION ProcessInformation;
LPCWSTR ServiceString = L"services.exe";
BOOL res;
/* Start the service control manager (services.exe) */
ZeroMemory(&StartupInfo, sizeof(STARTUPINFOW));
StartupInfo.cb = sizeof(StartupInfo);
StartupInfo.lpReserved = NULL;
StartupInfo.lpDesktop = NULL;
StartupInfo.lpTitle = NULL;
StartupInfo.dwFlags = 0;
StartupInfo.cbReserved2 = 0;
StartupInfo.lpReserved2 = 0;
/* Start the service control manager (services.exe) */
ZeroMemory(&StartupInfo, sizeof(STARTUPINFOW));
StartupInfo.cb = sizeof(StartupInfo);
StartupInfo.lpReserved = NULL;
StartupInfo.lpDesktop = NULL;
StartupInfo.lpTitle = NULL;
StartupInfo.dwFlags = 0;
StartupInfo.cbReserved2 = 0;
StartupInfo.lpReserved2 = 0;
TRACE("WL: Creating new process - %S\n", ServiceString);
TRACE("WL: Creating new process - %S\n", ServiceString);
res = CreateProcessW(
ServiceString,
NULL,
NULL,
NULL,
FALSE,
DETACHED_PROCESS,
NULL,
NULL,
&StartupInfo,
&ProcessInformation);
if (!res)
{
ERR("WL: Failed to execute services (error %lu)\n", GetLastError());
return FALSE;
}
res = CreateProcessW(ServiceString,
NULL,
NULL,
NULL,
FALSE,
DETACHED_PROCESS,
NULL,
NULL,
&StartupInfo,
&ProcessInformation);
if (!res)
{
ERR("WL: Failed to execute services (error %lu)\n", GetLastError());
return FALSE;
}
TRACE("WL: Created new process - %S\n", ServiceString);
TRACE("WL: Created new process - %S\n", ServiceString);
CloseHandle(ProcessInformation.hThread);
CloseHandle(ProcessInformation.hProcess);
CloseHandle(ProcessInformation.hThread);
CloseHandle(ProcessInformation.hProcess);
TRACE("WL: StartServicesManager() done.\n");
TRACE("WL: StartServicesManager() done.\n");
return TRUE;
return TRUE;
}
static BOOL
static
BOOL
StartLsass(VOID)
{
STARTUPINFOW StartupInfo;
PROCESS_INFORMATION ProcessInformation;
LPCWSTR ServiceString = L"lsass.exe";
BOOL res;
STARTUPINFOW StartupInfo;
PROCESS_INFORMATION ProcessInformation;
LPCWSTR ServiceString = L"lsass.exe";
BOOL res;
/* Start the local security authority subsystem (lsass.exe) */
ZeroMemory(&StartupInfo, sizeof(STARTUPINFOW));
StartupInfo.cb = sizeof(StartupInfo);
StartupInfo.lpReserved = NULL;
StartupInfo.lpDesktop = NULL;
StartupInfo.lpTitle = NULL;
StartupInfo.dwFlags = 0;
StartupInfo.cbReserved2 = 0;
StartupInfo.lpReserved2 = 0;
/* Start the local security authority subsystem (lsass.exe) */
ZeroMemory(&StartupInfo, sizeof(STARTUPINFOW));
StartupInfo.cb = sizeof(StartupInfo);
StartupInfo.lpReserved = NULL;
StartupInfo.lpDesktop = NULL;
StartupInfo.lpTitle = NULL;
StartupInfo.dwFlags = 0;
StartupInfo.cbReserved2 = 0;
StartupInfo.lpReserved2 = 0;
TRACE("WL: Creating new process - %S\n", ServiceString);
TRACE("WL: Creating new process - %S\n", ServiceString);
res = CreateProcessW(
ServiceString,
NULL,
NULL,
NULL,
FALSE,
DETACHED_PROCESS,
NULL,
NULL,
&StartupInfo,
&ProcessInformation);
res = CreateProcessW(ServiceString,
NULL,
NULL,
NULL,
FALSE,
DETACHED_PROCESS,
NULL,
NULL,
&StartupInfo,
&ProcessInformation);
TRACE("WL: Created new process - %S\n", ServiceString);
TRACE("WL: Created new process - %S\n", ServiceString);
CloseHandle(ProcessInformation.hThread);
CloseHandle(ProcessInformation.hProcess);
CloseHandle(ProcessInformation.hThread);
CloseHandle(ProcessInformation.hProcess);
return res;
return res;
}
static VOID
static
VOID
WaitForLsass(VOID)
{
HANDLE hEvent;
@ -146,18 +147,19 @@ WaitForLsass(VOID)
}
static BOOL
InitKeyboardLayouts()
static
BOOL
InitKeyboardLayouts(VOID)
{
WCHAR wszKeyName[12], wszKLID[10];
DWORD dwSize = sizeof(wszKLID), dwType, i = 1;
DWORD dwSize = sizeof(wszKLID), dwType, i = 1;
HKEY hKey;
UINT Flags;
BOOL bRet = FALSE;
/* Open registry key with preloaded layouts */
if (RegOpenKeyExW(HKEY_CURRENT_USER, L"Keyboard Layout\\Preload", 0, KEY_READ, &hKey) == ERROR_SUCCESS)
{
if (RegOpenKeyExW(HKEY_CURRENT_USER, L"Keyboard Layout\\Preload", 0, KEY_READ, &hKey) == ERROR_SUCCESS)
{
while(TRUE)
{
/* Read values with integer names only */
@ -195,9 +197,9 @@ InitKeyboardLayouts()
/* Close the key now */
RegCloseKey(hKey);
}
else
WARN("RegOpenKeyExW(Keyboard Layout\\Preload) failed!\n");
}
else
WARN("RegOpenKeyExW(Keyboard Layout\\Preload) failed!\n");
if (!bRet)
{
@ -211,234 +213,242 @@ InitKeyboardLayouts()
BOOL
DisplayStatusMessage(
IN PWLSESSION Session,
IN HDESK hDesktop,
IN UINT ResourceId)
DisplayStatusMessage(IN PWLSESSION Session,
IN HDESK hDesktop,
IN UINT ResourceId)
{
WCHAR StatusMsg[MAX_PATH];
WCHAR StatusMsg[MAX_PATH];
if (Session->Gina.Version < WLX_VERSION_1_3)
return TRUE;
if (Session->Gina.Version < WLX_VERSION_1_3)
return TRUE;
if (Session->SuppressStatus)
return TRUE;
if (Session->SuppressStatus)
return TRUE;
if (LoadStringW(hAppInstance, ResourceId, StatusMsg, MAX_PATH) == 0)
return FALSE;
if (LoadStringW(hAppInstance, ResourceId, StatusMsg, MAX_PATH) == 0)
return FALSE;
return Session->Gina.Functions.WlxDisplayStatusMessage(Session->Gina.Context, hDesktop, 0, NULL, StatusMsg);
return Session->Gina.Functions.WlxDisplayStatusMessage(Session->Gina.Context, hDesktop, 0, NULL, StatusMsg);
}
BOOL
RemoveStatusMessage(
IN PWLSESSION Session)
RemoveStatusMessage(IN PWLSESSION Session)
{
if (Session->Gina.Version < WLX_VERSION_1_3)
return TRUE;
if (Session->Gina.Version < WLX_VERSION_1_3)
return TRUE;
return Session->Gina.Functions.WlxRemoveStatusMessage(Session->Gina.Context);
return Session->Gina.Functions.WlxRemoveStatusMessage(Session->Gina.Context);
}
static INT_PTR CALLBACK
GinaLoadFailedWindowProc(
IN HWND hwndDlg,
IN UINT uMsg,
IN WPARAM wParam,
IN LPARAM lParam)
static
INT_PTR
CALLBACK
GinaLoadFailedWindowProc(IN HWND hwndDlg,
IN UINT uMsg,
IN WPARAM wParam,
IN LPARAM lParam)
{
switch (uMsg)
{
case WM_COMMAND:
{
switch (LOWORD(wParam))
{
case IDOK:
EndDialog(hwndDlg, IDOK);
return TRUE;
}
break;
}
case WM_INITDIALOG:
{
int len;
WCHAR templateText[MAX_PATH], text[MAX_PATH];
switch (uMsg)
{
case WM_COMMAND:
{
switch (LOWORD(wParam))
{
case IDOK:
EndDialog(hwndDlg, IDOK);
return TRUE;
}
break;
}
len = GetDlgItemTextW(hwndDlg, IDC_GINALOADFAILED, templateText, MAX_PATH);
if (len)
{
wsprintfW(text, templateText, (LPWSTR)lParam);
SetDlgItemTextW(hwndDlg, IDC_GINALOADFAILED, text);
}
SetFocus(GetDlgItem(hwndDlg, IDOK));
return TRUE;
}
case WM_CLOSE:
{
EndDialog(hwndDlg, IDCANCEL);
return TRUE;
}
}
case WM_INITDIALOG:
{
int len;
WCHAR templateText[MAX_PATH], text[MAX_PATH];
return FALSE;
len = GetDlgItemTextW(hwndDlg, IDC_GINALOADFAILED, templateText, MAX_PATH);
if (len)
{
wsprintfW(text, templateText, (LPWSTR)lParam);
SetDlgItemTextW(hwndDlg, IDC_GINALOADFAILED, text);
}
SetFocus(GetDlgItem(hwndDlg, IDOK));
return TRUE;
}
case WM_CLOSE:
{
EndDialog(hwndDlg, IDCANCEL);
return TRUE;
}
}
return FALSE;
}
int WINAPI
WinMain(
IN HINSTANCE hInstance,
IN HINSTANCE hPrevInstance,
IN LPSTR lpCmdLine,
IN int nShowCmd)
int
WINAPI
WinMain(IN HINSTANCE hInstance,
IN HINSTANCE hPrevInstance,
IN LPSTR lpCmdLine,
IN int nShowCmd)
{
#if 0
LSA_STRING ProcessName, PackageName;
HANDLE LsaHandle;
LSA_OPERATIONAL_MODE Mode;
BOOLEAN Old;
ULONG AuthenticationPackage;
NTSTATUS Status;
LSA_STRING ProcessName, PackageName;
HANDLE LsaHandle;
LSA_OPERATIONAL_MODE Mode;
BOOLEAN Old;
ULONG AuthenticationPackage;
NTSTATUS Status;
#endif
ULONG HardErrorResponse;
MSG Msg;
ULONG HardErrorResponse;
MSG Msg;
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
UNREFERENCED_PARAMETER(nShowCmd);
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
UNREFERENCED_PARAMETER(nShowCmd);
hAppInstance = hInstance;
hAppInstance = hInstance;
if (!RegisterLogonProcess(GetCurrentProcessId(), TRUE))
{
ERR("WL: Could not register logon process\n");
NtShutdownSystem(ShutdownNoReboot);
ExitProcess(0);
}
if (!RegisterLogonProcess(GetCurrentProcessId(), TRUE))
{
ERR("WL: Could not register logon process\n");
NtShutdownSystem(ShutdownNoReboot);
ExitProcess(0);
}
WLSession = (PWLSESSION)HeapAlloc(GetProcessHeap(), 0, sizeof(WLSESSION));
if (!WLSession)
{
ERR("WL: Could not allocate memory for winlogon instance\n");
NtRaiseHardError(STATUS_SYSTEM_PROCESS_TERMINATED, 0, 0, NULL, OptionOk, &HardErrorResponse);
ExitProcess(1);
}
ZeroMemory(WLSession, sizeof(WLSESSION));
WLSession->DialogTimeout = 120; /* 2 minutes */
WLSession = (PWLSESSION)HeapAlloc(GetProcessHeap(), 0, sizeof(WLSESSION));
if (!WLSession)
{
ERR("WL: Could not allocate memory for winlogon instance\n");
NtRaiseHardError(STATUS_SYSTEM_PROCESS_TERMINATED, 0, 0, NULL, OptionOk, &HardErrorResponse);
ExitProcess(1);
}
if (!CreateWindowStationAndDesktops(WLSession))
{
ERR("WL: Could not create window station and desktops\n");
NtRaiseHardError(STATUS_SYSTEM_PROCESS_TERMINATED, 0, 0, NULL, OptionOk, &HardErrorResponse);
ExitProcess(1);
}
LockWorkstation(WLSession);
ZeroMemory(WLSession, sizeof(WLSESSION));
WLSession->DialogTimeout = 120; /* 2 minutes */
if (!CreateWindowStationAndDesktops(WLSession))
{
ERR("WL: Could not create window station and desktops\n");
NtRaiseHardError(STATUS_SYSTEM_PROCESS_TERMINATED, 0, 0, NULL, OptionOk, &HardErrorResponse);
ExitProcess(1);
}
LockWorkstation(WLSession);
/* Load default keyboard layouts */
if (!InitKeyboardLayouts())
{
ERR("WL: Could not preload keyboard layouts\n");
NtRaiseHardError(STATUS_SYSTEM_PROCESS_TERMINATED, 0, 0, NULL, OptionOk, &HardErrorResponse);
ExitProcess(1);
NtRaiseHardError(STATUS_SYSTEM_PROCESS_TERMINATED, 0, 0, NULL, OptionOk, &HardErrorResponse);
ExitProcess(1);
}
if (!StartServicesManager())
{
ERR("WL: Could not start services.exe\n");
NtRaiseHardError(STATUS_SYSTEM_PROCESS_TERMINATED, 0, 0, NULL, OptionOk, &HardErrorResponse);
ExitProcess(1);
}
if (!StartServicesManager())
{
ERR("WL: Could not start services.exe\n");
NtRaiseHardError(STATUS_SYSTEM_PROCESS_TERMINATED, 0, 0, NULL, OptionOk, &HardErrorResponse);
ExitProcess(1);
}
if (!StartLsass())
{
ERR("WL: Failed to start lsass.exe service (error %lu)\n", GetLastError());
NtRaiseHardError(STATUS_SYSTEM_PROCESS_TERMINATED, 0, 0, 0, OptionOk, &HardErrorResponse);
ExitProcess(1);
}
if (!StartLsass())
{
ERR("WL: Failed to start lsass.exe service (error %lu)\n", GetLastError());
NtRaiseHardError(STATUS_SYSTEM_PROCESS_TERMINATED, 0, 0, 0, OptionOk, &HardErrorResponse);
ExitProcess(1);
}
/* Load and initialize gina */
if (!GinaInit(WLSession))
{
ERR("WL: Failed to initialize Gina\n");
DialogBoxParam(hAppInstance, MAKEINTRESOURCE(IDD_GINALOADFAILED), GetDesktopWindow(), GinaLoadFailedWindowProc, (LPARAM)L"");
HandleShutdown(WLSession, WLX_SAS_ACTION_SHUTDOWN_REBOOT);
ExitProcess(1);
}
/* Load and initialize gina */
if (!GinaInit(WLSession))
{
ERR("WL: Failed to initialize Gina\n");
DialogBoxParam(hAppInstance, MAKEINTRESOURCE(IDD_GINALOADFAILED), GetDesktopWindow(), GinaLoadFailedWindowProc, (LPARAM)L"");
HandleShutdown(WLSession, WLX_SAS_ACTION_SHUTDOWN_REBOOT);
ExitProcess(1);
}
DisplayStatusMessage(WLSession, WLSession->WinlogonDesktop, IDS_REACTOSISSTARTINGUP);
DisplayStatusMessage(WLSession, WLSession->WinlogonDesktop, IDS_REACTOSISSTARTINGUP);
/* Wait for the LSA server */
WaitForLsass();
/* Wait for the LSA server */
WaitForLsass();
#if 0
/* Connect to NetLogon service (lsass.exe) */
/* Real winlogon uses "Winlogon" */
RtlInitUnicodeString((PUNICODE_STRING)&ProcessName, L"Winlogon");
Status = LsaRegisterLogonProcess(&ProcessName, &LsaHandle, &Mode);
if (Status == STATUS_PORT_CONNECTION_REFUSED)
{
/* Add the 'SeTcbPrivilege' privilege and try again */
Status = RtlAdjustPrivilege(SE_TCB_PRIVILEGE, TRUE, TRUE, &Old);
if (!NT_SUCCESS(Status))
{
ERR("RtlAdjustPrivilege() failed with error %lu\n", LsaNtStatusToWinError(Status));
return 1;
}
Status = LsaRegisterLogonProcess(&ProcessName, &LsaHandle, &Mode);
}
if (!NT_SUCCESS(Status))
{
ERR("LsaRegisterLogonProcess() failed with error %lu\n", LsaNtStatusToWinError(Status));
return 1;
}
/* Connect to NetLogon service (lsass.exe) */
/* Real winlogon uses "Winlogon" */
RtlInitUnicodeString((PUNICODE_STRING)&ProcessName, L"Winlogon");
Status = LsaRegisterLogonProcess(&ProcessName, &LsaHandle, &Mode);
if (Status == STATUS_PORT_CONNECTION_REFUSED)
{
/* Add the 'SeTcbPrivilege' privilege and try again */
Status = RtlAdjustPrivilege(SE_TCB_PRIVILEGE, TRUE, TRUE, &Old);
if (!NT_SUCCESS(Status))
{
ERR("RtlAdjustPrivilege() failed with error %lu\n", LsaNtStatusToWinError(Status));
return 1;
}
RtlInitUnicodeString((PUNICODE_STRING)&PackageName, MICROSOFT_KERBEROS_NAME_W);
Status = LsaLookupAuthenticationPackage(LsaHandle, &PackageName, &AuthenticationPackage);
if (!NT_SUCCESS(Status))
{
ERR("LsaLookupAuthenticationPackage() failed with error %lu\n", LsaNtStatusToWinError(Status));
LsaDeregisterLogonProcess(LsaHandle);
return 1;
}
Status = LsaRegisterLogonProcess(&ProcessName, &LsaHandle, &Mode);
}
if (!NT_SUCCESS(Status))
{
ERR("LsaRegisterLogonProcess() failed with error %lu\n", LsaNtStatusToWinError(Status));
return 1;
}
RtlInitUnicodeString((PUNICODE_STRING)&PackageName, MICROSOFT_KERBEROS_NAME_W);
Status = LsaLookupAuthenticationPackage(LsaHandle, &PackageName, &AuthenticationPackage);
if (!NT_SUCCESS(Status))
{
ERR("LsaLookupAuthenticationPackage() failed with error %lu\n", LsaNtStatusToWinError(Status));
LsaDeregisterLogonProcess(LsaHandle);
return 1;
}
#endif
/* Create a hidden window to get SAS notifications */
if (!InitializeSAS(WLSession))
{
ERR("WL: Failed to initialize SAS\n");
ExitProcess(2);
}
/* Create a hidden window to get SAS notifications */
if (!InitializeSAS(WLSession))
{
ERR("WL: Failed to initialize SAS\n");
ExitProcess(2);
}
//DisplayStatusMessage(Session, Session->WinlogonDesktop, IDS_PREPARENETWORKCONNECTIONS);
//DisplayStatusMessage(Session, Session->WinlogonDesktop, IDS_APPLYINGCOMPUTERSETTINGS);
//DisplayStatusMessage(Session, Session->WinlogonDesktop, IDS_PREPARENETWORKCONNECTIONS);
//DisplayStatusMessage(Session, Session->WinlogonDesktop, IDS_APPLYINGCOMPUTERSETTINGS);
/* Display logged out screen */
WLSession->LogonStatus = WKSTA_IS_LOGGED_OFF;
RemoveStatusMessage(WLSession);
/* Display logged out screen */
WLSession->LogonState = STATE_LOGGED_OFF;
RemoveStatusMessage(WLSession);
/* Check for pending setup */
if (GetSetupType() != 0)
{
TRACE("WL: Setup mode detected\n");
/* Check for pending setup */
if (GetSetupType() != 0)
{
TRACE("WL: Setup mode detected\n");
/* Run setup and reboot when done */
SwitchDesktop(WLSession->ApplicationDesktop);
RunSetup();
}
else
PostMessageW(WLSession->SASWindow, WLX_WM_SAS, WLX_SAS_TYPE_TIMEOUT, 0);
/* Run setup and reboot when done */
SwitchDesktop(WLSession->ApplicationDesktop);
RunSetup();
}
else
PostMessageW(WLSession->SASWindow, WLX_WM_SAS, WLX_SAS_TYPE_TIMEOUT, 0);
/* Tell kernel that CurrentControlSet is good (needed
* to support Last good known configuration boot) */
NtInitializeRegistry(CM_BOOT_FLAG_ACCEPTED | 1);
/* Tell kernel that CurrentControlSet is good (needed
* to support Last good known configuration boot) */
NtInitializeRegistry(CM_BOOT_FLAG_ACCEPTED | 1);
/* Message loop for the SAS window */
while (GetMessageW(&Msg, WLSession->SASWindow, 0, 0))
{
TranslateMessage(&Msg);
DispatchMessageW(&Msg);
}
/* Message loop for the SAS window */
while (GetMessageW(&Msg, WLSession->SASWindow, 0, 0))
{
TranslateMessage(&Msg);
DispatchMessageW(&Msg);
}
/* We never go there */
/* We never go there */
return 0;
return 0;
}

View file

@ -79,90 +79,166 @@ typedef BOOL (WINAPI * PFWLXREMOVESTATUSMESSAGE) (PVOID);
typedef struct _GINAFUNCTIONS
{
/* Functions always available for a valid GINA */
PFWLXNEGOTIATE WlxNegotiate; /* optional */
PFWLXINITIALIZE WlxInitialize;
/* Functions always available for a valid GINA */
PFWLXNEGOTIATE WlxNegotiate; /* optional */
PFWLXINITIALIZE WlxInitialize;
/* Functions available if WlxVersion >= WLX_VERSION_1_0 (MS Windows 3.5.0) */
PFWLXDISPLAYSASNOTICE WlxDisplaySASNotice;
PFWLXLOGGEDOUTSAS WlxLoggedOutSAS;
PFWLXACTIVATEUSERSHELL WlxActivateUserShell;
PFWLXLOGGEDONSAS WlxLoggedOnSAS;
PFWLXDISPLAYLOCKEDNOTICE WlxDisplayLockedNotice;
PFWLXWKSTALOCKEDSAS WlxWkstaLockedSAS;
PFWLXISLOCKOK WlxIsLockOk;
PFWLXISLOGOFFOK WlxIsLogoffOk;
PFWLXLOGOFF WlxLogoff;
PFWLXSHUTDOWN WlxShutdown;
/* Functions available if WlxVersion >= WLX_VERSION_1_0 (MS Windows 3.5.0) */
PFWLXDISPLAYSASNOTICE WlxDisplaySASNotice;
PFWLXLOGGEDOUTSAS WlxLoggedOutSAS;
PFWLXACTIVATEUSERSHELL WlxActivateUserShell;
PFWLXLOGGEDONSAS WlxLoggedOnSAS;
PFWLXDISPLAYLOCKEDNOTICE WlxDisplayLockedNotice;
PFWLXWKSTALOCKEDSAS WlxWkstaLockedSAS;
PFWLXISLOCKOK WlxIsLockOk;
PFWLXISLOGOFFOK WlxIsLogoffOk;
PFWLXLOGOFF WlxLogoff;
PFWLXSHUTDOWN WlxShutdown;
/* Functions available if WlxVersion >= WLX_VERSION_1_1 (MS Windows 3.5.1) */
PFWLXSCREENSAVERNOTIFY WlxScreenSaverNotify; /* optional */
PFWLXSTARTAPPLICATION WlxStartApplication; /* optional */
/* Functions available if WlxVersion >= WLX_VERSION_1_1 (MS Windows 3.5.1) */
PFWLXSCREENSAVERNOTIFY WlxScreenSaverNotify; /* optional */
PFWLXSTARTAPPLICATION WlxStartApplication; /* optional */
/* Functions available if WlxVersion >= WLX_VERSION_1_2 (MS Windows NT 4.0) */
/* Functions available if WlxVersion >= WLX_VERSION_1_2 (MS Windows NT 4.0) */
/* Functions available if WlxVersion >= WLX_VERSION_1_3 (MS Windows 2000) */
PFWLXNETWORKPROVIDERLOAD WlxNetworkProviderLoad; /* not called ATM */
PFWLXDISPLAYSTATUSMESSAGE WlxDisplayStatusMessage;
PFWLXGETSTATUSMESSAGE WlxGetStatusMessage; /* doesn't need to be called */
PFWLXREMOVESTATUSMESSAGE WlxRemoveStatusMessage;
/* Functions available if WlxVersion >= WLX_VERSION_1_3 (MS Windows 2000) */
PFWLXNETWORKPROVIDERLOAD WlxNetworkProviderLoad; /* not called ATM */
PFWLXDISPLAYSTATUSMESSAGE WlxDisplayStatusMessage;
PFWLXGETSTATUSMESSAGE WlxGetStatusMessage; /* doesn't need to be called */
PFWLXREMOVESTATUSMESSAGE WlxRemoveStatusMessage;
/* Functions available if WlxVersion >= WLX_VERSION_1_4 (MS Windows XP) */
/* Functions available if WlxVersion >= WLX_VERSION_1_4 (MS Windows XP) */
} GINAFUNCTIONS, *PGINAFUNCTIONS;
typedef struct _GINAINSTANCE
{
HMODULE hDllInstance;
GINAFUNCTIONS Functions;
PVOID Context;
DWORD Version;
BOOL UseCtrlAltDelete;
HMODULE hDllInstance;
GINAFUNCTIONS Functions;
PVOID Context;
DWORD Version;
BOOL UseCtrlAltDelete;
} GINAINSTANCE, *PGINAINSTANCE;
/* FIXME: put in an enum */
/* See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secauthn/security/winlogon_states.asp */
#define WKSTA_IS_LOGGED_OFF 0
#define WKSTA_IS_LOGGED_ON 1
#define WKSTA_IS_LOCKED 2
/*
* The picture Microsoft is trying to paint here
* (http://msdn.microsoft.com/en-us/library/windows/desktop/aa380547%28v=vs.85%29.aspx)
* about the Winlogon states is a little too simple.
*
* The real picture should look more like this:
*
* STATE_INIT
* Initial state. Required for session initialization. After intialization,
* the state will automatically change to STATE_LOGGED_OFF.
*
* STATE_LOGGED_OFF
* User is logged off. Winlogon shows the "Press Ctrl-Alt-Del for logon"
* dialog. The state changes to STATE_LOGGED_OFF_SAS when the user presses
* "Ctrl-Alt-Del". If DisableCAD is true, the state will automatically
* change to STATE_LOGGED_OFF_SAS without showing the dialog.
*
* STATE_LOGGED_OFF_SAS
* State shows the logon dialog. Entering the right credentials and pressing
* "OK" changes the state to STATE_LOGGED_ON. Pressing "Cancel" or a timeout
* changes the state back to STATE_LOGGED_OFF.
*
* STATE_LOGGED_ON
* User is logged on. Winlogon does not show any dialog. Pressing
* "Ctrl-Alt-Del" changes the state to STATE_LOGGED_ON_SAS and user
* inactivity changes the state to STATE_SCREENSAVER.
*
* STATE_LOGGED_ON_SAS
* Winlogon shows the security dialog. Pressing "Cancel" or "Task Manager"
* or a timeout change the state back to STATE_LOGGED_ON. Pressing "Change
* Password" does not change the state, because the security dialog is still
* visible behind the change password dialog. Pressing "Log off" changes the
* state to STATE_LOGGING_OFF. Pressing "Lock Computer" changes the state to
* STATE_LOCKED. Pressing "Shutdown" changes the state to
* STATE_SHUTTING_DOWN.
*
* STATE_SCREENSAVER
* Winlogon runs the screen saver. Upon user activity, the screensaver
* terminates and the state changes back to STATE_LOGGED_ON if the secure
* screen saver option is off. Otherwise, the state changes to STATE_LOCKED.
*
* STATE_LOGGING_OFF
* Winlogon shows the logoff dialog. Pressing "Cancel" or a timeout changes
* the state back to STATE_LOGGED_ON_SAS. Pressing "OK" logs off the user
* and changes the state to STATE_LOGGED_OFF.
*
* STATE_LOCKED
* Winlogon shows the locked message dialog. When the user presses "Ctrl-
* Alt-Del" the state changes to STATE_LOCKED_SAS. If DisableCAD is true,
* the state will automatically change to STATE_LOCKED_SAS without showing
* the dialog.
*
* STATE_LOCKED_SAS
* Winlogon shows the unlock dialog. Presing "Cancel" or a timeout will
* change the state back to STATE_LOCKED. Entering the right credentials and
* pressing "OK" unlocks the computer and changes the state to
* STATE_LOGGED_ON.
*
* STATE_SHUTTING_DOWN
* Winlogon shows the shutdown dialog. Presing "Cancel" or a timeout will
* change the state back to STATE_LOGGED_ON_SAS. Pressing "OK" will change
* the state to STATE_SHUT_DOWN.
*
* STATE_SHUT_DOWN
* Terminates Winlogon and initiates shut-down.
*/
typedef enum _LOGON_STATE
{
STATE_INIT, // not user yet
STATE_LOGGED_OFF,
STATE_LOGGED_OFF_SAS, // not user yet
STATE_LOGGED_ON,
STATE_LOGGED_ON_SAS, // not user yet
STATE_SCREENSAVER, // not user yet
STATE_LOCKED,
STATE_LOCKED_SAS, // not user yet
STATE_LOGGING_OFF, // not user yet
STATE_SHUTTING_DOWN, // not user yet
STATE_SHUT_DOWN // not user yet
} LOGON_STATE, *PLOGON_STATE;
#define LockWorkstation(Session)
#define UnlockWorkstation(Session)
typedef struct _WLSESSION
{
GINAINSTANCE Gina;
DWORD SASAction;
BOOL SuppressStatus;
BOOL TaskManHotkey;
HWND SASWindow;
HWINSTA InteractiveWindowStation;
LPWSTR InteractiveWindowStationName;
HDESK ApplicationDesktop;
HDESK WinlogonDesktop;
HDESK ScreenSaverDesktop;
LUID LogonId;
HANDLE UserToken;
HANDLE hProfileInfo;
DWORD LogonStatus;
DWORD DialogTimeout; /* Timeout for dialog boxes, in seconds */
GINAINSTANCE Gina;
DWORD SASAction;
BOOL SuppressStatus;
BOOL TaskManHotkey;
HWND SASWindow;
HWINSTA InteractiveWindowStation;
LPWSTR InteractiveWindowStationName;
HDESK ApplicationDesktop;
HDESK WinlogonDesktop;
HDESK ScreenSaverDesktop;
LUID LogonId;
HANDLE UserToken;
HANDLE hProfileInfo;
LOGON_STATE LogonState;
DWORD DialogTimeout; /* Timeout for dialog boxes, in seconds */
/* Screen-saver informations */
/* Screen-saver informations */
#ifndef USE_GETLASTINPUTINFO
HHOOK KeyboardHook;
HHOOK MouseHook;
HHOOK KeyboardHook;
HHOOK MouseHook;
#endif
HANDLE hEndOfScreenSaverThread;
HANDLE hScreenSaverParametersChanged;
HANDLE hUserActivity;
HANDLE hEndOfScreenSaver;
HANDLE hEndOfScreenSaverThread;
HANDLE hScreenSaverParametersChanged;
HANDLE hUserActivity;
HANDLE hEndOfScreenSaver;
#ifndef USE_GETLASTINPUTINFO
DWORD LastActivity;
DWORD LastActivity;
#endif
/* Logon informations */
DWORD Options;
WLX_MPR_NOTIFY_INFO MprNotifyInfo;
WLX_PROFILE_V2_0 *Profile;
/* Logon informations */
DWORD Options;
WLX_MPR_NOTIFY_INFO MprNotifyInfo;
WLX_PROFILE_V2_0 *Profile;
} WLSESSION, *PWLSESSION;
extern HINSTANCE hAppInstance;
@ -186,52 +262,43 @@ CreateUserEnvironment(IN PWLSESSION Session);
/* sas.c */
BOOL
SetDefaultLanguage(
IN BOOL UserProfile);
SetDefaultLanguage(IN BOOL UserProfile);
BOOL
InitializeSAS(
IN OUT PWLSESSION Session);
InitializeSAS(IN OUT PWLSESSION Session);
/* screensaver.c */
BOOL
InitializeScreenSaver(
IN OUT PWLSESSION Session);
InitializeScreenSaver(IN OUT PWLSESSION Session);
VOID
StartScreenSaver(
IN PWLSESSION Session);
StartScreenSaver(IN PWLSESSION Session);
/* winlogon.c */
BOOL
PlaySoundRoutine(
IN LPCWSTR FileName,
IN UINT Logon,
IN UINT Flags);
PlaySoundRoutine(IN LPCWSTR FileName,
IN UINT Logon,
IN UINT Flags);
BOOL
DisplayStatusMessage(
IN PWLSESSION Session,
IN HDESK hDesktop,
IN UINT ResourceId);
DisplayStatusMessage(IN PWLSESSION Session,
IN HDESK hDesktop,
IN UINT ResourceId);
BOOL
RemoveStatusMessage(
IN PWLSESSION Session);
RemoveStatusMessage(IN PWLSESSION Session);
/* wlx.c */
BOOL
GinaInit(
IN OUT PWLSESSION Session);
GinaInit(IN OUT PWLSESSION Session);
BOOL
CreateWindowStationAndDesktops(
IN OUT PWLSESSION Session);
CreateWindowStationAndDesktops(IN OUT PWLSESSION Session);
NTSTATUS
HandleShutdown(
IN OUT PWLSESSION Session,
IN DWORD wlxAction);
HandleShutdown(IN OUT PWLSESSION Session,
IN DWORD wlxAction);
VOID WINAPI WlxUseCtrlAltDel(HANDLE hWlx);
VOID WINAPI WlxSetContextPointer(HANDLE hWlx, PVOID pWlxContext);

View file

@ -3,19 +3,19 @@ add_subdirectory(packages)
#common hives
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/txtsetup.sif DESTINATION reactos NO_CAB FOR bootcd regtest)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hivecls_${ARCH}.inf DESTINATION reactos NO_CAB NAME_ON_CD hivecls.inf FOR bootcd regtest)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hivedef_${ARCH}.inf DESTINATION reactos NO_CAB NAME_ON_CD hivedef.inf FOR bootcd regtest)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hivesft_${ARCH}.inf DESTINATION reactos NO_CAB NAME_ON_CD hivesft.inf FOR bootcd regtest)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hivesys_${ARCH}.inf DESTINATION reactos NO_CAB NAME_ON_CD hivesys.inf FOR bootcd regtest)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hivecls.inf DESTINATION reactos NO_CAB NAME_ON_CD hivecls.inf FOR bootcd regtest)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hivedef.inf DESTINATION reactos NO_CAB NAME_ON_CD hivedef.inf FOR bootcd regtest)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hivesft.inf DESTINATION reactos NO_CAB NAME_ON_CD hivesft.inf FOR bootcd regtest)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hivesys.inf DESTINATION reactos NO_CAB NAME_ON_CD hivesys.inf FOR bootcd regtest)
# livecd hives
list(APPEND CD_HIVES
${CMAKE_CURRENT_SOURCE_DIR}/hivecls_${ARCH}.inf
${CMAKE_CURRENT_SOURCE_DIR}/hivedef_${ARCH}.inf
${CMAKE_CURRENT_SOURCE_DIR}/hivesft_${ARCH}.inf
${CMAKE_CURRENT_SOURCE_DIR}/hivesys_${ARCH}.inf
${CMAKE_CURRENT_SOURCE_DIR}/hivecls.inf
${CMAKE_CURRENT_SOURCE_DIR}/hivedef.inf
${CMAKE_CURRENT_SOURCE_DIR}/hivesft.inf
${CMAKE_CURRENT_SOURCE_DIR}/hivesys.inf
${CMAKE_CURRENT_SOURCE_DIR}/livecd.inf
${CMAKE_CURRENT_SOURCE_DIR}/hiveinst_${ARCH}.inf)
${CMAKE_CURRENT_SOURCE_DIR}/hiveinst.inf)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/sam
@ -54,6 +54,7 @@ add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/icon.ico DESTINATION root NO_CAB FO
#readme.txt
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/readme.txt DESTINATION root NO_CAB FOR all)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/readme.txt DESTINATION reactos FOR all)
#freeldr.ini
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/bootcd.ini DESTINATION root NO_CAB NAME_ON_CD freeldr.ini FOR bootcd regtest)

View file

@ -1,524 +0,0 @@
[Version]
Signature="$ReactOS$"
[AddReg]
HKLM,"SOFTWARE\Classes",,0x00000010
; Default key
HKCR,"*","",0x00000000,""
HKCR,"*\shellex\ContextMenuHandlers\Open With","",0x00000000,"{09799AFB-AD67-11d1-ABCD-00C04FC30936}"
; Folders
HKCR,"Folder","",0x00000000,"Folder"
;HKCR,"Folder\Defaulticon","",0x00000000,"%SystemRoot%\system32\shell32.dll,-4"
HKCR,"Folder\shell\open\command","",0x00000000,"explorer.exe ""%1"""
HKCR,"Folder\shell\explore\command","",0x00000000,"explorer.exe /e,""%1"""
HKCR,"Folder\shell\rootexplore","",0x00000000,"Explore from here"
HKCR,"Folder\shell\rootexplore\command","",0x00000000,"explorer.exe /e,/root,""%1"""
; Drive property page
HKCR,"CLSID\{5F5295E0-429F-1069-A2E2-08002B30309D}","",0x00000000,"Drive Property Page Extension"
HKCR,"CLSID\{5F5295E0-429F-1069-A2E2-08002B30309D}\InProcServer32","",0x00000000,"shell32.dll"
HKCR,"CLSID\{5F5295E0-429F-1069-A2E2-08002B30309D}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
; New Object Service
HKCR,"CLSID\{D969A300-E7FF-11d0-A93B-00A0C90F2719}","",0x00000000,"ReactOS New Object Service"
HKCR,"CLSID\{D969A300-E7FF-11d0-A93B-00A0C90F2719}\InProcServer32","",0x00000000,"shell32.dll"
HKCR,"CLSID\{D969A300-E7FF-11d0-A93B-00A0C90F2719}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
; Rich Text Files
HKCR,".rtf","",0x00000000,"rtffile"
HKCR,".rtf\shellnew","",0x00000000,""
HKCR,".rtf\shellnew","Data",0x00020000,"{\rtf1}"
HKCR,"rtffile","",0x00000000,"Rich Text Document"
HKCR,"rtffile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\wordpad.exe,-1404"
HKCR,"rtffile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-2"
HKCR,"rtffile\shell\open","",0x00000000,"Open"
HKCR,"rtffile\shell\open\command","",0x00020000,"%SystemRoot%\system32\wordpad.exe %1"
; Virtual Device Drivers
HKCR,".386","",0x00000000,"vxdfile"
HKCR,".vxd","",0x00000000,"vxdfile"
HKCR,"vxdfile","",0x00000000,"Virtual Device Driver"
HKCR,"vxdfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-156"
; Animated Cursors
HKCR,".ani","",0x00000000,"anifile"
HKCR,"anifile","",0x00000000,"Animated Cursor"
HKCR,"anifile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\main.cpl,-1039"
HKCR,"anifile\DefaultIcon","",0x00000000,"%1"
; DOS Batch-Files
HKCR,".bat","",0x00000000,"batfile"
HKCR,"batfile","",0x00000000,"DOS Batch File"
HKCR,"batfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-158"
HKCR,"batfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-153"
HKCR,"batfile\shell\edit\command","",0x00020000,"%SystemRoot%\system32\notepad.exe %1"
HKCR,"batfile\shell\open\command","",0x00000000,"""%1"" %*"
HKCR,".cmd","",0x00000000,"cmdfile"
HKCR,"cmdfile","",0x00000000,"ReactOS Command Script"
HKCR,"cmdfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-159"
HKCR,"cmdfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-153"
HKCR,"cmdfile\shell\edit\command","",0x00020000,"%SystemRoot%\system32\notepad.exe %1"
HKCR,"cmdfile\shell\open\command","",0x00000000,"""%1"" %*"
; Get DOS Applications a Icon
HKCR,".com","",0x00000000,"comfile"
HKCR,"comfile","",0x00000000,"DOS Application"
HKCR,"comfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-160"
HKCR,"comfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-3"
; Control Panel extensions
HKCR,".cpl","",0x00000000,"cplfile"
HKCR,"cplfile","",0x00000000,"Control Panel Extension"
HKCR,"cplfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-161"
HKCR,"cplfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-154"
HKCR,"cplfile\shell\cplopen","",0x00000000,"Open with Control Panel"
HKCR,"cplfile\shell\cplopen\command","",0x00020000,"%SystemRoot%\system32\rundll32.exe shell32.dll,Control_RunDLL %1,%*"
; Cursors
HKCR,".cur","",0x00000000,"curfile"
HKCR,"curfile","",0x00000000,"Cursor"
HKCR,"curfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-162"
HKCR,"curfile\DefaultIcon","",0x00000000,"%1"
; Dynamic Link Libraries
HKCR,".dll","",0x00000000,"dllfile"
HKCR,"dllfile","",0x00000000,"Dynamic Link Library"
HKCR,"dllfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-163"
HKCR,"dllfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-154"
; Device Drivers
HKCR,".drv","",0x00000000,"drvfile"
HKCR,"drvfile","",0x00000000,"Device Driver"
HKCR,"drvfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-164"
HKCR,"drvfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-154"
; Applicatons
HKCR,".exe","",0x00000000,"exefile"
HKCR,"exefile","",0x00000000,"ReactOS Application"
HKCR,"exefile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-165"
HKCR,"exefile\Defaulticon","",0x00000000,"%1"
HKCR,"exefile\shell\open\command","",0x00000000,"""%1"" %*"
; Fonts
HKCR,".fon","",0x00000000,"fonfile"
HKCR,"fonfile","",0x00000000,"Font File"
HKCR,"fonfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-166"
HKCR,"fonfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-155"
HKCR,".ttf","",0x00000000,"ttffile"
HKCR,"ttffile","",0x00000000,"TrueType Font File"
HKCR,"ttffile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-156"
HKCR,"ttffile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-167"
HKCR,"ttffile\shell\open\command","",0x00020000,"%SystemRoot%\system32\fontview.exe %1"
; Help Files
HKCR,".hlp","",0x00000000,"hlpfile"
HKCR,"hlpfile","",0x00000000,"Help File"
HKCR,"hlpfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-168"
HKCR,"hlpfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-24"
HKCR,"hlpfile\shell\open\command","",0x00020000,"%SystemRoot%\system32\winhlp32.exe %1"
HKCR,".chm","",0x00000000,"chm.file"
HKCR,"chm.file","",0x00000000,"Help File"
HKCR,"chm.file","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-168"
HKCR,"chm.file\DefaultIcon","",0x00020000,"%SystemRoot%\hh.exe,0"
HKCR,"chm.file\shell\open\command","",0x00020000,"%SystemRoot%\hh.exe %1"
; set MIME type for .html and .htm because Tiny webserver needs it
HKCR,".htm","",0x00000000,"html"
HKCR,".htm","Content Type",0x00000000,"text/html"
HKCR,".html","",0x00000000,"html"
HKCR,".html","Content Type",0x00000000,"text/html"
; Icons
HKCR,".ico","",0x00000000,"icofile"
HKCR,"icofile","",0x00000000,"Icon"
HKCR,"icofile\DefaultIcon","",0x00000000,"%1"
; JPEG Images
HKCR,".jpg","",0x00000000,"jpegfile"
HKCR,".jpeg","",0x00000000,"jpegfile"
HKCR,"jpegfile","",0x00000000,"JPEG Image"
HKCR,"jpegfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shimgvw.dll,0"
HKCR,"jpegfile\shell\open\command","",0x00020000,"rundll32.exe %SystemRoot%\system32\shimgvw.dll,ImageView_Fullscreen %1"
; Bitmap Images
HKCR,".bmp","",0x00000000,"bmpfile"
HKCR,"bmpfile","",0x00000000,"Bitmap Image"
HKCR,"bmpfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shimgvw.dll,0"
HKCR,"bmpfile\shell\open\command","",0x00020000,"rundll32.exe %SystemRoot%\system32\shimgvw.dll,ImageView_Fullscreen %1"
; PNG Images
HKCR,".png","",0x00000000,"pngfile"
HKCR,"pngfile","",0x00000000,"PNG Image"
HKCR,"pngfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shimgvw.dll,0"
HKCR,"pngfile\shell\open\command","",0x00020000,"rundll32.exe %SystemRoot%\system32\shimgvw.dll,ImageView_Fullscreen %1"
; GIF Images
HKCR,".gif","",0x00000000,"giffile"
HKCR,"giffile","",0x00000000,"GIF Image"
HKCR,"giffile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shimgvw.dll,0"
HKCR,"giffile\shell\open\command","",0x00020000,"rundll32.exe %SystemRoot%\system32\shimgvw.dll,ImageView_Fullscreen %1"
; Configuration Files
HKCR,".ini","",0x00000000,"inifile"
HKCR,"inifile","",0x00000000,"Configuration Settings"
HKCR,"inifile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-169"
HKCR,"inifile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-151"
HKCR,"inifile\shell\open\command","",0x00000000,"notepad.exe ""%1"""
; Setup Information Files
HKCR,".inf","",0x00000000,"inffile"
HKCR,"inffile","",0x00000000,"Setup Information"
HKCR,"inffile\FriendlyTypeName","",0x00020000,"%SystemRoot%\system32\setupapi.dll,-2001"
HKCR,"inffile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-151"
HKCR,"inffile\shell\open\command","",0x00000000,"notepad.exe ""%1"""
HKCR,"inffile\shell\Install","",0x00000000,"Install"
HKCR,"inffile\shell\Install\command","",0x00020000,"%SystemRoot%\system32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %1"
; Show icons for shortcuts in shell views (lnkfile is handled specially in shell32)
; Don't display extension for shortcuts
HKCR,".lnk","",0x00000000,"lnkfile"
HKCR,".lnk\shellnew","",0x00000000,""
HKCR,".lnk\shellnew","command",0x00020000,"%SystemRoot%\system32\rundll32.exe appwiz.cpl,NewLinkHere %1"
HKCR,"lnkfile","",0x00000000,"Shortcut"
HKCR,"lnkfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-170"
HKCR,"lnkfile","NeverShowExt",0x00000000,""
HKCR,"lnkfile","IsShortcut",0x00000000,"yes"
HKCR,"lnkfile\CLSID","",0x00000000,"{00021401-0000-0000-C000-000000000046}"
HKCR,"lnkfile\shellex\IconHandler","",0x00000000,"{00021401-0000-0000-C000-000000000046}"
HKCR,"lnkfile\shellex\ContextMenuHandlers\{00021401-0000-0000-C000-000000000046}","",0x00000000,""
HKCR,"lnkfile\shellex\PropertySheetHandlers\Shellink Property Page", "", 0x00000000, "{00021401-0000-0000-C000-000000000046}"
; Text Documents
HKCR,".log","",0x00000000,"txtfile"
HKCR,".txt","",0x00000000,"txtfile"
HKCR,".c","",0x00000000,"txtfile"
HKCR,".cpp","",0x00000000,"txtfile"
HKCR,".h","",0x00000000,"txtfile"
HKCR,".hpp","",0x00000000,"txtfile"
HKCR,".txt\shellnew","",0x00000000,""
HKCR,".txt\shellnew","NullFile",0x00020000,""
HKCR,"txtfile","",0x00000000,"Text Document"
HKCR,".txt","Content Type",0x00000000,"text/plain"
HKCR,"txtfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-152"
HKCR,"txtfile\shell\open\command","",0x00020000,"%SystemRoot%\system32\notepad.exe %1"
; XML Documents
HKCR,".xml","",0x00000000,"xmlfile"
HKCR,"xmlfile","",0x00000000,"XML Document"
HKCR,".xml","Content Type",0x00000000,"text/xml"
HKCR,"xmlfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-151"
HKCR,"xmlfile\shell\open\command","",0x00020000,"%SystemRoot%\system32\notepad.exe %1"
; MSI files
HKCR,".msi","",0x00000000,"MSI.Package"
HKCR,"Msi.Package\DefaultIcon","",0x00000000,"msiexec.exe"
HKCR,"Msi.Package\shell\Open\command","",0x00020000,"%SystemRoot%\system32\msiexec.exe /i ""%1"""
HKCR,"Msi.Package\shell\Repair\command","",0x00020000,"%SystemRoot%\system32\msiexec.exe /f ""%1"""
HKCR,"Msi.Package\shell\Uninstall\command","",0x00020000,"%SystemRoot%\system32\msiexec.exe /x ""%1"""
HKCR,".pif","",0x00000000,"piffile"
; Registration Entries
HKCR,".reg","",0x00000000,"regfile"
HKCR,"regfile","",0x00000000,"Registration Entries"
HKCR,"regfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-170"
HKCR,"regfile\DefaultIcon","",0x00020000,"%SystemRoot%\regedit.exe,1"
HKCR,"regfile\shell\edit\command","",0x00020000,"%SystemRoot%\system32\notepad.exe %1"
HKCR,"regfile\shell\open","",0x00000000,"Merge"
HKCR,"regfile\shell\open\command","",0x00000000,"regedit.exe ""%1"""
; Screen Savers
HKCR,".scr","",0x00000000,"scrfile"
HKCR,"scrfile","",0x00000000,"Screen Saver"
HKCR,"scrfile\Defaulticon","",0x00000000,"%1"
HKCR,"scrfile\shell\config","",0x00000000,"Configure"
HKCR,"scrfile\shell\config\command","",0x00000000,"""%1"""
HKCR,"scrfile\shell\install","",0x00000000,"Install"
HKCR,"scrfile\shell\install\command","",0x00000000,"rundll32.exe desk.cpl,InstallScreenSaver %l"
HKCR,"scrfile\shell\open","",0x00000000,"Test"
HKCR,"scrfile\shell\open\command","",0x00000000,"""%1"" /S"
; shell command files (e.g. "Show Desktop" in quicklaunch bar)
HKCR,".scf","",0x00000000,"SHCmdFile"
HKCR,"SHCmdFile","NeverShowExt",0x00000000,""
HKCR,"SHCmdFile","IsShortcut",0x00000000,"yes"
HKCR,"SHCmdFile\shell\open\command","",0x00000000,"explorer.exe ""%1"""
HKCR,"SHCmdFile\CLSID","",0x00000000,"{57651662-CE3E-11D0-8D77-00C04FC99D61}"
HKCR,"SHCmdFile\shellex\IconHandler","",0x00000000,"{57651662-CE3E-11D0-8D77-00C04FC99D61}"
; System-Files
HKCR,".sys","",0x00000000,"sysfile"
HKCR,"sysfile","",0x00000000,"System File"
HKCR,"regfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-171"
HKCR,"sysfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-154"
; URL shortcuts (e.g. used in favorites folder of IExplorer)
HKCR,".url","",0x00000000,"InternetShortcut"
; Wave Sounds
HKCR,".wav","",0x00000000,"SoundRec"
HKCR,"SoundRec","",0x00000000,"Wave Sound"
HKCR,"SoundRec\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-225"
HKCR,"SoundRec\shell\open\command","",0x00020000,"%SystemRoot%\system32\mplay32.exe %1"
; Midi Sounds
HKCR,".mid","",0x00000000,"MIDFile"
HKCR,".midi","",0x00000000,"MIDFile"
HKCR,"MIDFile","",0x00000000,"MIDI Sequence"
HKCR,"MIDFile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-225"
HKCR,"MIDFile\shell\open\command","",0x00020000,"%SystemRoot%\system32\mplay32.exe %1"
; Audio CD
HKCR,".cda","",0x00000000,"CDAFile"
HKCR,"CDAFile","",0x00000000,"CD Audio Track"
HKCR,"CDAFile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-225"
HKCR,"CDAFile\shell\open\command","",0x00020000,"%SystemRoot%\system32\mplay32.exe %1"
; Avi Files
HKCR,".avi","",0x00000000,"AVIFile"
HKCR,"AVIFile","",0x00000000,"Video Clip"
HKCR,"AVIFile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-224"
HKCR,"AVIFile\shell\open\command","",0x00020000,"%SystemRoot%\system32\mplay32.exe %1"
HKCR,"CLSID",,0x00000012
; For Shell32.dll
HKCR,"CLSID\{00021400-0000-0000-C000-000000000046}","",0x00000000,"Desktop"
HKCR,"CLSID\{00021400-0000-0000-C000-000000000046}\InProcServer32","",0x00000000,"shell32.dll"
HKCR,"CLSID\{00021400-0000-0000-C000-000000000046}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
HKCR,"CLSID\{00021401-0000-0000-C000-000000000046}","",0x00000000,"Shortcut"
HKCR,"CLSID\{00021401-0000-0000-C000-000000000046}\InProcServer32","",0x00000000,"shell32.dll"
HKCR,"CLSID\{00021401-0000-0000-C000-000000000046}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
HKCR,"CLSID\{00021401-0000-0000-C000-000000000046}\shellex\MayChangeDefaultMenu","",0x00000000,""
HKCR,"CLSID\{000214E6-0000-0000-C000-000000000046}","",0x00000000,"Shellfolder"
HKCR,"CLSID\{000214E6-0000-0000-C000-000000000046}\InProcServer32","",0x00000000,"shell32.dll"
HKCR,"CLSID\{000214E6-0000-0000-C000-000000000046}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
HKCR,"CLSID\{000214EE-0000-0000-C000-000000000046}","",0x00000000,"IShellLinkA"
HKCR,"CLSID\{000214EE-0000-0000-C000-000000000046}\InProcServer32","",0x00000000,"shell32.dll"
HKCR,"CLSID\{000214EE-0000-0000-C000-000000000046}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
HKCR,"CLSID\{000214F9-0000-0000-C000-000000000046}","",0x00000000,"IShellLinkW"
HKCR,"CLSID\{000214F9-0000-0000-C000-000000000046}\InProcServer32","",0x00000000,"shell32.dll"
HKCR,"CLSID\{000214F9-0000-0000-C000-000000000046}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
HKCR,"CLSID\{1F4DE370-D627-11D1-BA4F-00A0C91EEDBA}","",0x00000000,"Computer Search Results Folder"
HKCR,"CLSID\{1F4DE370-D627-11D1-BA4F-00A0C91EEDBA}","LocalizedString",0x00020000,"@%SystemRoot%\system32\shell32.dll,-30521"
HKCR,"CLSID\{1F4DE370-D627-11D1-BA4F-00A0C91EEDBA}\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-135"
HKCR,"CLSID\{1F4DE370-D627-11D1-BA4F-00A0C91EEDBA}\InProcServer32","",0x00020000,"%SystemRoot%\system32\shell32.dll"
HKCR,"CLSID\{1F4DE370-D627-11D1-BA4F-00A0C91EEDBA}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
HKCR,"CLSID\{1F4DE370-D627-11D1-BA4F-00A0C91EEDBA}\ShellFolder","Attributes",0x00010001,0x20180000
HKCR,"CLSID\{4657278A-411B-11d2-839A-00C04FD918D0}","",0x00000000,"Shell Drag and Drop helper"
HKCR,"CLSID\{4657278A-411B-11d2-839A-00C04FD918D0}\InProcServer32","",0x00020000,"%SystemRoot%\system32\shell32.dll"
HKCR,"CLSID\{4657278A-411B-11d2-839A-00C04FD918D0}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
; Folder Options CPL
HKCR,"CLSID\{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}","",0x00000000,"Folder Options"
HKCR,"CLSID\{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}","LocalizedString",0x00020000,"@%SystemRoot%\system32\shell32.dll,-150"
HKCR,"CLSID\{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}\InProcServer32","",0x00000000,"shell32.dll"
HKCR,"CLSID\{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
HKCR,"CLSID\{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-210"
HKCR,"CLSID\{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}\shell\Open\command","",0x00000000,"rundll32.exe shell32.dll,Options_RunDLL 0"
HKCR,"CLSID\{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}\shell\RunAs\command","",0x00000000,"rundll32.exe shell32.dll,Options_RunDLL 0"
HKCR,"CLSID\{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}\ShellFolder","Attributes",0x00010001,0x00000000
; Open With shell extension
HKCR,"CLSID\{09799AFB-AD67-11d1-ABCD-00C04FC30936}","",0x00000000,"Open With Context Menu Handler"
HKCR,"CLSID\{09799AFB-AD67-11d1-ABCD-00C04FC30936}\InProcServer32","",0x00000000,"shell32.dll"
HKCR,"CLSID\{09799AFB-AD67-11d1-ABCD-00C04FC30936}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
HKCR,"CLSID\{09799AFB-AD67-11d1-ABCD-00C04FC30936}\shellex\MayChangeDefaultMenu","",0x00000000,""
HKCR,"SystemFileAssociations","",0x00000000,""
HKCR,"Applications","",0x00000000,""
; Recycle bin is not implemented
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}","",0x00000000,"Recycle Bin"
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}","LocalizedString",0x00020000,"@%SystemRoot%\system32\shell32.dll,-8964"
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}","InfoTip",0x00020000,"@%SystemRoot%\system32\shell32.dll,-22915"
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}","IntroText",0x00020000,"@%SystemRoot%\system32\shell32.dll,-31748"
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}","SortOrderIndex",0x00010001,0x00000060
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,31"
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\DefaultIcon","Empty",0x00020000,"%SystemRoot%\system32\shell32.dll,31"
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\DefaultIcon","Full",0x00020000,"%SystemRoot%\system32\shell32.dll,32"
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\InProcServer32","",0x00020000,"%SystemRoot%\system32\shell32.dll"
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\ShellFolder","Attributes",0x00010001,0x20000140
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\ShellFolder","CallForAttributes",0x00010001,0x00000040
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\shellex\ContextMenuHandlers\{645FF040-5081-101B-9F08-00AA002F954E}","",0x00000000,""
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\shellex\PropertySheetHandlers\{645FF040-5081-101B-9F08-00AA002F954E}","",0x00000000,""
; deskadp.dll shell extension
HKCR,"CLSID\{42071712-76d4-11d1-8b24-00a0c9068ff3}","",0x00000000,"Display Adapter CPL Extension"
HKCR,"CLSID\{42071712-76d4-11d1-8b24-00a0c9068ff3}\InProcServer32","",0x00020000,"%SystemRoot%\system32\deskadp.dll"
HKCR,"CLSID\{42071712-76d4-11d1-8b24-00a0c9068ff3}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
; deskmon.dll shell extension
HKCR,"CLSID\{42071713-76d4-11d1-8b24-00a0c9068ff3}","",0x00000000,"Display Monitor CPL Extension"
HKCR,"CLSID\{42071713-76d4-11d1-8b24-00a0c9068ff3}\InProcServer32","",0x00020000,"%SystemRoot%\system32\deskmon.dll"
HKCR,"CLSID\{42071713-76d4-11d1-8b24-00a0c9068ff3}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
; For TCPIP Protocol property page
HKCR,"CLSID\{A907657F-6FDF-11D0-8EFB-00C04FD912B2}","",0x00000000,"TCP/IP Configuration Notify Object"
HKCR,"CLSID\{A907657F-6FDF-11D0-8EFB-00C04FD912B2}\InProcServer32","",0x00000000,"netcfgx.dll"
HKCR,"CLSID\{A907657F-6FDF-11D0-8EFB-00C04FD912B2}\InProcServer32","ThreadingModel",0x00000000,"Both"
; For dxdiagn.dll
HKCR,"CLSID\{A65B8071-3BFE-4213-9A5B-491DA4461CA7}","",0x00000000,"DxDiagProvider Class"
HKCR,"CLSID\{A65B8071-3BFE-4213-9A5B-491DA4461CA7}\InProcServer32","",0x00000000,"%SystemRoot%\system32\dxdiagn.dll"
HKCR,"CLSID\{A65B8071-3BFE-4213-9A5B-491DA4461CA7}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
HKCR,"CLSID\{A65B8071-3BFE-4213-9A5B-491DA4461CA7}\ProgID","",0x00000000,"DxDiag.DxDiagProvider.1"
HKCR,"CLSID\{A65B8071-3BFE-4213-9A5B-491DA4461CA7}\VersionIndependentProgID","",0x00000000,"DxDiag.DxDiagProvider"
HKCR,"NDS\Clsid","",0x00000002,"{323991f0-7bad-11cf-b03d-00aa006e0975}"
HKCR,"WinNT\Clsid","",0x00000002,"{8b20cd60-0f29-11cf-abc4-02608c9e7553}"
; For language support:
HKCR,"MIME",,0x00000012
HKCR,"MIME\Database",,0x00000012
HKCR,"MIME\Database\Rfc1766",,0x00000012
HKCR,"MIME\Database\Rfc1766","0436",0x00000000,"af;Afrikaans"
HKCR,"MIME\Database\Rfc1766","041C",0x00000000,"sq;Albanian"
HKCR,"MIME\Database\Rfc1766","0001",0x00000000,"ar;Arabic"
HKCR,"MIME\Database\Rfc1766","1401",0x00000000,"ar-dz;Arabic (Algeria)"
HKCR,"MIME\Database\Rfc1766","3C01",0x00000000,"ar-bh;Arabic (Bahrain)"
HKCR,"MIME\Database\Rfc1766","0C01",0x00000000,"ar-eg;Arabic (Egypt)"
HKCR,"MIME\Database\Rfc1766","0801",0x00000000,"ar-iq;Arabic (Iraq)"
HKCR,"MIME\Database\Rfc1766","2C01",0x00000000,"ar-jo;Arabic (Jordan)"
HKCR,"MIME\Database\Rfc1766","3401",0x00000000,"ar-kw;Arabic (Kuwait)"
HKCR,"MIME\Database\Rfc1766","3001",0x00000000,"ar-lb;Arabic (Lebanon)"
HKCR,"MIME\Database\Rfc1766","1001",0x00000000,"ar-ly;Arabic (Libya)"
HKCR,"MIME\Database\Rfc1766","1801",0x00000000,"ar-ma;Arabic (Morocco)"
HKCR,"MIME\Database\Rfc1766","2001",0x00000000,"ar-om;Arabic (Oman)"
HKCR,"MIME\Database\Rfc1766","4001",0x00000000,"ar-qa;Arabic (Qatar)"
HKCR,"MIME\Database\Rfc1766","0401",0x00000000,"ar-sa;Arabic (Saudi Arabia)"
HKCR,"MIME\Database\Rfc1766","2801",0x00000000,"ar-sy;Arabic (Syria)"
HKCR,"MIME\Database\Rfc1766","1C01",0x00000000,"ar-tn;Arabic (Tunisia)"
HKCR,"MIME\Database\Rfc1766","3801",0x00000000,"ar-ae;Arabic (U.A.E.)"
HKCR,"MIME\Database\Rfc1766","2401",0x00000000,"ar-ye;Arabic (Yemen)"
HKCR,"MIME\Database\Rfc1766","042B",0x00000000,"hy;Armenian"
HKCR,"MIME\Database\Rfc1766","042D",0x00000000,"eu;Basque"
HKCR,"MIME\Database\Rfc1766","0423",0x00000000,"be;Belarusian"
HKCR,"MIME\Database\Rfc1766","0445",0x00000000,"bn;Bengali"
HKCR,"MIME\Database\Rfc1766","0402",0x00000000,"bg;Bulgarian"
HKCR,"MIME\Database\Rfc1766","0403",0x00000000,"ca;Catalan"
HKCR,"MIME\Database\Rfc1766","0004",0x00000000,"zh;Chinese"
HKCR,"MIME\Database\Rfc1766","0804",0x00000000,"zh-cn;Chinese (China)"
HKCR,"MIME\Database\Rfc1766","0C04",0x00000000,"zh-hk;Chinese (Hong Kong SAR)"
HKCR,"MIME\Database\Rfc1766","1004",0x00000000,"zh-sg;Chinese (Singapore)"
HKCR,"MIME\Database\Rfc1766","0404",0x00000000,"zh-tw;Chinese (Taiwan)"
HKCR,"MIME\Database\Rfc1766","041A",0x00000000,"hr;Croatian"
HKCR,"MIME\Database\Rfc1766","0405",0x00000000,"cs;Czech"
HKCR,"MIME\Database\Rfc1766","0406",0x00000000,"da;Danish"
HKCR,"MIME\Database\Rfc1766","0813",0x00000000,"nl-be;Dutch (Belgium)"
HKCR,"MIME\Database\Rfc1766","0413",0x00000000,"nl;Dutch (Netherlands)"
HKCR,"MIME\Database\Rfc1766","0009",0x00000000,"en;English"
HKCR,"MIME\Database\Rfc1766","0C09",0x00000000,"en-au;English (Australia)"
HKCR,"MIME\Database\Rfc1766","2809",0x00000000,"en-bz;English (Belize)"
HKCR,"MIME\Database\Rfc1766","1009",0x00000000,"en-ca;English (Canada)"
HKCR,"MIME\Database\Rfc1766","1809",0x00000000,"en-ie;English (Ireland)"
HKCR,"MIME\Database\Rfc1766","2009",0x00000000,"en-jm;English (Jamaica)"
HKCR,"MIME\Database\Rfc1766","1409",0x00000000,"en-nz;English (New Zealand)"
HKCR,"MIME\Database\Rfc1766","1C09",0x00000000,"en-za;English (South Africa)"
HKCR,"MIME\Database\Rfc1766","2C09",0x00000000,"en-tt;English (Trinidad)"
HKCR,"MIME\Database\Rfc1766","0809",0x00000000,"en-gb;English (United Kingdom)"
HKCR,"MIME\Database\Rfc1766","0409",0x00000000,"en-us;English (United States)"
HKCR,"MIME\Database\Rfc1766","048F",0x00000000,"eo;Esperanto"
HKCR,"MIME\Database\Rfc1766","0425",0x00000000,"et;Estonian"
HKCR,"MIME\Database\Rfc1766","0438",0x00000000,"fo;Faeroese"
HKCR,"MIME\Database\Rfc1766","0429",0x00000000,"fa;Farsi"
HKCR,"MIME\Database\Rfc1766","040B",0x00000000,"fi;Finnish"
HKCR,"MIME\Database\Rfc1766","080C",0x00000000,"fr-be;French (Belgium)"
HKCR,"MIME\Database\Rfc1766","0C0C",0x00000000,"fr-ca;French (Canada)"
HKCR,"MIME\Database\Rfc1766","040C",0x00000000,"fr;French (France)"
HKCR,"MIME\Database\Rfc1766","140C",0x00000000,"fr-lu;French (Luxembourg)"
HKCR,"MIME\Database\Rfc1766","100C",0x00000000,"fr-ch;French (Switzerland)"
HKCR,"MIME\Database\Rfc1766","043C",0x00000000,"gd;Gaelic"
HKCR,"MIME\Database\Rfc1766","0C07",0x00000000,"de-at;German (Austria)"
HKCR,"MIME\Database\Rfc1766","0407",0x00000000,"de;German (Germany)"
HKCR,"MIME\Database\Rfc1766","1407",0x00000000,"de-li;German (Liechtenstein)"
HKCR,"MIME\Database\Rfc1766","1007",0x00000000,"de-lu;German (Luxembourg)"
HKCR,"MIME\Database\Rfc1766","0807",0x00000000,"de-ch;German (Switzerland)"
HKCR,"MIME\Database\Rfc1766","0408",0x00000000,"el;Greek"
HKCR,"MIME\Database\Rfc1766","040D",0x00000000,"he;Hebrew"
HKCR,"MIME\Database\Rfc1766","0439",0x00000000,"hi;Hindi"
HKCR,"MIME\Database\Rfc1766","040E",0x00000000,"hu;Hungarian"
HKCR,"MIME\Database\Rfc1766","040F",0x00000000,"is;Icelandic"
HKCR,"MIME\Database\Rfc1766","0421",0x00000000,"in;Indonesian"
HKCR,"MIME\Database\Rfc1766","0410",0x00000000,"it;Italian (Italy)"
HKCR,"MIME\Database\Rfc1766","0810",0x00000000,"it-ch;Italian (Switzerland)"
HKCR,"MIME\Database\Rfc1766","0411",0x00000000,"ja;Japanese"
HKCR,"MIME\Database\Rfc1766","043F",0x00000000,"kk;Kazakh"
HKCR,"MIME\Database\Rfc1766","0412",0x00000000,"ko;Korean"
HKCR,"MIME\Database\Rfc1766","0426",0x00000000,"lv;Latvian"
HKCR,"MIME\Database\Rfc1766","0427",0x00000000,"lt;Lithuanian"
HKCR,"MIME\Database\Rfc1766","042F",0x00000000,"mk;FYRO Macedonian"
HKCR,"MIME\Database\Rfc1766","043E",0x00000000,"ms;Malay (Malaysia)"
HKCR,"MIME\Database\Rfc1766","043A",0x00000000,"mt;Maltese"
HKCR,"MIME\Database\Rfc1766","0414",0x00000000,"no;Norwegian (Bokmal)"
HKCR,"MIME\Database\Rfc1766","0814",0x00000000,"no;Norwegian (Nynorsk)"
HKCR,"MIME\Database\Rfc1766","0415",0x00000000,"pl;Polish"
HKCR,"MIME\Database\Rfc1766","0416",0x00000000,"pt-br;Portuguese (Brazil)"
HKCR,"MIME\Database\Rfc1766","0816",0x00000000,"pt;Portuguese (Portugal)"
HKCR,"MIME\Database\Rfc1766","0417",0x00000000,"rm;Rhaeto-Romanic"
HKCR,"MIME\Database\Rfc1766","0418",0x00000000,"ro;Romanian"
HKCR,"MIME\Database\Rfc1766","0818",0x00000000,"ro-mo;Romanian (Moldova)"
HKCR,"MIME\Database\Rfc1766","0419",0x00000000,"ru;Russian"
HKCR,"MIME\Database\Rfc1766","0819",0x00000000,"ru-mo;Russian (Moldova)"
HKCR,"MIME\Database\Rfc1766","0C1A",0x00000000,"sr;Serbian (Cyrillic)"
HKCR,"MIME\Database\Rfc1766","081A",0x00000000,"sr;Serbian (Latin)"
HKCR,"MIME\Database\Rfc1766","041B",0x00000000,"sk;Slovak"
HKCR,"MIME\Database\Rfc1766","0424",0x00000000,"sl;Slovenian"
HKCR,"MIME\Database\Rfc1766","042E",0x00000000,"sb;Sorbian"
HKCR,"MIME\Database\Rfc1766","2C0A",0x00000000,"es-ar;Spanish (Argentina)"
HKCR,"MIME\Database\Rfc1766","400A",0x00000000,"es-bo;Spanish (Bolivia)"
HKCR,"MIME\Database\Rfc1766","340A",0x00000000,"es-cl;Spanish (Chile)"
HKCR,"MIME\Database\Rfc1766","240A",0x00000000,"es-co;Spanish (Colombia)"
HKCR,"MIME\Database\Rfc1766","140A",0x00000000,"es-cr;Spanish (Costa Rica)"
HKCR,"MIME\Database\Rfc1766","1C0A",0x00000000,"es-do;Spanish (Dominican Republic)"
HKCR,"MIME\Database\Rfc1766","300A",0x00000000,"es-ec;Spanish (Ecuador)"
HKCR,"MIME\Database\Rfc1766","440A",0x00000000,"es-sv;Spanish (El Salvador)"
HKCR,"MIME\Database\Rfc1766","100A",0x00000000,"es-gt;Spanish (Guatemala)"
HKCR,"MIME\Database\Rfc1766","480A",0x00000000,"es-hn;Spanish (Honduras)"
HKCR,"MIME\Database\Rfc1766","0C0A",0x00000000,"es;Spanish (International Sort)"
HKCR,"MIME\Database\Rfc1766","080A",0x00000000,"es-mx;Spanish (Mexico)"
HKCR,"MIME\Database\Rfc1766","4C0A",0x00000000,"es-ni;Spanish (Nicaragua)"
HKCR,"MIME\Database\Rfc1766","180A",0x00000000,"es-pa;Spanish (Panama)"
HKCR,"MIME\Database\Rfc1766","3C0A",0x00000000,"es-py;Spanish (Paraguay)"
HKCR,"MIME\Database\Rfc1766","280A",0x00000000,"es-pe;Spanish (Peru)"
HKCR,"MIME\Database\Rfc1766","500A",0x00000000,"es-pr;Spanish (Puerto Rico)"
HKCR,"MIME\Database\Rfc1766","040A",0x00000000,"es;Spanish (Traditional Sort)"
HKCR,"MIME\Database\Rfc1766","380A",0x00000000,"es-uy;Spanish (Uruguay)"
HKCR,"MIME\Database\Rfc1766","200A",0x00000000,"es-ve;Spanish (Venezuela)"
HKCR,"MIME\Database\Rfc1766","0430",0x00000000,"sx;Sutu"
HKCR,"MIME\Database\Rfc1766","041D",0x00000000,"sv;Swedish"
HKCR,"MIME\Database\Rfc1766","081D",0x00000000,"sv-fi;Swedish (Finland)"
HKCR,"MIME\Database\Rfc1766","041E",0x00000000,"th;Thai"
HKCR,"MIME\Database\Rfc1766","0431",0x00000000,"ts;Tsonga"
HKCR,"MIME\Database\Rfc1766","0432",0x00000000,"tn;Tswana"
HKCR,"MIME\Database\Rfc1766","041F",0x00000000,"tr;Turkish"
HKCR,"MIME\Database\Rfc1766","0422",0x00000000,"uk;Ukrainian"
HKCR,"MIME\Database\Rfc1766","0420",0x00000000,"ur;Urdu"
HKCR,"MIME\Database\Rfc1766","042A",0x00000000,"vi;Vietnamese"
HKCR,"MIME\Database\Rfc1766","0490",0x00000000,"wa;Walloon"
HKCR,"MIME\Database\Rfc1766","0434",0x00000000,"xh;Xhosa"
HKCR,"MIME\Database\Rfc1766","043D",0x00000000,"ji;Yiddish"
HKCR,"MIME\Database\Rfc1766","0435",0x00000000,"zu;Zulu"
HKCR,TypeLib\{00020430-0000-0000-C000-000000000046}\1.0,,,"OLE Automation"
HKCR,TypeLib\{00020430-0000-0000-C000-000000000046}\1.0\0\win16,,,"stdole.tlb"
HKCR,TypeLib\{00020430-0000-0000-C000-000000000046}\1.0\0\win32,,,"stdole32.tlb"
HKCR,TypeLib\{00020430-0000-0000-C000-000000000046}\1.0\FLAGS,,,"1"
HKCR,TypeLib\{00020430-0000-0000-C000-000000000046}\2.0,,,"OLE Automation"
HKCR,TypeLib\{00020430-0000-0000-C000-000000000046}\2.0\0\win32,,,"stdole2.tlb"
HKCR,TypeLib\{00020430-0000-0000-C000-000000000046}\2.0\FLAGS,,,"0"
; EOF

View file

@ -1,520 +0,0 @@
[Version]
Signature="$ReactOS$"
[AddReg]
HKLM,"SOFTWARE\Classes",,0x00000010
; Default key
HKCR,"*","",0x00000000,""
HKCR,"*\shellex\ContextMenuHandlers\Open With","",0x00000000,"{09799AFB-AD67-11d1-ABCD-00C04FC30936}"
; Folders
HKCR,"Folder","",0x00000000,"Folder"
;HKCR,"Folder\Defaulticon","",0x00000000,"%SystemRoot%\system32\shell32.dll,-4"
HKCR,"Folder\shell\open\command","",0x00000000,"explorer.exe ""%1"""
HKCR,"Folder\shell\explore\command","",0x00000000,"explorer.exe /e,""%1"""
HKCR,"Folder\shell\rootexplore","",0x00000000,"Explore from here"
HKCR,"Folder\shell\rootexplore\command","",0x00000000,"explorer.exe /e,/root,""%1"""
; Drive property page
HKCR,"CLSID\{5F5295E0-429F-1069-A2E2-08002B30309D}","",0x00000000,"Drive Property Page Extension"
HKCR,"CLSID\{5F5295E0-429F-1069-A2E2-08002B30309D}\InProcServer32","",0x00000000,"shell32.dll"
HKCR,"CLSID\{5F5295E0-429F-1069-A2E2-08002B30309D}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
; New Object Service
HKCR,"CLSID\{D969A300-E7FF-11d0-A93B-00A0C90F2719}","",0x00000000,"ReactOS New Object Service"
HKCR,"CLSID\{D969A300-E7FF-11d0-A93B-00A0C90F2719}\InProcServer32","",0x00000000,"shell32.dll"
HKCR,"CLSID\{D969A300-E7FF-11d0-A93B-00A0C90F2719}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
; Rich Text Files
HKCR,".rtf","",0x00000000,"rtffile"
HKCR,".rtf\shellnew","",0x00000000,""
HKCR,".rtf\shellnew","Data",0x00020000,"{\rtf1}"
HKCR,"rtffile","",0x00000000,"Rich Text Document"
HKCR,"rtffile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\wordpad.exe,-1404"
HKCR,"rtffile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-2"
HKCR,"rtffile\shell\open","",0x00000000,"Open"
HKCR,"rtffile\shell\open\command","",0x00020000,"%SystemRoot%\system32\wordpad.exe %1"
; Virtual Device Drivers
HKCR,".386","",0x00000000,"vxdfile"
HKCR,".vxd","",0x00000000,"vxdfile"
HKCR,"vxdfile","",0x00000000,"Virtual Device Driver"
HKCR,"vxdfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-157"
; Animated Cursors
HKCR,".ani","",0x00000000,"anifile"
HKCR,"anifile","",0x00000000,"Animated Cursor"
HKCR,"anifile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\main.cpl,-1039"
HKCR,"anifile\DefaultIcon","",0x00000000,"%1"
; DOS Batch-Files
HKCR,".bat","",0x00000000,"batfile"
HKCR,"batfile","",0x00000000,"DOS Batch File"
HKCR,"batfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-158"
HKCR,"batfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-153"
HKCR,"batfile\shell\edit\command","",0x00020000,"%SystemRoot%\system32\notepad.exe %1"
HKCR,"batfile\shell\open\command","",0x00000000,"""%1"" %*"
HKCR,".cmd","",0x00000000,"cmdfile"
HKCR,"cmdfile","",0x00000000,"ReactOS Command Script"
HKCR,"cmdfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-159"
HKCR,"cmdfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-153"
HKCR,"cmdfile\shell\edit\command","",0x00020000,"%SystemRoot%\system32\notepad.exe %1"
HKCR,"cmdfile\shell\open\command","",0x00000000,"""%1"" %*"
; Get DOS Applications a Icon
HKCR,".com","",0x00000000,"comfile"
HKCR,"comfile","",0x00000000,"DOS Application"
HKCR,"comfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-160"
HKCR,"comfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-3"
; Control Panel extensions
HKCR,".cpl","",0x00000000,"cplfile"
HKCR,"cplfile","",0x00000000,"Control Panel Extension"
HKCR,"cplfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-161"
HKCR,"cplfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-154"
HKCR,"cplfile\shell\cplopen","",0x00000000,"Open with Control Panel"
HKCR,"cplfile\shell\cplopen\command","",0x00020000,"%SystemRoot%\system32\rundll32.exe shell32.dll,Control_RunDLL %1,%*"
; Cursors
HKCR,".cur","",0x00000000,"curfile"
HKCR,"curfile","",0x00000000,"Cursor"
HKCR,"curfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-162"
HKCR,"curfile\DefaultIcon","",0x00000000,"%1"
; Dynamic Link Libraries
HKCR,".dll","",0x00000000,"dllfile"
HKCR,"dllfile","",0x00000000,"Dynamic Link Library"
HKCR,"dllfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-163"
HKCR,"dllfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-154"
; Device Drivers
HKCR,".drv","",0x00000000,"drvfile"
HKCR,"drvfile","",0x00000000,"Device Driver"
HKCR,"drvfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-164"
HKCR,"drvfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-154"
; Applicatons
HKCR,".exe","",0x00000000,"exefile"
HKCR,"exefile","",0x00000000,"ReactOS Application"
HKCR,"exefile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-165"
HKCR,"exefile\Defaulticon","",0x00000000,"%1"
HKCR,"exefile\shell\open\command","",0x00000000,"""%1"" %*"
; Fonts
HKCR,".fon","",0x00000000,"fonfile"
HKCR,"fonfile","",0x00000000,"Font File"
HKCR,"fonfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-166"
HKCR,"fonfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-155"
HKCR,".ttf","",0x00000000,"ttffile"
HKCR,"ttffile","",0x00000000,"TrueType Font File"
HKCR,"ttffile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-156"
HKCR,"ttffile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-167"
HKCR,"ttffile\shell\open\command","",0x00020000,"%SystemRoot%\system32\fontview.exe %1"
; Help Files
HKCR,".hlp","",0x00000000,"hlpfile"
HKCR,"hlpfile","",0x00000000,"Help File"
HKCR,"hlpfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-168"
HKCR,"hlpfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-24"
HKCR,"hlpfile\shell\open\command","",0x00020000,"%SystemRoot%\system32\winhlp32.exe %1"
HKCR,".chm","",0x00000000,"chm.file"
HKCR,"chm.file","",0x00000000,"Help File"
HKCR,"chm.file","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-168"
HKCR,"chm.file\DefaultIcon","",0x00020000,"%SystemRoot%\hh.exe,0"
HKCR,"chm.file\shell\open\command","",0x00020000,"%SystemRoot%\hh.exe %1"
; set MIME type for .html and .htm because Tiny webserver needs it
HKCR,".htm","",0x00000000,"html"
HKCR,".htm","Content Type",0x00000000,"text/html"
HKCR,".html","",0x00000000,"html"
HKCR,".html","Content Type",0x00000000,"text/html"
; Icons
HKCR,".ico","",0x00000000,"icofile"
HKCR,"icofile","",0x00000000,"Icon"
HKCR,"icofile\DefaultIcon","",0x00000000,"%1"
; JPEG Images
HKCR,".jpg","",0x00000000,"jpegfile"
HKCR,".jpeg","",0x00000000,"jpegfile"
HKCR,"jpegfile","",0x00000000,"JPEG Image"
HKCR,"jpegfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shimgvw.dll,0"
HKCR,"jpegfile\shell\open\command","",0x00020000,"rundll32.exe %SystemRoot%\system32\shimgvw.dll,ImageView_Fullscreen %1"
; Bitmap Images
HKCR,".bmp","",0x00000000,"bmpfile"
HKCR,"bmpfile","",0x00000000,"Bitmap Image"
HKCR,"bmpfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shimgvw.dll,0"
HKCR,"bmpfile\shell\open\command","",0x00020000,"rundll32.exe %SystemRoot%\system32\shimgvw.dll,ImageView_Fullscreen %1"
; PNG Images
HKCR,".png","",0x00000000,"pngfile"
HKCR,"pngfile","",0x00000000,"PNG Image"
HKCR,"pngfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shimgvw.dll,0"
HKCR,"pngfile\shell\open\command","",0x00020000,"rundll32.exe %SystemRoot%\system32\shimgvw.dll,ImageView_Fullscreen %1"
; GIF Images
HKCR,".gif","",0x00000000,"giffile"
HKCR,"giffile","",0x00000000,"GIF Image"
HKCR,"giffile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shimgvw.dll,0"
HKCR,"giffile\shell\open\command","",0x00020000,"rundll32.exe %SystemRoot%\system32\shimgvw.dll,ImageView_Fullscreen %1"
; Configuration Files
HKCR,".ini","",0x00000000,"inifile"
HKCR,"inifile","",0x00000000,"Configuration Settings"
HKCR,"inifile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-169"
HKCR,"inifile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-151"
HKCR,"inifile\shell\open\command","",0x00000000,"notepad.exe ""%1"""
; Setup Information Files
HKCR,".inf","",0x00000000,"inffile"
HKCR,"inffile","",0x00000000,"Setup Information"
HKCR,"inffile\FriendlyTypeName","",0x00020000,"%SystemRoot%\system32\setupapi.dll,-2001"
HKCR,"inffile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-151"
HKCR,"inffile\shell\open\command","",0x00000000,"notepad.exe ""%1"""
HKCR,"inffile\shell\Install","",0x00000000,"Install"
HKCR,"inffile\shell\Install\command","",0x00020000,"%SystemRoot%\system32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %1"
; Show icons for shortcuts in shell views (lnkfile is handled specially in shell32)
; Don't display extension for shortcuts
HKCR,".lnk","",0x00000000,"lnkfile"
HKCR,".lnk\shellnew","",0x00000000,""
HKCR,".lnk\shellnew","command",0x00020000,"%SystemRoot%\system32\rundll32.exe appwiz.cpl,NewLinkHere %1"
HKCR,"lnkfile","",0x00000000,"Shortcut"
HKCR,"lnkfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-170"
HKCR,"lnkfile","NeverShowExt",0x00000000,""
HKCR,"lnkfile","IsShortcut",0x00000000,"yes"
HKCR,"lnkfile\CLSID","",0x00000000,"{00021401-0000-0000-C000-000000000046}"
HKCR,"lnkfile\shellex\IconHandler","",0x00000000,"{00021401-0000-0000-C000-000000000046}"
HKCR,"lnkfile\shellex\ContextMenuHandlers\{00021401-0000-0000-C000-000000000046}","",0x00000000,""
HKCR,"lnkfile\shellex\PropertySheetHandlers\Shellink Property Page", "", 0x00000000, "{00021401-0000-0000-C000-000000000046}"
; Text Documents
HKCR,".log","",0x00000000,"txtfile"
HKCR,".txt","",0x00000000,"txtfile"
HKCR,".c","",0x00000000,"txtfile"
HKCR,".cpp","",0x00000000,"txtfile"
HKCR,".h","",0x00000000,"txtfile"
HKCR,".hpp","",0x00000000,"txtfile"
HKCR,".txt\shellnew","",0x00000000,""
HKCR,".txt\shellnew","NullFile",0x00020000,""
HKCR,"txtfile","",0x00000000,"Text Document"
HKCR,".txt","Content Type",0x00000000,"text/plain"
HKCR,"txtfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-152"
HKCR,"txtfile\shell\open\command","",0x00020000,"%SystemRoot%\system32\notepad.exe %1"
; XML Documents
HKCR,".xml","",0x00000000,"xmlfile"
HKCR,"xmlfile","",0x00000000,"XML Document"
HKCR,".xml","Content Type",0x00000000,"text/xml"
HKCR,"xmlfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-151"
HKCR,"xmlfile\shell\open\command","",0x00020000,"%SystemRoot%\system32\notepad.exe %1"
; MSI files
HKCR,".msi","",0x00000000,"MSI.Package"
HKCR,"Msi.Package\DefaultIcon","",0x00000000,"msiexec.exe"
HKCR,"Msi.Package\shell\Open\command","",0x00020000,"%SystemRoot%\system32\msiexec.exe /i ""%1"""
HKCR,"Msi.Package\shell\Repair\command","",0x00020000,"%SystemRoot%\system32\msiexec.exe /f ""%1"""
HKCR,"Msi.Package\shell\Uninstall\command","",0x00020000,"%SystemRoot%\system32\msiexec.exe /x ""%1"""
HKCR,".pif","",0x00000000,"piffile"
; Registration Entries
HKCR,".reg","",0x00000000,"regfile"
HKCR,"regfile","",0x00000000,"Registration Entries"
HKCR,"regfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-170"
HKCR,"regfile\DefaultIcon","",0x00020000,"%SystemRoot%\regedit.exe,1"
HKCR,"regfile\shell\edit\command","",0x00020000,"%SystemRoot%\system32\notepad.exe %1"
HKCR,"regfile\shell\open","",0x00000000,"Merge"
HKCR,"regfile\shell\open\command","",0x00000000,"regedit.exe ""%1"""
; Screen Savers
HKCR,".scr","",0x00000000,"scrfile"
HKCR,"scrfile","",0x00000000,"Screen Saver"
HKCR,"scrfile\Defaulticon","",0x00000000,"%1"
HKCR,"scrfile\shell\config","",0x00000000,"Configure"
HKCR,"scrfile\shell\config\command","",0x00000000,"""%1"""
HKCR,"scrfile\shell\install","",0x00000000,"Install"
HKCR,"scrfile\shell\install\command","",0x00000000,"rundll32.exe desk.cpl,InstallScreenSaver %l"
HKCR,"scrfile\shell\open","",0x00000000,"Test"
HKCR,"scrfile\shell\open\command","",0x00000000,"""%1"" /S"
; shell command files (e.g. "Show Desktop" in quicklaunch bar)
HKCR,".scf","",0x00000000,"SHCmdFile"
HKCR,"SHCmdFile","NeverShowExt",0x00000000,""
HKCR,"SHCmdFile","IsShortcut",0x00000000,"yes"
HKCR,"SHCmdFile\shell\open\command","",0x00000000,"explorer.exe ""%1"""
HKCR,"SHCmdFile\CLSID","",0x00000000,"{57651662-CE3E-11D0-8D77-00C04FC99D61}"
HKCR,"SHCmdFile\shellex\IconHandler","",0x00000000,"{57651662-CE3E-11D0-8D77-00C04FC99D61}"
; System-Files
HKCR,".sys","",0x00000000,"sysfile"
HKCR,"sysfile","",0x00000000,"System File"
HKCR,"regfile","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\shell32.dll,-171"
HKCR,"sysfile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-154"
; URL shortcuts (e.g. used in favorites folder of IExplorer)
HKCR,".url","",0x00000000,"InternetShortcut"
HKCR,"InternetShortcut","NeverShowExt",0x00000000,""
HKCR,"InternetShortcut","IsShortcut",0x00000000,"yes"
HKCR,"InternetShortcut\shell\open\command","",0x00000000,"rundll32.exe shdocvw.dll,OpenURL %l"
HKCR,"InternetShortcut\DefaultIcon","",0x00020000,"%SystemRoot%\system32\url.dll,0"
; Wave Sounds
HKCR,".wav","",0x00000000,"SoundRec"
HKCR,"SoundRec","",0x00000000,"Wave Sound"
HKCR,"SoundRec\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-225"
HKCR,"SoundRec\shell\open\command","",0x00020000,"%SystemRoot%\system32\mplay32.exe %1"
; Midi Sounds
HKCR,".mid","",0x00000000,"MIDFile"
HKCR,".midi","",0x00000000,"MIDFile"
HKCR,"MIDFile","",0x00000000,"MIDI Sequence"
HKCR,"MIDFile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-225"
HKCR,"MIDFile\shell\open\command","",0x00020000,"%SystemRoot%\system32\mplay32.exe %1"
; Audio CD
HKCR,".cda","",0x00000000,"CDAFile"
HKCR,"CDAFile","",0x00000000,"CD Audio Track"
HKCR,"CDAFile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-225"
HKCR,"CDAFile\shell\open\command","",0x00020000,"%SystemRoot%\system32\mplay32.exe %1"
; Avi Files
HKCR,".avi","",0x00000000,"AVIFile"
HKCR,"AVIFile","",0x00000000,"Video Clip"
HKCR,"AVIFile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-224"
HKCR,"AVIFile\shell\open\command","",0x00020000,"%SystemRoot%\system32\mplay32.exe %1"
HKCR,"CLSID",,0x00000012
; For Shell32.dll
HKCR,"CLSID\{00021400-0000-0000-C000-000000000046}","",0x00000000,"Desktop"
HKCR,"CLSID\{00021400-0000-0000-C000-000000000046}\InProcServer32","",0x00000000,"shell32.dll"
HKCR,"CLSID\{00021400-0000-0000-C000-000000000046}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
HKCR,"CLSID\{00021401-0000-0000-C000-000000000046}","",0x00000000,"Shortcut"
HKCR,"CLSID\{00021401-0000-0000-C000-000000000046}\InProcServer32","",0x00000000,"shell32.dll"
HKCR,"CLSID\{00021401-0000-0000-C000-000000000046}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
HKCR,"CLSID\{00021401-0000-0000-C000-000000000046}\shellex\MayChangeDefaultMenu","",0x00000000,""
HKCR,"CLSID\{000214E6-0000-0000-C000-000000000046}","",0x00000000,"Shellfolder"
HKCR,"CLSID\{000214E6-0000-0000-C000-000000000046}\InProcServer32","",0x00000000,"shell32.dll"
HKCR,"CLSID\{000214E6-0000-0000-C000-000000000046}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
HKCR,"CLSID\{000214EE-0000-0000-C000-000000000046}","",0x00000000,"IShellLinkA"
HKCR,"CLSID\{000214EE-0000-0000-C000-000000000046}\InProcServer32","",0x00000000,"shell32.dll"
HKCR,"CLSID\{000214EE-0000-0000-C000-000000000046}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
HKCR,"CLSID\{000214F9-0000-0000-C000-000000000046}","",0x00000000,"IShellLinkW"
HKCR,"CLSID\{000214F9-0000-0000-C000-000000000046}\InProcServer32","",0x00000000,"shell32.dll"
HKCR,"CLSID\{000214F9-0000-0000-C000-000000000046}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
HKCR,"CLSID\{1F4DE370-D627-11D1-BA4F-00A0C91EEDBA}","",0x00000000,"Computer Search Results Folder"
HKCR,"CLSID\{1F4DE370-D627-11D1-BA4F-00A0C91EEDBA}","LocalizedString",0x00020000,"@%SystemRoot%\system32\shell32.dll,-30521"
HKCR,"CLSID\{1F4DE370-D627-11D1-BA4F-00A0C91EEDBA}\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-135"
HKCR,"CLSID\{1F4DE370-D627-11D1-BA4F-00A0C91EEDBA}\InProcServer32","",0x00020000,"%SystemRoot%\system32\shell32.dll"
HKCR,"CLSID\{1F4DE370-D627-11D1-BA4F-00A0C91EEDBA}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
HKCR,"CLSID\{1F4DE370-D627-11D1-BA4F-00A0C91EEDBA}\ShellFolder","Attributes",0x00010001,0x20180000
HKCR,"CLSID\{4657278A-411B-11d2-839A-00C04FD918D0}","",0x00000000,"Shell Drag and Drop helper"
HKCR,"CLSID\{4657278A-411B-11d2-839A-00C04FD918D0}\InProcServer32","",0x00020000,"%SystemRoot%\system32\shell32.dll"
HKCR,"CLSID\{4657278A-411B-11d2-839A-00C04FD918D0}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
; Folder Options CPL
HKCR,"CLSID\{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}","",0x00000000,"Folder Options"
HKCR,"CLSID\{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}","LocalizedString",0x00020000,"@%SystemRoot%\system32\shell32.dll,-150"
HKCR,"CLSID\{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}\InProcServer32","",0x00000000,"shell32.dll"
HKCR,"CLSID\{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
HKCR,"CLSID\{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,-210"
HKCR,"CLSID\{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}\shell\Open\command","",0x00000000,"rundll32.exe shell32.dll,Options_RunDLL 0"
HKCR,"CLSID\{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}\shell\RunAs\command","",0x00000000,"rundll32.exe shell32.dll,Options_RunDLL 0"
HKCR,"CLSID\{6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}\ShellFolder","Attributes",0x00010001,0x00000000
; Open With shell extension
HKCR,"CLSID\{09799AFB-AD67-11d1-ABCD-00C04FC30936}","",0x00000000,"Open With Context Menu Handler"
HKCR,"CLSID\{09799AFB-AD67-11d1-ABCD-00C04FC30936}\InProcServer32","",0x00000000,"shell32.dll"
HKCR,"CLSID\{09799AFB-AD67-11d1-ABCD-00C04FC30936}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
HKCR,"CLSID\{09799AFB-AD67-11d1-ABCD-00C04FC30936}\shellex\MayChangeDefaultMenu","",0x00000000,""
HKCR,"SystemFileAssociations","",0x00000000,""
HKCR,"Applications","",0x00000000,""
; Recycle bin is not implemented
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}","",0x00000000,"Recycle Bin"
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}","LocalizedString",0x00020000,"@%SystemRoot%\system32\shell32.dll,-8964"
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}","InfoTip",0x00020000,"@%SystemRoot%\system32\shell32.dll,-22915"
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}","IntroText",0x00020000,"@%SystemRoot%\system32\shell32.dll,-31748"
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}","SortOrderIndex",0x00010001,0x00000060
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\DefaultIcon","",0x00020000,"%SystemRoot%\system32\shell32.dll,31"
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\DefaultIcon","Empty",0x00020000,"%SystemRoot%\system32\shell32.dll,31"
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\DefaultIcon","Full",0x00020000,"%SystemRoot%\system32\shell32.dll,32"
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\InProcServer32","",0x00020000,"%SystemRoot%\system32\shell32.dll"
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\ShellFolder","Attributes",0x00010001,0x20000140
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\ShellFolder","CallForAttributes",0x00010001,0x00000040
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\shellex\ContextMenuHandlers\{645FF040-5081-101B-9F08-00AA002F954E}","",0x00000000,""
;HKCR,"CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\shellex\PropertySheetHandlers\{645FF040-5081-101B-9F08-00AA002F954E}","",0x00000000,""
; deskadp.dll shell extension
HKCR,"CLSID\{42071712-76d4-11d1-8b24-00a0c9068ff3}","",0x00000000,"Display Adapter CPL Extension"
HKCR,"CLSID\{42071712-76d4-11d1-8b24-00a0c9068ff3}\InProcServer32","",0x00020000,"%SystemRoot%\system32\deskadp.dll"
HKCR,"CLSID\{42071712-76d4-11d1-8b24-00a0c9068ff3}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
; deskmon.dll shell extension
HKCR,"CLSID\{42071713-76d4-11d1-8b24-00a0c9068ff3}","",0x00000000,"Display Monitor CPL Extension"
HKCR,"CLSID\{42071713-76d4-11d1-8b24-00a0c9068ff3}\InProcServer32","",0x00020000,"%SystemRoot%\system32\deskmon.dll"
HKCR,"CLSID\{42071713-76d4-11d1-8b24-00a0c9068ff3}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
; For TCPIP Protocol property page
HKCR,"CLSID\{A907657F-6FDF-11D0-8EFB-00C04FD912B2}","",0x00000000,"TCP/IP Configuration Notify Object"
HKCR,"CLSID\{A907657F-6FDF-11D0-8EFB-00C04FD912B2}\InProcServer32","",0x00000000,"netcfgx.dll"
HKCR,"CLSID\{A907657F-6FDF-11D0-8EFB-00C04FD912B2}\InProcServer32","ThreadingModel",0x00000000,"Both"
; For dxdiagn.dll
HKCR,"CLSID\{A65B8071-3BFE-4213-9A5B-491DA4461CA7}","",0x00000000,"DxDiagProvider Class"
HKCR,"CLSID\{A65B8071-3BFE-4213-9A5B-491DA4461CA7}\InProcServer32","",0x00000000,"%SystemRoot%\system32\dxdiagn.dll"
HKCR,"CLSID\{A65B8071-3BFE-4213-9A5B-491DA4461CA7}\InProcServer32","ThreadingModel",0x00000000,"Apartment"
HKCR,"CLSID\{A65B8071-3BFE-4213-9A5B-491DA4461CA7}\ProgID","",0x00000000,"DxDiag.DxDiagProvider.1"
HKCR,"CLSID\{A65B8071-3BFE-4213-9A5B-491DA4461CA7}\VersionIndependentProgID","",0x00000000,"DxDiag.DxDiagProvider"
HKCR,"NDS\Clsid","",0x00000002,"{323991f0-7bad-11cf-b03d-00aa006e0975}"
HKCR,"WinNT\Clsid","",0x00000002,"{8b20cd60-0f29-11cf-abc4-02608c9e7553}"
; For language support:
HKCR,"MIME",,0x00000012
HKCR,"MIME\Database",,0x00000012
HKCR,"MIME\Database\Rfc1766",,0x00000012
HKCR,"MIME\Database\Rfc1766","0436",0x00000000,"af;Afrikaans"
HKCR,"MIME\Database\Rfc1766","041C",0x00000000,"sq;Albanian"
HKCR,"MIME\Database\Rfc1766","0001",0x00000000,"ar;Arabic"
HKCR,"MIME\Database\Rfc1766","1401",0x00000000,"ar-dz;Arabic (Algeria)"
HKCR,"MIME\Database\Rfc1766","3C01",0x00000000,"ar-bh;Arabic (Bahrain)"
HKCR,"MIME\Database\Rfc1766","0C01",0x00000000,"ar-eg;Arabic (Egypt)"
HKCR,"MIME\Database\Rfc1766","0801",0x00000000,"ar-iq;Arabic (Iraq)"
HKCR,"MIME\Database\Rfc1766","2C01",0x00000000,"ar-jo;Arabic (Jordan)"
HKCR,"MIME\Database\Rfc1766","3401",0x00000000,"ar-kw;Arabic (Kuwait)"
HKCR,"MIME\Database\Rfc1766","3001",0x00000000,"ar-lb;Arabic (Lebanon)"
HKCR,"MIME\Database\Rfc1766","1001",0x00000000,"ar-ly;Arabic (Libya)"
HKCR,"MIME\Database\Rfc1766","1801",0x00000000,"ar-ma;Arabic (Morocco)"
HKCR,"MIME\Database\Rfc1766","2001",0x00000000,"ar-om;Arabic (Oman)"
HKCR,"MIME\Database\Rfc1766","4001",0x00000000,"ar-qa;Arabic (Qatar)"
HKCR,"MIME\Database\Rfc1766","0401",0x00000000,"ar-sa;Arabic (Saudi Arabia)"
HKCR,"MIME\Database\Rfc1766","2801",0x00000000,"ar-sy;Arabic (Syria)"
HKCR,"MIME\Database\Rfc1766","1C01",0x00000000,"ar-tn;Arabic (Tunisia)"
HKCR,"MIME\Database\Rfc1766","3801",0x00000000,"ar-ae;Arabic (U.A.E.)"
HKCR,"MIME\Database\Rfc1766","2401",0x00000000,"ar-ye;Arabic (Yemen)"
HKCR,"MIME\Database\Rfc1766","042B",0x00000000,"hy;Armenian"
HKCR,"MIME\Database\Rfc1766","042D",0x00000000,"eu;Basque"
HKCR,"MIME\Database\Rfc1766","0423",0x00000000,"be;Belarusian"
HKCR,"MIME\Database\Rfc1766","0445",0x00000000,"bn;Bengali"
HKCR,"MIME\Database\Rfc1766","0402",0x00000000,"bg;Bulgarian"
HKCR,"MIME\Database\Rfc1766","0403",0x00000000,"ca;Catalan"
HKCR,"MIME\Database\Rfc1766","0004",0x00000000,"zh;Chinese"
HKCR,"MIME\Database\Rfc1766","0804",0x00000000,"zh-cn;Chinese (China)"
HKCR,"MIME\Database\Rfc1766","0C04",0x00000000,"zh-hk;Chinese (Hong Kong SAR)"
HKCR,"MIME\Database\Rfc1766","1004",0x00000000,"zh-sg;Chinese (Singapore)"
HKCR,"MIME\Database\Rfc1766","0404",0x00000000,"zh-tw;Chinese (Taiwan)"
HKCR,"MIME\Database\Rfc1766","041A",0x00000000,"hr;Croatian"
HKCR,"MIME\Database\Rfc1766","0405",0x00000000,"cs;Czech"
HKCR,"MIME\Database\Rfc1766","0406",0x00000000,"da;Danish"
HKCR,"MIME\Database\Rfc1766","0813",0x00000000,"nl-be;Dutch (Belgium)"
HKCR,"MIME\Database\Rfc1766","0413",0x00000000,"nl;Dutch (Netherlands)"
HKCR,"MIME\Database\Rfc1766","0009",0x00000000,"en;English"
HKCR,"MIME\Database\Rfc1766","0C09",0x00000000,"en-au;English (Australia)"
HKCR,"MIME\Database\Rfc1766","2809",0x00000000,"en-bz;English (Belize)"
HKCR,"MIME\Database\Rfc1766","1009",0x00000000,"en-ca;English (Canada)"
HKCR,"MIME\Database\Rfc1766","1809",0x00000000,"en-ie;English (Ireland)"
HKCR,"MIME\Database\Rfc1766","2009",0x00000000,"en-jm;English (Jamaica)"
HKCR,"MIME\Database\Rfc1766","1409",0x00000000,"en-nz;English (New Zealand)"
HKCR,"MIME\Database\Rfc1766","1C09",0x00000000,"en-za;English (South Africa)"
HKCR,"MIME\Database\Rfc1766","2C09",0x00000000,"en-tt;English (Trinidad)"
HKCR,"MIME\Database\Rfc1766","0809",0x00000000,"en-gb;English (United Kingdom)"
HKCR,"MIME\Database\Rfc1766","0409",0x00000000,"en-us;English (United States)"
HKCR,"MIME\Database\Rfc1766","048F",0x00000000,"eo;Esperanto"
HKCR,"MIME\Database\Rfc1766","0425",0x00000000,"et;Estonian"
HKCR,"MIME\Database\Rfc1766","0438",0x00000000,"fo;Faeroese"
HKCR,"MIME\Database\Rfc1766","0429",0x00000000,"fa;Farsi"
HKCR,"MIME\Database\Rfc1766","040B",0x00000000,"fi;Finnish"
HKCR,"MIME\Database\Rfc1766","080C",0x00000000,"fr-be;French (Belgium)"
HKCR,"MIME\Database\Rfc1766","0C0C",0x00000000,"fr-ca;French (Canada)"
HKCR,"MIME\Database\Rfc1766","040C",0x00000000,"fr;French (France)"
HKCR,"MIME\Database\Rfc1766","140C",0x00000000,"fr-lu;French (Luxembourg)"
HKCR,"MIME\Database\Rfc1766","100C",0x00000000,"fr-ch;French (Switzerland)"
HKCR,"MIME\Database\Rfc1766","043C",0x00000000,"gd;Gaelic"
HKCR,"MIME\Database\Rfc1766","0C07",0x00000000,"de-at;German (Austria)"
HKCR,"MIME\Database\Rfc1766","0407",0x00000000,"de;German (Germany)"
HKCR,"MIME\Database\Rfc1766","1407",0x00000000,"de-li;German (Liechtenstein)"
HKCR,"MIME\Database\Rfc1766","1007",0x00000000,"de-lu;German (Luxembourg)"
HKCR,"MIME\Database\Rfc1766","0807",0x00000000,"de-ch;German (Switzerland)"
HKCR,"MIME\Database\Rfc1766","0408",0x00000000,"el;Greek"
HKCR,"MIME\Database\Rfc1766","040D",0x00000000,"he;Hebrew"
HKCR,"MIME\Database\Rfc1766","0439",0x00000000,"hi;Hindi"
HKCR,"MIME\Database\Rfc1766","040E",0x00000000,"hu;Hungarian"
HKCR,"MIME\Database\Rfc1766","040F",0x00000000,"is;Icelandic"
HKCR,"MIME\Database\Rfc1766","0421",0x00000000,"in;Indonesian"
HKCR,"MIME\Database\Rfc1766","0410",0x00000000,"it;Italian (Italy)"
HKCR,"MIME\Database\Rfc1766","0810",0x00000000,"it-ch;Italian (Switzerland)"
HKCR,"MIME\Database\Rfc1766","0411",0x00000000,"ja;Japanese"
HKCR,"MIME\Database\Rfc1766","043F",0x00000000,"kk;Kazakh"
HKCR,"MIME\Database\Rfc1766","0412",0x00000000,"ko;Korean"
HKCR,"MIME\Database\Rfc1766","0426",0x00000000,"lv;Latvian"
HKCR,"MIME\Database\Rfc1766","0427",0x00000000,"lt;Lithuanian"
HKCR,"MIME\Database\Rfc1766","042F",0x00000000,"mk;FYRO Macedonian"
HKCR,"MIME\Database\Rfc1766","043E",0x00000000,"ms;Malay (Malaysia)"
HKCR,"MIME\Database\Rfc1766","043A",0x00000000,"mt;Maltese"
HKCR,"MIME\Database\Rfc1766","0414",0x00000000,"no;Norwegian (Bokmal)"
HKCR,"MIME\Database\Rfc1766","0814",0x00000000,"no;Norwegian (Nynorsk)"
HKCR,"MIME\Database\Rfc1766","0415",0x00000000,"pl;Polish"
HKCR,"MIME\Database\Rfc1766","0416",0x00000000,"pt-br;Portuguese (Brazil)"
HKCR,"MIME\Database\Rfc1766","0816",0x00000000,"pt;Portuguese (Portugal)"
HKCR,"MIME\Database\Rfc1766","0417",0x00000000,"rm;Rhaeto-Romanic"
HKCR,"MIME\Database\Rfc1766","0418",0x00000000,"ro;Romanian"
HKCR,"MIME\Database\Rfc1766","0818",0x00000000,"ro-mo;Romanian (Moldova)"
HKCR,"MIME\Database\Rfc1766","0419",0x00000000,"ru;Russian"
HKCR,"MIME\Database\Rfc1766","0819",0x00000000,"ru-mo;Russian (Moldova)"
HKCR,"MIME\Database\Rfc1766","0C1A",0x00000000,"sr;Serbian (Cyrillic)"
HKCR,"MIME\Database\Rfc1766","081A",0x00000000,"sr;Serbian (Latin)"
HKCR,"MIME\Database\Rfc1766","041B",0x00000000,"sk;Slovak"
HKCR,"MIME\Database\Rfc1766","0424",0x00000000,"sl;Slovenian"
HKCR,"MIME\Database\Rfc1766","042E",0x00000000,"sb;Sorbian"
HKCR,"MIME\Database\Rfc1766","2C0A",0x00000000,"es-ar;Spanish (Argentina)"
HKCR,"MIME\Database\Rfc1766","400A",0x00000000,"es-bo;Spanish (Bolivia)"
HKCR,"MIME\Database\Rfc1766","340A",0x00000000,"es-cl;Spanish (Chile)"
HKCR,"MIME\Database\Rfc1766","240A",0x00000000,"es-co;Spanish (Colombia)"
HKCR,"MIME\Database\Rfc1766","140A",0x00000000,"es-cr;Spanish (Costa Rica)"
HKCR,"MIME\Database\Rfc1766","1C0A",0x00000000,"es-do;Spanish (Dominican Republic)"
HKCR,"MIME\Database\Rfc1766","300A",0x00000000,"es-ec;Spanish (Ecuador)"
HKCR,"MIME\Database\Rfc1766","440A",0x00000000,"es-sv;Spanish (El Salvador)"
HKCR,"MIME\Database\Rfc1766","100A",0x00000000,"es-gt;Spanish (Guatemala)"
HKCR,"MIME\Database\Rfc1766","480A",0x00000000,"es-hn;Spanish (Honduras)"
HKCR,"MIME\Database\Rfc1766","0C0A",0x00000000,"es;Spanish (International Sort)"
HKCR,"MIME\Database\Rfc1766","080A",0x00000000,"es-mx;Spanish (Mexico)"
HKCR,"MIME\Database\Rfc1766","4C0A",0x00000000,"es-ni;Spanish (Nicaragua)"
HKCR,"MIME\Database\Rfc1766","180A",0x00000000,"es-pa;Spanish (Panama)"
HKCR,"MIME\Database\Rfc1766","3C0A",0x00000000,"es-py;Spanish (Paraguay)"
HKCR,"MIME\Database\Rfc1766","280A",0x00000000,"es-pe;Spanish (Peru)"
HKCR,"MIME\Database\Rfc1766","500A",0x00000000,"es-pr;Spanish (Puerto Rico)"
HKCR,"MIME\Database\Rfc1766","040A",0x00000000,"es;Spanish (Traditional Sort)"
HKCR,"MIME\Database\Rfc1766","380A",0x00000000,"es-uy;Spanish (Uruguay)"
HKCR,"MIME\Database\Rfc1766","200A",0x00000000,"es-ve;Spanish (Venezuela)"
HKCR,"MIME\Database\Rfc1766","0430",0x00000000,"sx;Sutu"
HKCR,"MIME\Database\Rfc1766","041D",0x00000000,"sv;Swedish"
HKCR,"MIME\Database\Rfc1766","081D",0x00000000,"sv-fi;Swedish (Finland)"
HKCR,"MIME\Database\Rfc1766","041E",0x00000000,"th;Thai"
HKCR,"MIME\Database\Rfc1766","0431",0x00000000,"ts;Tsonga"
HKCR,"MIME\Database\Rfc1766","0432",0x00000000,"tn;Tswana"
HKCR,"MIME\Database\Rfc1766","041F",0x00000000,"tr;Turkish"
HKCR,"MIME\Database\Rfc1766","0422",0x00000000,"uk;Ukrainian"
HKCR,"MIME\Database\Rfc1766","0420",0x00000000,"ur;Urdu"
HKCR,"MIME\Database\Rfc1766","042A",0x00000000,"vi;Vietnamese"
HKCR,"MIME\Database\Rfc1766","0490",0x00000000,"wa;Walloon"
HKCR,"MIME\Database\Rfc1766","0434",0x00000000,"xh;Xhosa"
HKCR,"MIME\Database\Rfc1766","043D",0x00000000,"ji;Yiddish"
HKCR,"MIME\Database\Rfc1766","0435",0x00000000,"zu;Zulu"
; EOF

View file

@ -59,8 +59,7 @@ HKCU,"Control Panel\Desktop","DragHeight",0x00000000,"4"
HKCU,"Control Panel\Desktop","DragWidth",0x00000000,"4"
HKCU,"Control Panel\Desktop","PaintDesktopVersion",0x00010001,"0"
HKCU,"Control Panel\Desktop","HungAppTimeout",2,"5000"
HKCU,"Control Panel\Desktop","SCRNSAVE.EXE",0,""
HKCU,"Control Panel\Desktop","ScreenSaveActive",2,"1"
HKCU,"Control Panel\Desktop","ScreenSaveActive",2,"0"
HKCU,"Control Panel\Desktop","ScreenSaverIsSecure",2,"1"
HKCU,"Control Panel\Desktop","ScreenSaveTimeOut",0,"600"
HKCU,"Control Panel\Desktop","WaitToKillAppTimeout",2,"20000"

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,19 +0,0 @@
[Version]
Signature = "$ReactOS$"
[AddReg]
; Enable _one_ driver per section by removing the leading semicolon.
;
; Display driver section
;
; VBE SVGA driver
HKLM,"SYSTEM\CurrentControlSet\Services\VBE","Start",0x00010001,0x00000001
HKLM,"SYSTEM\CurrentControlSet\Hardware Profiles\Current\System\CurrentControlSet\Services\VBE\Device0","DefaultSettings.VRefresh",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Hardware Profiles\Current\System\CurrentControlSet\Services\VBE\Device0","DefaultSettings.BitsPerPel",0x00010001,16
HKLM,"SYSTEM\CurrentControlSet\Hardware Profiles\Current\System\CurrentControlSet\Services\VBE\Device0","DefaultSettings.XResolution",0x00010001,800
HKLM,"SYSTEM\CurrentControlSet\Hardware Profiles\Current\System\CurrentControlSet\Services\VBE\Device0","DefaultSettings.YResolution",0x00010001,600
; VGA miniport driver
HKLM,"SYSTEM\CurrentControlSet\Services\Vga","Start",0x00010001,0x00000001

View file

@ -121,9 +121,9 @@ HKLM,"SOFTWARE\Microsoft\Command Processor","AutoRun",0x00020000,""
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall",,0x00000012
; Version Information
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion","CurrentVersion",0x00020000,"5.2"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion","CSDVersion",0x00020000,"Service Pack 2"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion","CurrentBuildNumber",0x00020000,"3790"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion","CurrentVersion",0x00000000,"5.2"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion","CSDVersion",0x00000000,"Service Pack 2"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion","CurrentBuildNumber",0x00000000,"3790"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion","InstallDate",0x00010003,0
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion","ProductName",2,"ReactOS"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion","RegDone",0x00000002,""
@ -231,9 +231,8 @@ HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList",,0x00000012
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList","ProfilesDirectory",0x00020000,"%SystemDrive%\Documents and Settings"
; Font substitutes
; SysFontSubstitutes are also returned by EnumFontFamilies, FontSubstitutes aren't
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts",,0x00000012
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\SysFontSubstitutes",,0x00000012
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes",,0x00000012
; Time zone settings
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones",,0x00000012

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -769,6 +769,9 @@ HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layout\DosKeybIDs","00010415",2,
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layout\DosKeybIDs","0001041F",2,"440"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layout\DosKeybIDs","00020408",2,"319"
; Lsa
HKLM,"SYSTEM\CurrentControlSet\Control\Lsa","Authentication Packages",0x00010000,"msv1_0"
; Network
HKLM,"SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}",,0x00000000,"Network Adapters"
HKLM,"SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}","Class",0x00000000,"Net"
@ -1900,4 +1903,13 @@ HKLM,"SYSTEM\Setup","SystemSetupInProgress",0x00010001,0x00000001
; Debug channels
;HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Environment","DEBUGCHANNEL",0x00020000,"+ole,+rpc"
[AddReg.NTarm]
; RAM Disk class driver
HKLM,"SYSTEM\CurrentControlSet\Services\Disk","ErrorControl",0x00010001,0x00000000
HKLM,"SYSTEM\CurrentControlSet\Services\Disk","ImagePath",0x00020000,"system32\drivers\ramdisk.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\Disk","Start",0x00010001,0x00000000
HKLM,"SYSTEM\CurrentControlSet\Services\Disk","Type",0x00010001,0x00000001
HKLM,"SYSTEM\CurrentControlSet\Services\fastfat","Start",0x00010001,0x00000003
; EOF

File diff suppressed because it is too large Load diff

View file

@ -1,834 +0,0 @@
[Version]
Signature = "$ReactOS$"
[AddReg]
; Device classes (this list is incomplete... and should be generated from .inf files during installation)
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E973-E325-11CE-BFC1-08002BE10318}",,0x00000000,"Network Client"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E973-E325-11CE-BFC1-08002BE10318}","Class",0x00000000,"NetClient"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E973-E325-11CE-BFC1-08002BE10318}","Icon",0x00000000,"-7"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E973-E325-11CE-BFC1-08002BE10318}","Installer32",0x00000000,"NetCfgx.dll,NetClassInstaller"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E973-E325-11CE-BFC1-08002BE10318}","NoDisplayClass",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E973-E325-11CE-BFC1-08002BE10318}","NoInstallClass",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E974-E325-11CE-BFC1-08002BE10318}",,0x00000000,"Network Service"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E974-E325-11CE-BFC1-08002BE10318}","Class",0x00000000,"NetService"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E974-E325-11CE-BFC1-08002BE10318}","Icon",0x00000000,"-7"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E974-E325-11CE-BFC1-08002BE10318}","Installer32",0x00000000,"NetCfgx.dll,NetClassInstaller"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E974-E325-11CE-BFC1-08002BE10318}","NoDisplayClass",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E974-E325-11CE-BFC1-08002BE10318}","NoInstallClass",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E975-E325-11CE-BFC1-08002BE10318}",,0x00000000,"Network Protocol"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E975-E325-11CE-BFC1-08002BE10318}","Class",0x00000000,"NetTrans"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E975-E325-11CE-BFC1-08002BE10318}","Icon",0x00000000,"-6"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E975-E325-11CE-BFC1-08002BE10318}","Installer32",0x00000000,"NetCfgx.dll,NetClassInstaller"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E975-E325-11CE-BFC1-08002BE10318}","NoDisplayClass",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E975-E325-11CE-BFC1-08002BE10318}","NoInstallClass",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{9D6D66A6-0B0C-4563-9077-A0E9A7955AE4}",,0x00000000,"Ramdisk"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{9D6D66A6-0B0C-4563-9077-A0E9A7955AE4}","Class",0x00000000,"Ramdisk"
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{9D6D66A6-0B0C-4563-9077-A0E9A7955AE4}","Icon",0x00000000,"-5"
; Default computer name settings
HKLM,"SYSTEM\CurrentControlSet\Control\ComputerName",,0x00000012
HKLM,"SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName","ComputerName",0x00000002,"COMPUTERNAME"
; Device classes key
HKLM,"SYSTEM\CurrentControlSet\Control\DeviceClasses",,0x00000012
; Hardware profile settings
HKLM,"SYSTEM\CurrentControlSet\Control\IDConfigDB",,0x00000012
HKLM,"SYSTEM\CurrentControlSet\Control\IDConfigDB","CurrentConfig",0x00010001,0x00000000
HKLM,"SYSTEM\CurrentControlSet\Control\IDConfigDB\Hardware Profiles\0000","FriendlyName",0x00000000,"New Hardware Profile"
; Keyboard Layouts
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000401","Layout File",0x00000000,"kbda1.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000401","Layout Text",0x00000000,"Arabic (101)"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000401","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5084"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010401","Layout File",0x00000000,"kbda2.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010401","Layout Text",0x00000000,"Arabic (102)"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010401","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5085"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020401","Layout File",0x00000000,"kbda3.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020401","Layout Text",0x00000000,"Arabic (102) AZERTY"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020401","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5086"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000402","Layout File",0x00000000,"kbdbgm.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000402","Layout Text",0x00000000,"Bulgarian BDS 5237-1978"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000402","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5136"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020402","Layout File",0x00000000,"kbdbgt.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020402","Layout Text",0x00000000,"Bulgarian phonetic classic"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020402","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5134"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00030402","Layout File",0x00000000,"kbdbga.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00030402","Layout Text",0x00000000,"Bulgarian phonetic BDS 5237-2006"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00030402","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5135"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000406","Layout File",0x00000000,"kbdda.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000406","Layout Text",0x00000000,"Danish"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000406","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5007"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00030407","Layout File",0x00000000,"kbdgerg.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00030407","Layout Text",0x00000000,"German (de_ergo)"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00030407","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5139"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020407","Layout File",0x00000000,"kbdgneo.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020407","Layout Text",0x00000000,"German (NEO-1.1)"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020407","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5138"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010407","Layout File",0x00000000,"kbdgrist.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010407","Layout Text",0x00000000,"German (RISTOME)"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010407","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5137"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000407","Layout File",0x00000000,"kbdgr.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000407","Layout Text",0x00000000,"German"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000407","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5011"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000807","Layout File",0x00000000,"kbdsg.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000807","Layout Text",0x00000000,"Swiss (German)"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000807","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5024"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000408","Layout File",0x00000000,"kbdhe.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000408","Layout Text",0x00000000,"Greek"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000408","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5046"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000409","Layout File",0x00000000,"kbdus.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000409","Layout Text",0x00000000,"United States"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000409","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5000"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000809","Layout File",0x00000000,"kbduk.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000809","Layout Text",0x00000000,"United Kingdom"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000809","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5025"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010409","Layout File",0x00000000,"kbddv.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010409","Layout Id", 0x00000000,"0002"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010409","Layout Text",0x00000000,"US-Dvorak"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010409","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5092"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020409","Layout File",0x00000000,"kbdusx.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020409","Layout Id", 0x00000000,"0001"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020409","Layout Text",0x00000000,"US International"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00020409","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5026"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00030409","Layout File",0x00000000,"kbdusl.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00030409","Layout Id", 0x00000000,"001A"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00030409","Layout Text",0x00000000,"US Dvorak for left hand"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00030409","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5027"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00040409","Layout File",0x00000000,"kbdusr.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00040409","Layout Id", 0x00000000,"001B"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00040409","Layout Text",0x00000000,"US Dvorak for right hand"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00040409","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5028"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00050409","Layout File",0x00000000,"kbdusa.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00050409","Layout Id", 0x00000000,"000B"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00050409","Layout Text",0x00000000,"US English (IBM Arabic 238_L)"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00050409","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5123"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00001809","Layout File",0x00000000,"kbdir.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00001809","Layout Text",0x00000000,"Irish"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00001809","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5014"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040a","Layout File",0x00000000,"kbdes.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040a","Layout Text",0x00000000,"Spanish"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040a","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5020"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000080a","Layout File",0x00000000,"kbdla.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000080a","Layout Text",0x00000000,"Latin American"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000080a","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5017"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040b","Layout File",0x00000000,"kbdfi.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040b","Layout Text",0x00000000,"Finnish"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040b","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5009"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040c","Layout File",0x00000000,"kbdfr.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040c","Layout Text",0x00000000,"French"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040c","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5010"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040d","Layout File",0x00000000,"kbdheb.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040d","Layout Text",0x00000000,"Hebrew"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040d","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5083"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040e","Layout File",0x00000000,"kbdhu.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040e","Layout Text",0x00000000,"Hungarian"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040e","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5033"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040f","Layout File",0x00000000,"kbdic.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040f","Layout Text",0x00000000,"Icelandic"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000040f","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5013"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000410","Layout File",0x00000000,"kbdit.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000410","Layout Text",0x00000000,"Italian"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000410","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5015"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411","Layout File",0x00000000,"kbdja.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411","Layout Text",0x00000000,"Japanese"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5061"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041c","Layout File",0x00000000,"kbdal.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041c","Layout Text",0x00000000,"Albanian"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041c","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5029"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041f","Layout File",0x00000000,"kbdtuq.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041f","Layout Text",0x00000000,"Turkish Q"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041f","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5060"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001041f","Layout File",0x00000000,"kbdtuf.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001041f","Layout Text",0x00000000,"Turkish F"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001041f","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5059"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001041f","Layout Id",0x00000000,"0014"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000080c","Layout File",0x00000000,"kbdbe.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000080c","Layout Text",0x00000000,"Belgian (French)"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000080c","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5002"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000413","Layout File",0x00000000,"kbdne.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000413","Layout Text",0x00000000,"Dutch"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000413","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5008"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000813","Layout File",0x00000000,"kbdbe.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000813","Layout Text",0x00000000,"Belgian (Dutch)"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000813","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5001"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000415","Layout File",0x00000000,"kbdpl1.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000415","Layout Text",0x00000000,"Polish (Programmers)"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000415","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5035"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010416","Layout File",0x00000000,"kbdbr.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010416","Layout Text",0x00000000,"Portuguese (Brazilian ABNT2)"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010416","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5126"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000816","Layout File",0x00000000,"kbdpo.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000816","Layout Text",0x00000000,"Portuguese (Portugal)"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000816","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5019"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000418","Layout File",0x00000000,"kbdro.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000418","Layout Text",0x00000000,"Romanian"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000418","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5037"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000419","Layout File",0x00000000,"kbdru.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000419","Layout Text",0x00000000,"Russian"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000419","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5055"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010419","Layout File",0x00000000,"kbdru1.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010419","Layout Text",0x00000000,"Russian (Typewriter)"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010419","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5056"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041a","Layout File",0x00000000,"kbdcr.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041a","Layout Text",0x00000000,"Croatian"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041a","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5030"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041b","Layout File",0x00000000,"kbdsk.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041b","Layout Text",0x00000000,"Slovak"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041b","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5039"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001041b","Layout File",0x00000000,"kbdsk1.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001041b","Layout Text",0x00000000,"Slovak (QWERTY)"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001041b","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5040"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041d","Layout File",0x00000000,"kbdsw.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041d","Layout Text",0x00000000,"Swedish"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041d","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5022"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041e","Layout File",0x00000000,"kbdth0.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041e","Layout Text",0x00000000,"Thai Kedmanee"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000041e","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5079"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001041e","Layout File",0x00000000,"kbdth1.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001041e","Layout Text",0x00000000,"Thai Pattachote"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001041e","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5080"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0002041e","Layout File",0x00000000,"kbdth2.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0002041e","Layout Text",0x00000000,"Thai Kedmanee (non-ShiftLock)"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0002041e","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5081"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0003041e","Layout File",0x00000000,"kbdth3.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0003041e","Layout Text",0x00000000,"Thai Pattachote (non-ShiftLock)"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0003041e","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5082"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000422","Layout File",0x00000000,"kbdur.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000422","Layout Text",0x00000000,"Ukrainian"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000422","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5058"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010422","Layout File",0x00000000,"kbdurs.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010422","Layout Text",0x00000000,"Ukrainian (Student)"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010422","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5141"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000423","Layout File",0x00000000,"kbdblr.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000423","Layout Text",0x00000000,"Belarusian"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000423","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5052"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000425","Layout File",0x00000000,"kbdest.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000425","Layout Text",0x00000000,"Estonian"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000425","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5042"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000426","Layout File",0x00000000,"kbdlv.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000426","Layout Text",0x00000000,"Latvian"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000426","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5043"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010427","Layout File",0x00000000,"kbdlt1.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010427","Layout Text",0x00000000,"Lithuanian"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010427","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5088"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000042a","Layout File",0x00000000,"kbdvntc.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000042a","Layout Text",0x00000000,"Vietnamese"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000042a","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5118"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000042b","Layout File",0x00000000,"kbdarme.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000042b","Layout Text",0x00000000,"Armenian Eastern"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000042b","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5120"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001042b","Layout File",0x00000000,"kbdarmw.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001042b","Layout Text",0x00000000,"Armenian Western"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0001042b","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5121"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000042c","Layout File",0x00000000,"kbdazel.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000042c","Layout Text",0x00000000,"Azeri Latin"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000042c","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5117"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000082c","Layout File",0x00000000,"kbdaze.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000082c","Layout Text",0x00000000,"Azeri Cyrillic"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000082c","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5115"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000042f","Layout File",0x00000000,"kbdmac.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000042f","Layout Text",0x00000000,"Macedonian (FYRO)"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000042f","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5109"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000437","Layout File",0x00000000,"kbdgeo.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000437","Layout Text",0x00000000,"Georgian"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000437","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5119"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000439","Layout File",0x00000000,"kbdindev.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000439","Layout Text",0x00000000,"Devanagari - INSCRIPT"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000439","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5096"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000043f","Layout File",0x00000000,"kbdkaz.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000043f","Layout Text",0x00000000,"Kazakh"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000043f","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5113"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000843","Layout File",0x00000000,"kbduzb.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000843","Layout Text",0x00000000,"Uzbek (Cyrillic)"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000843","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5114"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000444","Layout File",0x00000000,"kbdtat.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000444","Layout Text",0x00000000,"Tatar"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000444","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5116"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000445","Layout File",0x00000000,"kbdinben.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000445","Layout Text",0x00000000,"Bengali"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000445","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5135"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000447","Layout File",0x00000000,"kbdinguj.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000447","Layout Text",0x00000000,"Gujarati"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000447","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5097"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000044c","Layout File",0x00000000,"kbdinmal.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000044c","Layout Text",0x00000000,"Malayalam"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000044c","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5139"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000044d","Layout File",0x00000000,"kbdinasa.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000044d","Layout Text",0x00000000,"ASSAMESE - INSCRIPT"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000044d","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5177"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000455","Layout File",0x00000000,"kbdbur.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000455","Layout Text",0x00000000,"Burmese"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000455","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5140"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000414","Layout File",0x00000000,"kbdno.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000414","Layout Text",0x00000000,"Norwegian"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000414","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5018"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000405","Layout File",0x00000000,"kbdcz.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000405","Layout Text",0x00000000,"Czech"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000405","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5031"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010405","Layout File",0x00000000,"kbdcz1.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010405","Layout Text",0x00000000,"Czech (QWERTY)"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010405","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5032"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00011009","Layout File",0x00000000,"kbdcan.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00011009","Layout Id", 0x00000000,"0020"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00011009","Layout Text",0x00000000,"Canadian Multilingual Standard"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00011009","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5110"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000c0c","Layout File",0x00000000,"kbdfc.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000c0c","Layout Text",0x00000000,"Canadian French (Legacy)"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000c0c","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5005"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000c1a","Layout File",0x00000000,"kbdycc.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000c1a","Layout Text",0x00000000,"Serbian (Cyrillic)"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000c1a","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5057"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000081a","Layout File",0x00000000,"kbdycl.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000081a","Layout Text",0x00000000,"Serbian (Latin)"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\0000081a","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5038"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000412","Layout File",0x00000000,"kbdko.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000412","Layout Text",0x00000000,"Korean"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000412","Layout Display Name",0x00000000,"@%SystemRoot%\system32\input.dll,-5063"
; Network
HKLM,"SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}",,0x00000000,"Network Adapters"
HKLM,"SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}","Class",0x00000000,"Net"
HKLM,"SYSTEM\CurrentControlSet\Control\Network\{4D36E973-E325-11CE-BFC1-08002BE10318}",,0x00000000,"Network Client"
HKLM,"SYSTEM\CurrentControlSet\Control\Network\{4D36E973-E325-11CE-BFC1-08002BE10318}","Class",0x00000000,"NetClient"
HKLM,"SYSTEM\CurrentControlSet\Control\Network\{4D36E974-E325-11CE-BFC1-08002BE10318}",,0x00000000,"Network Service"
HKLM,"SYSTEM\CurrentControlSet\Control\Network\{4D36E974-E325-11CE-BFC1-08002BE10318}","Class",0x00000000,"NetService"
HKLM,"SYSTEM\CurrentControlSet\Control\Network\{4D36E975-E325-11CE-BFC1-08002BE10318}",,0x00000000,"Network Protocol"
HKLM,"SYSTEM\CurrentControlSet\Control\Network\{4D36E975-E325-11CE-BFC1-08002BE10318}","Class",0x00000000,"NetTrans"
HKLM,"SYSTEM\CurrentControlSet\Control\NetworkProvider\Order","ProviderOrder",0x00000000,""
; NLS Files
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","37",0x00000000,"c_037.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","424",0x00000000,"c_424.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","437",0x00000000,"c_437.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","500",0x00000000,"c_500.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","737",0x00000000,"c_737.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","775",0x00000000,"c_775.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","850",0x00000000,"c_850.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","852",0x00000000,"c_852.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","855",0x00000000,"c_855.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","856",0x00000000,"c_856.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","857",0x00000000,"c_857.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","860",0x00000000,"c_860.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","861",0x00000000,"c_861.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","862",0x00000000,"c_862.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","863",0x00000000,"c_863.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","864",0x00000000,"c_864.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","865",0x00000000,"c_865.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","866",0x00000000,"c_866.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","869",0x00000000,"c_869.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","874",0x00000000,"c_874.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","875",0x00000000,"c_875.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","878",0x00000000,"c_878.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","932",0x00000000,"c_932.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","936",0x00000000,"c_936.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","949",0x00000000,"c_949.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","950",0x00000000,"c_950.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","1006",0x00000000,"c_1006.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","1026",0x00000000,"c_1026.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","1250",0x00000000,"c_1250.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","1251",0x00000000,"c_1251.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","1252",0x00000000,"c_1252.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","1253",0x00000000,"c_1253.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","1254",0x00000000,"c_1254.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","1255",0x00000000,"c_1255.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","1256",0x00000000,"c_1256.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","1257",0x00000000,"c_1257.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","1258",0x00000000,"c_1258.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","10000",0x00000000,"c_10000.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","10006",0x00000000,"c_10006.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","10007",0x00000000,"c_10007.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","10029",0x00000000,"c_10029.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","10079",0x00000000,"c_10079.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","10081",0x00000000,"c_10081.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","20866",0x00000000,"c_20866.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","21866",0x00000000,"c_21866.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28591",0x00000000,"c_28591.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28592",0x00000000,"c_28592.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28593",0x00000000,"c_28593.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28594",0x00000000,"c_28594.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28595",0x00000000,"c_28595.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28596",0x00000000,"c_28596.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28597",0x00000000,"c_28597.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28598",0x00000000,"c_28598.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28599",0x00000000,"c_28599.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28600",0x00000000,"c_28600.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28603",0x00000000,"c_28603.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28604",0x00000000,"c_28604.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28605",0x00000000,"c_28605.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","28606",0x00000000,"c_28606.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","ACP",0x00000000,"1252"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","OEMCP",0x00000000,"437"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","MACCP",0x00000000,"10000"
; NLS Language settings
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0402",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0403",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0404",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0804",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0c04",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","1004",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","1404",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0405",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0406",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0407",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0807",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0c07",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","1407",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0408",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0409",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0809",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0c09",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","1009",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","1409",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","1809",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","1c09",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","2009",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","3009",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","3409",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","040a",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","080a",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0c0a",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","100a",0x00000000,"l_intl.nls"
;HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","140a",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","180a",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","1c0a",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","200a",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","240a",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","280a",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","2c0a",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","300a",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","340a",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","380a",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","3c0a",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","400a",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","440a",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","480a",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","4c0a",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","500a",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","040b",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","040c",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","080c",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0c0c",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","100c",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","140c",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","180c",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","040d",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","040e",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","040f",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0410",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0810",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0411",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0412",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0413",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0414",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0813",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0414",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0814",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0415",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0416",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0816",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0417",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0418",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0419",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","041a",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","081a",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0c1a",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","041b",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","041c",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","041d",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","081d",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","041e",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","041f",0x00000000,"l_intl.nls"
;HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0420",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0421",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0422",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0423",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0424",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0425",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0426",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0427",0x00000000,"l_intl.nls"
;HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0429",0x00000000,"l_intl.nls"
;HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","042a",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","042b",0x00000000,"l_intl.nls"
;HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","042c",0x00000000,"l_intl.nls"
;HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","082c",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","042d",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","042f",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0436",0x00000000,"l_intl.nls"
;HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0437",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0438",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0439",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","043e",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","083e",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","043f",0x00000000,"l_intl.nls"
;HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0440",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0441",0x00000000,"l_intl.nls"
;HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0443",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0843",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0445",0x00000000,"l_intl.nls"
;HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0455",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0456",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","048f",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","0490",0x00000000,"l_intl.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","Default",0x00000000,"0409"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language","InstallLanguage",0x00000000,"0409"
; Supported and installed locales
; If you add/uncomment an entry here, please also add the appropriate Language
; in the previous section.
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale",,0x00000012
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000402",0x00000000,"5"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000403",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000404",0x00000000,"9"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000804",0x00000000,"a"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000405",0x00000000,"2"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000406",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000407",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000807",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000c07",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00001407",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000408",0x00000000,"4"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000409",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000809",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000c09",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00001009",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00001409",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00001809",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00001c09",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00002009",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00003009",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00003409",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000040a",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000080a",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000c0a",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000100a",0x00000000,"1"
;HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000140a",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000180a",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00001c0a",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000200a",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000240a",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000280a",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00002c0a",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000300a",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000340a",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000380a",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00003c0a",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000400a",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000440a",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000480a",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00004c0a",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000500a",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000040b",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000040c",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000080c",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000c0c",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000100c",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000140c",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000180c",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000040d",0x00000000,"c"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000040e",0x00000000,"2"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000040f",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000410",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000810",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000411",0x00000000,"7"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000412",0x00000000,"8"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000413",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000813",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000414",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000814",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000415",0x00000000,"2"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000416",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000816",0x00000000,"1"
;HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000417",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000418",0x00000000,"2"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000419",0x00000000,"5"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000041a",0x00000000,"2"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000081a",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000c1a",0x00000000,"5"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000041b",0x00000000,"2"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000041c",0x00000000,"2"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000041d",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000081d",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000041e",0x00000000,"b"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000041f",0x00000000,"6"
;HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000420",0x00000000,""
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000421",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000422",0x00000000,"5"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000423",0x00000000,"5"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000424",0x00000000,"2"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000425",0x00000000,"3"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000426",0x00000000,"3"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000427",0x00000000,"3"
;HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000429",0x00000000,""
;HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000042a",0x00000000,""
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000042b",0x00000000,"11"
;HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000042c",0x00000000,"6"
;HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000082c",0x00000000,"5"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000042d",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000042f",0x00000000,"5"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000436",0x00000000,"1"
;HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000437",0x00000000,"10"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000438",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000439",0x00000000,"f"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000043e",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000083e",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000043f",0x00000000,"5"
;HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000440",0x00000000,"5"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000441",0x00000000,"1"
;HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000443",0x00000000,"6"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000843",0x00000000,"5"
;HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000445",0x00000000,"f"
;HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000455",0x00000000,""
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000456",0x00000000,"1"
;HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","0000048f",0x00000000,"1"
;HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale","00000490",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language Groups","1",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language Groups","2",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language Groups","3",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language Groups","4",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language Groups","5",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language Groups","6",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language Groups","7",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language Groups","8",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language Groups","9",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language Groups","10",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language Groups","11",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language Groups","a",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language Groups","b",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language Groups","c",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language Groups","d",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language Groups","e",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Language Groups","f",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale\Alternate Sorts","00010407",0x00000000,"1"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale\Alternate Sorts","0001040e",0x00000000,"2"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale\Alternate Sorts","00010437",0x00000000,""
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale\Alternate Sorts","00020804",0x00000000,""
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale\Alternate Sorts","00021004",0x00000000,""
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale\Alternate Sorts","00021404",0x00000000,""
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\Locale\Alternate Sorts","00030404",0x00000000,""
; Some installers check for SP1
HKLM,"SYSTEM\CurrentControlSet\Control\Windows","CSDVersion",0x00010001,0x00000100
; Service groups
HKLM,"SYSTEM\CurrentControlSet\Control\ServiceGroupOrder","List",0x00010000, \
"Boot Bus Extender", \
"System Bus Extender", \
"SCSI Port", \
"SCSI Miniport", \
"Primary Disk", \
"SCSI Class Helper", \
"SCSI Class", \
"Boot File System", \
"Base", \
"Pointer Port", \
"Keyboard Port", \
"Pointer Class", \
"Keyboard Class", \
"Debug", \
"Video Init", \
"Video", \
"Video Save", \
"File System", \
"Event log", \
"NDIS", \
"PNP_TDI", \
"TDI", \
"PlugPlay", \
"Extended Base"
; Set the timeout for directx/ReactX graphic surface lock see _EDD_DIRECTDRAW_GLOBAL struct for more info
HKLM,"SYSTEM\CurrentControlSet\Control\GraphicsDrivers\DCI","Timeout",0x00010001,0x00000007
; Group order, the first DWORD is the count of entries,
; the following dwords are the tag entries for the load order.
HKLM,"SYSTEM\CurrentControlSet\Control\GroupOrderList","Video Save", 0x00000001, \
0x02, 0x00, 0x00, 0x00, \
0x01, 0x00, 0x00, 0x00, \
0x02, 0x00, 0x00, 0x00
HKLM,"SYSTEM\CurrentControlSet\Control\GroupOrderList","SCSI Miniport", 0x00000001, \
0x02, 0x00, 0x00, 0x00, \
0x10, 0x00, 0x00, 0x00, \
0x20, 0x00, 0x00, 0x00
; Session Manager stuff
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager","BootExecute", 0x00010000, \
"autocheck autochk *"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager","GlobalFlag", 0x00010003, 0x00000000
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager","ObjectDirectories",0x00010000, \
"\Windows", \
"\RPC Control"
; DOS devices
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices","AUX",0x00000000,"\DosDevices\COM1"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices","MAILSLOT",0x00000000,"\Device\MailSlot"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices","NUL",0x00000000,"\Device\Null"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices","PIPE",0x00000000,"\Device\NamedPipe"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices","PRN",0x00000000,"\DosDevices\LPT1"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices","UNC",0x00000000,"\Device\Mup"
; System environment settings
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Environment","ComSpec",0x00020000,"%SystemRoot%\system32\cmd.exe"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Environment","Path",0x00020000,"%SystemRoot%\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\system32\wbem"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Environment","windir",0x00020000,"%SystemRoot%"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Environment","TEMP",0x00020000,"%SystemDrive%\TEMP"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Environment","TMP",0x00020000,"%SystemDrive%\TEMP"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Environment","PATHEXT",0x00000000,".COM;.EXE;.BAT;.CMD"
; Known DLLs
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\KnownDlls","DllDirectory",0x00020000,"%SystemRoot%\system32"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\KnownDlls","advapi32",0x00000000,"advapi32.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\KnownDlls","comdlg32",0x00000000,"comdlg32.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\KnownDlls","gdi32",0x00000000,"gdi32.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\KnownDlls","imagehlp",0x00000000,"imagehlp.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\KnownDlls","kernel32",0x00000000,"kernel32.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\KnownDlls","lz32",0x00000000,"lz32.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\KnownDlls","ole32",0x00000000,"ole32.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\KnownDlls","oleaut32",0x00000000,"oleaut32.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\KnownDlls","olecli32",0x00000000,"olecli32.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\KnownDlls","olesvr32",0x00000000,"olesvr32.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\KnownDlls","olethk32",0x00000000,"olethk32.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\KnownDlls","rpcrt4",0x00000000,"rpcrt4.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\KnownDlls","setupapi",0x00000000,"setupapi.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\KnownDlls","shell32",0x00000000,"shell32.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\KnownDlls","url",0x00000000,"url.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\KnownDlls","urlmon",0x00000000,"urlmon.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\KnownDlls","user32",0x00000000,"user32.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\KnownDlls","version",0x00000000,"version.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\KnownDlls","wininet",0x00000000,"wininet.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\KnownDlls","wldap32",0x00000000,"wldap32.dll"
; Memory Management
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management",,0x00000012
; SubSystems
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems","Debug",0x00020000,""
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems","Kmode",0x00020000,"%SystemRoot%\system32\win32k.sys"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems","Optional",0x00010000,"Posix"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems","Posix",0x00020000,"%SystemRoot%\system32\psxss.exe"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems","Required",0x00010000,"Debug","Windows"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems","Windows",0x00020000,"%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,12288,512 Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=consrv:ConServerDllInitialization,2 ProfileControl=Off MaxRequestThreads=16"
; WOW Support
HKLM,"SYSTEM\CurrentControlSet\Control\Wow","",0x00000000,""
; PNP Root device
HKLM,"SYSTEM\CurrentControlSet\Enum\HTREE\ROOT\0","",0x00000000,""
; Virtual FAT filesystem driver
HKLM,"SYSTEM\CurrentControlSet\Services\fastfat","ErrorControl",0x00010001,0x00000000
HKLM,"SYSTEM\CurrentControlSet\Services\fastfat","Group",0x00000000,"Boot File System"
HKLM,"SYSTEM\CurrentControlSet\Services\fastfat","ImagePath",0x00020000,"system32\drivers\fastfat.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\fastfat","Start",0x00010001,0x00000000
HKLM,"SYSTEM\CurrentControlSet\Services\fastfat","Type",0x00010001,0x00000002
; RAM Disk class driver
HKLM,"SYSTEM\CurrentControlSet\Services\Disk","ErrorControl",0x00010001,0x00000000
HKLM,"SYSTEM\CurrentControlSet\Services\Disk","ImagePath",0x00020000,"system32\drivers\ramdisk.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\Disk","Start",0x00010001,0x00000000
HKLM,"SYSTEM\CurrentControlSet\Services\Disk","Type",0x00010001,0x00000001
; ControlSet selection settings
HKLM,"SYSTEM\Select","Current",0x00010001,0x00000001
HKLM,"SYSTEM\Select","Default",0x00010001,0x00000001
HKLM,"SYSTEM\Select","Failed",0x00010001,0x00000000
HKLM,"SYSTEM\Select","LastKnownGood",0x00010001,0x00000000
; System setup settings
HKLM,"SYSTEM\Setup","CmdLine",0x00000000,"setup -newsetup"
HKLM,"SYSTEM\Setup","OsLoaderPath",0x00000000,"\"
HKLM,"SYSTEM\Setup","SetupType",0x00010001,0x00000001
HKLM,"SYSTEM\Setup","SystemPartition",0x00000000,"\Device\Harddisk0\Partition1"
HKLM,"SYSTEM\Setup","SystemSetupInProgress",0x00010001,0x00000001
; Debug channels
;HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Environment","DEBUGCHANNEL",0x00020000,"+ole,+rpc"
; EOF

View file

@ -40,18 +40,19 @@ HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Environment","ALLUSERSPRO
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management","PagingFiles",0x00000000,""
; Font Substitution
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\SysFontSubstitutes","Arial",0x00000000,"Liberation Sans"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\SysFontSubstitutes","Courier",0x00000000,"FreeMono"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\SysFontSubstitutes","Courier New",0x00000000,"FreeMono"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\SysFontSubstitutes","Fixedsys",0x00000000,"Fixedsys Excelsior 3.01"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\SysFontSubstitutes","Helv",0x00000000,"Tahoma"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\SysFontSubstitutes","Helvetica",0x00000000,"Liberation Sans"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\SysFontSubstitutes","MS Sans Serif",0x00000000,"Tahoma"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\SysFontSubstitutes","MS Shell Dlg",0x00000000,"Tahoma"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\SysFontSubstitutes","MS Shell Dlg 2",0x00000000,"Tahoma"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\SysFontSubstitutes","Tahoma",0x00000000,"Tahoma"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\SysFontSubstitutes","Terminal",0x00000000,"DejaVu Sans Mono"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\SysFontSubstitutes","Times New Roman",0x00000000,"Liberation Serif"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes","Arial",0x00000000,"Liberation Sans"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes","Courier",0x00000000,"FreeMono"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes","Courier New",0x00000000,"FreeMono"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes","Fixedsys",0x00000000,"Fixedsys Excelsior 3.01-L2"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes","Helv",0x00000000,"Tahoma"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes","Helvetica",0x00000000,"Liberation Sans"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes","Lucida Console",0x00000000,"DejaVu Sans Mono"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes","MS Sans Serif",0x00000000,"Tahoma"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes","MS Shell Dlg",0x00000000,"Tahoma"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes","MS Shell Dlg 2",0x00000000,"Tahoma"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes","Tahoma",0x00000000,"Tahoma"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes","Terminal",0x00000000,"DejaVu Sans Mono"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes","Times New Roman",0x00000000,"Liberation Serif"
; FIXME: Registration

View file

@ -1,16 +1,16 @@
========================
ReactOS Version 0.3.x
Updated July 28, 2007
ReactOS Version 0.3.x
Updated March 3, 2013
========================
1. What is ReactOS?
-------------------
ReactOS is an Open Source effort to develop a quality operating system that is
compatible with applications and drivers written for the Microsoft Windows NT
family of operating systems (NT4, 2000, XP, 2003, Vista).
ReactOS is an Open Source effort to develop a quality operating system that is
compatible with applications and drivers written for the Microsoft® Windows NT
family of operating systems (NT4, 2000, XP, 2003, Vista, Seven).
Website: http://www.reactos.org/
Website: http://www.reactos.org
2. Relationship with the WINE project
@ -25,7 +25,7 @@ applications and testing suites.
3. Future compatibility
-----------------------
The ReactOS project, although currently focused on Windows XP
The ReactOS project, although currently focused on Windows Server 2003
compatibility, is always keeping an eye toward compatibility with
Windows Vista and future Windows NT releases.
@ -35,20 +35,21 @@ Windows Vista and future Windows NT releases.
The Windows NT architecture allows for subsystems, as does the ReactOS
architecture. A subsystem is an implementation of the APIs of another
operating system, allowing ReactOS to run applications from other systems. We
are already looking at subsystems for: Java, OS/2, and DOS and possibly others
in the future.
operating system, allowing ReactOS to run applications from other systems.
We are already looking at subsystems for: Java, OS/2, and DOS and possibly
others in the future.
5. Tutorials
------------
Developer and User Tutorials: http://www.reactos.org/wiki/index.php/Main_Page
Developer and User Tutorials: http://www.reactos.org/wiki
The tutorials contain more information on the project, compiling and testing
ReactOS - among other topics. Contributors to the project are always welcome.
ReactOS - amongst other topics. Contributors to the project are always welcome.
6. Author
---------
This document was written by Jason Filby (jasonfilby@yahoo.com).
This document was written by Jason Filby (jasonfilby@yahoo.com).

View file

@ -28,10 +28,9 @@ ULONG SecondLevelDcacheSize;
ULONG SecondLevelDcacheFillSize;
ULONG SecondLevelIcacheSize;
ULONG SecondLevelIcacheFillSize;
ARC_DISK_SIGNATURE reactos_arc_disk_info;
ULONG reactos_disk_count;
CHAR reactos_arc_hardware_data[256];
ULONG SizeBits[] =
{
@ -66,11 +65,11 @@ ArmInit(IN PARM_BOARD_CONFIGURATION_BLOCK BootContext)
{
/* Remember the pointer */
ArmBoardBlock = BootContext;
/* Let's make sure we understand the LLB */
ASSERT(ArmBoardBlock->MajorVersion == ARM_BOARD_CONFIGURATION_MAJOR_VERSION);
ASSERT(ArmBoardBlock->MinorVersion == ARM_BOARD_CONFIGURATION_MINOR_VERSION);
/* This should probably go away once we support more boards */
ASSERT((ArmBoardBlock->BoardType == MACH_TYPE_FEROCEON) ||
(ArmBoardBlock->BoardType == MACH_TYPE_VERSATILE_PB) ||
@ -92,33 +91,40 @@ ArmDiskGetBootPath(OUT PCHAR BootPath,
IN unsigned Size)
{
PCCH Path = "ramdisk(0)";
/* Make sure enough space exists */
if (Size < sizeof(Path)) return FALSE;
/* On ARM platforms, the loader is always in RAM */
strcpy(BootPath, Path);
return TRUE;
}
BOOLEAN
ArmInitializeBootDevices(VOID)
{
/* Emulate old behavior */
return (ArmHwDetect() != NULL);
}
PCONFIGURATION_COMPONENT_DATA
ArmHwDetect(VOID)
{
ARM_CACHE_REGISTER CacheReg;
/* Create the root node */
if (ArmHwDetectRan++) return RootNode;
FldrCreateSystemKey(&RootNode);
/*
* TODO:
* There's no such thing as "PnP" on embedded hardware.
* The boot loader will send us a device tree, similar to ACPI
* or OpenFirmware device trees, and we will convert it to ARC.
*/
/* Get cache information */
CacheReg = KeArmCacheRegisterGet();
CacheReg = KeArmCacheRegisterGet();
FirstLevelDcacheSize = SizeBits[CacheReg.DSize];
FirstLevelDcacheFillSize = LenBits[CacheReg.DLength];
FirstLevelDcacheFillSize <<= 2;
@ -129,16 +135,16 @@ ArmHwDetect(VOID)
SecondLevelDcacheFillSize =
SecondLevelIcacheSize =
SecondLevelIcacheFillSize = 0;
/* Register RAMDISK Device */
RamDiskInitialize();
/* Fill out the ARC disk block */
reactos_arc_disk_info.Signature = 0xBADAB00F;
reactos_arc_disk_info.CheckSum = 0xDEADBABE;
reactos_arc_disk_info.ArcName = "ramdisk(0)";
reactos_disk_count = 1;
/* Return the root node */
return RootNode;
}
@ -182,7 +188,7 @@ MachInit(IN PCCH CommandLine)
MachVtbl.VideoGetDisplaySize = ArmBoardBlock->VideoGetDisplaySize;
MachVtbl.VideoPutChar = ArmBoardBlock->VideoPutChar;
MachVtbl.GetTime = ArmBoardBlock->GetTime;
/* Setup board-specific ARM routines */
switch (ArmBoardBlock->BoardType)
{
@ -194,33 +200,34 @@ MachInit(IN PCCH CommandLine)
/* Check for TI OMAP3 ZOOM-II MDK */
case MACH_TYPE_OMAP_ZOOM2:
/* Setup the disk and file system buffers */
gDiskReadBuffer = 0x81094000;
gFileSysBuffer = 0x81094000;
break;
/* Check for ARM Versatile PB boards */
case MACH_TYPE_VERSATILE_PB:
/* Setup the disk and file system buffers */
gDiskReadBuffer = 0x00090000;
gFileSysBuffer = 0x00090000;
break;
/* Check for TI OMAP3 Beagleboard */
case MACH_TYPE_OMAP3_BEAGLE:
TuiPrintf("Not implemented\n");
while (TRUE);
break;
default:
ASSERT(FALSE);
}
/* Setup generic ARM routines for all boards */
MachVtbl.PrepareForReactOS = ArmPrepareForReactOS;
MachVtbl.GetMemoryMap = ArmMemGetMemoryMap;
MachVtbl.InitializeBootDevices = ArmInitializeBootDevices;
MachVtbl.HwDetect = ArmHwDetect;
MachVtbl.DiskGetBootPath = ArmDiskGetBootPath;
MachVtbl.HwIdle = ArmHwIdle;

File diff suppressed because it is too large Load diff

View file

@ -115,8 +115,6 @@ DetectAcpiBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
/* Increment bus number */
(*BusNumber)++;
MmHeapFree(PartialResourceList);
}
}

View file

@ -59,15 +59,20 @@ VOID
DetectApmBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
{
PCONFIGURATION_COMPONENT_DATA BiosKey;
CM_PARTIAL_RESOURCE_LIST PartialResourceList;
PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
ULONG Size;
Size = sizeof(CM_PARTIAL_RESOURCE_LIST) -
sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR);
if (FindApmBios())
{
/* Create 'Configuration Data' value */
memset(&PartialResourceList, 0, sizeof(CM_PARTIAL_RESOURCE_LIST));
PartialResourceList.Version = 0;
PartialResourceList.Revision = 0;
PartialResourceList.Count = 0;
PartialResourceList = MmHeapAlloc(Size);
memset(&PartialResourceList, 0, Size);
PartialResourceList->Version = 0;
PartialResourceList->Revision = 0;
PartialResourceList->Count = 0;
/* Create new bus key */
FldrCreateComponentKey(SystemKey,
@ -77,9 +82,8 @@ DetectApmBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
0x0,
0xFFFFFFFF,
"APM",
&PartialResourceList,
sizeof(CM_PARTIAL_RESOURCE_LIST) -
sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR),
PartialResourceList,
Size,
&BiosKey);
/* Increment bus number */

View file

@ -269,7 +269,7 @@ GetHarddiskInformation(
}
VOID
BOOLEAN
HwInitializeBiosDisks(VOID)
{
UCHAR DiskCount, DriveNumber;
@ -331,7 +331,7 @@ HwInitializeBiosDisks(VOID)
if (!MachDiskReadLogicalSectors(FrldrBootDrive, 16ULL, 1, (PVOID)DISKREADBUFFER))
{
ERR("Reading MBR failed\n");
return;
return FALSE;
}
Buffer = (ULONG*)DISKREADBUFFER;
@ -352,4 +352,5 @@ HwInitializeBiosDisks(VOID)
}
PcBiosDiskCount = DiskCount;
return DiskCount != 0;
}

View file

@ -25,137 +25,139 @@
DBG_DEFAULT_CHANNEL(HWDETECT);
static PPCI_IRQ_ROUTING_TABLE
static
PPCI_IRQ_ROUTING_TABLE
GetPciIrqRoutingTable(VOID)
{
PPCI_IRQ_ROUTING_TABLE Table;
PUCHAR Ptr;
ULONG Sum;
ULONG i;
PPCI_IRQ_ROUTING_TABLE Table;
PUCHAR Ptr;
ULONG Sum;
ULONG i;
Table = (PPCI_IRQ_ROUTING_TABLE)0xF0000;
while ((ULONG_PTR)Table < 0x100000)
Table = (PPCI_IRQ_ROUTING_TABLE)0xF0000;
while ((ULONG_PTR)Table < 0x100000)
{
if (Table->Signature == 'RIP$')
{
TRACE("Found signature\n");
if (Table->Signature == 'RIP$')
{
TRACE("Found signature\n");
Ptr = (PUCHAR)Table;
Sum = 0;
for (i = 0; i < Table->TableSize; i++)
{
Sum += Ptr[i];
}
Ptr = (PUCHAR)Table;
Sum = 0;
for (i = 0; i < Table->TableSize; i++)
{
Sum += Ptr[i];
}
if ((Sum & 0xFF) != 0)
{
ERR("Invalid routing table\n");
return NULL;
}
if ((Sum & 0xFF) != 0)
{
ERR("Invalid routing table\n");
return NULL;
}
TRACE("Valid checksum\n");
TRACE("Valid checksum\n");
return Table;
}
return Table;
}
Table = (PPCI_IRQ_ROUTING_TABLE)((ULONG_PTR)Table + 0x10);
Table = (PPCI_IRQ_ROUTING_TABLE)((ULONG_PTR)Table + 0x10);
}
return NULL;
return NULL;
}
static BOOLEAN
FindPciBios(PPCI_REGISTRY_INFO BusData)
{
REGS RegsIn;
REGS RegsOut;
REGS RegsIn;
REGS RegsOut;
RegsIn.b.ah = 0xB1; /* Subfunction B1h */
RegsIn.b.al = 0x01; /* PCI BIOS present */
RegsIn.b.ah = 0xB1; /* Subfunction B1h */
RegsIn.b.al = 0x01; /* PCI BIOS present */
Int386(0x1A, &RegsIn, &RegsOut);
Int386(0x1A, &RegsIn, &RegsOut);
if (INT386_SUCCESS(RegsOut) && RegsOut.d.edx == 0x20494350 && RegsOut.b.ah == 0)
if (INT386_SUCCESS(RegsOut) &&
(RegsOut.d.edx == 0x20494350) &&
(RegsOut.b.ah == 0))
{
TRACE("Found PCI bios\n");
TRACE("Found PCI bios\n");
TRACE("AL: %x\n", RegsOut.b.al);
TRACE("BH: %x\n", RegsOut.b.bh);
TRACE("BL: %x\n", RegsOut.b.bl);
TRACE("CL: %x\n", RegsOut.b.cl);
TRACE("AL: %x\n", RegsOut.b.al);
TRACE("BH: %x\n", RegsOut.b.bh);
TRACE("BL: %x\n", RegsOut.b.bl);
TRACE("CL: %x\n", RegsOut.b.cl);
BusData->NoBuses = RegsOut.b.cl + 1;
BusData->MajorRevision = RegsOut.b.bh;
BusData->MinorRevision = RegsOut.b.bl;
BusData->HardwareMechanism = RegsOut.b.al;
BusData->NoBuses = RegsOut.b.cl + 1;
BusData->MajorRevision = RegsOut.b.bh;
BusData->MinorRevision = RegsOut.b.bl;
BusData->HardwareMechanism = RegsOut.b.al;
return TRUE;
return TRUE;
}
TRACE("No PCI bios found\n");
TRACE("No PCI bios found\n");
return FALSE;
return FALSE;
}
static VOID
static
VOID
DetectPciIrqRoutingTable(PCONFIGURATION_COMPONENT_DATA BusKey)
{
PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor;
PPCI_IRQ_ROUTING_TABLE Table;
PCONFIGURATION_COMPONENT_DATA TableKey;
ULONG Size;
PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor;
PPCI_IRQ_ROUTING_TABLE Table;
PCONFIGURATION_COMPONENT_DATA TableKey;
ULONG Size;
Table = GetPciIrqRoutingTable();
if (Table != NULL)
Table = GetPciIrqRoutingTable();
if (Table != NULL)
{
TRACE("Table size: %u\n", Table->TableSize);
TRACE("Table size: %u\n", Table->TableSize);
/* Set 'Configuration Data' value */
Size = FIELD_OFFSET(CM_PARTIAL_RESOURCE_LIST, PartialDescriptors) +
2 * sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR) + Table->TableSize;
PartialResourceList = MmHeapAlloc(Size);
if (PartialResourceList == NULL)
{
ERR("Failed to allocate resource descriptor\n");
return;
}
/* Set 'Configuration Data' value */
Size = FIELD_OFFSET(CM_PARTIAL_RESOURCE_LIST, PartialDescriptors) +
2 * sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR) + Table->TableSize;
PartialResourceList = MmHeapAlloc(Size);
if (PartialResourceList == NULL)
{
ERR("Failed to allocate resource descriptor\n");
return;
}
/* Initialize resource descriptor */
memset(PartialResourceList, 0, Size);
PartialResourceList->Version = 1;
PartialResourceList->Revision = 1;
PartialResourceList->Count = 2;
/* Initialize resource descriptor */
memset(PartialResourceList, 0, Size);
PartialResourceList->Version = 1;
PartialResourceList->Revision = 1;
PartialResourceList->Count = 2;
PartialDescriptor = &PartialResourceList->PartialDescriptors[0];
PartialDescriptor->Type = CmResourceTypeBusNumber;
PartialDescriptor->ShareDisposition = CmResourceShareDeviceExclusive;
PartialDescriptor->u.BusNumber.Start = 0;
PartialDescriptor->u.BusNumber.Length = 1;
PartialDescriptor = &PartialResourceList->PartialDescriptors[0];
PartialDescriptor->Type = CmResourceTypeBusNumber;
PartialDescriptor->ShareDisposition = CmResourceShareDeviceExclusive;
PartialDescriptor->u.BusNumber.Start = 0;
PartialDescriptor->u.BusNumber.Length = 1;
PartialDescriptor = &PartialResourceList->PartialDescriptors[1];
PartialDescriptor->Type = CmResourceTypeDeviceSpecific;
PartialDescriptor->ShareDisposition = CmResourceShareUndetermined;
PartialDescriptor->u.DeviceSpecificData.DataSize = Table->TableSize;
PartialDescriptor = &PartialResourceList->PartialDescriptors[1];
PartialDescriptor->Type = CmResourceTypeDeviceSpecific;
PartialDescriptor->ShareDisposition = CmResourceShareUndetermined;
PartialDescriptor->u.DeviceSpecificData.DataSize = Table->TableSize;
memcpy(&PartialResourceList->PartialDescriptors[2],
Table, Table->TableSize);
memcpy(&PartialResourceList->PartialDescriptors[2],
Table,
Table->TableSize);
FldrCreateComponentKey(BusKey,
PeripheralClass,
RealModeIrqRoutingTable,
0x0,
0x0,
0xFFFFFFFF,
"PCI Real-mode IRQ Routing Table",
PartialResourceList,
Size,
&TableKey);
MmHeapFree(PartialResourceList);
FldrCreateComponentKey(BusKey,
PeripheralClass,
RealModeIrqRoutingTable,
0x0,
0x0,
0xFFFFFFFF,
"PCI Real-mode IRQ Routing Table",
PartialResourceList,
Size,
&TableKey);
}
}
@ -163,113 +165,108 @@ DetectPciIrqRoutingTable(PCONFIGURATION_COMPONENT_DATA BusKey)
VOID
DetectPciBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
{
PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor;
PCI_REGISTRY_INFO BusData;
PCONFIGURATION_COMPONENT_DATA BiosKey;
ULONG Size;
PCONFIGURATION_COMPONENT_DATA BusKey;
ULONG i;
PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor;
PCI_REGISTRY_INFO BusData;
PCONFIGURATION_COMPONENT_DATA BiosKey;
ULONG Size;
PCONFIGURATION_COMPONENT_DATA BusKey;
ULONG i;
/* Report the PCI BIOS */
if (FindPciBios(&BusData))
/* Report the PCI BIOS */
if (FindPciBios(&BusData))
{
/* Set 'Configuration Data' value */
Size = FIELD_OFFSET(CM_PARTIAL_RESOURCE_LIST,
PartialDescriptors);
PartialResourceList = MmHeapAlloc(Size);
if (PartialResourceList == NULL)
{
ERR("Failed to allocate resource descriptor\n");
return;
}
/* Set 'Configuration Data' value */
Size = FIELD_OFFSET(CM_PARTIAL_RESOURCE_LIST, PartialDescriptors);
PartialResourceList = MmHeapAlloc(Size);
if (PartialResourceList == NULL)
{
ERR("Failed to allocate resource descriptor\n");
return;
}
/* Initialize resource descriptor */
memset(PartialResourceList, 0, Size);
/* Initialize resource descriptor */
memset(PartialResourceList, 0, Size);
/* Create new bus key */
FldrCreateComponentKey(SystemKey,
AdapterClass,
MultiFunctionAdapter,
0x0,
0x0,
0xFFFFFFFF,
"PCI BIOS",
PartialResourceList,
Size,
&BiosKey);
/* Create new bus key */
FldrCreateComponentKey(SystemKey,
AdapterClass,
MultiFunctionAdapter,
0x0,
0x0,
0xFFFFFFFF,
"PCI BIOS",
PartialResourceList,
Size,
&BiosKey);
/* Increment bus number */
(*BusNumber)++;
/* Increment bus number */
(*BusNumber)++;
MmHeapFree(PartialResourceList);
DetectPciIrqRoutingTable(BiosKey);
DetectPciIrqRoutingTable(BiosKey);
/* Report PCI buses */
for (i = 0; i < (ULONG)BusData.NoBuses; i++)
{
/* Check if this is the first bus */
if (i == 0)
{
/* Set 'Configuration Data' value */
Size = FIELD_OFFSET(CM_PARTIAL_RESOURCE_LIST,
PartialDescriptors) +
sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR) +
sizeof(PCI_REGISTRY_INFO);
PartialResourceList = MmHeapAlloc(Size);
if (!PartialResourceList)
{
ERR("Failed to allocate resource descriptor\n");
return;
}
/* Report PCI buses */
for (i = 0; i < (ULONG)BusData.NoBuses; i++)
{
/* Check if this is the first bus */
if (i == 0)
{
/* Set 'Configuration Data' value */
Size = FIELD_OFFSET(CM_PARTIAL_RESOURCE_LIST,
PartialDescriptors) +
sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR) +
sizeof(PCI_REGISTRY_INFO);
PartialResourceList = MmHeapAlloc(Size);
if (!PartialResourceList)
{
ERR("Failed to allocate resource descriptor\n");
return;
}
/* Initialize resource descriptor */
memset(PartialResourceList, 0, Size);
PartialResourceList->Version = 1;
PartialResourceList->Revision = 1;
PartialResourceList->Count = 1;
PartialDescriptor = &PartialResourceList->PartialDescriptors[0];
PartialDescriptor->Type = CmResourceTypeDeviceSpecific;
PartialDescriptor->ShareDisposition = CmResourceShareUndetermined;
PartialDescriptor->u.DeviceSpecificData.DataSize = sizeof(PCI_REGISTRY_INFO);
memcpy(&PartialResourceList->PartialDescriptors[1],
&BusData,
sizeof(PCI_REGISTRY_INFO));
}
else
{
/* Set 'Configuration Data' value */
Size = FIELD_OFFSET(CM_PARTIAL_RESOURCE_LIST,
PartialDescriptors);
PartialResourceList = MmHeapAlloc(Size);
if (!PartialResourceList)
{
ERR("Failed to allocate resource descriptor\n");
return;
}
/* Initialize resource descriptor */
memset(PartialResourceList, 0, Size);
PartialResourceList->Version = 1;
PartialResourceList->Revision = 1;
PartialResourceList->Count = 1;
PartialDescriptor = &PartialResourceList->PartialDescriptors[0];
PartialDescriptor->Type = CmResourceTypeDeviceSpecific;
PartialDescriptor->ShareDisposition = CmResourceShareUndetermined;
PartialDescriptor->u.DeviceSpecificData.DataSize = sizeof(PCI_REGISTRY_INFO);
memcpy(&PartialResourceList->PartialDescriptors[1],
&BusData,
sizeof(PCI_REGISTRY_INFO));
}
else
{
/* Set 'Configuration Data' value */
Size = FIELD_OFFSET(CM_PARTIAL_RESOURCE_LIST,
PartialDescriptors);
PartialResourceList = MmHeapAlloc(Size);
if (!PartialResourceList)
{
ERR("Failed to allocate resource descriptor\n");
return;
}
/* Initialize resource descriptor */
memset(PartialResourceList, 0, Size);
}
/* Initialize resource descriptor */
memset(PartialResourceList, 0, Size);
}
/* Create the bus key */
FldrCreateComponentKey(SystemKey,
AdapterClass,
MultiFunctionAdapter,
0x0,
0x0,
0xFFFFFFFF,
"PCI",
PartialResourceList,
Size,
&BusKey);
/* Create the bus key */
FldrCreateComponentKey(SystemKey,
AdapterClass,
MultiFunctionAdapter,
0x0,
0x0,
0xFFFFFFFF,
"PCI",
PartialResourceList,
Size,
&BusKey);
MmHeapFree(PartialResourceList);
/* Increment bus number */
(*BusNumber)++;
}
/* Increment bus number */
(*BusNumber)++;
}
}
}

View file

@ -45,6 +45,7 @@ PcMachInit(const char *CmdLine)
MachVtbl.DiskGetDriveGeometry = PcDiskGetDriveGeometry;
MachVtbl.DiskGetCacheableBlockCount = PcDiskGetCacheableBlockCount;
MachVtbl.GetTime = PcGetTime;
MachVtbl.InitializeBootDevices = PcInitializeBootDevices;
MachVtbl.HwDetect = PcHwDetect;
MachVtbl.HwIdle = PcHwIdle;
}

View file

@ -51,6 +51,7 @@ XboxMachInit(const char *CmdLine)
MachVtbl.DiskGetDriveGeometry = XboxDiskGetDriveGeometry;
MachVtbl.DiskGetCacheableBlockCount = XboxDiskGetCacheableBlockCount;
MachVtbl.GetTime = XboxGetTime;
MachVtbl.InitializeBootDevices = XboxInitializeBootDevices;
MachVtbl.HwDetect = XboxHwDetect;
MachVtbl.HwIdle = XboxHwIdle;

View file

@ -30,66 +30,67 @@ extern ULONG reactos_disk_count;
extern ARC_DISK_SIGNATURE reactos_arc_disk_info[];
extern CHAR reactos_arc_strings[32][256];
static PCM_PARTIAL_RESOURCE_LIST
static
PCM_PARTIAL_RESOURCE_LIST
GetHarddiskConfigurationData(UCHAR DriveNumber, ULONG* pSize)
{
PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
PCM_DISK_GEOMETRY_DEVICE_DATA DiskGeometry;
//EXTENDED_GEOMETRY ExtGeometry;
GEOMETRY Geometry;
ULONG Size;
PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
PCM_DISK_GEOMETRY_DEVICE_DATA DiskGeometry;
//EXTENDED_GEOMETRY ExtGeometry;
GEOMETRY Geometry;
ULONG Size;
//
// Initialize returned size
//
*pSize = 0;
/* Set 'Configuration Data' value */
Size = sizeof(CM_PARTIAL_RESOURCE_LIST) +
sizeof(CM_DISK_GEOMETRY_DEVICE_DATA);
PartialResourceList = MmHeapAlloc(Size);
if (PartialResourceList == NULL)
/* Set 'Configuration Data' value */
Size = sizeof(CM_PARTIAL_RESOURCE_LIST) +
sizeof(CM_DISK_GEOMETRY_DEVICE_DATA);
PartialResourceList = MmHeapAlloc(Size);
if (PartialResourceList == NULL)
{
ERR("Failed to allocate a full resource descriptor\n");
return NULL;
ERR("Failed to allocate a full resource descriptor\n");
return NULL;
}
memset(PartialResourceList, 0, Size);
PartialResourceList->Version = 1;
PartialResourceList->Revision = 1;
PartialResourceList->Count = 1;
PartialResourceList->PartialDescriptors[0].Type =
CmResourceTypeDeviceSpecific;
memset(PartialResourceList, 0, Size);
PartialResourceList->Version = 1;
PartialResourceList->Revision = 1;
PartialResourceList->Count = 1;
PartialResourceList->PartialDescriptors[0].Type =
CmResourceTypeDeviceSpecific;
// PartialResourceList->PartialDescriptors[0].ShareDisposition =
// PartialResourceList->PartialDescriptors[0].Flags =
PartialResourceList->PartialDescriptors[0].u.DeviceSpecificData.DataSize =
sizeof(CM_DISK_GEOMETRY_DEVICE_DATA);
PartialResourceList->PartialDescriptors[0].u.DeviceSpecificData.DataSize =
sizeof(CM_DISK_GEOMETRY_DEVICE_DATA);
/* Get pointer to geometry data */
DiskGeometry = (PVOID)(((ULONG_PTR)PartialResourceList) + sizeof(CM_PARTIAL_RESOURCE_LIST));
/* Get pointer to geometry data */
DiskGeometry = (PVOID)(((ULONG_PTR)PartialResourceList) + sizeof(CM_PARTIAL_RESOURCE_LIST));
/* Get the disk geometry */
//ExtGeometry.Size = sizeof(EXTENDED_GEOMETRY);
/* Get the disk geometry */
//ExtGeometry.Size = sizeof(EXTENDED_GEOMETRY);
if(MachDiskGetDriveGeometry(DriveNumber, &Geometry))
if (MachDiskGetDriveGeometry(DriveNumber, &Geometry))
{
DiskGeometry->BytesPerSector = Geometry.BytesPerSector;
DiskGeometry->NumberOfCylinders = Geometry.Cylinders;
DiskGeometry->SectorsPerTrack = Geometry.Sectors;
DiskGeometry->NumberOfHeads = Geometry.Heads;
DiskGeometry->BytesPerSector = Geometry.BytesPerSector;
DiskGeometry->NumberOfCylinders = Geometry.Cylinders;
DiskGeometry->SectorsPerTrack = Geometry.Sectors;
DiskGeometry->NumberOfHeads = Geometry.Heads;
}
else
else
{
ERR("Reading disk geometry failed\n");
MmHeapFree(PartialResourceList);
return NULL;
ERR("Reading disk geometry failed\n");
MmHeapFree(PartialResourceList);
return NULL;
}
TRACE("Disk %x: %u Cylinders %u Heads %u Sectors %u Bytes\n",
DriveNumber,
DiskGeometry->NumberOfCylinders,
DiskGeometry->NumberOfHeads,
DiskGeometry->SectorsPerTrack,
DiskGeometry->BytesPerSector);
TRACE("Disk %x: %u Cylinders %u Heads %u Sectors %u Bytes\n",
DriveNumber,
DiskGeometry->NumberOfCylinders,
DiskGeometry->NumberOfHeads,
DiskGeometry->SectorsPerTrack,
DiskGeometry->BytesPerSector);
//
// Return configuration data
@ -107,7 +108,9 @@ typedef struct tagDISKCONTEXT
ULONGLONG SectorNumber;
} DISKCONTEXT;
static LONG DiskClose(ULONG FileId)
static
LONG
DiskClose(ULONG FileId)
{
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
@ -115,7 +118,9 @@ static LONG DiskClose(ULONG FileId)
return ESUCCESS;
}
static LONG DiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
static
LONG
DiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
{
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
@ -126,7 +131,9 @@ static LONG DiskGetFileInformation(ULONG FileId, FILEINFORMATION* Information)
return ESUCCESS;
}
static LONG DiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
static
LONG
DiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
{
DISKCONTEXT* Context;
ULONG DrivePartition, SectorSize;
@ -149,7 +156,7 @@ static LONG DiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
/* This is either a floppy disk device (DrivePartition == 0) or
* a hard disk device (DrivePartition != 0 && DrivePartition != 0xFF) but
* it doesn't matter which one because they both have 512 bytes per sector */
SectorSize = 512;
SectorSize = 512;
}
if (DrivePartition != 0xff && DrivePartition != 0)
@ -177,7 +184,9 @@ static LONG DiskOpen(CHAR* Path, OPENMODE OpenMode, ULONG* FileId)
return ESUCCESS;
}
static LONG DiskRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
static
LONG
DiskRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
{
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
UCHAR* Ptr = (UCHAR*)Buffer;
@ -193,10 +202,10 @@ static LONG DiskRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
Length = DISKREADBUFFER_SIZE;
Sectors = (Length + Context->SectorSize - 1) / Context->SectorSize;
ret = MachDiskReadLogicalSectors(
Context->DriveNumber,
Context->SectorNumber + Context->SectorOffset + i,
Sectors,
(PVOID)DISKREADBUFFER);
Context->DriveNumber,
Context->SectorNumber + Context->SectorOffset + i,
Sectors,
(PVOID)DISKREADBUFFER);
if (!ret)
return EIO;
RtlCopyMemory(Ptr, (PVOID)DISKREADBUFFER, Length);
@ -209,7 +218,9 @@ static LONG DiskRead(ULONG FileId, VOID* Buffer, ULONG N, ULONG* Count)
return ESUCCESS;
}
static LONG DiskSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
static
LONG
DiskSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
{
DISKCONTEXT* Context = FsGetDeviceSpecific(FileId);
@ -223,7 +234,8 @@ static LONG DiskSeek(ULONG FileId, LARGE_INTEGER* Position, SEEKMODE SeekMode)
return ESUCCESS;
}
static const DEVVTBL DiskVtbl = {
static const DEVVTBL DiskVtbl =
{
DiskClose,
DiskGetFileInformation,
DiskOpen,
@ -231,91 +243,93 @@ static const DEVVTBL DiskVtbl = {
DiskSeek,
};
static VOID
static
VOID
GetHarddiskIdentifier(PCHAR Identifier,
UCHAR DriveNumber)
UCHAR DriveNumber)
{
PMASTER_BOOT_RECORD Mbr;
ULONG *Buffer;
ULONG i;
ULONG Checksum;
ULONG Signature;
CHAR ArcName[256];
PARTITION_TABLE_ENTRY PartitionTableEntry;
PMASTER_BOOT_RECORD Mbr;
ULONG *Buffer;
ULONG i;
ULONG Checksum;
ULONG Signature;
CHAR ArcName[256];
PARTITION_TABLE_ENTRY PartitionTableEntry;
/* Read the MBR */
if (!MachDiskReadLogicalSectors(DriveNumber, 0ULL, 1, (PVOID)DISKREADBUFFER))
/* Read the MBR */
if (!MachDiskReadLogicalSectors(DriveNumber, 0ULL, 1, (PVOID)DISKREADBUFFER))
{
ERR("Reading MBR failed\n");
return;
ERR("Reading MBR failed\n");
return;
}
Buffer = (ULONG*)DISKREADBUFFER;
Mbr = (PMASTER_BOOT_RECORD)DISKREADBUFFER;
Buffer = (ULONG*)DISKREADBUFFER;
Mbr = (PMASTER_BOOT_RECORD)DISKREADBUFFER;
Signature = Mbr->Signature;
TRACE("Signature: %x\n", Signature);
Signature = Mbr->Signature;
TRACE("Signature: %x\n", Signature);
/* Calculate the MBR checksum */
Checksum = 0;
for (i = 0; i < 128; i++)
/* Calculate the MBR checksum */
Checksum = 0;
for (i = 0; i < 128; i++)
{
Checksum += Buffer[i];
Checksum += Buffer[i];
}
Checksum = ~Checksum + 1;
TRACE("Checksum: %x\n", Checksum);
Checksum = ~Checksum + 1;
TRACE("Checksum: %x\n", Checksum);
/* Fill out the ARC disk block */
reactos_arc_disk_info[reactos_disk_count].Signature = Signature;
reactos_arc_disk_info[reactos_disk_count].CheckSum = Checksum;
sprintf(ArcName, "multi(0)disk(0)rdisk(%lu)", reactos_disk_count);
strcpy(reactos_arc_strings[reactos_disk_count], ArcName);
reactos_arc_disk_info[reactos_disk_count].ArcName =
reactos_arc_strings[reactos_disk_count];
reactos_disk_count++;
/* Fill out the ARC disk block */
reactos_arc_disk_info[reactos_disk_count].Signature = Signature;
reactos_arc_disk_info[reactos_disk_count].CheckSum = Checksum;
sprintf(ArcName, "multi(0)disk(0)rdisk(%lu)", reactos_disk_count);
strcpy(reactos_arc_strings[reactos_disk_count], ArcName);
reactos_arc_disk_info[reactos_disk_count].ArcName =
reactos_arc_strings[reactos_disk_count];
reactos_disk_count++;
sprintf(ArcName, "multi(0)disk(0)rdisk(%u)partition(0)", DriveNumber - 0x80);
FsRegisterDevice(ArcName, &DiskVtbl);
sprintf(ArcName, "multi(0)disk(0)rdisk(%u)partition(0)", DriveNumber - 0x80);
FsRegisterDevice(ArcName, &DiskVtbl);
/* Add partitions */
i = 1;
DiskReportError(FALSE);
while (XboxDiskGetPartitionEntry(DriveNumber, i, &PartitionTableEntry))
{
if (PartitionTableEntry.SystemIndicator != PARTITION_ENTRY_UNUSED)
/* Add partitions */
i = 1;
DiskReportError(FALSE);
while (XboxDiskGetPartitionEntry(DriveNumber, i, &PartitionTableEntry))
{
sprintf(ArcName, "multi(0)disk(0)rdisk(%u)partition(%lu)", DriveNumber - 0x80, i);
FsRegisterDevice(ArcName, &DiskVtbl);
if (PartitionTableEntry.SystemIndicator != PARTITION_ENTRY_UNUSED)
{
sprintf(ArcName, "multi(0)disk(0)rdisk(%u)partition(%lu)", DriveNumber - 0x80, i);
FsRegisterDevice(ArcName, &DiskVtbl);
}
i++;
}
i++;
}
DiskReportError(TRUE);
DiskReportError(TRUE);
/* Convert checksum and signature to identifier string */
Identifier[0] = Hex[(Checksum >> 28) & 0x0F];
Identifier[1] = Hex[(Checksum >> 24) & 0x0F];
Identifier[2] = Hex[(Checksum >> 20) & 0x0F];
Identifier[3] = Hex[(Checksum >> 16) & 0x0F];
Identifier[4] = Hex[(Checksum >> 12) & 0x0F];
Identifier[5] = Hex[(Checksum >> 8) & 0x0F];
Identifier[6] = Hex[(Checksum >> 4) & 0x0F];
Identifier[7] = Hex[Checksum & 0x0F];
Identifier[8] = '-';
Identifier[9] = Hex[(Signature >> 28) & 0x0F];
Identifier[10] = Hex[(Signature >> 24) & 0x0F];
Identifier[11] = Hex[(Signature >> 20) & 0x0F];
Identifier[12] = Hex[(Signature >> 16) & 0x0F];
Identifier[13] = Hex[(Signature >> 12) & 0x0F];
Identifier[14] = Hex[(Signature >> 8) & 0x0F];
Identifier[15] = Hex[(Signature >> 4) & 0x0F];
Identifier[16] = Hex[Signature & 0x0F];
Identifier[17] = '-';
Identifier[18] = 'A';
Identifier[19] = 0;
TRACE("Identifier: %s\n", Identifier);
/* Convert checksum and signature to identifier string */
Identifier[0] = Hex[(Checksum >> 28) & 0x0F];
Identifier[1] = Hex[(Checksum >> 24) & 0x0F];
Identifier[2] = Hex[(Checksum >> 20) & 0x0F];
Identifier[3] = Hex[(Checksum >> 16) & 0x0F];
Identifier[4] = Hex[(Checksum >> 12) & 0x0F];
Identifier[5] = Hex[(Checksum >> 8) & 0x0F];
Identifier[6] = Hex[(Checksum >> 4) & 0x0F];
Identifier[7] = Hex[Checksum & 0x0F];
Identifier[8] = '-';
Identifier[9] = Hex[(Signature >> 28) & 0x0F];
Identifier[10] = Hex[(Signature >> 24) & 0x0F];
Identifier[11] = Hex[(Signature >> 20) & 0x0F];
Identifier[12] = Hex[(Signature >> 16) & 0x0F];
Identifier[13] = Hex[(Signature >> 12) & 0x0F];
Identifier[14] = Hex[(Signature >> 8) & 0x0F];
Identifier[15] = Hex[(Signature >> 4) & 0x0F];
Identifier[16] = Hex[Signature & 0x0F];
Identifier[17] = '-';
Identifier[18] = 'A';
Identifier[19] = 0;
TRACE("Identifier: %s\n", Identifier);
}
static VOID
static
VOID
DetectBiosDisks(PCONFIGURATION_COMPONENT_DATA SystemKey,
PCONFIGURATION_COMPONENT_DATA BusKey)
{
@ -356,13 +370,13 @@ DetectBiosDisks(PCONFIGURATION_COMPONENT_DATA SystemKey,
}
DiskReportError(TRUE);
TRACE("BIOS reports %d harddisk%s\n",
(int)DiskCount, (DiskCount == 1) ? "": "s");
(int)DiskCount, (DiskCount == 1) ? "" : "s");
//DetectBiosFloppyController(BusKey);
/* Allocate resource descriptor */
Size = sizeof(CM_PARTIAL_RESOURCE_LIST) +
sizeof(CM_INT13_DRIVE_PARAMETER) * DiskCount;
sizeof(CM_INT13_DRIVE_PARAMETER) * DiskCount;
PartialResourceList = MmHeapAlloc(Size);
if (PartialResourceList == NULL)
{
@ -394,12 +408,12 @@ DetectBiosDisks(PCONFIGURATION_COMPONENT_DATA SystemKey,
Int13Drives[i].NumberDrives = DiskCount;
TRACE(
"Disk %x: %u Cylinders %u Heads %u Sectors %u Bytes\n",
0x80 + i,
Geometry.Cylinders - 1,
Geometry.Heads -1,
Geometry.Sectors,
Geometry.BytesPerSector);
"Disk %x: %u Cylinders %u Heads %u Sectors %u Bytes\n",
0x80 + i,
Geometry.Cylinders - 1,
Geometry.Heads - 1,
Geometry.Sectors,
Geometry.BytesPerSector);
}
}
@ -415,8 +429,6 @@ DetectBiosDisks(PCONFIGURATION_COMPONENT_DATA SystemKey,
&ControllerKey);
TRACE("Created key: DiskController\\0\n");
MmHeapFree(PartialResourceList);
/* Create and fill subkey for each harddisk */
for (i = 0; i < DiskCount; i++)
{
@ -437,35 +449,33 @@ DetectBiosDisks(PCONFIGURATION_COMPONENT_DATA SystemKey,
PartialResourceList,
Size,
&DiskKey);
if (PartialResourceList)
MmHeapFree(PartialResourceList);
}
}
static VOID
static
VOID
DetectIsaBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
{
PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
PCONFIGURATION_COMPONENT_DATA BusKey;
ULONG Size;
PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
PCONFIGURATION_COMPONENT_DATA BusKey;
ULONG Size;
/* Set 'Configuration Data' value */
Size = sizeof(CM_PARTIAL_RESOURCE_LIST) -
sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR);
PartialResourceList = MmHeapAlloc(Size);
if (PartialResourceList == NULL)
/* Set 'Configuration Data' value */
Size = sizeof(CM_PARTIAL_RESOURCE_LIST) -
sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR);
PartialResourceList = MmHeapAlloc(Size);
if (PartialResourceList == NULL)
{
TRACE(
"Failed to allocate resource descriptor\n");
return;
TRACE(
"Failed to allocate resource descriptor\n");
return;
}
/* Initialize resource descriptor */
memset(PartialResourceList, 0, Size);
PartialResourceList->Version = 1;
PartialResourceList->Revision = 1;
PartialResourceList->Count = 0;
/* Initialize resource descriptor */
memset(PartialResourceList, 0, Size);
PartialResourceList->Version = 1;
PartialResourceList->Revision = 1;
PartialResourceList->Count = 0;
/* Create new bus key */
FldrCreateComponentKey(SystemKey,
@ -482,31 +492,36 @@ DetectIsaBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
/* Increment bus number */
(*BusNumber)++;
MmHeapFree(PartialResourceList);
/* Detect ISA/BIOS devices */
DetectBiosDisks(SystemKey, BusKey);
/* Detect ISA/BIOS devices */
DetectBiosDisks(SystemKey, BusKey);
/* FIXME: Detect more ISA devices */
/* FIXME: Detect more ISA devices */
}
PCONFIGURATION_COMPONENT_DATA
XboxHwDetect(VOID)
{
PCONFIGURATION_COMPONENT_DATA SystemKey;
ULONG BusNumber = 0;
PCONFIGURATION_COMPONENT_DATA SystemKey;
ULONG BusNumber = 0;
TRACE("DetectHardware()\n");
TRACE("DetectHardware()\n");
/* Create the 'System' key */
FldrCreateSystemKey(&SystemKey);
/* Create the 'System' key */
FldrCreateSystemKey(&SystemKey);
/* TODO: Build actual xbox's hardware configuration tree */
DetectIsaBios(SystemKey, &BusNumber);
/* TODO: Build actual xbox's hardware configuration tree */
DetectIsaBios(SystemKey, &BusNumber);
TRACE("DetectHardware() Done\n");
return SystemKey;
TRACE("DetectHardware() Done\n");
return SystemKey;
}
BOOLEAN
XboxInitializeBootDevices(VOID)
{
// Emulate old behavior
return XboxHwDetect() != NULL;
}
VOID XboxHwIdle(VOID)

View file

@ -21,7 +21,6 @@
ARC_DISK_SIGNATURE reactos_arc_disk_info[32]; // ARC Disk Information
ULONG reactos_disk_count = 0;
CHAR reactos_arc_hardware_data[HW_MAX_ARC_HEAP_SIZE] = {0};
CHAR reactos_arc_strings[32][256];
typedef
@ -197,8 +196,7 @@ VOID RunLoader(VOID)
ULONG SelectedOperatingSystem;
ULONG i;
// FIXME: if possible, only detect and register ARC devices...
if (!MachHwDetect())
if (!MachInitializeBootDevices())
{
UiMessageBoxCritical("Error when detecting hardware");
return;

Some files were not shown because too many files have changed in this diff Show more