From 0f635ea51412f644f5add88dcc2a26cbc5bde413 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Thu, 8 May 2014 12:43:10 +0000 Subject: [PATCH 01/92] =?UTF-8?q?[SHLWAPI]=20-=20Fix=20copypasta=20in=20Pa?= =?UTF-8?q?thRelativePathToW.=20Patch=20by=20V=C3=ADctor=20Mart=C3=ADnez?= =?UTF-8?q?=20CORE-8162=20#resolve?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit svn path=/trunk/; revision=63185 --- reactos/dll/win32/shlwapi/path.c | 34 ++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/reactos/dll/win32/shlwapi/path.c b/reactos/dll/win32/shlwapi/path.c index 46eb8d93279..f39427bc4e6 100644 --- a/reactos/dll/win32/shlwapi/path.c +++ b/reactos/dll/win32/shlwapi/path.c @@ -19,7 +19,25 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "precomp.h" +#include "config.h" +#include "wine/port.h" + +#include +#include +#include + +#include "wine/unicode.h" +#include "windef.h" +#include "winbase.h" +#include "wingdi.h" +#include "winuser.h" +#include "winreg.h" +#include "winternl.h" +#define NO_SHLWAPI_STREAM +#include "shlwapi.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(shell); /* Get a function pointer from a DLL handle */ #define GET_FUNC(func, module, name, fail) \ @@ -2189,7 +2207,7 @@ BOOL WINAPI PathIsUNCA(LPCSTR lpszPath) { TRACE("(%s)\n",debugstr_a(lpszPath)); - if (lpszPath && (lpszPath[0]=='\\') && (lpszPath[1]=='\\') && (lpszPath[2]!='?')) + if (lpszPath && lpszPath[0] == '\\' && lpszPath[1] == '\\' && lpszPath[2] != '?') return TRUE; return FALSE; } @@ -2203,7 +2221,7 @@ BOOL WINAPI PathIsUNCW(LPCWSTR lpszPath) { TRACE("(%s)\n",debugstr_w(lpszPath)); - if (lpszPath && (lpszPath[0]=='\\') && (lpszPath[1]=='\\') && (lpszPath[2]!='?')) + if (lpszPath && lpszPath[0] == '\\' && lpszPath[1] == '\\' && lpszPath[2] != '?') return TRUE; return FALSE; } @@ -2229,7 +2247,7 @@ BOOL WINAPI PathIsUNCServerA(LPCSTR lpszPath) { TRACE("(%s)\n", debugstr_a(lpszPath)); - if (lpszPath && *lpszPath++ == '\\' && *lpszPath++ == '\\') + if (lpszPath && *lpszPath++ == '\\' && *lpszPath++ == '\\' && *lpszPath != '?') { while (*lpszPath) { @@ -2251,7 +2269,7 @@ BOOL WINAPI PathIsUNCServerW(LPCWSTR lpszPath) { TRACE("(%s)\n", debugstr_w(lpszPath)); - if (lpszPath && lpszPath[0] == '\\' && lpszPath[1] == '\\') + if (lpszPath && lpszPath[0] == '\\' && lpszPath[1] == '\\' && lpszPath[2] != '?') { return !strchrW( lpszPath + 2, '\\' ); } @@ -2279,7 +2297,7 @@ BOOL WINAPI PathIsUNCServerShareA(LPCSTR lpszPath) { TRACE("(%s)\n", debugstr_a(lpszPath)); - if (lpszPath && *lpszPath++ == '\\' && *lpszPath++ == '\\') + if (lpszPath && *lpszPath++ == '\\' && *lpszPath++ == '\\' && *lpszPath != '?') { BOOL bSeenSlash = FALSE; while (*lpszPath) @@ -2306,7 +2324,7 @@ BOOL WINAPI PathIsUNCServerShareW(LPCWSTR lpszPath) { TRACE("(%s)\n", debugstr_w(lpszPath)); - if (lpszPath && *lpszPath++ == '\\' && *lpszPath++ == '\\') + if (lpszPath && *lpszPath++ == '\\' && *lpszPath++ == '\\' && *lpszPath != '?') { BOOL bSeenSlash = FALSE; while (*lpszPath) @@ -3515,7 +3533,7 @@ BOOL WINAPI PathRelativePathToW(LPWSTR lpszPath, LPCWSTR lpszFrom, DWORD dwAttrF if(!(dwAttrFrom & FILE_ATTRIBUTE_DIRECTORY)) PathRemoveFileSpecW(szFrom); - if(!(dwAttrFrom & FILE_ATTRIBUTE_DIRECTORY)) + if(!(dwAttrTo & FILE_ATTRIBUTE_DIRECTORY)) PathRemoveFileSpecW(szTo); /* Paths can only be relative if they have a common root */ From 40dc9fc1c8e965911c7f783c1c358510a85d084d Mon Sep 17 00:00:00 2001 From: James Tabor Date: Thu, 8 May 2014 12:46:01 +0000 Subject: [PATCH 02/92] [User32] - Fixed regression from r63183. See CORE-7967. svn path=/trunk/; revision=63186 --- reactos/win32ss/user/user32/windows/menu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/reactos/win32ss/user/user32/windows/menu.c b/reactos/win32ss/user/user32/windows/menu.c index 13d8bed17e5..08e33325c31 100644 --- a/reactos/win32ss/user/user32/windows/menu.c +++ b/reactos/win32ss/user/user32/windows/menu.c @@ -2945,6 +2945,8 @@ MenuHideSubPopups(HWND WndOwner, PROSMENUINFO MenuInfo, MenuHideSubPopups(WndOwner, &SubMenuInfo, FALSE, wFlags); MenuSelectItem(WndOwner, &SubMenuInfo, NO_SELECTED_ITEM, SendMenuSelect, NULL); + DestroyWindow(SubMenuInfo.Wnd); + /* Native returns handle to destroyed window */ if (!(wFlags & TPM_NONOTIFY)) SendMessageW( WndOwner, WM_UNINITMENUPOPUP, (WPARAM)ItemInfo.hSubMenu, MAKELPARAM(0, IS_SYSTEM_MENU(&SubMenuInfo)) ); @@ -2952,7 +2954,6 @@ MenuHideSubPopups(HWND WndOwner, PROSMENUINFO MenuInfo, // Call WM_UNINITMENUPOPUP FIRST before destroy!! // Fixes todo_wine User32 test menu.c line 2233 GetMenuBarInfo callback.... // - DestroyWindow(SubMenuInfo.Wnd); SubMenuInfo.Wnd = NULL; MenuSetRosMenuInfo(&SubMenuInfo); //// @@ -3966,6 +3967,7 @@ static INT FASTCALL MenuTrackMenu(HMENU hmenu, UINT wFlags, INT x, INT y, IntNotifyWinEvent(EVENT_SYSTEM_MENUPOPUPEND, MenuInfo.Wnd, OBJID_CLIENT, CHILDID_SELF, 0); DestroyWindow(MenuInfo.Wnd); MenuInfo.Wnd = NULL; + MenuSetRosMenuInfo(&MenuInfo); if (!(wFlags & TPM_NONOTIFY)) SendMessageW( mt.OwnerWnd, WM_UNINITMENUPOPUP, (WPARAM)mt.TopMenu, From 99da81e080ccaa0e19adf47dd4a797a37f36f6ec Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Thu, 8 May 2014 12:54:22 +0000 Subject: [PATCH 03/92] [SHLWAPI] - Revert 24342314 unintended changes svn path=/trunk/; revision=63187 --- reactos/dll/win32/shlwapi/path.c | 32 +++++++------------------------- 1 file changed, 7 insertions(+), 25 deletions(-) diff --git a/reactos/dll/win32/shlwapi/path.c b/reactos/dll/win32/shlwapi/path.c index f39427bc4e6..c0589ac9780 100644 --- a/reactos/dll/win32/shlwapi/path.c +++ b/reactos/dll/win32/shlwapi/path.c @@ -19,25 +19,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "config.h" -#include "wine/port.h" - -#include -#include -#include - -#include "wine/unicode.h" -#include "windef.h" -#include "winbase.h" -#include "wingdi.h" -#include "winuser.h" -#include "winreg.h" -#include "winternl.h" -#define NO_SHLWAPI_STREAM -#include "shlwapi.h" -#include "wine/debug.h" - -WINE_DEFAULT_DEBUG_CHANNEL(shell); +#include "precomp.h" /* Get a function pointer from a DLL handle */ #define GET_FUNC(func, module, name, fail) \ @@ -2207,7 +2189,7 @@ BOOL WINAPI PathIsUNCA(LPCSTR lpszPath) { TRACE("(%s)\n",debugstr_a(lpszPath)); - if (lpszPath && lpszPath[0] == '\\' && lpszPath[1] == '\\' && lpszPath[2] != '?') + if (lpszPath && (lpszPath[0]=='\\') && (lpszPath[1]=='\\') && (lpszPath[2]!='?')) return TRUE; return FALSE; } @@ -2221,7 +2203,7 @@ BOOL WINAPI PathIsUNCW(LPCWSTR lpszPath) { TRACE("(%s)\n",debugstr_w(lpszPath)); - if (lpszPath && lpszPath[0] == '\\' && lpszPath[1] == '\\' && lpszPath[2] != '?') + if (lpszPath && (lpszPath[0]=='\\') && (lpszPath[1]=='\\') && (lpszPath[2]!='?')) return TRUE; return FALSE; } @@ -2247,7 +2229,7 @@ BOOL WINAPI PathIsUNCServerA(LPCSTR lpszPath) { TRACE("(%s)\n", debugstr_a(lpszPath)); - if (lpszPath && *lpszPath++ == '\\' && *lpszPath++ == '\\' && *lpszPath != '?') + if (lpszPath && *lpszPath++ == '\\' && *lpszPath++ == '\\') { while (*lpszPath) { @@ -2269,7 +2251,7 @@ BOOL WINAPI PathIsUNCServerW(LPCWSTR lpszPath) { TRACE("(%s)\n", debugstr_w(lpszPath)); - if (lpszPath && lpszPath[0] == '\\' && lpszPath[1] == '\\' && lpszPath[2] != '?') + if (lpszPath && lpszPath[0] == '\\' && lpszPath[1] == '\\') { return !strchrW( lpszPath + 2, '\\' ); } @@ -2297,7 +2279,7 @@ BOOL WINAPI PathIsUNCServerShareA(LPCSTR lpszPath) { TRACE("(%s)\n", debugstr_a(lpszPath)); - if (lpszPath && *lpszPath++ == '\\' && *lpszPath++ == '\\' && *lpszPath != '?') + if (lpszPath && *lpszPath++ == '\\' && *lpszPath++ == '\\') { BOOL bSeenSlash = FALSE; while (*lpszPath) @@ -2324,7 +2306,7 @@ BOOL WINAPI PathIsUNCServerShareW(LPCWSTR lpszPath) { TRACE("(%s)\n", debugstr_w(lpszPath)); - if (lpszPath && *lpszPath++ == '\\' && *lpszPath++ == '\\' && *lpszPath != '?') + if (lpszPath && *lpszPath++ == '\\' && *lpszPath++ == '\\') { BOOL bSeenSlash = FALSE; while (*lpszPath) From 426a4f1ef256662e5fb25ad51e04501e79ee766e Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Thu, 8 May 2014 13:24:09 +0000 Subject: [PATCH 04/92] =?UTF-8?q?[MSDMO]=20-=20Actually=20copy=20output=20?= =?UTF-8?q?string=20in=20IEnumDMO=5FfnNext.=20Patch=20by=20V=C3=ADctor=20M?= =?UTF-8?q?art=C3=ADnez=20CORE-8151=20#resolve?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit svn path=/trunk/; revision=63188 --- reactos/dll/directx/wine/msdmo/dmoreg.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reactos/dll/directx/wine/msdmo/dmoreg.c b/reactos/dll/directx/wine/msdmo/dmoreg.c index 48968b37798..84c1ed93a38 100644 --- a/reactos/dll/directx/wine/msdmo/dmoreg.c +++ b/reactos/dll/directx/wine/msdmo/dmoreg.c @@ -607,9 +607,9 @@ static HRESULT WINAPI IEnumDMO_fnNext( hres = RegQueryValueExW(hkey, NULL, NULL, NULL, (LPBYTE) szValue, &len); if (ERROR_SUCCESS == hres) { - Names[count] = HeapAlloc(GetProcessHeap(), 0, strlenW(szValue) + 1); + Names[count] = HeapAlloc(GetProcessHeap(), 0, (strlenW(szValue) + 1) * sizeof(WCHAR)); if (Names[count]) - strcmpW(Names[count], szValue); + strcpyW(Names[count], szValue); } wsprintfW(szGuidKey,szToGuidFmt,szNextKey); CLSIDFromString(szGuidKey, &pCLSID[count]); From 0b6732576247aa0d22eff6860974fb97becfd495 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Thu, 8 May 2014 14:07:36 +0000 Subject: [PATCH 05/92] [NTDLL] * Export NtGetTickCount(). CORE-8174 svn path=/trunk/; revision=63189 --- reactos/dll/ntdll/CMakeLists.txt | 1 + reactos/dll/ntdll/def/ntdll.spec | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/reactos/dll/ntdll/CMakeLists.txt b/reactos/dll/ntdll/CMakeLists.txt index afa15fd2c24..d99009315ac 100644 --- a/reactos/dll/ntdll/CMakeLists.txt +++ b/reactos/dll/ntdll/CMakeLists.txt @@ -40,6 +40,7 @@ add_library(ntdll SHARED ${SOURCE} ${ntdll_asm} def/ntdll.rc + ${CMAKE_CURRENT_BINARY_DIR}/ntdll_stubs.c ${CMAKE_CURRENT_BINARY_DIR}/ntdll.def) set_module_type(ntdll win32dll HOTPATCHABLE ENTRYPOINT 0) diff --git a/reactos/dll/ntdll/def/ntdll.spec b/reactos/dll/ntdll/def/ntdll.spec index 4ed630d4604..e6f87994c59 100644 --- a/reactos/dll/ntdll/def/ntdll.spec +++ b/reactos/dll/ntdll/def/ntdll.spec @@ -175,7 +175,7 @@ @ stdcall NtGetCurrentProcessorNumber() ; 5.2 and higher @ stdcall NtGetDevicePowerState(ptr ptr) @ stdcall NtGetPlugPlayEvent(long long ptr long) -;@ stdcall NtGetTickCount() +@ stdcall -stub NtGetTickCount() @ stdcall NtGetWriteWatch(long long ptr long ptr ptr ptr) @ stdcall NtImpersonateAnonymousToken(ptr) @ stdcall NtImpersonateClientOfPort(ptr ptr) From 2ce68e3d241301d60f0acb914577dbbe42bda980 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Thu, 8 May 2014 14:08:20 +0000 Subject: [PATCH 06/92] [WINE/PORT] * Fix interlocked_cmpxchg_ptr and interlocked_xchg_ptr. svn path=/trunk/; revision=63190 --- reactos/include/reactos/wine/port.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reactos/include/reactos/wine/port.h b/reactos/include/reactos/wine/port.h index 7b42643de67..8c075637343 100644 --- a/reactos/include/reactos/wine/port.h +++ b/reactos/include/reactos/wine/port.h @@ -343,9 +343,9 @@ extern int spawnvp(int mode, const char *cmdname, const char * const argv[]); #if defined(_MSC_VER) || (defined(__i386__) && defined(__GNUC__) && !defined(WINE_PORT_NO_INTERLOCKED)) #define interlocked_cmpxchg InterlockedCompareExchange -#define interlocked_cmpxchg_ptr InterlockedCompareExchangePtr +#define interlocked_cmpxchg_ptr InterlockedCompareExchangePointer #define interlocked_xchg InterlockedExchange -#define interlocked_xchg_ptr InterlockedExchangePtr +#define interlocked_xchg_ptr InterlockedExchangePointer #define interlocked_xchg_add InterlockedExchangeAdd From 7fcec220f73c5344414f11d7c123d32b77a67e9e Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Thu, 8 May 2014 14:09:06 +0000 Subject: [PATCH 07/92] [NDK] * Add RtlFindActivationContextSectionGuid(). svn path=/trunk/; revision=63191 --- reactos/include/ndk/rtlfuncs.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/reactos/include/ndk/rtlfuncs.h b/reactos/include/ndk/rtlfuncs.h index c0a205c473f..36f5ecfcc80 100644 --- a/reactos/include/ndk/rtlfuncs.h +++ b/reactos/include/ndk/rtlfuncs.h @@ -4419,6 +4419,17 @@ RtlCloneMemoryStream( #endif // NTOS_MODE_USER +NTSYSAPI +NTSTATUS +NTAPI +RtlFindActivationContextSectionGuid( + ULONG flags, + const GUID *extguid, + ULONG section_kind, + const GUID *guid, + void *ptr +); + #ifdef __cplusplus } #endif From ce79cc8f0a37aba835880c5c9347a2c6da9d0716 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Thu, 8 May 2014 14:14:01 +0000 Subject: [PATCH 08/92] [KERNEL32][NTDLL] * Sync ActCtx related code with Wine 1.7.17. * I'll let you find out how many tests that fixes ;) * Dedicated to Christoph von Wittich. CORE-8080 svn path=/trunk/; revision=63192 --- reactos/dll/win32/kernel32/wine/actctx.c | 16 +- reactos/include/ndk/rtlfuncs.h | 2 +- reactos/lib/rtl/actctx.c | 2429 ++++++++++++++++++++-- reactos/media/doc/README.WINE | 2 +- 4 files changed, 2317 insertions(+), 132 deletions(-) diff --git a/reactos/dll/win32/kernel32/wine/actctx.c b/reactos/dll/win32/kernel32/wine/actctx.c index 7eb91a90c4c..c1a73d16972 100644 --- a/reactos/dll/win32/kernel32/wine/actctx.c +++ b/reactos/dll/win32/kernel32/wine/actctx.c @@ -10,7 +10,7 @@ * Samuel Serapin */ -/* synched with wine 1.1.26 */ +/* Partly synched with Wine 1.7.17 */ #include @@ -178,11 +178,15 @@ BOOL WINAPI FindActCtxSectionGuid(DWORD dwFlags, const GUID* lpExtGuid, ULONG ulId, const GUID* lpSearchGuid, PACTCTX_SECTION_KEYED_DATA pInfo) { - FIXME("%08x %s %u %s %p\n", dwFlags, debugstr_guid(lpExtGuid), - ulId, debugstr_guid(lpSearchGuid), pInfo); - SetLastError( ERROR_CALL_NOT_IMPLEMENTED); - return FALSE; + NTSTATUS status; + + if ((status = RtlFindActivationContextSectionGuid(dwFlags, lpExtGuid, ulId, lpSearchGuid, pInfo))) + { + SetLastError(RtlNtStatusToDosError(status)); + return FALSE; + } + + return TRUE; } - /* EOF */ diff --git a/reactos/include/ndk/rtlfuncs.h b/reactos/include/ndk/rtlfuncs.h index 36f5ecfcc80..b38a982197a 100644 --- a/reactos/include/ndk/rtlfuncs.h +++ b/reactos/include/ndk/rtlfuncs.h @@ -3654,7 +3654,7 @@ RtlFindActivationContextSectionString( _In_ ULONG dwFlags, _In_ const GUID *ExtensionGuid, _In_ ULONG SectionType, - _In_ PUNICODE_STRING SectionName, + _In_ const UNICODE_STRING *SectionName, _Inout_ PVOID ReturnedData ); diff --git a/reactos/lib/rtl/actctx.c b/reactos/lib/rtl/actctx.c index 1243f59ceab..bf425a9f530 100644 --- a/reactos/lib/rtl/actctx.c +++ b/reactos/lib/rtl/actctx.c @@ -12,7 +12,7 @@ * Samuel Serapin */ -/* Based on Wine 1.1.26 */ +/* Based on Wine 1.7.17 */ #include @@ -24,14 +24,17 @@ BOOLEAN RtlpNotAllowingMultipleActivation; #define ACTCTX_FLAGS_ALL (\ - ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID |\ - ACTCTX_FLAG_LANGID_VALID |\ - ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID |\ - ACTCTX_FLAG_RESOURCE_NAME_VALID |\ - ACTCTX_FLAG_SET_PROCESS_DEFAULT |\ - ACTCTX_FLAG_APPLICATION_NAME_VALID |\ - ACTCTX_FLAG_SOURCE_IS_ASSEMBLYREF |\ - ACTCTX_FLAG_HMODULE_VALID ) + ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID |\ + ACTCTX_FLAG_LANGID_VALID |\ + ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID |\ + ACTCTX_FLAG_RESOURCE_NAME_VALID |\ + ACTCTX_FLAG_SET_PROCESS_DEFAULT |\ + ACTCTX_FLAG_APPLICATION_NAME_VALID |\ + ACTCTX_FLAG_SOURCE_IS_ASSEMBLYREF |\ + ACTCTX_FLAG_HMODULE_VALID ) + +#define STRSECTION_MAGIC 0x64487353 /* dHsS */ +#define GUIDSECTION_MAGIC 0x64487347 /* dHsG */ #define ACTCTX_MAGIC_MARKER (PVOID)'gMcA' @@ -77,6 +80,291 @@ struct assembly_identity BOOL optional; }; +struct strsection_header +{ + DWORD magic; + ULONG size; + DWORD unk1[3]; + ULONG count; + ULONG index_offset; + DWORD unk2[2]; + ULONG global_offset; + ULONG global_len; +}; + +struct string_index +{ + ULONG hash; /* key string hash */ + ULONG name_offset; + ULONG name_len; + ULONG data_offset; /* redirect data offset */ + ULONG data_len; + ULONG rosterindex; +}; + +struct guidsection_header +{ + DWORD magic; + ULONG size; + DWORD unk[3]; + ULONG count; + ULONG index_offset; + DWORD unk2; + ULONG names_offset; + ULONG names_len; +}; + +struct guid_index +{ + GUID guid; + ULONG data_offset; + ULONG data_len; + ULONG rosterindex; +}; + +struct wndclass_redirect_data +{ + ULONG size; + DWORD res; + ULONG name_len; + ULONG name_offset; /* versioned name offset */ + ULONG module_len; + ULONG module_offset;/* container name offset */ +}; + +struct dllredirect_data +{ + ULONG size; + ULONG unk; + DWORD res[3]; +}; + +struct tlibredirect_data +{ + ULONG size; + DWORD res; + ULONG name_len; + ULONG name_offset; + LANGID langid; + WORD flags; + ULONG help_len; + ULONG help_offset; + WORD major_version; + WORD minor_version; +}; + +enum comclass_threadingmodel +{ + ThreadingModel_Apartment = 1, + ThreadingModel_Free = 2, + ThreadingModel_No = 3, + ThreadingModel_Both = 4, + ThreadingModel_Neutral = 5 +}; + +enum comclass_miscfields +{ + MiscStatus = 1, + MiscStatusIcon = 2, + MiscStatusContent = 4, + MiscStatusThumbnail = 8, + MiscStatusDocPrint = 16 +}; + +struct comclassredirect_data +{ + ULONG size; + BYTE res; + BYTE miscmask; + BYTE res1[2]; + DWORD model; + GUID clsid; + GUID alias; + GUID clsid2; + GUID tlbid; + ULONG name_len; + ULONG name_offset; + ULONG progid_len; + ULONG progid_offset; + ULONG clrdata_len; + ULONG clrdata_offset; + DWORD miscstatus; + DWORD miscstatuscontent; + DWORD miscstatusthumbnail; + DWORD miscstatusicon; + DWORD miscstatusdocprint; +}; + +enum ifaceps_mask +{ + NumMethods = 1, + BaseIface = 2 +}; + +struct ifacepsredirect_data +{ + ULONG size; + DWORD mask; + GUID iid; + ULONG nummethods; + GUID tlbid; + GUID base; + ULONG name_len; + ULONG name_offset; +}; + +struct clrsurrogate_data +{ + ULONG size; + DWORD res; + GUID clsid; + ULONG version_offset; + ULONG version_len; + ULONG name_offset; + ULONG name_len; +}; + +struct clrclass_data +{ + ULONG size; + DWORD res[2]; + ULONG module_len; + ULONG module_offset; + ULONG name_len; + ULONG name_offset; + ULONG version_len; + ULONG version_offset; + DWORD res2[2]; +}; + +struct progidredirect_data +{ + ULONG size; + DWORD reserved; + ULONG clsid_offset; +}; + +/* + + Sections structure. + + Sections are accessible by string or guid key, that defines two types of sections. + All sections of each type have same magic value and header structure, index + data could be of two possible types too. So every string based section uses + the same index format, same applies to guid sections - they share same guid index + format. + + - window class redirection section is a plain buffer with following format: + +
+ + --- + + + + + Header is fixed length structure - struct strsection_header, + contains redirected classes count; + + Index is an array of fixed length index records, each record is + struct string_index. + + All strings in data itself are WCHAR, null terminated, 4-bytes aligned. + + Versioned name offset is relative to redirect data structure (struct wndclass_redirect_data), + others are relative to section itself. + + - dll redirect section format: + +
+ + --- + + + This section doesn't seem to carry any payload data except dll names. + + - typelib section format: + +
+ + + --- + + + Header is fixed length, index is an array of fixed length 'struct guid_index'. + All strings are WCHAR, null terminated, 4-bytes aligned. Module names part is + 4-bytes aligned as a whole. + + Module name offsets are relative to section, helpstring offset is relative to data + structure itself. + + - comclass section format: + +
+ + + --- --- + + + + + + This section uses two index records per comclass, one entry contains original guid + as specified by context, another one has a generated guid. Index and strings handling + is similar to typelib sections. + + For CLR classes additional data is stored after main COM class data, it contains + class name and runtime version string, see 'struct clrclass_data'. + + Module name offsets are relative to section, progid offset is relative to data + structure itself. + + - COM interface section format: + +
+ + --- + + + Interface section contains data for proxy/stubs and external proxy/stubs. External + ones are defined at assembly level, so this section has no module information. + All records are indexed with 'iid' value from manifest. There an exception for + external variants - if 'proxyStubClsid32' is specified, it's stored as iid in + redirect data, but index is still 'iid' from manifest. + + Interface name offset is relative to data structure itself. + + - CLR surrogates section format: + +
+ + --- + + + + There's nothing special about this section, same way to store strings is used, + no modules part as it belongs to assembly level, not a file. + + - ProgID section format: + +
+ + + --- + + + This sections uses generated alias guids from COM server section. This way + ProgID -> CLSID mapping returns generated guid, not the real one. ProgID string + is stored too, aligned. +*/ + +struct progids +{ + WCHAR **progids; + unsigned int num; + unsigned int allocated; +}; + struct entity { DWORD kind; @@ -85,30 +373,45 @@ struct entity struct { WCHAR *tlbid; - WCHAR *version; WCHAR *helpdir; - } typelib; + WORD flags; + WORD major; + WORD minor; + } typelib; struct { WCHAR *clsid; - } comclass; - struct { + WCHAR *tlbid; + WCHAR *progid; + WCHAR *name; /* clrClass: class name */ + WCHAR *version; /* clrClass: CLR runtime version */ + DWORD model; + DWORD miscstatus; + DWORD miscstatuscontent; + DWORD miscstatusthumbnail; + DWORD miscstatusicon; + DWORD miscstatusdocprint; + struct progids progids; + } comclass; + struct { WCHAR *iid; + WCHAR *base; + WCHAR *tlib; WCHAR *name; - } proxy; + WCHAR *ps32; /* only stored for 'comInterfaceExternalProxyStub' */ + DWORD mask; + ULONG nummethods; + } ifaceps; struct { WCHAR *name; + BOOL versioned; } class; struct { WCHAR *name; WCHAR *clsid; - } clrclass; - struct - { - WCHAR *name; - WCHAR *clsid; + WCHAR *version; } clrsurrogate; } u; }; @@ -147,6 +450,17 @@ struct assembly struct entity_array entities; }; +enum context_sections +{ + WINDOWCLASS_SECTION = 1, + DLLREDIRECT_SECTION = 2, + TLIBREDIRECT_SECTION = 4, + SERVERREDIRECT_SECTION = 8, + IFACEREDIRECT_SECTION = 16, + CLRSURROGATES_SECTION = 32, + PROGIDREDIRECT_SECTION = 64 +}; + typedef struct _ASSEMBLY_STORAGE_MAP_ENTRY { ULONG Flags; @@ -180,6 +494,15 @@ typedef struct _ACTIVATION_CONTEXT struct assembly *assemblies; unsigned int num_assemblies; unsigned int allocated_assemblies; + /* section data */ + DWORD sections; + struct strsection_header *wndclass_section; + struct strsection_header *dllredirect_section; + struct strsection_header *progid_section; + struct guidsection_header *tlib_section; + struct guidsection_header *comserver_section; + struct guidsection_header *ifaceps_section; + struct guidsection_header *clrsurrogate_section; } ACTIVATION_CONTEXT, *PIACTIVATION_CONTEXT; struct actctx_loader @@ -278,11 +601,87 @@ static const WCHAR newVersionW[] = {'n','e','w','V','e','r','s','i','o','n',0}; static const WCHAR oldVersionW[] = {'o','l','d','V','e','r','s','i','o','n',0}; static const WCHAR optionalW[] = {'o','p','t','i','o','n','a','l',0}; static const WCHAR processorArchitectureW[] = {'p','r','o','c','e','s','s','o','r','A','r','c','h','i','t','e','c','t','u','r','e',0}; +static const WCHAR progidW[] = {'p','r','o','g','i','d',0}; static const WCHAR publicKeyTokenW[] = {'p','u','b','l','i','c','K','e','y','T','o','k','e','n',0}; +static const WCHAR threadingmodelW[] = {'t','h','r','e','a','d','i','n','g','M','o','d','e','l',0}; static const WCHAR tlbidW[] = {'t','l','b','i','d',0}; static const WCHAR typeW[] = {'t','y','p','e',0}; static const WCHAR versionW[] = {'v','e','r','s','i','o','n',0}; static const WCHAR xmlnsW[] = {'x','m','l','n','s',0}; +static const WCHAR versionedW[] = {'v','e','r','s','i','o','n','e','d',0}; +static const WCHAR yesW[] = {'y','e','s',0}; +static const WCHAR noW[] = {'n','o',0}; +static const WCHAR restrictedW[] = {'R','E','S','T','R','I','C','T','E','D',0}; +static const WCHAR controlW[] = {'C','O','N','T','R','O','L',0}; +static const WCHAR hiddenW[] = {'H','I','D','D','E','N',0}; +static const WCHAR hasdiskimageW[] = {'H','A','S','D','I','S','K','I','M','A','G','E',0}; +static const WCHAR flagsW[] = {'f','l','a','g','s',0}; +static const WCHAR miscstatusW[] = {'m','i','s','c','S','t','a','t','u','s',0}; +static const WCHAR miscstatusiconW[] = {'m','i','s','c','S','t','a','t','u','s','I','c','o','n',0}; +static const WCHAR miscstatuscontentW[] = {'m','i','s','c','S','t','a','t','u','s','C','o','n','t','e','n','t',0}; +static const WCHAR miscstatusthumbnailW[] = {'m','i','s','c','S','t','a','t','u','s','T','h','u','m','b','n','a','i','l',0}; +static const WCHAR miscstatusdocprintW[] = {'m','i','s','c','S','t','a','t','u','s','D','o','c','P','r','i','n','t',0}; +static const WCHAR baseInterfaceW[] = {'b','a','s','e','I','n','t','e','r','f','a','c','e',0}; +static const WCHAR nummethodsW[] = {'n','u','m','M','e','t','h','o','d','s',0}; +static const WCHAR proxyStubClsid32W[] = {'p','r','o','x','y','S','t','u','b','C','l','s','i','d','3','2',0}; +static const WCHAR runtimeVersionW[] = {'r','u','n','t','i','m','e','V','e','r','s','i','o','n',0}; +static const WCHAR mscoreeW[] = {'M','S','C','O','R','E','E','.','D','L','L',0}; +static const WCHAR mscoree2W[] = {'m','s','c','o','r','e','e','.','d','l','l',0}; + +static const WCHAR activatewhenvisibleW[] = {'a','c','t','i','v','a','t','e','w','h','e','n','v','i','s','i','b','l','e',0}; +static const WCHAR actslikebuttonW[] = {'a','c','t','s','l','i','k','e','b','u','t','t','o','n',0}; +static const WCHAR actslikelabelW[] = {'a','c','t','s','l','i','k','e','l','a','b','e','l',0}; +static const WCHAR alignableW[] = {'a','l','i','g','n','a','b','l','e',0}; +static const WCHAR alwaysrunW[] = {'a','l','w','a','y','s','r','u','n',0}; +static const WCHAR canlinkbyole1W[] = {'c','a','n','l','i','n','k','b','y','o','l','e','1',0}; +static const WCHAR cantlinkinsideW[] = {'c','a','n','t','l','i','n','k','i','n','s','i','d','e',0}; +static const WCHAR ignoreactivatewhenvisibleW[] = {'i','g','n','o','r','e','a','c','t','i','v','a','t','e','w','h','e','n','v','i','s','i','b','l','e',0}; +static const WCHAR imemodeW[] = {'i','m','e','m','o','d','e',0}; +static const WCHAR insertnotreplaceW[] = {'i','n','s','e','r','t','n','o','t','r','e','p','l','a','c','e',0}; +static const WCHAR insideoutW[] = {'i','n','s','i','d','e','o','u','t',0}; +static const WCHAR invisibleatruntimeW[] = {'i','n','v','i','s','i','b','l','e','a','t','r','u','n','t','i','m','e',0}; +static const WCHAR islinkobjectW[] = {'i','s','l','i','n','k','o','b','j','e','c','t',0}; +static const WCHAR nouiactivateW[] = {'n','o','u','i','a','c','t','i','v','a','t','e',0}; +static const WCHAR onlyiconicW[] = {'o','n','l','y','i','c','o','n','i','c',0}; +static const WCHAR recomposeonresizeW[] = {'r','e','c','o','m','p','o','s','e','o','n','r','e','s','i','z','e',0}; +static const WCHAR renderingisdeviceindependentW[] = {'r','e','n','d','e','r','i','n','g','i','s','d','e','v','i','c','e','i','n','d','e','p','e','n','d','e','n','t',0}; +static const WCHAR setclientsitefirstW[] = {'s','e','t','c','l','i','e','n','t','s','i','t','e','f','i','r','s','t',0}; +static const WCHAR simpleframeW[] = {'s','i','m','p','l','e','f','r','a','m','e',0}; +static const WCHAR staticW[] = {'s','t','a','t','i','c',0}; +static const WCHAR supportsmultilevelundoW[] = {'s','u','p','p','o','r','t','s','m','u','l','t','i','l','e','v','e','l','u','n','d','o',0}; +static const WCHAR wantstomenumergeW[] = {'w','a','n','t','s','t','o','m','e','n','u','m','e','r','g','e',0}; + +struct olemisc_entry +{ + const WCHAR *name; + OLEMISC value; +}; + +static const struct olemisc_entry olemisc_values[] = +{ + { activatewhenvisibleW, OLEMISC_ACTIVATEWHENVISIBLE }, + { actslikebuttonW, OLEMISC_ACTSLIKEBUTTON }, + { actslikelabelW, OLEMISC_ACTSLIKELABEL }, + { alignableW, OLEMISC_ALIGNABLE }, + { alwaysrunW, OLEMISC_ALWAYSRUN }, + { canlinkbyole1W, OLEMISC_CANLINKBYOLE1 }, + { cantlinkinsideW, OLEMISC_CANTLINKINSIDE }, + { ignoreactivatewhenvisibleW, OLEMISC_IGNOREACTIVATEWHENVISIBLE }, + { imemodeW, OLEMISC_IMEMODE }, + { insertnotreplaceW, OLEMISC_INSERTNOTREPLACE }, + { insideoutW, OLEMISC_INSIDEOUT }, + { invisibleatruntimeW, OLEMISC_INVISIBLEATRUNTIME }, + { islinkobjectW, OLEMISC_ISLINKOBJECT }, + { nouiactivateW, OLEMISC_NOUIACTIVATE }, + { onlyiconicW, OLEMISC_ONLYICONIC }, + { recomposeonresizeW, OLEMISC_RECOMPOSEONRESIZE }, + { renderingisdeviceindependentW, OLEMISC_RENDERINGISDEVICEINDEPENDENT }, + { setclientsitefirstW, OLEMISC_SETCLIENTSITEFIRST }, + { simpleframeW, OLEMISC_SIMPLEFRAME }, + { staticW, OLEMISC_STATIC }, + { supportsmultilevelundoW, OLEMISC_SUPPORTSMULTILEVELUNDO }, + { wantstomenumergeW, OLEMISC_WANTSTOMENUMERGE } +}; static const WCHAR g_xmlW[] = {'?','x','m','l',0}; static const WCHAR manifestv1W[] = {'u','r','n',':','s','c','h','e','m','a','s','-','m','i','c','r','o','s','o','f','t','-','c','o','m',':','a','s','m','.','v','1',0}; @@ -460,7 +859,7 @@ static struct entity* add_entity(struct entity_array *array, DWORD kind) static void free_entity_array(struct entity_array *array) { - unsigned int i; + unsigned int i, j; for (i = 0; i < array->num; i++) { struct entity *entity = &array->base[i]; @@ -468,26 +867,31 @@ static void free_entity_array(struct entity_array *array) { case ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION: RtlFreeHeap(RtlGetProcessHeap(), 0, entity->u.comclass.clsid); + RtlFreeHeap(RtlGetProcessHeap(), 0, entity->u.comclass.tlbid); + RtlFreeHeap(RtlGetProcessHeap(), 0, entity->u.comclass.progid); + RtlFreeHeap(RtlGetProcessHeap(), 0, entity->u.comclass.name); + RtlFreeHeap(RtlGetProcessHeap(), 0, entity->u.comclass.version); + for (j = 0; j < entity->u.comclass.progids.num; j++) + RtlFreeHeap(RtlGetProcessHeap(), 0, entity->u.comclass.progids.progids[j]); + RtlFreeHeap(RtlGetProcessHeap(), 0, entity->u.comclass.progids.progids); break; case ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION: - RtlFreeHeap(RtlGetProcessHeap(), 0, entity->u.proxy.iid); - RtlFreeHeap(RtlGetProcessHeap(), 0, entity->u.proxy.name); + RtlFreeHeap(RtlGetProcessHeap(), 0, entity->u.ifaceps.iid); + RtlFreeHeap(RtlGetProcessHeap(), 0, entity->u.ifaceps.base); + RtlFreeHeap(RtlGetProcessHeap(), 0, entity->u.ifaceps.ps32); + RtlFreeHeap(RtlGetProcessHeap(), 0, entity->u.ifaceps.name); break; case ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION: RtlFreeHeap(RtlGetProcessHeap(), 0, entity->u.typelib.tlbid); - RtlFreeHeap(RtlGetProcessHeap(), 0, entity->u.typelib.version); RtlFreeHeap(RtlGetProcessHeap(), 0, entity->u.typelib.helpdir); break; case ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION: RtlFreeHeap(RtlGetProcessHeap(), 0, entity->u.class.name); break; - case ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION: - RtlFreeHeap(RtlGetProcessHeap(), 0, entity->u.clrclass.name); - RtlFreeHeap(RtlGetProcessHeap(), 0, entity->u.clrclass.clsid); - break; case ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES: RtlFreeHeap(RtlGetProcessHeap(), 0, entity->u.clrsurrogate.name); RtlFreeHeap(RtlGetProcessHeap(), 0, entity->u.clrsurrogate.clsid); + RtlFreeHeap(RtlGetProcessHeap(), 0, entity->u.clrsurrogate.version); break; default: DPRINT1("Unknown entity kind %u\n", entity->kind); @@ -1004,7 +1408,110 @@ static BOOL parse_assembly_identity_elem(xmlbuf_t* xmlbuf, ACTIVATION_CONTEXT* a return parse_expect_end_elem(xmlbuf, assemblyIdentityW, asmv1W); } -static BOOL parse_com_class_elem(xmlbuf_t* xmlbuf, struct dll_redirect* dll) +static enum comclass_threadingmodel parse_com_class_threadingmodel(xmlstr_t *value) +{ + static const WCHAR apartW[] = {'A','p','a','r','t','m','e','n','t',0}; + static const WCHAR neutralW[] = {'N','e','u','t','r','a','l',0}; + static const WCHAR freeW[] = {'F','r','e','e',0}; + static const WCHAR bothW[] = {'B','o','t','h',0}; + + if (value->len == 0) return ThreadingModel_No; + if (xmlstr_cmp(value, apartW)) + return ThreadingModel_Apartment; + else if (xmlstr_cmp(value, freeW)) + return ThreadingModel_Free; + else if (xmlstr_cmp(value, bothW)) + return ThreadingModel_Both; + else if (xmlstr_cmp(value, neutralW)) + return ThreadingModel_Neutral; + else + return ThreadingModel_No; +}; + +static OLEMISC get_olemisc_value(const WCHAR *str, int len) +{ + int min, max; + + min = 0; + max = sizeof(olemisc_values)/sizeof(struct olemisc_entry) - 1; + + while (min <= max) + { + int n, c; + + n = (min+max)/2; + + c = strncmpW(olemisc_values[n].name, str, len); + if (!c && !olemisc_values[n].name[len]) + return olemisc_values[n].value; + + if (c >= 0) + max = n-1; + else + min = n+1; + } + + DPRINT1("unknown flag %S\n", str); + return 0; +} + +static DWORD parse_com_class_misc(const xmlstr_t *value) +{ + const WCHAR *str = value->ptr, *start; + DWORD flags = 0; + int i = 0; + + /* it's comma separated list of flags */ + while (i < value->len) + { + start = str; + while (*str != ',' && (i++ < value->len)) str++; + + flags |= get_olemisc_value(start, str-start); + + /* skip separator */ + str++; + i++; + } + + return flags; +} + +static BOOL com_class_add_progid(const xmlstr_t *progid, struct entity *entity) +{ + struct progids *progids = &entity->u.comclass.progids; + + if (progids->allocated == 0) + { + progids->allocated = 4; + if (!(progids->progids = RtlAllocateHeap(RtlGetProcessHeap(), 0, progids->allocated * sizeof(WCHAR*)))) return FALSE; + } + + if (progids->allocated == progids->num) + { + progids->allocated *= 2; + progids->progids = RtlReAllocateHeap(RtlGetProcessHeap(), 0, progids->progids, progids->allocated * sizeof(WCHAR*)); + } + + if (!(progids->progids[progids->num] = xmlstrdupW(progid))) return FALSE; + progids->num++; + + return TRUE; +} + +static BOOL parse_com_class_progid(xmlbuf_t* xmlbuf, struct entity *entity) +{ + xmlstr_t content; + BOOL end = FALSE; + + if (!parse_expect_no_attr(xmlbuf, &end) || end || !parse_text_content(xmlbuf, &content)) + return FALSE; + + if (!com_class_add_progid(&content, entity)) return FALSE; + return parse_expect_end_elem(xmlbuf, progidW, asmv1W); +} + +static BOOL parse_com_class_elem(xmlbuf_t* xmlbuf, struct dll_redirect* dll, struct actctx_loader *acl) { xmlstr_t elem, attr_name, attr_value; BOOL ret = TRUE, end = FALSE, error; @@ -1020,6 +1527,42 @@ static BOOL parse_com_class_elem(xmlbuf_t* xmlbuf, struct dll_redirect* dll) { if (!(entity->u.comclass.clsid = xmlstrdupW(&attr_value))) return FALSE; } + else if (xmlstr_cmp(&attr_name, progidW)) + { + if (!(entity->u.comclass.progid = xmlstrdupW(&attr_value))) return FALSE; + } + else if (xmlstr_cmp(&attr_name, tlbidW)) + { + if (!(entity->u.comclass.tlbid = xmlstrdupW(&attr_value))) return FALSE; + } + else if (xmlstr_cmp(&attr_name, threadingmodelW)) + { + entity->u.comclass.model = parse_com_class_threadingmodel(&attr_value); + } + else if (xmlstr_cmp(&attr_name, miscstatusW)) + { + entity->u.comclass.miscstatus = parse_com_class_misc(&attr_value); + } + else if (xmlstr_cmp(&attr_name, miscstatuscontentW)) + { + entity->u.comclass.miscstatuscontent = parse_com_class_misc(&attr_value); + } + else if (xmlstr_cmp(&attr_name, miscstatusthumbnailW)) + { + entity->u.comclass.miscstatusthumbnail = parse_com_class_misc(&attr_value); + } + else if (xmlstr_cmp(&attr_name, miscstatusiconW)) + { + entity->u.comclass.miscstatusicon = parse_com_class_misc(&attr_value); + } + else if (xmlstr_cmp(&attr_name, miscstatusdocprintW)) + { + entity->u.comclass.miscstatusdocprint = parse_com_class_misc(&attr_value); + } + else if (xmlstr_cmp(&attr_name, descriptionW)) + { + /* not stored */ + } else { attr_nameU = xmlstr2unicode(&attr_name); @@ -1028,15 +1571,25 @@ static BOOL parse_com_class_elem(xmlbuf_t* xmlbuf, struct dll_redirect* dll) } } - if (error || end) return end; + if (error) return FALSE; - while ((ret = next_xml_elem(xmlbuf, &elem))) + acl->actctx->sections |= SERVERREDIRECT_SECTION; + if (entity->u.comclass.progid) + acl->actctx->sections |= PROGIDREDIRECT_SECTION; + + if (end) return TRUE; + + while (ret && (ret = next_xml_elem(xmlbuf, &elem))) { if (xmlstr_cmp_end(&elem, comClassW)) { ret = parse_end_element(xmlbuf); break; } + else if (xmlstr_cmp(&elem, progidW)) + { + ret = parse_com_class_progid(xmlbuf, entity); + } else { attr_nameU = xmlstr2unicode(&elem); @@ -1044,10 +1597,35 @@ static BOOL parse_com_class_elem(xmlbuf_t* xmlbuf, struct dll_redirect* dll) ret = parse_unknown_elem(xmlbuf, &elem); } } + + if (entity->u.comclass.progids.num) + acl->actctx->sections |= PROGIDREDIRECT_SECTION; + return ret; } -static BOOL parse_cominterface_proxy_stub_elem(xmlbuf_t* xmlbuf, struct dll_redirect* dll) +static BOOL parse_nummethods(const xmlstr_t *str, struct entity *entity) +{ + const WCHAR *curr; + ULONG num = 0; + + for (curr = str->ptr; curr < str->ptr + str->len; curr++) + { + if (*curr >= '0' && *curr <= '9') + num = num * 10 + *curr - '0'; + else + { + UNICODE_STRING strU = xmlstr2unicode(str); + DPRINT1("wrong numeric value %wZ\n", &strU); + return FALSE; + } + } + entity->u.ifaceps.nummethods = num; + + return TRUE; +} + +static BOOL parse_cominterface_proxy_stub_elem(xmlbuf_t* xmlbuf, struct dll_redirect* dll, struct actctx_loader* acl) { xmlstr_t attr_name, attr_value; BOOL end = FALSE, error; @@ -1061,11 +1639,29 @@ static BOOL parse_cominterface_proxy_stub_elem(xmlbuf_t* xmlbuf, struct dll_redi { if (xmlstr_cmp(&attr_name, iidW)) { - if (!(entity->u.proxy.iid = xmlstrdupW(&attr_value))) return FALSE; + if (!(entity->u.ifaceps.iid = xmlstrdupW(&attr_value))) return FALSE; } - if (xmlstr_cmp(&attr_name, g_nameW)) + else if (xmlstr_cmp(&attr_name, g_nameW)) + { + if (!(entity->u.ifaceps.name = xmlstrdupW(&attr_value))) return FALSE; + } + else if (xmlstr_cmp(&attr_name, baseInterfaceW)) + { + if (!(entity->u.ifaceps.base = xmlstrdupW(&attr_value))) return FALSE; + entity->u.ifaceps.mask |= BaseIface; + } + else if (xmlstr_cmp(&attr_name, nummethodsW)) + { + if (!(parse_nummethods(&attr_value, entity))) return FALSE; + entity->u.ifaceps.mask |= NumMethods; + } + else if (xmlstr_cmp(&attr_name, tlbidW)) + { + if (!(entity->u.ifaceps.tlib = xmlstrdupW(&attr_value))) return FALSE; + } + /* not used */ + else if (xmlstr_cmp(&attr_name, proxyStubClsid32W) || xmlstr_cmp(&attr_name, threadingmodelW)) { - if (!(entity->u.proxy.name = xmlstrdupW(&attr_value))) return FALSE; } else { @@ -1075,11 +1671,83 @@ static BOOL parse_cominterface_proxy_stub_elem(xmlbuf_t* xmlbuf, struct dll_redi } } - if (error || end) return end; + if (error) return FALSE; + acl->actctx->sections |= IFACEREDIRECT_SECTION; + if (end) return TRUE; + return parse_expect_end_elem(xmlbuf, comInterfaceProxyStubW, asmv1W); } -static BOOL parse_typelib_elem(xmlbuf_t* xmlbuf, struct dll_redirect* dll) +static BOOL parse_typelib_flags(const xmlstr_t *value, struct entity *entity) +{ + WORD *flags = &entity->u.typelib.flags; + const WCHAR *str = value->ptr, *start; + int i = 0; + + *flags = 0; + + /* it's comma separated list of flags */ + while (i < value->len) + { + start = str; + while (*str != ',' && (i++ < value->len)) str++; + + if (!strncmpiW(start, restrictedW, str-start)) + *flags |= LIBFLAG_FRESTRICTED; + else if (!strncmpiW(start, controlW, str-start)) + *flags |= LIBFLAG_FCONTROL; + else if (!strncmpiW(start, hiddenW, str-start)) + *flags |= LIBFLAG_FHIDDEN; + else if (!strncmpiW(start, hasdiskimageW, str-start)) + *flags |= LIBFLAG_FHASDISKIMAGE; + else + { + UNICODE_STRING valueU = xmlstr2unicode(value); + DPRINT1("unknown flags value %wZ\n", &valueU); + return FALSE; + } + + /* skip separator */ + str++; + i++; + } + + return TRUE; +} + +static BOOL parse_typelib_version(const xmlstr_t *str, struct entity *entity) +{ + unsigned int ver[2]; + unsigned int pos; + const WCHAR *curr; + UNICODE_STRING strW; + + /* major.minor */ + ver[0] = ver[1] = pos = 0; + for (curr = str->ptr; curr < str->ptr + str->len; curr++) + { + if (*curr >= '0' && *curr <= '9') + { + ver[pos] = ver[pos] * 10 + *curr - '0'; + if (ver[pos] >= 0x10000) goto error; + } + else if (*curr == '.') + { + if (++pos >= 2) goto error; + } + else goto error; + } + entity->u.typelib.major = ver[0]; + entity->u.typelib.minor = ver[1]; + return TRUE; + +error: + strW = xmlstr2unicode(str); + DPRINT1("FIXME: wrong typelib version value (%wZ)\n", &strW); + return FALSE; +} + +static BOOL parse_typelib_elem(xmlbuf_t* xmlbuf, struct dll_redirect* dll, struct actctx_loader* acl) { xmlstr_t attr_name, attr_value; BOOL end = FALSE, error; @@ -1095,14 +1763,70 @@ static BOOL parse_typelib_elem(xmlbuf_t* xmlbuf, struct dll_redirect* dll) { if (!(entity->u.typelib.tlbid = xmlstrdupW(&attr_value))) return FALSE; } - if (xmlstr_cmp(&attr_name, versionW)) + else if (xmlstr_cmp(&attr_name, versionW)) { - if (!(entity->u.typelib.version = xmlstrdupW(&attr_value))) return FALSE; + if (!parse_typelib_version(&attr_value, entity)) return FALSE; } - if (xmlstr_cmp(&attr_name, helpdirW)) + else if (xmlstr_cmp(&attr_name, helpdirW)) { if (!(entity->u.typelib.helpdir = xmlstrdupW(&attr_value))) return FALSE; } + else if (xmlstr_cmp(&attr_name, flagsW)) + { + if (!parse_typelib_flags(&attr_value, entity)) return FALSE; + } + else + { + attr_nameU = xmlstr2unicode(&attr_name); + attr_valueU = xmlstr2unicode(&attr_value); + DPRINT1("unknown attr %wZ=%wZ\n", &attr_nameU, &attr_valueU); + } + } + + if (error) return FALSE; + + acl->actctx->sections |= TLIBREDIRECT_SECTION; + + if (end) return TRUE; + + return parse_expect_end_elem(xmlbuf, typelibW, asmv1W); +} + +static inline int aligned_string_len(int len) +{ + return (len + 3) & ~3; +} + +static int get_assembly_version(struct assembly *assembly, WCHAR *ret) +{ + static const WCHAR fmtW[] = {'%','u','.','%','u','.','%','u','.','%','u',0}; + struct assembly_version *ver = &assembly->id.version; + WCHAR buff[25]; + + if (!ret) ret = buff; + return sprintfW(ret, fmtW, ver->major, ver->minor, ver->build, ver->revision); +} + +static BOOL parse_window_class_elem(xmlbuf_t* xmlbuf, struct dll_redirect* dll, struct actctx_loader* acl) +{ + xmlstr_t elem, content, attr_name, attr_value; + BOOL end = FALSE, ret = TRUE, error; + struct entity* entity; + UNICODE_STRING elemU, attr_nameU, attr_valueU; + + if (!(entity = add_entity(&dll->entities, ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION))) + return FALSE; + + entity->u.class.versioned = TRUE; + while (next_xml_attr(xmlbuf, &attr_name, &attr_value, &error, &end)) + { + if (xmlstr_cmp(&attr_name, versionedW)) + { + if (xmlstr_cmpi(&attr_value, noW)) + entity->u.class.versioned = FALSE; + else if (!xmlstr_cmpi(&attr_value, yesW)) + return FALSE; + } else { attr_nameU = xmlstr2unicode(&attr_name); @@ -1112,26 +1836,13 @@ static BOOL parse_typelib_elem(xmlbuf_t* xmlbuf, struct dll_redirect* dll) } if (error || end) return end; - return parse_expect_end_elem(xmlbuf, typelibW, asmv1W); -} - -static BOOL parse_window_class_elem(xmlbuf_t* xmlbuf, struct dll_redirect* dll) -{ - xmlstr_t elem, content; - BOOL end = FALSE, ret = TRUE; - struct entity* entity; - UNICODE_STRING elemU; - - if (!(entity = add_entity(&dll->entities, ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION))) - return FALSE; - - if (!parse_expect_no_attr(xmlbuf, &end)) return FALSE; - if (end) return FALSE; if (!parse_text_content(xmlbuf, &content)) return FALSE; if (!(entity->u.class.name = xmlstrdupW(&content))) return FALSE; + acl->actctx->sections |= WINDOWCLASS_SECTION; + while (ret && (ret = next_xml_elem(xmlbuf, &elem))) { if (xmlstr_cmp_end(&elem, windowClassW)) @@ -1211,7 +1922,8 @@ static BOOL parse_description_elem(xmlbuf_t* xmlbuf) } static BOOL parse_com_interface_external_proxy_stub_elem(xmlbuf_t* xmlbuf, - struct assembly* assembly) + struct assembly* assembly, + struct actctx_loader* acl) { xmlstr_t attr_name, attr_value; UNICODE_STRING attr_nameU, attr_valueU; @@ -1225,11 +1937,29 @@ static BOOL parse_com_interface_external_proxy_stub_elem(xmlbuf_t* xmlbuf, { if (xmlstr_cmp(&attr_name, iidW)) { - if (!(entity->u.proxy.iid = xmlstrdupW(&attr_value))) return FALSE; + if (!(entity->u.ifaceps.iid = xmlstrdupW(&attr_value))) return FALSE; } - if (xmlstr_cmp(&attr_name, g_nameW)) + else if (xmlstr_cmp(&attr_name, g_nameW)) { - if (!(entity->u.proxy.name = xmlstrdupW(&attr_value))) return FALSE; + if (!(entity->u.ifaceps.name = xmlstrdupW(&attr_value))) return FALSE; + } + else if (xmlstr_cmp(&attr_name, baseInterfaceW)) + { + if (!(entity->u.ifaceps.base = xmlstrdupW(&attr_value))) return FALSE; + entity->u.ifaceps.mask |= BaseIface; + } + else if (xmlstr_cmp(&attr_name, nummethodsW)) + { + if (!(parse_nummethods(&attr_value, entity))) return FALSE; + entity->u.ifaceps.mask |= NumMethods; + } + else if (xmlstr_cmp(&attr_name, proxyStubClsid32W)) + { + if (!(entity->u.ifaceps.ps32 = xmlstrdupW(&attr_value))) return FALSE; + } + else if (xmlstr_cmp(&attr_name, tlbidW)) + { + if (!(entity->u.ifaceps.tlib = xmlstrdupW(&attr_value))) return FALSE; } else { @@ -1239,43 +1969,89 @@ static BOOL parse_com_interface_external_proxy_stub_elem(xmlbuf_t* xmlbuf, } } - if (error || end) return end; + if (error) return FALSE; + acl->actctx->sections |= IFACEREDIRECT_SECTION; + if (end) return TRUE; + return parse_expect_end_elem(xmlbuf, comInterfaceExternalProxyStubW, asmv1W); } -static BOOL parse_clr_class_elem(xmlbuf_t* xmlbuf, struct assembly* assembly) +static BOOL parse_clr_class_elem(xmlbuf_t* xmlbuf, struct assembly* assembly, struct actctx_loader *acl) { - xmlstr_t attr_name, attr_value; - UNICODE_STRING attr_nameU, attr_valueU; - BOOL end = FALSE, error; + xmlstr_t attr_name, attr_value, elem; + BOOL end = FALSE, error, ret = TRUE; struct entity* entity; - entity = add_entity(&assembly->entities, ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION); + entity = add_entity(&assembly->entities, ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION); if (!entity) return FALSE; while (next_xml_attr(xmlbuf, &attr_name, &attr_value, &error, &end)) { if (xmlstr_cmp(&attr_name, g_nameW)) { - if (!(entity->u.clrclass.name = xmlstrdupW(&attr_value))) return FALSE; + if (!(entity->u.comclass.name = xmlstrdupW(&attr_value))) return FALSE; } else if (xmlstr_cmp(&attr_name, clsidW)) { - if (!(entity->u.clrclass.clsid = xmlstrdupW(&attr_value))) return FALSE; + if (!(entity->u.comclass.clsid = xmlstrdupW(&attr_value))) return FALSE; + } + else if (xmlstr_cmp(&attr_name, progidW)) + { + if (!(entity->u.comclass.progid = xmlstrdupW(&attr_value))) return FALSE; + } + else if (xmlstr_cmp(&attr_name, tlbidW)) + { + if (!(entity->u.comclass.tlbid = xmlstrdupW(&attr_value))) return FALSE; + } + else if (xmlstr_cmp(&attr_name, threadingmodelW)) + { + entity->u.comclass.model = parse_com_class_threadingmodel(&attr_value); + } + else if (xmlstr_cmp(&attr_name, runtimeVersionW)) + { + if (!(entity->u.comclass.version = xmlstrdupW(&attr_value))) return FALSE; } else { + UNICODE_STRING attr_nameU, attr_valueU; attr_nameU = xmlstr2unicode(&attr_name); attr_valueU = xmlstr2unicode(&attr_value); DPRINT1("unknown attr %wZ=%wZ\n", &attr_nameU, &attr_valueU); } } - if (error || end) return end; - return parse_expect_end_elem(xmlbuf, clrClassW, asmv1W); + if (error) return FALSE; + acl->actctx->sections |= SERVERREDIRECT_SECTION; + if (entity->u.comclass.progid) + acl->actctx->sections |= PROGIDREDIRECT_SECTION; + if (end) return TRUE; + + while (ret && (ret = next_xml_elem(xmlbuf, &elem))) + { + if (xmlstr_cmp_end(&elem, clrClassW)) + { + ret = parse_end_element(xmlbuf); + break; + } + else if (xmlstr_cmp(&elem, progidW)) + { + ret = parse_com_class_progid(xmlbuf, entity); + } + else + { + UNICODE_STRING elemU = xmlstr2unicode(&elem); + DPRINT1("unknown elem %wZ\n", &elemU); + ret = parse_unknown_elem(xmlbuf, &elem); + } + } + + if (entity->u.comclass.progids.num) + acl->actctx->sections |= PROGIDREDIRECT_SECTION; + + return ret; } -static BOOL parse_clr_surrogate_elem(xmlbuf_t* xmlbuf, struct assembly* assembly) +static BOOL parse_clr_surrogate_elem(xmlbuf_t* xmlbuf, struct assembly* assembly, struct actctx_loader *acl) { xmlstr_t attr_name, attr_value; UNICODE_STRING attr_nameU, attr_valueU; @@ -1295,6 +2071,10 @@ static BOOL parse_clr_surrogate_elem(xmlbuf_t* xmlbuf, struct assembly* assembly { if (!(entity->u.clrsurrogate.clsid = xmlstrdupW(&attr_value))) return FALSE; } + else if (xmlstr_cmp(&attr_name, runtimeVersionW)) + { + if (!(entity->u.clrsurrogate.version = xmlstrdupW(&attr_value))) return FALSE; + } else { attr_nameU = xmlstr2unicode(&attr_name); @@ -1303,7 +2083,10 @@ static BOOL parse_clr_surrogate_elem(xmlbuf_t* xmlbuf, struct assembly* assembly } } - if (error || end) return end; + if (error) return FALSE; + acl->actctx->sections |= CLRSURROGATES_SECTION; + if (end) return TRUE; + return parse_expect_end_elem(xmlbuf, clrSurrogateW, asmv1W); } @@ -1322,6 +2105,8 @@ static BOOL parse_dependent_assembly_elem(xmlbuf_t* xmlbuf, struct actctx_loader !parse_assembly_identity_elem(xmlbuf, acl->actctx, &ai)) return FALSE; + //TRACE( "adding name=%s version=%s arch=%s\n", debugstr_w(ai.name), debugstr_version(&ai.version), debugstr_w(ai.arch) ); + /* store the newly found identity for later loading */ if (!add_dependent_assembly_id(acl, &ai)) return FALSE; @@ -1359,7 +2144,6 @@ static BOOL parse_dependency_elem(xmlbuf_t* xmlbuf, struct actctx_loader* acl) if (xmlstr_cmp(&attr_name, optionalW)) { - static const WCHAR yesW[] = {'y','e','s',0}; optional = xmlstr_cmpi( &attr_value, yesW ); DPRINT1("optional=%wZ\n", &attr_valueU); } @@ -1407,7 +2191,7 @@ static BOOL parse_noinheritable_elem(xmlbuf_t* xmlbuf) return end || parse_expect_end_elem(xmlbuf, noInheritableW, asmv1W); } -static BOOL parse_file_elem(xmlbuf_t* xmlbuf, struct assembly* assembly) +static BOOL parse_file_elem(xmlbuf_t* xmlbuf, struct assembly* assembly, struct actctx_loader* acl) { xmlstr_t attr_name, attr_value, elem; UNICODE_STRING attr_nameU, attr_valueU; @@ -1443,6 +2227,9 @@ static BOOL parse_file_elem(xmlbuf_t* xmlbuf, struct assembly* assembly) } if (error || !dll->name) return FALSE; + + acl->actctx->sections |= DLLREDIRECT_SECTION; + if (end) return TRUE; while (ret && (ret = next_xml_elem(xmlbuf, &elem))) @@ -1454,24 +2241,24 @@ static BOOL parse_file_elem(xmlbuf_t* xmlbuf, struct assembly* assembly) } else if (xmlstr_cmp(&elem, comClassW)) { - ret = parse_com_class_elem(xmlbuf, dll); + ret = parse_com_class_elem(xmlbuf, dll, acl); } else if (xmlstr_cmp(&elem, comInterfaceProxyStubW)) { - ret = parse_cominterface_proxy_stub_elem(xmlbuf, dll); + ret = parse_cominterface_proxy_stub_elem(xmlbuf, dll, acl); } - else if (xmlstr_cmp(&elem, asmv2hashW)) + else if (xml_elem_cmp(&elem, hashW, asmv2W)) { DPRINT1("asmv2hash (undocumented) not supported\n"); ret = parse_unknown_elem(xmlbuf, &elem); } else if (xmlstr_cmp(&elem, typelibW)) { - ret = parse_typelib_elem(xmlbuf, dll); + ret = parse_typelib_elem(xmlbuf, dll, acl); } else if (xmlstr_cmp(&elem, windowClassW)) { - ret = parse_window_class_elem(xmlbuf, dll); + ret = parse_window_class_elem(xmlbuf, dll, acl); } else { @@ -1492,6 +2279,8 @@ static BOOL parse_assembly_elem(xmlbuf_t* xmlbuf, struct actctx_loader* acl, UNICODE_STRING attr_nameU, attr_valueU; BOOL end = FALSE, error, version = FALSE, xmlns = FALSE, ret = TRUE; + DPRINT("(%p)\n", xmlbuf); + while (next_xml_attr(xmlbuf, &attr_name, &attr_value, &error, &end)) { attr_nameU = xmlstr2unicode(&attr_name); @@ -1532,7 +2321,7 @@ static BOOL parse_assembly_elem(xmlbuf_t* xmlbuf, struct actctx_loader* acl, assembly->no_inherit = TRUE; } - if (xmlstr_cmp(&elem, noInheritableW)) + if (xml_elem_cmp(&elem, noInheritableW, asmv1W)) { if (!parse_noinheritable_elem(xmlbuf) || !next_xml_elem(xmlbuf, &elem)) return FALSE; @@ -1543,36 +2332,36 @@ static BOOL parse_assembly_elem(xmlbuf_t* xmlbuf, struct actctx_loader* acl, while (ret) { - if (xmlstr_cmp_end(&elem, assemblyW)) + if (xml_elem_cmp_end(&elem, assemblyW, asmv1W)) { ret = parse_end_element(xmlbuf); break; } - else if (xmlstr_cmp(&elem, descriptionW)) + else if (xml_elem_cmp(&elem, descriptionW, asmv1W)) { ret = parse_description_elem(xmlbuf); } - else if (xmlstr_cmp(&elem, comInterfaceExternalProxyStubW)) + else if (xml_elem_cmp(&elem, comInterfaceExternalProxyStubW, asmv1W)) { - ret = parse_com_interface_external_proxy_stub_elem(xmlbuf, assembly); + ret = parse_com_interface_external_proxy_stub_elem(xmlbuf, assembly, acl); } - else if (xmlstr_cmp(&elem, dependencyW)) + else if (xml_elem_cmp(&elem, dependencyW, asmv1W)) { ret = parse_dependency_elem(xmlbuf, acl); } - else if (xmlstr_cmp(&elem, fileW)) + else if (xml_elem_cmp(&elem, fileW, asmv1W)) { - ret = parse_file_elem(xmlbuf, assembly); + ret = parse_file_elem(xmlbuf, assembly, acl); } - else if (xmlstr_cmp(&elem, clrClassW)) + else if (xml_elem_cmp(&elem, clrClassW, asmv1W)) { - ret = parse_clr_class_elem(xmlbuf, assembly); + ret = parse_clr_class_elem(xmlbuf, assembly, acl); } - else if (xmlstr_cmp(&elem, clrSurrogateW)) + else if (xml_elem_cmp(&elem, clrSurrogateW, asmv1W)) { - ret = parse_clr_surrogate_elem(xmlbuf, assembly); + ret = parse_clr_surrogate_elem(xmlbuf, assembly, acl); } - else if (xmlstr_cmp(&elem, assemblyIdentityW)) + else if (xml_elem_cmp(&elem, assemblyIdentityW, asmv1W)) { if (!parse_assembly_identity_elem(xmlbuf, acl->actctx, &assembly->id)) return FALSE; @@ -1625,7 +2414,7 @@ static NTSTATUS parse_manifest_buffer( struct actctx_loader* acl, struct assembl (!parse_xml_header(xmlbuf) || !next_xml_elem(xmlbuf, &elem))) return STATUS_SXS_CANT_GEN_ACTCTX; - if (!xmlstr_cmp(&elem, assemblyW)) + if (!xml_elem_cmp(&elem, assemblyW, asmv1W)) { elemU = xmlstr2unicode(&elem); DPRINT1("root element is %wZ, not \n", &elemU); @@ -2220,7 +3009,10 @@ static NTSTATUS parse_depend_manifests(struct actctx_loader* acl) { if (!acl->dependencies[i].optional) { - DPRINT1( "Could not find dependent assembly %S\n", acl->dependencies[i].name ); + const struct assembly_version *ver = &acl->dependencies[i].version; + DPRINT1( "Could not find dependent assembly %S (%u.%u.%u.%u)\n", + acl->dependencies[i].name, + ver->major, ver->minor, ver->build, ver->revision ); status = STATUS_SXS_CANT_GEN_ACTCTX; break; } @@ -2266,26 +3058,43 @@ static NTSTATUS find_query_actctx( HANDLE *handle, DWORD flags, ULONG class ) return status; } -static NTSTATUS fill_keyed_data(PACTCTX_SECTION_KEYED_DATA data, PVOID v1, PVOID v2, unsigned int i) +static NTSTATUS build_dllredirect_section(ACTIVATION_CONTEXT* actctx, struct strsection_header **section) { - data->ulDataFormatVersion = 1; - data->lpData = v1; - data->ulLength = 20; /* FIXME */ - data->lpSectionGlobalData = NULL; /* FIXME */ - data->ulSectionGlobalDataLength = 0; /* FIXME */ - data->lpSectionBase = v2; - data->ulSectionTotalLength = 0; /* FIXME */ - data->hActCtx = NULL; - if (data->cbSize >= offsetof(ACTCTX_SECTION_KEYED_DATA, ulAssemblyRosterIndex) + sizeof(ULONG)) - data->ulAssemblyRosterIndex = i + 1; + unsigned int i, j, total_len = 0, dll_count = 0; + struct strsection_header *header; + struct dllredirect_data *data; + struct string_index *index; + ULONG name_offset; - return STATUS_SUCCESS; -} + /* compute section length */ + for (i = 0; i < actctx->num_assemblies; i++) + { + struct assembly *assembly = &actctx->assemblies[i]; + for (j = 0; j < assembly->num_dlls; j++) + { + struct dll_redirect *dll = &assembly->dlls[j]; -static NTSTATUS find_dll_redirection(ACTIVATION_CONTEXT* actctx, const UNICODE_STRING *section_name, - PACTCTX_SECTION_KEYED_DATA data) -{ - unsigned int i, j, snlen = section_name->Length / sizeof(WCHAR); + /* each entry needs index, data and string data */ + total_len += sizeof(*index); + total_len += sizeof(*data); + total_len += aligned_string_len((strlenW(dll->name)+1)*sizeof(WCHAR)); + } + + dll_count += assembly->num_dlls; + } + + total_len += sizeof(*header); + + header = RtlAllocateHeap(RtlGetProcessHeap(), 0, total_len); + if (!header) return STATUS_NO_MEMORY; + + memset(header, 0, sizeof(*header)); + header->magic = STRSECTION_MAGIC; + header->size = sizeof(*header); + header->count = dll_count; + header->index_offset = sizeof(*header); + index = (struct string_index*)((BYTE*)header + header->index_offset); + name_offset = header->index_offset + header->count*sizeof(*index); for (i = 0; i < actctx->num_assemblies; i++) { @@ -2293,17 +3102,200 @@ static NTSTATUS find_dll_redirection(ACTIVATION_CONTEXT* actctx, const UNICODE_S for (j = 0; j < assembly->num_dlls; j++) { struct dll_redirect *dll = &assembly->dlls[j]; - if (!strncmpiW(section_name->Buffer, dll->name, snlen) && !dll->name[snlen]) - return fill_keyed_data(data, dll, assembly, i); + UNICODE_STRING str; + WCHAR *ptrW; + + /* setup new index entry */ + str.Buffer = dll->name; + str.Length = strlenW(dll->name)*sizeof(WCHAR); + str.MaximumLength = str.Length + sizeof(WCHAR); + /* hash original class name */ + RtlHashUnicodeString(&str, TRUE, HASH_STRING_ALGORITHM_X65599, &index->hash); + + index->name_offset = name_offset; + index->name_len = str.Length; + index->data_offset = index->name_offset + aligned_string_len(str.MaximumLength); + index->data_len = sizeof(*data); + index->rosterindex = i + 1; + + /* setup data */ + data = (struct dllredirect_data*)((BYTE*)header + index->data_offset); + data->size = sizeof(*data); + data->unk = 2; /* FIXME: seems to be constant */ + memset(data->res, 0, sizeof(data->res)); + + /* dll name */ + ptrW = (WCHAR*)((BYTE*)header + index->name_offset); + memcpy(ptrW, dll->name, index->name_len); + ptrW[index->name_len/sizeof(WCHAR)] = 0; + + name_offset += sizeof(*data) + aligned_string_len(str.MaximumLength); + + index++; } } - return STATUS_SXS_KEY_NOT_FOUND; + + *section = header; + + return STATUS_SUCCESS; } -static NTSTATUS find_window_class(ACTIVATION_CONTEXT* actctx, const UNICODE_STRING *section_name, - PACTCTX_SECTION_KEYED_DATA data) +static struct string_index *find_string_index(const struct strsection_header *section, const UNICODE_STRING *name) { - unsigned int i, j, k, snlen = section_name->Length / sizeof(WCHAR); + struct string_index *iter, *index = NULL; + ULONG hash = 0, i; + + RtlHashUnicodeString(name, TRUE, HASH_STRING_ALGORITHM_X65599, &hash); + iter = (struct string_index*)((BYTE*)section + section->index_offset); + + for (i = 0; i < section->count; i++) + { + if (iter->hash == hash) + { + const WCHAR *nameW = (WCHAR*)((BYTE*)section + iter->name_offset); + + if (!strcmpiW(nameW, name->Buffer)) + { + index = iter; + break; + } + else + DPRINT1("hash collision 0x%08x, %wZ, %S\n", hash, name, nameW); + } + iter++; + } + + return index; +} + +static struct guid_index *find_guid_index(const struct guidsection_header *section, const GUID *guid) +{ + struct guid_index *iter, *index = NULL; + ULONG i; + + iter = (struct guid_index*)((BYTE*)section + section->index_offset); + + for (i = 0; i < section->count; i++) + { + if (!memcmp(guid, &iter->guid, sizeof(*guid))) + { + index = iter; + break; + } + iter++; + } + + return index; +} + +static inline struct dllredirect_data *get_dllredirect_data(ACTIVATION_CONTEXT *ctxt, struct string_index *index) +{ + return (struct dllredirect_data*)((BYTE*)ctxt->dllredirect_section + index->data_offset); +} + +static NTSTATUS find_dll_redirection(ACTIVATION_CONTEXT* actctx, const UNICODE_STRING *name, + PACTCTX_SECTION_KEYED_DATA data) +{ + struct dllredirect_data *dll; + struct string_index *index; + + if (!(actctx->sections & DLLREDIRECT_SECTION)) return STATUS_SXS_KEY_NOT_FOUND; + + if (!actctx->dllredirect_section) + { + struct strsection_header *section; + + NTSTATUS status = build_dllredirect_section(actctx, §ion); + if (status) return status; + + if (InterlockedCompareExchangePointer((void**)&actctx->dllredirect_section, section, NULL)) + RtlFreeHeap(RtlGetProcessHeap(), 0, section); + } + + index = find_string_index(actctx->dllredirect_section, name); + if (!index) return STATUS_SXS_KEY_NOT_FOUND; + + dll = get_dllredirect_data(actctx, index); + + data->ulDataFormatVersion = 1; + data->lpData = dll; + data->ulLength = dll->size; + data->lpSectionGlobalData = NULL; + data->ulSectionGlobalDataLength = 0; + data->lpSectionBase = actctx->dllredirect_section; + data->ulSectionTotalLength = RtlSizeHeap( RtlGetProcessHeap(), 0, actctx->dllredirect_section ); + data->hActCtx = NULL; + + if (data->cbSize >= FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA, ulAssemblyRosterIndex) + sizeof(ULONG)) + data->ulAssemblyRosterIndex = index->rosterindex; + + return STATUS_SUCCESS; +} + +static inline struct string_index *get_wndclass_first_index(ACTIVATION_CONTEXT *actctx) +{ + return (struct string_index*)((BYTE*)actctx->wndclass_section + actctx->wndclass_section->index_offset); +} + +static inline struct wndclass_redirect_data *get_wndclass_data(ACTIVATION_CONTEXT *ctxt, struct string_index *index) +{ + return (struct wndclass_redirect_data*)((BYTE*)ctxt->wndclass_section + index->data_offset); +} + +static NTSTATUS build_wndclass_section(ACTIVATION_CONTEXT* actctx, struct strsection_header **section) +{ + unsigned int i, j, k, total_len = 0, class_count = 0; + struct wndclass_redirect_data *data; + struct strsection_header *header; + struct string_index *index; + ULONG name_offset; + + /* compute section length */ + for (i = 0; i < actctx->num_assemblies; i++) + { + struct assembly *assembly = &actctx->assemblies[i]; + for (j = 0; j < assembly->num_dlls; j++) + { + struct dll_redirect *dll = &assembly->dlls[j]; + for (k = 0; k < dll->entities.num; k++) + { + struct entity *entity = &dll->entities.base[k]; + if (entity->kind == ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION) + { + int class_len = strlenW(entity->u.class.name) + 1; + int len; + + /* each class entry needs index, data and string data */ + total_len += sizeof(*index); + total_len += sizeof(*data); + /* original name is stored separately */ + total_len += aligned_string_len(class_len*sizeof(WCHAR)); + /* versioned name and module name are stored one after another */ + if (entity->u.class.versioned) + len = get_assembly_version(assembly, NULL) + class_len + 1 /* '!' separator */; + else + len = class_len; + len += strlenW(dll->name) + 1; + total_len += aligned_string_len(len*sizeof(WCHAR)); + + class_count++; + } + } + } + } + + total_len += sizeof(*header); + + header = RtlAllocateHeap(RtlGetProcessHeap(), 0, total_len); + if (!header) return STATUS_NO_MEMORY; + + memset(header, 0, sizeof(*header)); + header->magic = STRSECTION_MAGIC; + header->size = sizeof(*header); + header->count = class_count; + header->index_offset = sizeof(*header); + index = (struct string_index*)((BYTE*)header + header->index_offset); + name_offset = header->index_offset + header->count*sizeof(*index); for (i = 0; i < actctx->num_assemblies; i++) { @@ -2316,13 +3308,1192 @@ static NTSTATUS find_window_class(ACTIVATION_CONTEXT* actctx, const UNICODE_STRI struct entity *entity = &dll->entities.base[k]; if (entity->kind == ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION) { - if (!strncmpiW(section_name->Buffer, entity->u.class.name, snlen) && !entity->u.class.name[snlen]) - return fill_keyed_data(data, entity, dll, i); + static const WCHAR exclW[] = {'!',0}; + ULONG versioned_len, module_len; + UNICODE_STRING str; + WCHAR *ptrW; + + /* setup new index entry */ + str.Buffer = entity->u.class.name; + str.Length = strlenW(entity->u.class.name)*sizeof(WCHAR); + str.MaximumLength = str.Length + sizeof(WCHAR); + /* hash original class name */ + RtlHashUnicodeString(&str, TRUE, HASH_STRING_ALGORITHM_X65599, &index->hash); + + /* include '!' separator too */ + if (entity->u.class.versioned) + versioned_len = (get_assembly_version(assembly, NULL) + 1)*sizeof(WCHAR) + str.Length; + else + versioned_len = str.Length; + module_len = strlenW(dll->name)*sizeof(WCHAR); + + index->name_offset = name_offset; + index->name_len = str.Length; + index->data_offset = index->name_offset + aligned_string_len(str.MaximumLength); + index->data_len = sizeof(*data) + versioned_len + module_len + 2*sizeof(WCHAR) /* two nulls */; + index->rosterindex = i + 1; + + /* setup data */ + data = (struct wndclass_redirect_data*)((BYTE*)header + index->data_offset); + data->size = sizeof(*data); + data->res = 0; + data->name_len = versioned_len; + data->name_offset = sizeof(*data); + data->module_len = module_len; + data->module_offset = index->data_offset + data->name_offset + data->name_len + sizeof(WCHAR); + + /* original class name */ + ptrW = (WCHAR*)((BYTE*)header + index->name_offset); + memcpy(ptrW, entity->u.class.name, index->name_len); + ptrW[index->name_len/sizeof(WCHAR)] = 0; + + /* module name */ + ptrW = (WCHAR*)((BYTE*)header + data->module_offset); + memcpy(ptrW, dll->name, data->module_len); + ptrW[data->module_len/sizeof(WCHAR)] = 0; + + /* versioned name */ + ptrW = (WCHAR*)((BYTE*)data + data->name_offset); + if (entity->u.class.versioned) + { + get_assembly_version(assembly, ptrW); + strcatW(ptrW, exclW); + strcatW(ptrW, entity->u.class.name); + } + else + { + memcpy(ptrW, entity->u.class.name, index->name_len); + ptrW[index->name_len/sizeof(WCHAR)] = 0; + } + + name_offset += sizeof(*data); + name_offset += aligned_string_len(str.MaximumLength) + aligned_string_len(versioned_len + module_len + 2*sizeof(WCHAR)); + + index++; } } } } - return STATUS_SXS_KEY_NOT_FOUND; + + *section = header; + + return STATUS_SUCCESS; +} + +static NTSTATUS find_window_class(ACTIVATION_CONTEXT* actctx, const UNICODE_STRING *name, + PACTCTX_SECTION_KEYED_DATA data) +{ + struct string_index *iter, *index = NULL; + struct wndclass_redirect_data *class; + ULONG hash; + int i; + + if (!(actctx->sections & WINDOWCLASS_SECTION)) return STATUS_SXS_KEY_NOT_FOUND; + + if (!actctx->wndclass_section) + { + struct strsection_header *section; + + NTSTATUS status = build_wndclass_section(actctx, §ion); + if (status) return status; + + if (InterlockedCompareExchangePointer((void**)&actctx->wndclass_section, section, NULL)) + RtlFreeHeap(RtlGetProcessHeap(), 0, section); + } + + hash = 0; + RtlHashUnicodeString(name, TRUE, HASH_STRING_ALGORITHM_X65599, &hash); + iter = get_wndclass_first_index(actctx); + + for (i = 0; i < actctx->wndclass_section->count; i++) + { + if (iter->hash == hash) + { + const WCHAR *nameW = (WCHAR*)((BYTE*)actctx->wndclass_section + iter->name_offset); + + if (!strcmpW(nameW, name->Buffer)) + { + index = iter; + break; + } + else + DPRINT1("hash collision 0x%08x, %wZ, %S\n", hash, name, nameW); + } + iter++; + } + + if (!index) return STATUS_SXS_KEY_NOT_FOUND; + + class = get_wndclass_data(actctx, index); + + data->ulDataFormatVersion = 1; + data->lpData = class; + /* full length includes string length with nulls */ + data->ulLength = class->size + class->name_len + class->module_len + 2*sizeof(WCHAR); + data->lpSectionGlobalData = NULL; + data->ulSectionGlobalDataLength = 0; + data->lpSectionBase = actctx->wndclass_section; + data->ulSectionTotalLength = RtlSizeHeap( RtlGetProcessHeap(), 0, actctx->wndclass_section ); + data->hActCtx = NULL; + + if (data->cbSize >= FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA, ulAssemblyRosterIndex) + sizeof(ULONG)) + data->ulAssemblyRosterIndex = index->rosterindex; + + return STATUS_SUCCESS; +} + +static NTSTATUS build_tlib_section(ACTIVATION_CONTEXT* actctx, struct guidsection_header **section) +{ + unsigned int i, j, k, total_len = 0, tlib_count = 0, names_len = 0; + struct guidsection_header *header; + ULONG module_offset, data_offset; + struct tlibredirect_data *data; + struct guid_index *index; + + /* compute section length */ + for (i = 0; i < actctx->num_assemblies; i++) + { + struct assembly *assembly = &actctx->assemblies[i]; + for (j = 0; j < assembly->num_dlls; j++) + { + struct dll_redirect *dll = &assembly->dlls[j]; + for (k = 0; k < dll->entities.num; k++) + { + struct entity *entity = &dll->entities.base[k]; + if (entity->kind == ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION) + { + /* each entry needs index, data and string data for module name and help string */ + total_len += sizeof(*index); + total_len += sizeof(*data); + /* help string is stored separately */ + if (*entity->u.typelib.helpdir) + total_len += aligned_string_len((strlenW(entity->u.typelib.helpdir)+1)*sizeof(WCHAR)); + + /* module names are packed one after another */ + names_len += (strlenW(dll->name)+1)*sizeof(WCHAR); + + tlib_count++; + } + } + } + } + + total_len += aligned_string_len(names_len); + total_len += sizeof(*header); + + header = RtlAllocateHeap(RtlGetProcessHeap(), 0, total_len); + if (!header) return STATUS_NO_MEMORY; + + memset(header, 0, sizeof(*header)); + header->magic = GUIDSECTION_MAGIC; + header->size = sizeof(*header); + header->count = tlib_count; + header->index_offset = sizeof(*header) + aligned_string_len(names_len); + index = (struct guid_index*)((BYTE*)header + header->index_offset); + module_offset = sizeof(*header); + data_offset = header->index_offset + tlib_count*sizeof(*index); + + for (i = 0; i < actctx->num_assemblies; i++) + { + struct assembly *assembly = &actctx->assemblies[i]; + for (j = 0; j < assembly->num_dlls; j++) + { + struct dll_redirect *dll = &assembly->dlls[j]; + for (k = 0; k < dll->entities.num; k++) + { + struct entity *entity = &dll->entities.base[k]; + if (entity->kind == ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION) + { + ULONG module_len, help_len; + UNICODE_STRING str; + WCHAR *ptrW; + + if (*entity->u.typelib.helpdir) + help_len = strlenW(entity->u.typelib.helpdir)*sizeof(WCHAR); + else + help_len = 0; + + module_len = strlenW(dll->name)*sizeof(WCHAR); + + /* setup new index entry */ + RtlInitUnicodeString(&str, entity->u.typelib.tlbid); + RtlGUIDFromString(&str, &index->guid); + index->data_offset = data_offset; + index->data_len = sizeof(*data) + aligned_string_len(help_len); + index->rosterindex = i + 1; + + /* setup data */ + data = (struct tlibredirect_data*)((BYTE*)header + index->data_offset); + data->size = sizeof(*data); + data->res = 0; + data->name_len = module_len; + data->name_offset = module_offset; + /* FIXME: resourceid handling is really weird, and it doesn't seem to be useful */ + data->langid = 0; + data->flags = entity->u.typelib.flags; + data->help_len = help_len; + data->help_offset = sizeof(*data); + data->major_version = entity->u.typelib.major; + data->minor_version = entity->u.typelib.minor; + + /* module name */ + ptrW = (WCHAR*)((BYTE*)header + data->name_offset); + memcpy(ptrW, dll->name, data->name_len); + ptrW[data->name_len/sizeof(WCHAR)] = 0; + + /* help string */ + if (data->help_len) + { + ptrW = (WCHAR*)((BYTE*)data + data->help_offset); + memcpy(ptrW, entity->u.typelib.helpdir, data->help_len); + ptrW[data->help_len/sizeof(WCHAR)] = 0; + } + + data_offset += sizeof(*data); + if (help_len) + data_offset += aligned_string_len(help_len + sizeof(WCHAR)); + + module_offset += module_len + sizeof(WCHAR); + + index++; + } + } + } + } + + *section = header; + + return STATUS_SUCCESS; +} + +static inline struct tlibredirect_data *get_tlib_data(ACTIVATION_CONTEXT *actctx, struct guid_index *index) +{ + return (struct tlibredirect_data*)((BYTE*)actctx->tlib_section + index->data_offset); +} + +static NTSTATUS find_tlib_redirection(ACTIVATION_CONTEXT* actctx, const GUID *guid, ACTCTX_SECTION_KEYED_DATA* data) +{ + struct guid_index *index = NULL; + struct tlibredirect_data *tlib; + + if (!(actctx->sections & TLIBREDIRECT_SECTION)) return STATUS_SXS_KEY_NOT_FOUND; + + if (!actctx->tlib_section) + { + struct guidsection_header *section; + + NTSTATUS status = build_tlib_section(actctx, §ion); + if (status) return status; + + if (InterlockedCompareExchangePointer((void**)&actctx->tlib_section, section, NULL)) + RtlFreeHeap(RtlGetProcessHeap(), 0, section); + } + + index = find_guid_index(actctx->tlib_section, guid); + if (!index) return STATUS_SXS_KEY_NOT_FOUND; + + tlib = get_tlib_data(actctx, index); + + data->ulDataFormatVersion = 1; + data->lpData = tlib; + /* full length includes string length with nulls */ + data->ulLength = tlib->size + tlib->help_len + sizeof(WCHAR); + data->lpSectionGlobalData = (BYTE*)actctx->tlib_section + actctx->tlib_section->names_offset; + data->ulSectionGlobalDataLength = actctx->tlib_section->names_len; + data->lpSectionBase = actctx->tlib_section; + data->ulSectionTotalLength = RtlSizeHeap( RtlGetProcessHeap(), 0, actctx->tlib_section ); + data->hActCtx = NULL; + + if (data->cbSize >= FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA, ulAssemblyRosterIndex) + sizeof(ULONG)) + data->ulAssemblyRosterIndex = index->rosterindex; + + return STATUS_SUCCESS; +} + +static void generate_uuid(ULONG *seed, GUID *guid) +{ + ULONG *ptr = (ULONG*)guid; + int i; + + /* GUID is 16 bytes long */ + for (i = 0; i < sizeof(GUID)/sizeof(ULONG); i++, ptr++) + *ptr = RtlUniform(seed); + + guid->Data3 &= 0x0fff; + guid->Data3 |= (4 << 12); + guid->Data4[0] &= 0x3f; + guid->Data4[0] |= 0x80; +} + +static void get_comserver_datalen(const struct entity_array *entities, const struct dll_redirect *dll, + unsigned int *count, unsigned int *len, unsigned int *module_len) +{ + unsigned int i; + + for (i = 0; i < entities->num; i++) + { + struct entity *entity = &entities->base[i]; + if (entity->kind == ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION) + { + /* each entry needs two index entries, extra one goes for alias GUID */ + *len += 2*sizeof(struct guid_index); + /* To save some memory we don't allocated two data structures, + instead alias index and normal index point to the same data structure. */ + *len += sizeof(struct comclassredirect_data); + + /* for clrClass store some more */ + if (entity->u.comclass.name) + { + unsigned int str_len; + + /* all string data is stored together in aligned block */ + str_len = strlenW(entity->u.comclass.name)+1; + if (entity->u.comclass.progid) + str_len += strlenW(entity->u.comclass.progid)+1; + if (entity->u.comclass.version) + str_len += strlenW(entity->u.comclass.version)+1; + + *len += sizeof(struct clrclass_data); + *len += aligned_string_len(str_len*sizeof(WCHAR)); + + /* module name is forced to mscoree.dll, and stored two times with different case */ + *module_len += sizeof(mscoreeW) + sizeof(mscoree2W); + } + else + { + /* progid string is stored separately */ + if (entity->u.comclass.progid) + *len += aligned_string_len((strlenW(entity->u.comclass.progid)+1)*sizeof(WCHAR)); + + *module_len += (strlenW(dll->name)+1)*sizeof(WCHAR); + } + + *count += 1; + } + } +} + +static void add_comserver_record(const struct guidsection_header *section, const struct entity_array *entities, + const struct dll_redirect *dll, struct guid_index **index, ULONG *data_offset, ULONG *module_offset, + ULONG *seed, ULONG rosterindex) +{ + unsigned int i; + + for (i = 0; i < entities->num; i++) + { + struct entity *entity = &entities->base[i]; + if (entity->kind == ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION) + { + ULONG module_len, progid_len, str_len = 0; + struct comclassredirect_data *data; + struct guid_index *alias_index; + struct clrclass_data *clrdata; + UNICODE_STRING str; + WCHAR *ptrW; + + if (entity->u.comclass.progid) + progid_len = strlenW(entity->u.comclass.progid)*sizeof(WCHAR); + else + progid_len = 0; + + module_len = dll ? strlenW(dll->name)*sizeof(WCHAR) : strlenW(mscoreeW)*sizeof(WCHAR); + + /* setup new index entry */ + RtlInitUnicodeString(&str, entity->u.comclass.clsid); + RtlGUIDFromString(&str, &(*index)->guid); + + (*index)->data_offset = *data_offset; + (*index)->data_len = sizeof(*data); /* additional length added later */ + (*index)->rosterindex = rosterindex; + + /* Setup new index entry for alias guid. Alias index records are placed after + normal records, so normal guids are hit first on search. Note that class count + is doubled. */ + alias_index = (*index) + section->count/2; + generate_uuid(seed, &alias_index->guid); + alias_index->data_offset = (*index)->data_offset; + alias_index->data_len = 0; + alias_index->rosterindex = (*index)->rosterindex; + + /* setup data */ + data = (struct comclassredirect_data*)((BYTE*)section + (*index)->data_offset); + data->size = sizeof(*data); + data->res = 0; + data->res1[0] = 0; + data->res1[1] = 0; + data->model = entity->u.comclass.model; + data->clsid = (*index)->guid; + data->alias = alias_index->guid; + data->clsid2 = data->clsid; + if (entity->u.comclass.tlbid) + { + RtlInitUnicodeString(&str, entity->u.comclass.tlbid); + RtlGUIDFromString(&str, &data->tlbid); + } + else + memset(&data->tlbid, 0, sizeof(data->tlbid)); + data->name_len = module_len; + data->name_offset = *module_offset; + data->progid_len = progid_len; + data->progid_offset = data->progid_len ? data->size : 0; /* in case of clrClass additional offset is added later */ + data->clrdata_len = 0; /* will be set later */ + data->clrdata_offset = entity->u.comclass.name ? sizeof(*data) : 0; + data->miscstatus = entity->u.comclass.miscstatus; + data->miscstatuscontent = entity->u.comclass.miscstatuscontent; + data->miscstatusthumbnail = entity->u.comclass.miscstatusthumbnail; + data->miscstatusicon = entity->u.comclass.miscstatusicon; + data->miscstatusdocprint = entity->u.comclass.miscstatusdocprint; + + /* mask describes which misc* data is available */ + data->miscmask = 0; + if (data->miscstatus) + data->miscmask |= MiscStatus; + if (data->miscstatuscontent) + data->miscmask |= MiscStatusContent; + if (data->miscstatusthumbnail) + data->miscmask |= MiscStatusThumbnail; + if (data->miscstatusicon) + data->miscmask |= MiscStatusIcon; + if (data->miscstatusdocprint) + data->miscmask |= MiscStatusDocPrint; + + if (data->clrdata_offset) + { + clrdata = (struct clrclass_data*)((BYTE*)data + data->clrdata_offset); + + clrdata->size = sizeof(*clrdata); + clrdata->res[0] = 0; + clrdata->res[1] = 2; /* FIXME: unknown field */ + clrdata->module_len = strlenW(mscoreeW)*sizeof(WCHAR); + clrdata->module_offset = *module_offset + data->name_len + sizeof(WCHAR); + clrdata->name_len = strlenW(entity->u.comclass.name)*sizeof(WCHAR); + clrdata->name_offset = clrdata->size; + clrdata->version_len = entity->u.comclass.version ? strlenW(entity->u.comclass.version)*sizeof(WCHAR) : 0; + clrdata->version_offset = clrdata->version_len ? clrdata->name_offset + clrdata->name_len + sizeof(WCHAR) : 0; + clrdata->res2[0] = 0; + clrdata->res2[1] = 0; + + data->clrdata_len = clrdata->size + clrdata->name_len + sizeof(WCHAR); + + /* module name */ + ptrW = (WCHAR*)((BYTE*)section + clrdata->module_offset); + memcpy(ptrW, mscoree2W, clrdata->module_len); + ptrW[clrdata->module_len/sizeof(WCHAR)] = 0; + + ptrW = (WCHAR*)((BYTE*)section + data->name_offset); + memcpy(ptrW, mscoreeW, data->name_len); + ptrW[data->name_len/sizeof(WCHAR)] = 0; + + /* class name */ + ptrW = (WCHAR*)((BYTE*)clrdata + clrdata->name_offset); + memcpy(ptrW, entity->u.comclass.name, clrdata->name_len); + ptrW[clrdata->name_len/sizeof(WCHAR)] = 0; + + /* runtime version, optional */ + if (clrdata->version_len) + { + data->clrdata_len += clrdata->version_len + sizeof(WCHAR); + + ptrW = (WCHAR*)((BYTE*)clrdata + clrdata->version_offset); + memcpy(ptrW, entity->u.comclass.version, clrdata->version_len); + ptrW[clrdata->version_len/sizeof(WCHAR)] = 0; + } + + if (data->progid_len) + data->progid_offset += data->clrdata_len; + (*index)->data_len += sizeof(*clrdata); + } + else + { + clrdata = NULL; + + /* module name */ + ptrW = (WCHAR*)((BYTE*)section + data->name_offset); + memcpy(ptrW, dll->name, data->name_len); + ptrW[data->name_len/sizeof(WCHAR)] = 0; + } + + /* progid string */ + if (data->progid_len) + { + ptrW = (WCHAR*)((BYTE*)data + data->progid_offset); + memcpy(ptrW, entity->u.comclass.progid, data->progid_len); + ptrW[data->progid_len/sizeof(WCHAR)] = 0; + } + + /* string block length */ + str_len = 0; + if (clrdata) + { + str_len += clrdata->name_len + sizeof(WCHAR); + if (clrdata->version_len) + str_len += clrdata->version_len + sizeof(WCHAR); + } + if (progid_len) + str_len += progid_len + sizeof(WCHAR); + + (*index)->data_len += aligned_string_len(str_len); + alias_index->data_len = (*index)->data_len; + + /* move to next data record */ + (*data_offset) += sizeof(*data) + aligned_string_len(str_len); + (*module_offset) += module_len + sizeof(WCHAR); + + if (clrdata) + { + (*data_offset) += sizeof(*clrdata); + (*module_offset) += clrdata->module_len + sizeof(WCHAR); + } + (*index) += 1; + } + } +} + +static NTSTATUS build_comserver_section(ACTIVATION_CONTEXT* actctx, struct guidsection_header **section) +{ + unsigned int i, j, total_len = 0, class_count = 0, names_len = 0; + struct guidsection_header *header; + ULONG module_offset, data_offset; + struct guid_index *index; + ULONG seed; + + /* compute section length */ + for (i = 0; i < actctx->num_assemblies; i++) + { + struct assembly *assembly = &actctx->assemblies[i]; + get_comserver_datalen(&assembly->entities, NULL, &class_count, &total_len, &names_len); + for (j = 0; j < assembly->num_dlls; j++) + { + struct dll_redirect *dll = &assembly->dlls[j]; + get_comserver_datalen(&dll->entities, dll, &class_count, &total_len, &names_len); + } + } + + total_len += aligned_string_len(names_len); + total_len += sizeof(*header); + + header = RtlAllocateHeap(RtlGetProcessHeap(), 0, total_len); + if (!header) return STATUS_NO_MEMORY; + + memset(header, 0, sizeof(*header)); + header->magic = GUIDSECTION_MAGIC; + header->size = sizeof(*header); + header->count = 2*class_count; + header->index_offset = sizeof(*header) + aligned_string_len(names_len); + index = (struct guid_index*)((BYTE*)header + header->index_offset); + module_offset = sizeof(*header); + data_offset = header->index_offset + 2*class_count*sizeof(*index); + + seed = NtGetTickCount(); + for (i = 0; i < actctx->num_assemblies; i++) + { + struct assembly *assembly = &actctx->assemblies[i]; + add_comserver_record(header, &assembly->entities, NULL, &index, &data_offset, &module_offset, &seed, i+1); + for (j = 0; j < assembly->num_dlls; j++) + { + struct dll_redirect *dll = &assembly->dlls[j]; + add_comserver_record(header, &dll->entities, dll, &index, &data_offset, &module_offset, &seed, i+1); + } + } + + *section = header; + + return STATUS_SUCCESS; +} + +static inline struct comclassredirect_data *get_comclass_data(ACTIVATION_CONTEXT *actctx, struct guid_index *index) +{ + return (struct comclassredirect_data*)((BYTE*)actctx->comserver_section + index->data_offset); +} + +static NTSTATUS find_comserver_redirection(ACTIVATION_CONTEXT* actctx, const GUID *guid, ACTCTX_SECTION_KEYED_DATA* data) +{ + struct comclassredirect_data *comclass; + struct guid_index *index = NULL; + + if (!(actctx->sections & SERVERREDIRECT_SECTION)) return STATUS_SXS_KEY_NOT_FOUND; + + if (!actctx->comserver_section) + { + struct guidsection_header *section; + + NTSTATUS status = build_comserver_section(actctx, §ion); + if (status) return status; + + if (InterlockedCompareExchangePointer((void**)&actctx->comserver_section, section, NULL)) + RtlFreeHeap(RtlGetProcessHeap(), 0, section); + } + + index = find_guid_index(actctx->comserver_section, guid); + if (!index) return STATUS_SXS_KEY_NOT_FOUND; + + comclass = get_comclass_data(actctx, index); + + data->ulDataFormatVersion = 1; + data->lpData = comclass; + /* full length includes string length with nulls */ + data->ulLength = comclass->size + comclass->clrdata_len; + if (comclass->progid_len) data->ulLength += comclass->progid_len + sizeof(WCHAR); + data->lpSectionGlobalData = (BYTE*)actctx->comserver_section + actctx->comserver_section->names_offset; + data->ulSectionGlobalDataLength = actctx->comserver_section->names_len; + data->lpSectionBase = actctx->comserver_section; + data->ulSectionTotalLength = RtlSizeHeap( RtlGetProcessHeap(), 0, actctx->comserver_section ); + data->hActCtx = NULL; + + if (data->cbSize >= FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA, ulAssemblyRosterIndex) + sizeof(ULONG)) + data->ulAssemblyRosterIndex = index->rosterindex; + + return STATUS_SUCCESS; +} + +static void get_ifaceps_datalen(const struct entity_array *entities, unsigned int *count, unsigned int *len) +{ + unsigned int i; + + for (i = 0; i < entities->num; i++) + { + struct entity *entity = &entities->base[i]; + if (entity->kind == ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION) + { + *len += sizeof(struct guid_index) + sizeof(struct ifacepsredirect_data); + if (entity->u.ifaceps.name) + *len += aligned_string_len((strlenW(entity->u.ifaceps.name)+1)*sizeof(WCHAR)); + *count += 1; + } + } +} + +static void add_ifaceps_record(struct guidsection_header *section, struct entity_array *entities, + struct guid_index **index, ULONG *data_offset, ULONG rosterindex) +{ + unsigned int i; + + for (i = 0; i < entities->num; i++) + { + struct entity *entity = &entities->base[i]; + if (entity->kind == ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION) + { + struct ifacepsredirect_data *data = (struct ifacepsredirect_data*)((BYTE*)section + *data_offset); + UNICODE_STRING str; + ULONG name_len; + + if (entity->u.ifaceps.name) + name_len = strlenW(entity->u.ifaceps.name)*sizeof(WCHAR); + else + name_len = 0; + + /* setup index */ + RtlInitUnicodeString(&str, entity->u.ifaceps.iid); + RtlGUIDFromString(&str, &(*index)->guid); + (*index)->data_offset = *data_offset; + (*index)->data_len = sizeof(*data) + name_len ? aligned_string_len(name_len + sizeof(WCHAR)) : 0; + (*index)->rosterindex = rosterindex; + + /* setup data record */ + data->size = sizeof(*data); + data->mask = entity->u.ifaceps.mask; + + /* proxyStubClsid32 value is only stored for external PS, + if set it's used as iid, otherwise 'iid' attribute value is used */ + if (entity->u.ifaceps.ps32) + { + RtlInitUnicodeString(&str, entity->u.ifaceps.ps32); + RtlGUIDFromString(&str, &data->iid); + } + else + data->iid = (*index)->guid; + + data->nummethods = entity->u.ifaceps.nummethods; + + if (entity->u.ifaceps.tlib) + { + RtlInitUnicodeString(&str, entity->u.ifaceps.tlib); + RtlGUIDFromString(&str, &data->tlbid); + } + else + memset(&data->tlbid, 0, sizeof(data->tlbid)); + + if (entity->u.ifaceps.base) + { + RtlInitUnicodeString(&str, entity->u.ifaceps.base); + RtlGUIDFromString(&str, &data->base); + } + else + memset(&data->base, 0, sizeof(data->base)); + + data->name_len = name_len; + data->name_offset = data->name_len ? sizeof(*data) : 0; + + /* name string */ + if (data->name_len) + { + WCHAR *ptrW = (WCHAR*)((BYTE*)data + data->name_offset); + memcpy(ptrW, entity->u.ifaceps.name, data->name_len); + ptrW[data->name_len/sizeof(WCHAR)] = 0; + } + + /* move to next record */ + (*index) += 1; + *data_offset += sizeof(*data); + if (data->name_len) + *data_offset += aligned_string_len(data->name_len + sizeof(WCHAR)); + } + } +} + +static NTSTATUS build_ifaceps_section(ACTIVATION_CONTEXT* actctx, struct guidsection_header **section) +{ + unsigned int i, j, total_len = 0, count = 0; + struct guidsection_header *header; + struct guid_index *index; + ULONG data_offset; + + /* compute section length */ + for (i = 0; i < actctx->num_assemblies; i++) + { + struct assembly *assembly = &actctx->assemblies[i]; + + get_ifaceps_datalen(&assembly->entities, &count, &total_len); + for (j = 0; j < assembly->num_dlls; j++) + { + struct dll_redirect *dll = &assembly->dlls[j]; + get_ifaceps_datalen(&dll->entities, &count, &total_len); + } + } + + total_len += sizeof(*header); + + header = RtlAllocateHeap(RtlGetProcessHeap(), 0, total_len); + if (!header) return STATUS_NO_MEMORY; + + memset(header, 0, sizeof(*header)); + header->magic = GUIDSECTION_MAGIC; + header->size = sizeof(*header); + header->count = count; + header->index_offset = sizeof(*header); + index = (struct guid_index*)((BYTE*)header + header->index_offset); + data_offset = header->index_offset + count*sizeof(*index); + + for (i = 0; i < actctx->num_assemblies; i++) + { + struct assembly *assembly = &actctx->assemblies[i]; + + add_ifaceps_record(header, &assembly->entities, &index, &data_offset, i + 1); + for (j = 0; j < assembly->num_dlls; j++) + { + struct dll_redirect *dll = &assembly->dlls[j]; + add_ifaceps_record(header, &dll->entities, &index, &data_offset, i + 1); + } + } + + *section = header; + + return STATUS_SUCCESS; +} + +static inline struct ifacepsredirect_data *get_ifaceps_data(ACTIVATION_CONTEXT *actctx, struct guid_index *index) +{ + return (struct ifacepsredirect_data*)((BYTE*)actctx->ifaceps_section + index->data_offset); +} + +static NTSTATUS find_cominterface_redirection(ACTIVATION_CONTEXT* actctx, const GUID *guid, ACTCTX_SECTION_KEYED_DATA* data) +{ + struct ifacepsredirect_data *iface; + struct guid_index *index = NULL; + + if (!(actctx->sections & IFACEREDIRECT_SECTION)) return STATUS_SXS_KEY_NOT_FOUND; + + if (!actctx->ifaceps_section) + { + struct guidsection_header *section; + + NTSTATUS status = build_ifaceps_section(actctx, §ion); + if (status) return status; + + if (InterlockedCompareExchangePointer((void**)&actctx->ifaceps_section, section, NULL)) + RtlFreeHeap(RtlGetProcessHeap(), 0, section); + } + + index = find_guid_index(actctx->ifaceps_section, guid); + if (!index) return STATUS_SXS_KEY_NOT_FOUND; + + iface = get_ifaceps_data(actctx, index); + + data->ulDataFormatVersion = 1; + data->lpData = iface; + data->ulLength = iface->size + (iface->name_len ? iface->name_len + sizeof(WCHAR) : 0); + data->lpSectionGlobalData = NULL; + data->ulSectionGlobalDataLength = 0; + data->lpSectionBase = actctx->ifaceps_section; + data->ulSectionTotalLength = RtlSizeHeap( RtlGetProcessHeap(), 0, actctx->ifaceps_section ); + data->hActCtx = NULL; + + if (data->cbSize >= FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA, ulAssemblyRosterIndex) + sizeof(ULONG)) + data->ulAssemblyRosterIndex = index->rosterindex; + + return STATUS_SUCCESS; +} + +static NTSTATUS build_clr_surrogate_section(ACTIVATION_CONTEXT* actctx, struct guidsection_header **section) +{ + unsigned int i, j, total_len = 0, count = 0; + struct guidsection_header *header; + struct clrsurrogate_data *data; + struct guid_index *index; + ULONG data_offset; + + /* compute section length */ + for (i = 0; i < actctx->num_assemblies; i++) + { + struct assembly *assembly = &actctx->assemblies[i]; + for (j = 0; j < assembly->entities.num; j++) + { + struct entity *entity = &assembly->entities.base[j]; + if (entity->kind == ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES) + { + ULONG len; + + total_len += sizeof(*index) + sizeof(*data); + len = strlenW(entity->u.clrsurrogate.name) + 1; + if (entity->u.clrsurrogate.version) + len += strlenW(entity->u.clrsurrogate.version) + 1; + total_len += aligned_string_len(len*sizeof(WCHAR)); + + count++; + } + } + } + + total_len += sizeof(*header); + + header = RtlAllocateHeap(RtlGetProcessHeap(), 0, total_len); + if (!header) return STATUS_NO_MEMORY; + + memset(header, 0, sizeof(*header)); + header->magic = GUIDSECTION_MAGIC; + header->size = sizeof(*header); + header->count = count; + header->index_offset = sizeof(*header); + index = (struct guid_index*)((BYTE*)header + header->index_offset); + data_offset = header->index_offset + count*sizeof(*index); + + for (i = 0; i < actctx->num_assemblies; i++) + { + struct assembly *assembly = &actctx->assemblies[i]; + for (j = 0; j < assembly->entities.num; j++) + { + struct entity *entity = &assembly->entities.base[j]; + if (entity->kind == ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES) + { + ULONG version_len, name_len; + UNICODE_STRING str; + WCHAR *ptrW; + + if (entity->u.clrsurrogate.version) + version_len = strlenW(entity->u.clrsurrogate.version)*sizeof(WCHAR); + else + version_len = 0; + name_len = strlenW(entity->u.clrsurrogate.name)*sizeof(WCHAR); + + /* setup new index entry */ + RtlInitUnicodeString(&str, entity->u.clrsurrogate.clsid); + RtlGUIDFromString(&str, &index->guid); + + index->data_offset = data_offset; + index->data_len = sizeof(*data) + aligned_string_len(name_len + sizeof(WCHAR) + (version_len ? version_len + sizeof(WCHAR) : 0)); + index->rosterindex = i + 1; + + /* setup data */ + data = (struct clrsurrogate_data*)((BYTE*)header + index->data_offset); + data->size = sizeof(*data); + data->res = 0; + data->clsid = index->guid; + data->version_offset = version_len ? data->size : 0; + data->version_len = version_len; + data->name_offset = data->size + version_len; + if (version_len) + data->name_offset += sizeof(WCHAR); + data->name_len = name_len; + + /* surrogate name */ + ptrW = (WCHAR*)((BYTE*)data + data->name_offset); + memcpy(ptrW, entity->u.clrsurrogate.name, data->name_len); + ptrW[data->name_len/sizeof(WCHAR)] = 0; + + /* runtime version */ + if (data->version_len) + { + ptrW = (WCHAR*)((BYTE*)data + data->version_offset); + memcpy(ptrW, entity->u.clrsurrogate.version, data->version_len); + ptrW[data->version_len/sizeof(WCHAR)] = 0; + } + + data_offset += index->data_offset; + index++; + } + } + } + + *section = header; + + return STATUS_SUCCESS; +} + +static inline struct clrsurrogate_data *get_surrogate_data(ACTIVATION_CONTEXT *actctx, const struct guid_index *index) +{ + return (struct clrsurrogate_data*)((BYTE*)actctx->clrsurrogate_section + index->data_offset); +} + +static NTSTATUS find_clr_surrogate(ACTIVATION_CONTEXT* actctx, const GUID *guid, ACTCTX_SECTION_KEYED_DATA* data) +{ + struct clrsurrogate_data *surrogate; + struct guid_index *index = NULL; + + if (!(actctx->sections & CLRSURROGATES_SECTION)) return STATUS_SXS_KEY_NOT_FOUND; + + if (!actctx->clrsurrogate_section) + { + struct guidsection_header *section; + + NTSTATUS status = build_clr_surrogate_section(actctx, §ion); + if (status) return status; + + if (InterlockedCompareExchangePointer((void**)&actctx->clrsurrogate_section, section, NULL)) + RtlFreeHeap(RtlGetProcessHeap(), 0, section); + } + + index = find_guid_index(actctx->clrsurrogate_section, guid); + if (!index) return STATUS_SXS_KEY_NOT_FOUND; + + surrogate = get_surrogate_data(actctx, index); + + data->ulDataFormatVersion = 1; + data->lpData = surrogate; + /* full length includes string length with nulls */ + data->ulLength = surrogate->size + surrogate->name_len + sizeof(WCHAR); + if (surrogate->version_len) + data->ulLength += surrogate->version_len + sizeof(WCHAR); + + data->lpSectionGlobalData = NULL; + data->ulSectionGlobalDataLength = 0; + data->lpSectionBase = actctx->clrsurrogate_section; + data->ulSectionTotalLength = RtlSizeHeap( RtlGetProcessHeap(), 0, actctx->clrsurrogate_section ); + data->hActCtx = NULL; + + if (data->cbSize >= FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA, ulAssemblyRosterIndex) + sizeof(ULONG)) + data->ulAssemblyRosterIndex = index->rosterindex; + + return STATUS_SUCCESS; +} + +static void get_progid_datalen(struct entity_array *entities, unsigned int *count, unsigned int *total_len) +{ + unsigned int i, j, single_len; + + single_len = sizeof(struct progidredirect_data) + sizeof(struct string_index) + sizeof(GUID); + for (i = 0; i < entities->num; i++) + { + struct entity *entity = &entities->base[i]; + if (entity->kind == ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION) + { + if (entity->u.comclass.progid) + { + *total_len += single_len + aligned_string_len((strlenW(entity->u.comclass.progid)+1)*sizeof(WCHAR)); + *count += 1; + } + + for (j = 0; j < entity->u.comclass.progids.num; j++) + *total_len += aligned_string_len((strlenW(entity->u.comclass.progids.progids[j])+1)*sizeof(WCHAR)); + + *total_len += single_len*entity->u.comclass.progids.num; + *count += entity->u.comclass.progids.num; + } + } +} + +static void write_progid_record(struct strsection_header *section, const WCHAR *progid, const GUID *alias, + struct string_index **index, ULONG *data_offset, ULONG *global_offset, ULONG rosterindex) +{ + struct progidredirect_data *data; + UNICODE_STRING str; + GUID *guid_ptr; + WCHAR *ptrW; + + /* setup new index entry */ + + /* hash progid name */ + RtlInitUnicodeString(&str, progid); + RtlHashUnicodeString(&str, TRUE, HASH_STRING_ALGORITHM_X65599, &(*index)->hash); + + (*index)->name_offset = *data_offset; + (*index)->name_len = str.Length; + (*index)->data_offset = (*index)->name_offset + aligned_string_len(str.MaximumLength); + (*index)->data_len = sizeof(*data); + (*index)->rosterindex = rosterindex; + + *data_offset += aligned_string_len(str.MaximumLength); + + /* setup data structure */ + data = (struct progidredirect_data*)((BYTE*)section + *data_offset); + data->size = sizeof(*data); + data->reserved = 0; + data->clsid_offset = *global_offset; + + /* write progid string */ + ptrW = (WCHAR*)((BYTE*)section + (*index)->name_offset); + memcpy(ptrW, progid, (*index)->name_len); + ptrW[(*index)->name_len/sizeof(WCHAR)] = 0; + + /* write guid to global area */ + guid_ptr = (GUID*)((BYTE*)section + data->clsid_offset); + *guid_ptr = *alias; + + /* to next entry */ + *global_offset += sizeof(GUID); + *data_offset += data->size; + (*index) += 1; +} + +static void add_progid_record(ACTIVATION_CONTEXT* actctx, struct strsection_header *section, const struct entity_array *entities, + struct string_index **index, ULONG *data_offset, ULONG *global_offset, ULONG rosterindex) +{ + unsigned int i, j; + + for (i = 0; i < entities->num; i++) + { + struct entity *entity = &entities->base[i]; + if (entity->kind == ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION) + { + const struct progids *progids = &entity->u.comclass.progids; + struct comclassredirect_data *comclass; + struct guid_index *guid_index; + UNICODE_STRING str; + GUID clsid; + + RtlInitUnicodeString(&str, entity->u.comclass.clsid); + RtlGUIDFromString(&str, &clsid); + + guid_index = find_guid_index(actctx->comserver_section, &clsid); + comclass = get_comclass_data(actctx, guid_index); + + if (entity->u.comclass.progid) + write_progid_record(section, entity->u.comclass.progid, &comclass->alias, + index, data_offset, global_offset, rosterindex); + + for (j = 0; j < progids->num; j++) + write_progid_record(section, progids->progids[j], &comclass->alias, + index, data_offset, global_offset, rosterindex); + } + } +} + +static NTSTATUS build_progid_section(ACTIVATION_CONTEXT* actctx, struct strsection_header **section) +{ + unsigned int i, j, total_len = 0, count = 0; + struct strsection_header *header; + ULONG data_offset, global_offset; + struct string_index *index; + + /* compute section length */ + for (i = 0; i < actctx->num_assemblies; i++) + { + struct assembly *assembly = &actctx->assemblies[i]; + + get_progid_datalen(&assembly->entities, &count, &total_len); + for (j = 0; j < assembly->num_dlls; j++) + { + struct dll_redirect *dll = &assembly->dlls[j]; + get_progid_datalen(&dll->entities, &count, &total_len); + } + } + + total_len += sizeof(*header); + + header = RtlAllocateHeap(RtlGetProcessHeap(), 0, total_len); + if (!header) return STATUS_NO_MEMORY; + + memset(header, 0, sizeof(*header)); + header->magic = STRSECTION_MAGIC; + header->size = sizeof(*header); + header->count = count; + header->global_offset = header->size; + header->global_len = count*sizeof(GUID); + header->index_offset = header->size + header->global_len; + + index = (struct string_index*)((BYTE*)header + header->index_offset); + data_offset = header->index_offset + count*sizeof(*index); + global_offset = header->global_offset; + + for (i = 0; i < actctx->num_assemblies; i++) + { + struct assembly *assembly = &actctx->assemblies[i]; + + add_progid_record(actctx, header, &assembly->entities, &index, &data_offset, &global_offset, i + 1); + for (j = 0; j < assembly->num_dlls; j++) + { + struct dll_redirect *dll = &assembly->dlls[j]; + add_progid_record(actctx, header, &dll->entities, &index, &data_offset, &global_offset, i + 1); + } + } + + *section = header; + + return STATUS_SUCCESS; +} + +static inline struct progidredirect_data *get_progid_data(ACTIVATION_CONTEXT *actctx, const struct string_index *index) +{ + return (struct progidredirect_data*)((BYTE*)actctx->progid_section + index->data_offset); +} + +static NTSTATUS find_progid_redirection(ACTIVATION_CONTEXT* actctx, const UNICODE_STRING *name, + PACTCTX_SECTION_KEYED_DATA data) +{ + struct progidredirect_data *progid; + struct string_index *index; + + if (!(actctx->sections & PROGIDREDIRECT_SECTION)) return STATUS_SXS_KEY_NOT_FOUND; + + if (!actctx->comserver_section) + { + struct guidsection_header *section; + + NTSTATUS status = build_comserver_section(actctx, §ion); + if (status) return status; + + if (InterlockedCompareExchangePointer((void**)&actctx->comserver_section, section, NULL)) + RtlFreeHeap(RtlGetProcessHeap(), 0, section); + } + + if (!actctx->progid_section) + { + struct strsection_header *section; + + NTSTATUS status = build_progid_section(actctx, §ion); + if (status) return status; + + if (InterlockedCompareExchangePointer((void**)&actctx->progid_section, section, NULL)) + RtlFreeHeap(RtlGetProcessHeap(), 0, section); + } + + index = find_string_index(actctx->progid_section, name); + if (!index) return STATUS_SXS_KEY_NOT_FOUND; + + progid = get_progid_data(actctx, index); + + data->ulDataFormatVersion = 1; + data->lpData = progid; + data->ulLength = progid->size; + data->lpSectionGlobalData = (BYTE*)actctx->progid_section + actctx->progid_section->global_offset; + data->ulSectionGlobalDataLength = actctx->progid_section->global_len; + data->lpSectionBase = actctx->progid_section; + data->ulSectionTotalLength = RtlSizeHeap( RtlGetProcessHeap(), 0, actctx->progid_section ); + data->hActCtx = NULL; + + if (data->cbSize >= FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA, ulAssemblyRosterIndex) + sizeof(ULONG)) + data->ulAssemblyRosterIndex = index->rosterindex; + + return STATUS_SUCCESS; } static NTSTATUS find_string(ACTIVATION_CONTEXT* actctx, ULONG section_kind, @@ -2339,12 +4510,10 @@ static NTSTATUS find_string(ACTIVATION_CONTEXT* actctx, ULONG section_kind, case ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION: status = find_window_class(actctx, section_name, data); break; - case ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION: - case ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION: - case ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION: case ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION: + status = find_progid_redirection(actctx, section_name, data); + break; case ACTIVATION_CONTEXT_SECTION_GLOBAL_OBJECT_RENAME_TABLE: - case ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES: DPRINT1("Unsupported yet section_kind %x\n", section_kind); return STATUS_SXS_SECTION_NOT_FOUND; default: @@ -2369,6 +4538,18 @@ static NTSTATUS find_guid(ACTIVATION_CONTEXT* actctx, ULONG section_kind, switch (section_kind) { + case ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION: + status = find_tlib_redirection(actctx, guid, data); + break; + case ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION: + status = find_comserver_redirection(actctx, guid, data); + break; + case ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION: + status = find_cominterface_redirection(actctx, guid, data); + break; + case ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES: + status = find_clr_surrogate(actctx, guid, data); + break; default: DPRINT("Unknown section_kind %x\n", section_kind); return STATUS_SXS_SECTION_NOT_FOUND; @@ -2946,7 +5127,7 @@ RtlQueryInformationActiveActivationContext(ULONG ulInfoClass, NTSTATUS NTAPI RtlpFindActivationContextSection_CheckParameters( ULONG flags, const GUID *guid, ULONG section_kind, - UNICODE_STRING *section_name, PACTCTX_SECTION_KEYED_DATA data ) + const UNICODE_STRING *section_name, PACTCTX_SECTION_KEYED_DATA data ) { /* Check general parameter combinations */ if (!section_name || @@ -2972,7 +5153,7 @@ RtlpFindActivationContextSection_CheckParameters( ULONG flags, const GUID *guid, NTSTATUS NTAPI RtlFindActivationContextSectionString( ULONG flags, const GUID *guid, ULONG section_kind, - UNICODE_STRING *section_name, PVOID ptr ) + const UNICODE_STRING *section_name, PVOID ptr ) { PACTCTX_SECTION_KEYED_DATA data = ptr; NTSTATUS status; diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index ec4763afd84..b88a56ed424 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -258,7 +258,7 @@ gdi32 - reactos/dll/win32/gdi32/objects/linedda.c # Synced at 20090410 kernel32 - - reactos/dll/win32/kernel32/wine/actctx.c # Partly synced + reactos/dll/win32/kernel32/wine/actctx.c # Partly synced with Wine 1.7.17 reactos/dll/win32/kernel32/wine/comm.c # Synced in r52754 reactos/dll/win32/kernel32/wine/lzexpand.c # Synced in r52754 reactos/dll/win32/kernel32/wine/profile.c # Synced in r52754 From 2a247900b0dd50e69f3299700b2d8896935fce7c Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Thu, 8 May 2014 19:58:21 +0000 Subject: [PATCH 09/92] =?UTF-8?q?[QUARTZ]=20-=20Fix=20a=20trace=20check.?= =?UTF-8?q?=20Patch=20by=20V=C3=ADctor=20Mart=C3=ADnez=20CORE-8152=20#reso?= =?UTF-8?q?lve?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit svn path=/trunk/; revision=63195 --- reactos/dll/directx/wine/quartz/avisplit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reactos/dll/directx/wine/quartz/avisplit.c b/reactos/dll/directx/wine/quartz/avisplit.c index f3c8ddce968..f651cf78167 100644 --- a/reactos/dll/directx/wine/quartz/avisplit.c +++ b/reactos/dll/directx/wine/quartz/avisplit.c @@ -803,7 +803,7 @@ static HRESULT AVISplitter_ProcessStreamList(AVISplitterImpl * This, const BYTE TRACE("dwChunkId: %.4s\n", (const char *)&pIndex->dwChunkId); if (pIndex->dwReserved[0]) TRACE("dwReserved[0]: %u\n", pIndex->dwReserved[0]); - if (pIndex->dwReserved[2]) + if (pIndex->dwReserved[1]) TRACE("dwReserved[1]: %u\n", pIndex->dwReserved[1]); if (pIndex->dwReserved[2]) TRACE("dwReserved[2]: %u\n", pIndex->dwReserved[2]); From 0ef1e2610a919eef33046a839bf0d770bb125afc Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Thu, 8 May 2014 21:40:58 +0000 Subject: [PATCH 10/92] =?UTF-8?q?[IEFRAME]=20-=20Fix=20IID=20comparison=20?= =?UTF-8?q?in=20ShellUIHelper2=5FQueryInterface.=20Patch=20by=20V=C3=ADcto?= =?UTF-8?q?r=20Mart=C3=ADnez=20CORE-8158=20#resolve?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit svn path=/trunk/; revision=63197 --- reactos/dll/win32/ieframe/shelluihelper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reactos/dll/win32/ieframe/shelluihelper.c b/reactos/dll/win32/ieframe/shelluihelper.c index f5141659906..5399cd56bb2 100644 --- a/reactos/dll/win32/ieframe/shelluihelper.c +++ b/reactos/dll/win32/ieframe/shelluihelper.c @@ -41,7 +41,7 @@ static HRESULT WINAPI ShellUIHelper2_QueryInterface(IShellUIHelper2 *iface, REFI }else if(IsEqualGUID(&IID_IShellUIHelper, riid)) { TRACE("(%p)->(IID_IShellUIHelper %p)\n", This, ppv); *ppv = &This->IShellUIHelper2_iface; - }else if(IsEqualGUID(&IID_IShellUIHelper, riid)) { + }else if(IsEqualGUID(&IID_IShellUIHelper2, riid)) { TRACE("(%p)->(IID_IShellUIHelper2 %p)\n", This, ppv); *ppv = &This->IShellUIHelper2_iface; }else { From ef8bb583c95fadafabcc14d6d25ef7e8dac27722 Mon Sep 17 00:00:00 2001 From: Aleksandar Andrejevic Date: Fri, 9 May 2014 00:15:40 +0000 Subject: [PATCH 11/92] [NTVDM] Fix CGA emulation in shift interleave mode. CORE-8177 #comment Possibly fixed. Can you redo your tests with r63199? svn path=/trunk/; revision=63199 --- reactos/subsystems/ntvdm/hardware/vga.c | 25 ++++++++++++++++++++----- reactos/subsystems/ntvdm/hardware/vga.h | 2 +- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/reactos/subsystems/ntvdm/hardware/vga.c b/reactos/subsystems/ntvdm/hardware/vga.c index 4a4dc1b9237..81ef70b7540 100644 --- a/reactos/subsystems/ntvdm/hardware/vga.c +++ b/reactos/subsystems/ntvdm/hardware/vga.c @@ -1146,6 +1146,8 @@ static VOID VgaUpdateFramebuffer(VOID) /* Loop through the scanlines */ for (i = 0; i < Resolution.Y; i++) { + BOOL RepeatScanline = FALSE; + /* Loop through the pixels */ for (j = 0; j < Resolution.X; j++) { @@ -1199,10 +1201,23 @@ static VOID VgaUpdateFramebuffer(VOID) * 2 bits shifted from plane 0 and 2 for the first 4 pixels, * then 2 bits shifted from plane 1 and 3 for the next 4 */ - BYTE LowPlaneData = VgaMemory[((j / 4) % 2) * VGA_BANK_SIZE - + (Address + (j / 8)) * AddressSize]; - BYTE HighPlaneData = VgaMemory[(((j / 4) % 2) + 2) * VGA_BANK_SIZE - + (Address + (j / 8)) * AddressSize]; + DWORD BankNumber = (j / 4) % 2; + DWORD Offset = Address + (j / 8); + BYTE LowPlaneData, HighPlaneData; + + if (i % 2 == 0) + { + /* Odd-numbered line - add the CGA emulation offset */ + Offset += VGA_CGA_ODD_LINE_OFFSET; + } + else + { + /* Even-numbered line - use the same scanline */ + RepeatScanline = TRUE; + } + + LowPlaneData = VgaMemory[BankNumber * VGA_BANK_SIZE + Offset * AddressSize]; + HighPlaneData = VgaMemory[(BankNumber + 2) * VGA_BANK_SIZE + Offset * AddressSize]; /* Extract the two bits from each plane */ LowPlaneData = (LowPlaneData >> (6 - ((j % 4) * 2))) & 3; @@ -1296,7 +1311,7 @@ static VOID VgaUpdateFramebuffer(VOID) } /* Move to the next scanline */ - Address += ScanlineSize; + if (!RepeatScanline) Address += ScanlineSize; } /* diff --git a/reactos/subsystems/ntvdm/hardware/vga.h b/reactos/subsystems/ntvdm/hardware/vga.h index 1f142c175a8..ba7884ee430 100644 --- a/reactos/subsystems/ntvdm/hardware/vga.h +++ b/reactos/subsystems/ntvdm/hardware/vga.h @@ -24,7 +24,7 @@ #define VGA_MINIMUM_HEIGHT 300 #define VGA_DAC_TO_COLOR(x) (((x) << 2) | ((x) >> 4)) #define VGA_COLOR_TO_DAC(x) ((x) >> 2) - +#define VGA_CGA_ODD_LINE_OFFSET 0x1000 /* Register I/O ports */ From 67bc39db3149ce985f9e5756a7a96e8d5604241d Mon Sep 17 00:00:00 2001 From: Aleksandar Andrejevic Date: Fri, 9 May 2014 00:23:19 +0000 Subject: [PATCH 12/92] [NTVDM] Add a comment which explains the weird check for odd-numbered lines. svn path=/trunk/; revision=63200 --- reactos/subsystems/ntvdm/hardware/vga.c | 1 + 1 file changed, 1 insertion(+) diff --git a/reactos/subsystems/ntvdm/hardware/vga.c b/reactos/subsystems/ntvdm/hardware/vga.c index 81ef70b7540..870cda9a63d 100644 --- a/reactos/subsystems/ntvdm/hardware/vga.c +++ b/reactos/subsystems/ntvdm/hardware/vga.c @@ -1205,6 +1205,7 @@ static VOID VgaUpdateFramebuffer(VOID) DWORD Offset = Address + (j / 8); BYTE LowPlaneData, HighPlaneData; + /* Check if the 0-based index is divisible by 2. If so, the 1-based index is an odd number. */ if (i % 2 == 0) { /* Odd-numbered line - add the CGA emulation offset */ From 9c0d390343d6cca10b95872fdf86efca2b90cd6b Mon Sep 17 00:00:00 2001 From: Aleksandar Andrejevic Date: Fri, 9 May 2014 00:34:10 +0000 Subject: [PATCH 13/92] [NTVDM] Fix the previous two fixes. Tests show that the first line is actually treated as an even-numbered line. svn path=/trunk/; revision=63201 --- reactos/subsystems/ntvdm/hardware/vga.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/reactos/subsystems/ntvdm/hardware/vga.c b/reactos/subsystems/ntvdm/hardware/vga.c index 870cda9a63d..050b5f34801 100644 --- a/reactos/subsystems/ntvdm/hardware/vga.c +++ b/reactos/subsystems/ntvdm/hardware/vga.c @@ -1205,8 +1205,7 @@ static VOID VgaUpdateFramebuffer(VOID) DWORD Offset = Address + (j / 8); BYTE LowPlaneData, HighPlaneData; - /* Check if the 0-based index is divisible by 2. If so, the 1-based index is an odd number. */ - if (i % 2 == 0) + if (i % 2 != 0) { /* Odd-numbered line - add the CGA emulation offset */ Offset += VGA_CGA_ODD_LINE_OFFSET; From 71bcf04d1f040b15a59725d64efbee62b668f229 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Fri, 9 May 2014 01:57:43 +0000 Subject: [PATCH 14/92] [RPCRT4] Detect whether we are connecting to a pipe on the local machine and use the \\.\ prefix instead of the full machine name. This patch modifies ReactOS-specific code (that was introduced by Eric in revision 53630) (Wine still supports only local pipes), so I also update our rpcrt4_ros.diff file accordingly, r63201 with respect to the latest Wine 1.7.17 rpcrt4 code. CORE-6561 #resolve CORE-6562 #resolve CORE-7562 #comment Partly solved in revision 63202. Please retest. svn path=/trunk/; revision=63202 --- reactos/dll/win32/rpcrt4/rpc_transport.c | 33 +- reactos/dll/win32/rpcrt4/rpcrt4_ros.diff | 1030 ++++++++++++++++++++-- 2 files changed, 990 insertions(+), 73 deletions(-) diff --git a/reactos/dll/win32/rpcrt4/rpc_transport.c b/reactos/dll/win32/rpcrt4/rpc_transport.c index f60ea9f50d1..6608d8aedf2 100644 --- a/reactos/dll/win32/rpcrt4/rpc_transport.c +++ b/reactos/dll/win32/rpcrt4/rpc_transport.c @@ -307,7 +307,10 @@ static RPC_STATUS rpcrt4_ncacn_np_open(RpcConnection* Connection) { RpcConnection_np *npc = (RpcConnection_np *) Connection; static const char prefix[] = "\\\\"; - static const char local[] ="."; + static const char local[] = "."; + BOOL bUseLocalName = TRUE; + CHAR ComputerName[MAX_COMPUTERNAME_LENGTH + 1]; + DWORD bufLen = sizeof(ComputerName)/sizeof(ComputerName[0]); RPC_STATUS r; LPSTR pname; INT size; @@ -318,15 +321,39 @@ static RPC_STATUS rpcrt4_ncacn_np_open(RpcConnection* Connection) /* protseq=ncacn_np: named pipes */ size = strlen(prefix); + if (Connection->NetworkAddr == NULL || strlen(Connection->NetworkAddr) == 0) + { + bUseLocalName = TRUE; size += strlen(local); + } else - size += strlen(Connection->NetworkAddr); + { + if (GetComputerNameA(ComputerName, &bufLen)) + { + if (stricmp(ComputerName, Connection->NetworkAddr) == 0) + { + bUseLocalName = TRUE; + size += strlen(local); + } + else + { + bUseLocalName = FALSE; + size += strlen(Connection->NetworkAddr); + } + } + else + { + bUseLocalName = FALSE; + size += strlen(Connection->NetworkAddr); + } + } + size += strlen(Connection->Endpoint) + 1; pname = I_RpcAllocate(size); strcpy(pname, prefix); - if (Connection->NetworkAddr == NULL || strlen(Connection->NetworkAddr) == 0) + if (bUseLocalName) strcat(pname, local); else strcat(pname, Connection->NetworkAddr); diff --git a/reactos/dll/win32/rpcrt4/rpcrt4_ros.diff b/reactos/dll/win32/rpcrt4/rpcrt4_ros.diff index 36b824b02bc..048b37f2345 100644 --- a/reactos/dll/win32/rpcrt4/rpcrt4_ros.diff +++ b/reactos/dll/win32/rpcrt4/rpcrt4_ros.diff @@ -1,40 +1,705 @@ -diff -prudN e:\Wine\dlls\rpcrt4/epm_towers.h e:\reactos\dll\win32\rpcrt4/epm_towers.h ---- e:\Wine\dlls\rpcrt4/epm_towers.h 2011-09-16 23:22:37.031828000 +0100 -+++ e:\reactos\dll\win32\rpcrt4/epm_towers.h 2013-01-25 14:13:03.257632500 +0100 -@@ -19,7 +19,7 @@ +diff -prudN .\wine\dlls\rpcrt4/cproxy.c .\reactos\dll\win32\rpcrt4/cproxy.c +--- .\wine\dlls\rpcrt4/cproxy.c 2014-05-09 03:43:55.921033400 +0200 ++++ .\reactos\dll\win32\rpcrt4/cproxy.c 2013-12-27 18:11:56.483967600 +0100 +@@ -21,24 +21,7 @@ + * TODO: Handle non-i386 architectures + */ + +-#include "config.h" +-#include "wine/port.h" +- +-#include +- +-#define COBJMACROS +- +-#include "windef.h" +-#include "winbase.h" +-#include "winerror.h" +- +-#include "objbase.h" +-#include "rpcproxy.h" +- +-#include "cpsf.h" +-#include "ndr_misc.h" +-#include "ndr_stubless.h" +-#include "wine/debug.h" ++#include "precomp.h" + + WINE_DEFAULT_DEBUG_CHANNEL(ole); + +diff -prudN .\wine\dlls\rpcrt4/cpsf.c .\reactos\dll\win32\rpcrt4/cpsf.c +--- .\wine\dlls\rpcrt4/cpsf.c 2014-05-09 03:43:55.924033600 +0200 ++++ .\reactos\dll\win32\rpcrt4/cpsf.c 2013-12-27 18:11:57.185968800 +0100 +@@ -18,28 +18,9 @@ + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +-#include "config.h" +-#include "wine/port.h" +- +-#include +-#include +-#include +- +-#define COBJMACROS +- +-#include "windef.h" +-#include "winbase.h" +-#include "winerror.h" +-#include "winreg.h" +- +-#include "objbase.h" +- +-#include "rpcproxy.h" +- +-#include "wine/unicode.h" +-#include "wine/debug.h" ++#include "precomp.h" + +-#include "cpsf.h" ++#include + + WINE_DEFAULT_DEBUG_CHANNEL(ole); + +diff -prudN .\wine\dlls\rpcrt4/cstub.c .\reactos\dll\win32\rpcrt4/cstub.c +--- .\wine\dlls\rpcrt4/cstub.c 2014-05-09 03:43:55.927033800 +0200 ++++ .\reactos\dll\win32\rpcrt4/cstub.c 2013-12-27 18:11:56.905168300 +0100 +@@ -19,25 +19,7 @@ + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +-#include "config.h" +-#include "wine/port.h" +- +-#include +- +-#define COBJMACROS +- +-#include "windef.h" +-#include "winbase.h" +-#include "winerror.h" +-#include "excpt.h" +- +-#include "objbase.h" +-#include "rpcproxy.h" +- +-#include "wine/debug.h" +-#include "wine/exception.h" +- +-#include "cpsf.h" ++#include "precomp.h" + + WINE_DEFAULT_DEBUG_CHANNEL(ole); + +diff -prudN .\wine\dlls\rpcrt4/epm_towers.h .\reactos\dll\win32\rpcrt4/epm_towers.h +--- .\wine\dlls\rpcrt4/epm_towers.h 2014-05-09 03:43:55.988037200 +0200 ++++ .\reactos\dll\win32\rpcrt4/epm_towers.h 2013-12-27 18:11:57.170368800 +0100 +@@ -19,7 +19,9 @@ * */ -#include "epm.h" ++#pragma once ++ +#include #define EPM_PROTOCOL_DNET_NSP 0x04 #define EPM_PROTOCOL_OSI_TP4 0x05 -diff -prudN e:\Wine\dlls\rpcrt4/ndr_marshall.c e:\reactos\dll\win32\rpcrt4/ndr_marshall.c ---- e:\Wine\dlls\rpcrt4/ndr_marshall.c 2012-04-02 20:39:58.270363100 +0100 -+++ e:\reactos\dll\win32\rpcrt4/ndr_marshall.c 2013-12-06 20:04:02.897835300 +0100 -@@ -1211,7 +1211,7 @@ static unsigned char * EmbeddedPointerMa - unsigned char *bufptr = bufbase + *(const SHORT*)&info[2]; - unsigned char *saved_memory = pStubMsg->Memory; +diff -prudN .\wine\dlls\rpcrt4/msvc.S .\reactos\dll\win32\rpcrt4/msvc.S +--- .\wine\dlls\rpcrt4/msvc.S 1970-01-01 01:00:00.000000000 +0100 ++++ .\reactos\dll\win32\rpcrt4/msvc.S 2012-02-14 21:27:35.943001900 +0100 +@@ -0,0 +1,146 @@ ++ ++#include ++ ++#ifdef _M_IX86 ++.code32 ++ ++EXTERN _ndr_client_call:PROC ++ ++PUBLIC _call_stubless_func ++_call_stubless_func: ++ ++ mov ecx,[esp+4] /* This Pointer */ ++ mov ecx,[ecx] /* This->lpVtbl */ ++ mov ecx,[ecx-8] /* MIDL_STUBLESS_PROXY_INFO */ ++ mov edx,[ecx+8] /* Info->FormatStringOffset */ ++ mov edx,[edx+eax*2] /* FormatStringOffset[index] */ ++ and edx, 0000FFFFh ++ add edx,[ecx+4] /* info->ProcFormatString + offset */ ++ mov eax, [edx+8] /* arguments size */ ++ and eax, 0000FFFFh ++ push eax ++ lea eax, [esp+8] /* &This */ ++ push eax ++ push edx /* format string */ ++ push [ecx] /* info->pstubdesc */ ++ call _ndr_client_call ++ lea esp, [esp+12] ++ pop edx /* arguments size */ ++ mov ecx, [esp] /* return address */ ++ add esp, edx ++ jmp ecx ++#else ++.code64 ++ ++EXTERN ndr_client_call:PROC ++ ++PUBLIC call_stubless_func ++FUNC call_stubless_func ++ mov [rsp + 8], rcx ++ .SAVEREG rcx, 8 ++ mov [rsp + 10h], rdx ++ .SAVEREG rdx, 10h ++ mov [rsp + 18h], r8 ++ .SAVEREG r8, 18h ++ mov [rsp + 20h], r9 ++ .SAVEREG r9, 20h ++ sub rsp, 38h ++ .ALLOCSTACK 38h ++ .ENDPROLOG ++ ++ lea r8, [rsp +38h + 8] /* &This */ ++ mov rcx, [rcx] /* This->lpVtbl */ ++ mov rcx, [rcx - 10h] /* MIDL_STUBLESS_PROXY_INFO */ ++ mov rdx, [rcx + 10h] /* info->FormatStringOffset */ ++ movzx rdx, word ptr [rdx+r10*2] /* FormatStringOffset[index] */ ++ add rdx, [rcx + 8] /* info->ProcFormatString + offset */ ++ mov rcx, [rcx] /* info->pStubDesc */ ++ ++ movaps [rsp + 20h], xmm1 ++ movaps [rsp + 28h], xmm2 ++ movaps [rsp + 30h], xmm3 ++ lea r9, [rsp + 18h] /* fpu_args */ ++ call ndr_client_call ++ add rsp, 38h ++ ret ++ENDFUNC ++ ++PUBLIC call_server_func ++FUNC call_server_func ++ push rbp ++ .PUSHREG rbp ++ mov rbp, rsp ++ push rsi ++ .PUSHREG rsi ++ push rdi ++ .PUSHREG rdi ++ .ENDPROLOG ++ ++ mov rax, rcx /* function to call */ ++ mov rcx, 32 /* allocate max(32,stack_size) bytes of stack space */ ++ cmp r8, rcx ++ cmovg rcx, r8 ++ sub rsp, rcx ++ and rsp, NOT 15 ++ mov rcx, r8 ++ shr rcx, 3 ++ mov rdi, rsp ++ mov rsi, rdx ++ rep movsq /* copy arguments */ ++ mov rcx, [rsp] ++ mov rdx, [rsp + 8] ++ mov r8, [rsp + 16] ++ mov r9, [rsp + 24] ++ movd xmm0, rcx ++ movd xmm1, rdx ++ movd xmm2, r8 ++ movd xmm3, r9 ++ call rax ++ ++ lea rsp, [rbp - 16] /* restore stack */ ++ pop rdi ++ pop rsi ++ pop rbp ++ ret ++ENDFUNC ++ ++ ++PUBLIC NdrClientCall2 ++FUNC NdrClientCall2 ++ mov [rsp + 18h], r8 ++ .SAVEREG r8, 18h ++ mov [rsp + 20h], r9 ++ .SAVEREG r9, 20h ++ sub rsp, 28h ++ .ALLOCSTACK 28h ++ .ENDPROLOG ++ ++ lea r8, [rsp + 28h + 18h] ++ xor r9, r9 ++ call ndr_client_call ++ ++ add rsp, 28h ++ ret ++ENDFUNC ++ ++EXTERN ndr_async_client_call:PROC ++PUBLIC NdrAsyncClientCall ++FUNC NdrAsyncClientCall ++ mov [rsp + 18h], r8 ++ .SAVEREG r8, 18h ++ mov [rsp + 20h], r9 ++ .SAVEREG r9, 20h ++ sub rsp, 28h ++ .ALLOCSTACK 28h ++ .ENDPROLOG ++ ++ lea r8, [rsp + 28h + 18h] ++ call ndr_async_client_call ++ ++ add rsp, 28h ++ ret ++ENDFUNC ++ ++#endif ++ ++END +diff -prudN .\wine\dlls\rpcrt4/ncastatus.h .\reactos\dll\win32\rpcrt4/ncastatus.h +--- .\wine\dlls\rpcrt4/ncastatus.h 2014-05-09 03:43:55.867030300 +0200 ++++ .\reactos\dll\win32\rpcrt4/ncastatus.h 2013-12-27 18:11:56.764768100 +0100 +@@ -18,6 +18,8 @@ + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ -- pStubMsg->Memory = pMemory; -+ pStubMsg->Memory = membase; - PointerMarshall(pStubMsg, bufptr, *(unsigned char**)memptr, info+4); - pStubMsg->Memory = saved_memory; - } -@@ -1365,7 +1365,7 @@ static void EmbeddedPointerBufferSize(PM - unsigned char *memptr = membase + *(const SHORT*)&info[0]; - unsigned char *saved_memory = pStubMsg->Memory; ++#pragma once ++ + #define NCA_S_COMM_FAILURE 0x1C010001 + #define NCA_S_OP_RNG_ERROR 0x1C010002 + #define NCA_S_UNK_IF 0x1C010003 +diff -prudN .\wine\dlls\rpcrt4/ndr_clientserver.c .\reactos\dll\win32\rpcrt4/ndr_clientserver.c +--- .\wine\dlls\rpcrt4/ndr_clientserver.c 2014-05-09 03:43:55.931034000 +0200 ++++ .\reactos\dll\win32\rpcrt4/ndr_clientserver.c 2013-12-27 18:11:56.437167500 +0100 +@@ -22,22 +22,7 @@ + * - check for errors and throw exceptions + */ -- pStubMsg->Memory = pMemory; -+ pStubMsg->Memory = membase; - PointerBufferSize(pStubMsg, *(unsigned char**)memptr, info+4); - pStubMsg->Memory = saved_memory; - } -diff -prudN e:\Wine\dlls\rpcrt4/rpc_epmap.c e:\reactos\dll\win32\rpcrt4/rpc_epmap.c ---- e:\Wine\dlls\rpcrt4/rpc_epmap.c 2013-03-02 14:18:00.736492500 +0100 -+++ e:\reactos\dll\win32\rpcrt4/rpc_epmap.c 2013-12-06 20:28:21.361553600 +0100 -@@ -162,7 +169,7 @@ static RPC_STATUS get_epm_handle_server( +-#include +- +-#define COBJMACROS +- +-#include "windef.h" +-#include "winbase.h" +-#include "winerror.h" +- +-#include "objbase.h" +- +-#include "rpcproxy.h" +- +-#include "wine/debug.h" +- +-#include "ndr_misc.h" +-#include "rpcndr.h" ++#include "precomp.h" + + WINE_DEFAULT_DEBUG_CHANNEL(rpc); + +diff -prudN .\wine\dlls\rpcrt4/ndr_contexthandle.c .\reactos\dll\win32\rpcrt4/ndr_contexthandle.c +--- .\wine\dlls\rpcrt4/ndr_contexthandle.c 2014-05-09 03:43:55.935034200 +0200 ++++ .\reactos\dll\win32\rpcrt4/ndr_contexthandle.c 2013-12-27 18:11:56.639967900 +0100 +@@ -19,14 +19,7 @@ + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +-#include "ndr_misc.h" +-#include "rpc_assoc.h" +-#include "rpcndr.h" +- +-#include "wine/rpcfc.h" +- +-#include "wine/debug.h" +-#include "wine/list.h" ++#include "precomp.h" + + WINE_DEFAULT_DEBUG_CHANNEL(ole); + +diff -prudN .\wine\dlls\rpcrt4/ndr_es.c .\reactos\dll\win32\rpcrt4/ndr_es.c +--- .\wine\dlls\rpcrt4/ndr_es.c 2014-05-09 03:43:55.938034400 +0200 ++++ .\reactos\dll\win32\rpcrt4/ndr_es.c 2013-12-27 18:11:56.764768100 +0100 +@@ -18,21 +18,9 @@ + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +-#include +-#include +- +-#include "windef.h" +-#include "winbase.h" +-#include "winerror.h" +-#include "rpc.h" +-#include "midles.h" +-#include "ndrtypes.h" +- +-#include "ndr_misc.h" +-#include "ndr_stubless.h" ++#include "precomp.h" + +-#include "wine/debug.h" +-#include "wine/rpcfc.h" ++#include + + WINE_DEFAULT_DEBUG_CHANNEL(ole); + +diff -prudN .\wine\dlls\rpcrt4/ndr_fullpointer.c .\reactos\dll\win32\rpcrt4/ndr_fullpointer.c +--- .\wine\dlls\rpcrt4/ndr_fullpointer.c 2014-05-09 03:43:55.941034600 +0200 ++++ .\reactos\dll\win32\rpcrt4/ndr_fullpointer.c 2013-12-27 18:11:56.655567900 +0100 +@@ -18,14 +18,7 @@ + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +-#include +- +-#include "windef.h" +-#include "winbase.h" +-#include "rpc.h" +-#include "rpcndr.h" +- +-#include "wine/debug.h" ++#include "precomp.h" + + WINE_DEFAULT_DEBUG_CHANNEL(rpc); + +diff -prudN .\wine\dlls\rpcrt4/ndr_marshall.c .\reactos\dll\win32\rpcrt4/ndr_marshall.c +--- .\wine\dlls\rpcrt4/ndr_marshall.c 2014-05-09 03:43:55.945034800 +0200 ++++ .\reactos\dll\win32\rpcrt4/ndr_marshall.c 2014-04-27 11:37:38.078578700 +0200 +@@ -27,25 +27,7 @@ + * - Checks for integer addition overflow in user marshall functions + */ + +-#include +-#include +-#include +-#include +-#include +- +-#define NONAMELESSUNION +-#include "windef.h" +-#include "winbase.h" +-#include "winerror.h" +- +-#include "ndr_misc.h" +-#include "rpcndr.h" +-#include "ndrtypes.h" +- +-#include "wine/unicode.h" +-#include "wine/rpcfc.h" +- +-#include "wine/debug.h" ++#include "precomp.h" + + WINE_DEFAULT_DEBUG_CHANNEL(ole); + +diff -prudN .\wine\dlls\rpcrt4/ndr_misc.h .\reactos\dll\win32\rpcrt4/ndr_misc.h +--- .\wine\dlls\rpcrt4/ndr_misc.h 2014-05-09 03:43:55.873030700 +0200 ++++ .\reactos\dll\win32\rpcrt4/ndr_misc.h 2013-12-27 18:11:56.624367800 +0100 +@@ -21,13 +21,6 @@ + #ifndef __WINE_NDR_MISC_H + #define __WINE_NDR_MISC_H + +-#include +- +-#include "windef.h" +-#include "winbase.h" +-#include "rpc.h" +-#include "rpcndr.h" +- + struct IPSFactoryBuffer; + + PFORMAT_STRING ComputeConformanceOrVariance( +diff -prudN .\wine\dlls\rpcrt4/ndr_ole.c .\reactos\dll\win32\rpcrt4/ndr_ole.c +--- .\wine\dlls\rpcrt4/ndr_ole.c 2014-05-09 03:43:55.948035000 +0200 ++++ .\reactos\dll\win32\rpcrt4/ndr_ole.c 2013-12-27 18:11:56.468367600 +0100 +@@ -22,27 +22,7 @@ + * - finish RpcStream_Vtbl + */ + +-#include +-#include +-#include +- +-#define COBJMACROS +-#define NONAMELESSUNION +-#define NONAMELESSSTRUCT +- +-#include "windef.h" +-#include "winbase.h" +-#include "winerror.h" +- +-#include "objbase.h" +- +-#include "ndr_misc.h" +-#include "rpcndr.h" +-#include "rpcproxy.h" +-#include "wine/rpcfc.h" +-#include "cpsf.h" +- +-#include "wine/debug.h" ++#include "precomp.h" + + WINE_DEFAULT_DEBUG_CHANNEL(ole); + +diff -prudN .\wine\dlls\rpcrt4/ndr_stubless.c .\reactos\dll\win32\rpcrt4/ndr_stubless.c +--- .\wine\dlls\rpcrt4/ndr_stubless.c 2014-05-09 03:43:55.952035200 +0200 ++++ .\reactos\dll\win32\rpcrt4/ndr_stubless.c 2013-12-27 18:11:56.437167500 +0100 +@@ -23,28 +23,7 @@ + * - Some types of binding handles + */ + +-#include "config.h" +-#include "wine/port.h" +- +-#include +-#include +-#include +- +-#include "windef.h" +-#include "winbase.h" +-#include "winerror.h" +- +-#include "objbase.h" +-#include "rpc.h" +-#include "rpcproxy.h" +- +-#include "wine/exception.h" +-#include "wine/debug.h" +-#include "wine/rpcfc.h" +- +-#include "cpsf.h" +-#include "ndr_misc.h" +-#include "ndr_stubless.h" ++#include "precomp.h" + + WINE_DEFAULT_DEBUG_CHANNEL(rpc); + +diff -prudN .\wine\dlls\rpcrt4/ndr_stubless.h .\reactos\dll\win32\rpcrt4/ndr_stubless.h +--- .\wine\dlls\rpcrt4/ndr_stubless.h 2014-05-09 03:43:55.878030900 +0200 ++++ .\reactos\dll\win32\rpcrt4/ndr_stubless.h 2013-12-27 18:11:56.452767500 +0100 +@@ -18,10 +18,12 @@ + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +-#include "ndrtypes.h" ++#pragma once ++ ++#include + + /* there can't be any alignment with the structures in this file */ +-#include "pshpack1.h" ++#include + + typedef struct _NDR_PROC_HEADER + { +@@ -223,7 +225,7 @@ typedef struct _NDR_EHD_CONTEXT + unsigned char param_num; + } NDR_EHD_CONTEXT; + +-#include "poppack.h" ++#include + + enum stubless_phase + { +diff -prudN .\wine\dlls\rpcrt4/precomp.h .\reactos\dll\win32\rpcrt4/precomp.h +--- .\wine\dlls\rpcrt4/precomp.h 1970-01-01 01:00:00.000000000 +0100 ++++ .\reactos\dll\win32\rpcrt4/precomp.h 2014-03-14 01:43:22.357516600 +0100 +@@ -0,0 +1,40 @@ ++#ifndef _RPCRT4_PCH_ ++#define _RPCRT4_PCH_ ++ ++#include ++ ++#include ++#include ++#include ++ ++#define _INC_WINDOWS ++ ++#define COBJMACROS ++#define NONAMELESSUNION ++#define NONAMELESSSTRUCT ++ ++#include ++#define WIN32_NO_STATUS ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "cpsf.h" ++#include "ncastatus.h" ++#include "ndr_misc.h" ++#include "ndr_stubless.h" ++#include "rpc_assoc.h" ++#include "rpc_binding.h" ++#include "rpc_message.h" ++#include "rpc_server.h" ++ ++#endif /* _RPCRT4_PCH_ */ +diff -prudN .\wine\dlls\rpcrt4/rpc_assoc.c .\reactos\dll\win32\rpcrt4/rpc_assoc.c +--- .\wine\dlls\rpcrt4/rpc_assoc.c 2014-05-09 03:43:55.955035400 +0200 ++++ .\reactos\dll\win32\rpcrt4/rpc_assoc.c 2013-12-27 18:11:56.780368100 +0100 +@@ -19,19 +19,7 @@ + * + */ + +-#include +-#include +- +-#include "rpc.h" +-#include "rpcndr.h" +-#include "winternl.h" +- +-#include "wine/unicode.h" +-#include "wine/debug.h" +- +-#include "rpc_binding.h" +-#include "rpc_assoc.h" +-#include "rpc_message.h" ++#include "precomp.h" + + WINE_DEFAULT_DEBUG_CHANNEL(rpc); + +diff -prudN .\wine\dlls\rpcrt4/rpc_assoc.h .\reactos\dll\win32\rpcrt4/rpc_assoc.h +--- .\wine\dlls\rpcrt4/rpc_assoc.h 2014-05-09 03:43:55.884031300 +0200 ++++ .\reactos\dll\win32\rpcrt4/rpc_assoc.h 2013-12-27 18:11:56.905168300 +0100 +@@ -20,7 +20,6 @@ + */ + + #include "rpc_binding.h" +-#include "wine/list.h" + + typedef struct _RpcAssoc + { +diff -prudN .\wine\dlls\rpcrt4/rpc_async.c .\reactos\dll\win32\rpcrt4/rpc_async.c +--- .\wine\dlls\rpcrt4/rpc_async.c 2014-05-09 03:43:55.958035500 +0200 ++++ .\reactos\dll\win32\rpcrt4/rpc_async.c 2013-12-27 18:11:56.468367600 +0100 +@@ -19,17 +19,7 @@ + * + */ + +-#include +- +-#include "rpc.h" +-#include "rpcndr.h" +-#include "rpcasync.h" +- +-#include "wine/debug.h" +- +-#include "rpc_binding.h" +-#include "rpc_message.h" +-#include "ndr_stubless.h" ++#include "precomp.h" + + WINE_DEFAULT_DEBUG_CHANNEL(rpc); + +diff -prudN .\wine\dlls\rpcrt4/rpc_binding.c .\reactos\dll\win32\rpcrt4/rpc_binding.c +--- .\wine\dlls\rpcrt4/rpc_binding.c 2014-05-09 03:43:55.962035800 +0200 ++++ .\reactos\dll\win32\rpcrt4/rpc_binding.c 2013-12-27 18:11:56.452767500 +0100 +@@ -21,25 +21,7 @@ + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +-#include +-#include +-#include +-#include +- +-#include "windef.h" +-#include "winbase.h" +-#include "winnls.h" +-#include "winerror.h" +-#include "winternl.h" +-#include "wine/unicode.h" +- +-#include "rpc.h" +-#include "rpcndr.h" +- +-#include "wine/debug.h" +- +-#include "rpc_binding.h" +-#include "rpc_assoc.h" ++#include "precomp.h" + + WINE_DEFAULT_DEBUG_CHANNEL(rpc); + +diff -prudN .\wine\dlls\rpcrt4/rpc_binding.h .\reactos\dll\win32\rpcrt4/rpc_binding.h +--- .\wine\dlls\rpcrt4/rpc_binding.h 2014-05-09 03:43:55.890031600 +0200 ++++ .\reactos\dll\win32\rpcrt4/rpc_binding.h 2013-12-27 18:11:56.483967600 +0100 +@@ -21,12 +21,8 @@ + #ifndef __WINE_RPC_BINDING_H + #define __WINE_RPC_BINDING_H + +-#include "rpcndr.h" +-#include "security.h" +-#include "wine/list.h" + #include "rpc_defs.h" + +- + enum secure_packet_direction + { + SECURE_PACKET_SEND, +diff -prudN .\wine\dlls\rpcrt4/rpc_defs.h .\reactos\dll\win32\rpcrt4/rpc_defs.h +--- .\wine\dlls\rpcrt4/rpc_defs.h 2014-05-09 03:43:55.895031900 +0200 ++++ .\reactos\dll\win32\rpcrt4/rpc_defs.h 2013-01-25 00:19:54.167254400 +0100 +@@ -22,7 +22,7 @@ + #ifndef __WINE_RPC_DEFS_H + #define __WINE_RPC_DEFS_H + +-#include "pshpack1.h" ++#include + typedef struct + { + unsigned char rpc_ver; /* RPC major version (5) */ +@@ -168,7 +168,7 @@ typedef struct + unsigned char auth_reserved; /* reserved, must be zero */ + unsigned int auth_context_id; /* unique value for the authenticated connection */ + } RpcAuthVerifier; +-#include "poppack.h" ++#include + + #define RPC_AUTH_VERIFIER_LEN(common_hdr) \ + ((common_hdr)->auth_len ? (common_hdr)->auth_len + sizeof(RpcAuthVerifier) : 0) +diff -prudN .\wine\dlls\rpcrt4/rpc_epmap.c .\reactos\dll\win32\rpcrt4/rpc_epmap.c +--- .\wine\dlls\rpcrt4/rpc_epmap.c 2014-05-09 03:43:55.965035900 +0200 ++++ .\reactos\dll\win32\rpcrt4/rpc_epmap.c 2013-12-27 18:11:56.421567500 +0100 +@@ -20,19 +20,7 @@ + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +-#include +- +-#include "windef.h" +-#include "winbase.h" +-#include "winerror.h" +- +-#include "rpc.h" +- +-#include "wine/debug.h" +-#include "wine/exception.h" +- +-#include "rpc_binding.h" +-#include "epm.h" ++#include "precomp.h" + #include "epm_towers.h" + + WINE_DEFAULT_DEBUG_CHANNEL(ole); +@@ -92,7 +80,7 @@ static BOOL start_rpcss(void) + lstrcatW( cmd, rpcss ); + + Wow64DisableWow64FsRedirection( &redir ); +- rslt = CreateProcessW( cmd, cmd, NULL, NULL, FALSE, DETACHED_PROCESS, NULL, NULL, &si, &pi ); ++ rslt = CreateProcessW( cmd, cmd, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi ); + Wow64RevertWow64FsRedirection( redir ); + + if (rslt) +@@ -162,7 +150,7 @@ static RPC_STATUS get_epm_handle_server( static LONG WINAPI rpc_filter(EXCEPTION_POINTERS *__eptr) { @@ -43,10 +708,87 @@ diff -prudN e:\Wine\dlls\rpcrt4/rpc_epmap.c e:\reactos\dll\win32\rpcrt4/rpc_epma { case EXCEPTION_ACCESS_VIOLATION: case EXCEPTION_ILLEGAL_INSTRUCTION: -diff -prudN e:\Wine\dlls\rpcrt4/rpc_server.c e:\reactos\dll\win32\rpcrt4/rpc_server.c ---- e:\Wine\dlls\rpcrt4/rpc_server.c 2012-12-09 09:57:02.680308600 +0100 -+++ e:\reactos\dll\win32\rpcrt4/rpc_server.c 2013-12-06 23:50:04.564226300 +0100 -@@ -1075,8 +1077,10 @@ void RPCRT4_destroy_all_protseqs(void) +diff -prudN .\wine\dlls\rpcrt4/rpc_message.c .\reactos\dll\win32\rpcrt4/rpc_message.c +--- .\wine\dlls\rpcrt4/rpc_message.c 2014-05-09 03:43:55.969036200 +0200 ++++ .\reactos\dll\win32\rpcrt4/rpc_message.c 2014-04-27 11:37:38.078578700 +0200 +@@ -20,25 +20,9 @@ + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +-#include +-#include +-#include +- +-#include "windef.h" +-#include "winbase.h" +-#include "winerror.h" +-#include "winuser.h" +- +-#include "rpc.h" +-#include "rpcndr.h" +-#include "rpcdcep.h" +- +-#include "wine/debug.h" ++#include "precomp.h" + +-#include "rpc_binding.h" +-#include "rpc_defs.h" +-#include "rpc_message.h" +-#include "ncastatus.h" ++#include + + WINE_DEFAULT_DEBUG_CHANNEL(rpc); + +diff -prudN .\wine\dlls\rpcrt4/rpc_message.h .\reactos\dll\win32\rpcrt4/rpc_message.h +--- .\wine\dlls\rpcrt4/rpc_message.h 2014-05-09 03:43:55.901032300 +0200 ++++ .\reactos\dll\win32\rpcrt4/rpc_message.h 2013-12-27 18:11:56.499567600 +0100 +@@ -21,8 +21,6 @@ + #ifndef __WINE_RPC_MESSAGE_H + #define __WINE_RPC_MESSAGE_H + +-#include "rpc_defs.h" +- + typedef unsigned int NCA_STATUS; + + RpcPktHdr *RPCRT4_BuildFaultHeader(ULONG DataRepresentation, RPC_STATUS Status) DECLSPEC_HIDDEN; +diff -prudN .\wine\dlls\rpcrt4/rpc_server.c .\reactos\dll\win32\rpcrt4/rpc_server.c +--- .\wine\dlls\rpcrt4/rpc_server.c 2014-05-09 03:43:55.973036400 +0200 ++++ .\reactos\dll\win32\rpcrt4/rpc_server.c 2013-12-27 18:11:56.780368100 +0100 +@@ -20,31 +20,9 @@ + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +-#include "config.h" +-#include "wine/port.h" +- +-#include +-#include +-#include +-#include +- +-#include "windef.h" +-#include "winbase.h" +-#include "winerror.h" +- +-#include "rpc.h" +-#include "rpcndr.h" +-#include "excpt.h" +- +-#include "wine/debug.h" +-#include "wine/exception.h" ++#include "precomp.h" + +-#include "rpc_server.h" +-#include "rpc_assoc.h" +-#include "rpc_message.h" +-#include "rpc_defs.h" +-#include "ncastatus.h" +-#include "secext.h" ++#include + + WINE_DEFAULT_DEBUG_CHANNEL(rpc); + +@@ -1075,8 +1053,10 @@ void RPCRT4_destroy_all_protseqs(void) EnterCriticalSection(&server_cs); LIST_FOR_EACH_ENTRY_SAFE(cps, cursor2, &protseqs, RpcServerProtseq, entry) { @@ -57,10 +799,62 @@ diff -prudN e:\Wine\dlls\rpcrt4/rpc_server.c e:\reactos\dll\win32\rpcrt4/rpc_ser destroy_serverprotoseq(cps); } LeaveCriticalSection(&server_cs); -diff -prudN e:\Wine\dlls\rpcrt4/rpc_transport.c e:\reactos\dll\win32\rpcrt4/rpc_transport.c ---- e:\Wine\dlls\rpcrt4/rpc_transport.c 2013-12-06 20:10:59.302378700 +0100 -+++ e:\reactos\dll\win32\rpcrt4/rpc_transport.c 2013-12-06 23:39:38.664465200 +0100 -@@ -111,31 +115,41 @@ typedef struct _RpcConnection_np +diff -prudN .\wine\dlls\rpcrt4/rpc_server.h .\reactos\dll\win32\rpcrt4/rpc_server.h +--- .\wine\dlls\rpcrt4/rpc_server.h 2014-05-09 03:43:55.907032600 +0200 ++++ .\reactos\dll\win32\rpcrt4/rpc_server.h 2013-12-27 18:11:56.905168300 +0100 +@@ -22,7 +22,6 @@ + #define __WINE_RPC_SERVER_H + + #include "rpc_binding.h" +-#include "wine/list.h" + + struct protseq_ops; + +diff -prudN .\wine\dlls\rpcrt4/rpc_transport.c .\reactos\dll\win32\rpcrt4/rpc_transport.c +--- .\wine\dlls\rpcrt4/rpc_transport.c 2014-05-09 03:43:55.977036600 +0200 ++++ .\reactos\dll\win32\rpcrt4/rpc_transport.c 2014-05-09 03:10:59.250551600 +0200 +@@ -23,14 +23,7 @@ + * + */ + +-#include "config.h" +- +-#include +-#include +-#include +-#include +-#include +-#include ++#include "precomp.h" + + #if defined(__MINGW32__) || defined (_MSC_VER) + # include +@@ -76,23 +69,8 @@ + # define ioctlsocket ioctl + #endif /* defined(__MINGW32__) || defined (_MSC_VER) */ + +-#include "windef.h" +-#include "winbase.h" +-#include "winnls.h" +-#include "winerror.h" +-#include "wininet.h" +-#include "winternl.h" +-#include "wine/unicode.h" +- +-#include "rpc.h" +-#include "rpcndr.h" +- +-#include "wine/debug.h" ++#include + +-#include "rpc_binding.h" +-#include "rpc_assoc.h" +-#include "rpc_message.h" +-#include "rpc_server.h" + #include "epm_towers.h" + + #ifndef SOL_TCP +@@ -113,31 +91,41 @@ typedef struct _RpcConnection_np { RpcConnection common; HANDLE pipe; @@ -109,26 +903,20 @@ diff -prudN e:\Wine\dlls\rpcrt4/rpc_transport.c e:\reactos\dll\win32\rpcrt4/rpc_ case ERROR_NO_DATA_DETECTED: /* client has disconnected, retry */ DisconnectNamedPipe( npc->pipe ); -@@ -148,28 +162,12 @@ static DWORD CALLBACK listen_thread(void +@@ -150,6 +138,7 @@ static DWORD CALLBACK listen_thread(void } } --static RPC_STATUS rpcrt4_conn_listen_pipe(RpcConnection_np *npc) --{ -- if (npc->listening) -- return RPC_S_OK; -- -- npc->listening = TRUE; -- npc->listen_thread = CreateThread(NULL, 0, listen_thread, npc, 0, NULL); -- if (!npc->listen_thread) -- { -- npc->listening = FALSE; -- ERR("Couldn't create listen thread (error was %d)\n", GetLastError()); -- return RPC_S_OUT_OF_RESOURCES; -- } -- return RPC_S_OK; --} -- ++#ifndef __REACTOS__ + static RPC_STATUS rpcrt4_conn_listen_pipe(RpcConnection_np *npc) + { + if (npc->listening) +@@ -165,13 +154,14 @@ static RPC_STATUS rpcrt4_conn_listen_pip + } + return RPC_S_OK; + } ++#endif + static RPC_STATUS rpcrt4_conn_create_pipe(RpcConnection *Connection, LPCSTR pname) { RpcConnection_np *npc = (RpcConnection_np *) Connection; @@ -139,7 +927,7 @@ diff -prudN e:\Wine\dlls\rpcrt4/rpc_transport.c e:\reactos\dll\win32\rpcrt4/rpc_ PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE, PIPE_UNLIMITED_INSTANCES, RPC_MAX_PACKET_SIZE, RPC_MAX_PACKET_SIZE, 5000, NULL); -@@ -181,6 +179,9 @@ static RPC_STATUS rpcrt4_conn_create_pip +@@ -183,6 +173,9 @@ static RPC_STATUS rpcrt4_conn_create_pip return RPC_S_CANT_CREATE_ENDPOINT; } @@ -149,7 +937,7 @@ diff -prudN e:\Wine\dlls\rpcrt4/rpc_transport.c e:\reactos\dll\win32\rpcrt4/rpc_ /* Note: we don't call ConnectNamedPipe here because it must be done in the * server thread as the thread must be alertable */ return RPC_S_OK; -@@ -227,6 +228,9 @@ static RPC_STATUS rpcrt4_conn_open_pipe( +@@ -229,6 +222,9 @@ static RPC_STATUS rpcrt4_conn_open_pipe( if (err == ERROR_PIPE_BUSY) { TRACE("connection failed, error=%x\n", err); return RPC_S_SERVER_TOO_BUSY; @@ -159,7 +947,7 @@ diff -prudN e:\Wine\dlls\rpcrt4/rpc_transport.c e:\reactos\dll\win32\rpcrt4/rpc_ } if (!wait || !WaitNamedPipeA(pname, NMPWAIT_WAIT_FOREVER)) { err = GetLastError(); -@@ -236,9 +240,11 @@ static RPC_STATUS rpcrt4_conn_open_pipe( +@@ -238,9 +234,11 @@ static RPC_STATUS rpcrt4_conn_open_pipe( } /* success */ @@ -171,13 +959,16 @@ diff -prudN e:\Wine\dlls\rpcrt4/rpc_transport.c e:\reactos\dll\win32\rpcrt4/rpc_ npc->pipe = pipe; return RPC_S_OK; -@@ -306,18 +312,32 @@ static RPC_STATUS rpcrt4_protseq_ncalrpc +@@ -308,18 +306,59 @@ static RPC_STATUS rpcrt4_protseq_ncalrpc static RPC_STATUS rpcrt4_ncacn_np_open(RpcConnection* Connection) { RpcConnection_np *npc = (RpcConnection_np *) Connection; - static const char prefix[] = "\\\\."; + static const char prefix[] = "\\\\"; -+ static const char local[] ="."; ++ static const char local[] = "."; ++ BOOL bUseLocalName = TRUE; ++ CHAR ComputerName[MAX_COMPUTERNAME_LENGTH + 1]; ++ DWORD bufLen = sizeof(ComputerName)/sizeof(ComputerName[0]); RPC_STATUS r; LPSTR pname; + INT size; @@ -191,15 +982,39 @@ diff -prudN e:\Wine\dlls\rpcrt4/rpc_transport.c e:\reactos\dll\win32\rpcrt4/rpc_ - strcat(strcpy(pname, prefix), Connection->Endpoint); - r = rpcrt4_conn_open_pipe(Connection, pname, FALSE); + size = strlen(prefix); ++ + if (Connection->NetworkAddr == NULL || strlen(Connection->NetworkAddr) == 0) ++ { ++ bUseLocalName = TRUE; + size += strlen(local); ++ } + else -+ size += strlen(Connection->NetworkAddr); ++ { ++ if (GetComputerNameA(ComputerName, &bufLen)) ++ { ++ if (stricmp(ComputerName, Connection->NetworkAddr) == 0) ++ { ++ bUseLocalName = TRUE; ++ size += strlen(local); ++ } ++ else ++ { ++ bUseLocalName = FALSE; ++ size += strlen(Connection->NetworkAddr); ++ } ++ } ++ else ++ { ++ bUseLocalName = FALSE; ++ size += strlen(Connection->NetworkAddr); ++ } ++ } ++ + size += strlen(Connection->Endpoint) + 1; + + pname = I_RpcAllocate(size); + strcpy(pname, prefix); -+ if (Connection->NetworkAddr == NULL || strlen(Connection->NetworkAddr) == 0) ++ if (bUseLocalName) + strcat(pname, local); + else + strcat(pname, Connection->NetworkAddr); @@ -208,7 +1023,7 @@ diff -prudN e:\Wine\dlls\rpcrt4/rpc_transport.c e:\reactos\dll\win32\rpcrt4/rpc_ I_RpcFree(pname); return r; -@@ -366,9 +386,9 @@ static void rpcrt4_conn_np_handoff(RpcCo +@@ -368,9 +407,9 @@ static void rpcrt4_conn_np_handoff(RpcCo * to the child, then reopen the server binding to continue listening */ new_npc->pipe = old_npc->pipe; @@ -220,7 +1035,7 @@ diff -prudN e:\Wine\dlls\rpcrt4/rpc_transport.c e:\reactos\dll\win32\rpcrt4/rpc_ old_npc->listening = FALSE; } -@@ -413,11 +433,17 @@ static int rpcrt4_conn_np_read(RpcConnec +@@ -415,11 +454,17 @@ static int rpcrt4_conn_np_read(RpcConnec char *buf = buffer; BOOL ret = TRUE; unsigned int bytes_left = count; @@ -239,7 +1054,7 @@ diff -prudN e:\Wine\dlls\rpcrt4/rpc_transport.c e:\reactos\dll\win32\rpcrt4/rpc_ if (!ret && GetLastError() == ERROR_MORE_DATA) ret = TRUE; if (!ret || !bytes_read) -@@ -425,6 +451,7 @@ static int rpcrt4_conn_np_read(RpcConnec +@@ -427,6 +472,7 @@ static int rpcrt4_conn_np_read(RpcConnec bytes_left -= bytes_read; buf += bytes_read; } @@ -247,7 +1062,7 @@ diff -prudN e:\Wine\dlls\rpcrt4/rpc_transport.c e:\reactos\dll\win32\rpcrt4/rpc_ return ret ? count : -1; } -@@ -435,16 +462,23 @@ static int rpcrt4_conn_np_write(RpcConne +@@ -437,16 +483,23 @@ static int rpcrt4_conn_np_write(RpcConne const char *buf = buffer; BOOL ret = TRUE; unsigned int bytes_left = count; @@ -272,7 +1087,7 @@ diff -prudN e:\Wine\dlls\rpcrt4/rpc_transport.c e:\reactos\dll\win32\rpcrt4/rpc_ return ret ? count : -1; } -@@ -456,9 +490,9 @@ static int rpcrt4_conn_np_close(RpcConne +@@ -458,9 +511,9 @@ static int rpcrt4_conn_np_close(RpcConne CloseHandle(npc->pipe); npc->pipe = 0; } @@ -285,7 +1100,7 @@ diff -prudN e:\Wine\dlls\rpcrt4/rpc_transport.c e:\reactos\dll\win32\rpcrt4/rpc_ } return 0; } -@@ -662,7 +696,7 @@ static void *rpcrt4_protseq_np_get_wait_ +@@ -664,7 +717,7 @@ static void *rpcrt4_protseq_np_get_wait_ conn = CONTAINING_RECORD(protseq->conn, RpcConnection_np, common); while (conn) { rpcrt4_conn_listen_pipe(conn); @@ -294,7 +1109,7 @@ diff -prudN e:\Wine\dlls\rpcrt4/rpc_transport.c e:\reactos\dll\win32\rpcrt4/rpc_ (*count)++; conn = CONTAINING_RECORD(conn->common.Next, RpcConnection_np, common); } -@@ -683,7 +717,7 @@ static void *rpcrt4_protseq_np_get_wait_ +@@ -685,7 +738,7 @@ static void *rpcrt4_protseq_np_get_wait_ *count = 1; conn = CONTAINING_RECORD(protseq->conn, RpcConnection_np, common); while (conn) { @@ -303,7 +1118,7 @@ diff -prudN e:\Wine\dlls\rpcrt4/rpc_transport.c e:\reactos\dll\win32\rpcrt4/rpc_ (*count)++; conn = CONTAINING_RECORD(conn->common.Next, RpcConnection_np, common); } -@@ -730,18 +764,12 @@ static int rpcrt4_protseq_np_wait_for_ne +@@ -732,18 +785,12 @@ static int rpcrt4_protseq_np_wait_for_ne EnterCriticalSection(&protseq->cs); conn = CONTAINING_RECORD(protseq->conn, RpcConnection_np, common); while (conn) { @@ -324,9 +1139,9 @@ diff -prudN e:\Wine\dlls\rpcrt4/rpc_transport.c e:\reactos\dll\win32\rpcrt4/rpc_ else ERR("failed to locate connection for handle %p\n", b_handle); LeaveCriticalSection(&protseq->cs); -diff -prudN e:\Wine\dlls\rpcrt4/rpcrt4.spec e:\reactos\dll\win32\rpcrt4/rpcrt4.spec ---- e:\Wine\dlls\rpcrt4/rpcrt4.spec 2012-09-09 19:47:53.677232900 +0100 -+++ e:\reactos\dll\win32\rpcrt4/rpcrt4.spec 2013-12-06 20:29:09.804227500 +0100 +diff -prudN .\wine\dlls\rpcrt4/rpcrt4.spec .\reactos\dll\win32\rpcrt4/rpcrt4.spec +--- .\wine\dlls\rpcrt4/rpcrt4.spec 2014-05-09 03:43:55.911032800 +0200 ++++ .\reactos\dll\win32\rpcrt4/rpcrt4.spec 2013-12-07 15:35:15.331527800 +0100 @@ -266,7 +266,7 @@ @ stdcall NdrRangeUnmarshall(ptr ptr ptr long) @ stub NdrRpcSmClientAllocate @@ -336,3 +1151,78 @@ diff -prudN e:\Wine\dlls\rpcrt4/rpcrt4.spec e:\reactos\dll\win32\rpcrt4/rpcrt4.s @ stub NdrRpcSsDefaultAllocate @ stub NdrRpcSsDefaultFree @ stub NdrRpcSsDisableAllocate +diff -prudN .\wine\dlls\rpcrt4/rpcrt4_main.c .\reactos\dll\win32\rpcrt4/rpcrt4_main.c +--- .\wine\dlls\rpcrt4/rpcrt4_main.c 2014-05-09 03:43:55.980036800 +0200 ++++ .\reactos\dll\win32\rpcrt4/rpcrt4_main.c 2014-05-09 03:45:42.047103500 +0200 +@@ -28,35 +28,10 @@ + * NT-based native rpcrt4's. Commonly-used transport for self-to-self RPC's. + */ + +-#include "config.h" +- +-#include +-#include +-#include +-#include +- +-#include "ntstatus.h" +-#define WIN32_NO_STATUS +-#include "windef.h" +-#include "winerror.h" +-#include "winbase.h" +-#include "winuser.h" +-#include "winnt.h" +-#include "winternl.h" +-#include "ntsecapi.h" +-#include "iptypes.h" +-#include "iphlpapi.h" +-#include "wine/unicode.h" +-#include "rpc.h" +- +-#include "ole2.h" +-#include "rpcndr.h" +-#include "rpcproxy.h" +- +-#include "rpc_binding.h" +-#include "rpc_server.h" ++#include "precomp.h" + +-#include "wine/debug.h" ++#include ++#include + + WINE_DEFAULT_DEBUG_CHANNEL(rpc); + +diff -prudN .\wine\dlls\rpcrt4/unix_func.c .\reactos\dll\win32\rpcrt4/unix_func.c +--- .\wine\dlls\rpcrt4/unix_func.c 1970-01-01 01:00:00.000000000 +0100 ++++ .\reactos\dll\win32\rpcrt4/unix_func.c 2013-01-25 00:19:53.278052800 +0100 +@@ -0,0 +1,29 @@ ++#define WIN32_NO_STATUS ++#define _INC_WINDOWS ++#include ++#include ++ ++const char * ++WSAAPI ++inet_ntop (int af, ++ const void *src, ++ char *dst, ++ size_t cnt) ++{ ++ struct in_addr in; ++ char *text_addr; ++ ++ if (af == AF_INET) ++ { ++ memcpy(&in.s_addr, src, sizeof(in.s_addr)); ++ text_addr = inet_ntoa(in); ++ if (text_addr && dst) ++ { ++ strncpy(dst, text_addr, cnt); ++ return dst; ++ } ++ } ++ ++ return 0; ++} ++ From 392953e09d32db4fb41ca8ec8aa08887c6a591e8 Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Fri, 9 May 2014 04:46:18 +0000 Subject: [PATCH 15/92] [kernel32_winetest] don't skip test_typelib_section anymore svn path=/trunk/; revision=63203 --- rostests/winetests/kernel32/actctx.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/rostests/winetests/kernel32/actctx.c b/rostests/winetests/kernel32/actctx.c index 04bb13302b3..792a292b8d2 100644 --- a/rostests/winetests/kernel32/actctx.c +++ b/rostests/winetests/kernel32/actctx.c @@ -1670,9 +1670,6 @@ static void test_typelib_section(void) HANDLE handle; BOOL ret; - skip("test_typelib_section\n"); - return; - /* use two dependent manifests, 4 'files' total */ create_manifest_file("testdep1.manifest", manifest_wndcls1, -1, NULL, NULL); create_manifest_file("testdep2.manifest", manifest_wndcls2, -1, NULL, NULL); From 0223435eb2a7783aa926b4aed97efe1539b59edf Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Fri, 9 May 2014 05:07:51 +0000 Subject: [PATCH 16/92] [ntdll] fix parameter check in RtlFindActivationContextSectionString svn path=/trunk/; revision=63204 --- reactos/lib/rtl/actctx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reactos/lib/rtl/actctx.c b/reactos/lib/rtl/actctx.c index bf425a9f530..784e446a550 100644 --- a/reactos/lib/rtl/actctx.c +++ b/reactos/lib/rtl/actctx.c @@ -5130,7 +5130,7 @@ RtlpFindActivationContextSection_CheckParameters( ULONG flags, const GUID *guid, const UNICODE_STRING *section_name, PACTCTX_SECTION_KEYED_DATA data ) { /* Check general parameter combinations */ - if (!section_name || + if (!section_name || !section_name->Buffer || (flags & ~FIND_ACTCTX_VALID_MASK) || ((flags & FIND_ACTCTX_VALID_MASK) && !data) || (data && data->cbSize < offsetof(ACTCTX_SECTION_KEYED_DATA, ulAssemblyRosterIndex))) From c86f110ca5903b496172c8c809dfb41e0b7ba8b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Fri, 9 May 2014 19:58:27 +0000 Subject: [PATCH 17/92] [CDMAKE] Simplify the conditional checks; pointed by Victor Martinez. CORE-8190 #resolve svn path=/trunk/; revision=63205 --- reactos/tools/cdmake/cdmake.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reactos/tools/cdmake/cdmake.c b/reactos/tools/cdmake/cdmake.c index 854f703cc63..056cd4ca2e0 100644 --- a/reactos/tools/cdmake/cdmake.c +++ b/reactos/tools/cdmake/cdmake.c @@ -1327,7 +1327,7 @@ static void pass(void) // Boot Volume Descriptor - if (eltorito == TRUE) + if (eltorito) { write_byte(0); write_string("CD001\1"); @@ -1390,7 +1390,7 @@ static void pass(void) fill_sector(); // Boot Catalog - if (eltorito == TRUE) + if (eltorito) { boot_catalog_sector = cd.sector; @@ -1416,7 +1416,7 @@ static void pass(void) } // Boot Image - if (eltorito == TRUE) + if (eltorito) { boot_image_sector = cd.sector; From 7090d796f6e90da0f9faa64b828dfc78cb925f2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Fri, 9 May 2014 20:25:41 +0000 Subject: [PATCH 18/92] [CABMAN] In any case, we are returning the (!= success) status in case we failed to perform the file copy, so just test for != success just one time. Patch by Victor Martinez. CORE-8189 #resolve svn path=/trunk/; revision=63206 --- reactos/tools/cabman/dfp.cxx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/reactos/tools/cabman/dfp.cxx b/reactos/tools/cabman/dfp.cxx index b43b0f41841..cbb5312cc10 100644 --- a/reactos/tools/cabman/dfp.cxx +++ b/reactos/tools/cabman/dfp.cxx @@ -361,10 +361,8 @@ ULONG CDFParser::Parse() { printf("ERROR: Directive file contains errors at line %u.\n", (UINT)CurrentLine); DPRINT(MID_TRACE, ("Error while copying file.\n")); - } - - if (Status != CAB_STATUS_SUCCESS) return Status; + } } break; From 60f07d8133e1e5b25e72683117a4bda8270dbbf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Fri, 9 May 2014 20:47:31 +0000 Subject: [PATCH 19/92] [NTVDM] Fix logic. Caught by Victor Martinez (private communication). svn path=/trunk/; revision=63207 --- reactos/subsystems/ntvdm/hardware/pic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reactos/subsystems/ntvdm/hardware/pic.c b/reactos/subsystems/ntvdm/hardware/pic.c index aa40821f449..a5b068c270e 100644 --- a/reactos/subsystems/ntvdm/hardware/pic.c +++ b/reactos/subsystems/ntvdm/hardware/pic.c @@ -313,7 +313,7 @@ call_ica_hw_interrupt(INT ms, BYTE InterruptNumber = line; /* Check for PIC validity */ - if (ms != ICA_MASTER || ms != ICA_SLAVE) return; + if (ms != ICA_MASTER && ms != ICA_SLAVE) return; /* * Adjust the interrupt request number according to the parameters, From d34fb08d1373aaa11c90654773d38ee1ef457e9f Mon Sep 17 00:00:00 2001 From: Aleksandar Andrejevic Date: Fri, 9 May 2014 21:56:40 +0000 Subject: [PATCH 20/92] [NTVDM] Replace the temporary CGA hack with a working solution. CORE-8177 #comment CGA should work as of r63208. svn path=/trunk/; revision=63208 --- reactos/subsystems/ntvdm/hardware/vga.c | 44 +++++++++++++++---------- reactos/subsystems/ntvdm/hardware/vga.h | 2 +- 2 files changed, 27 insertions(+), 19 deletions(-) diff --git a/reactos/subsystems/ntvdm/hardware/vga.c b/reactos/subsystems/ntvdm/hardware/vga.c index 050b5f34801..47fe3a64507 100644 --- a/reactos/subsystems/ntvdm/hardware/vga.c +++ b/reactos/subsystems/ntvdm/hardware/vga.c @@ -1146,7 +1146,19 @@ static VOID VgaUpdateFramebuffer(VOID) /* Loop through the scanlines */ for (i = 0; i < Resolution.Y; i++) { - BOOL RepeatScanline = FALSE; + DWORD InterlaceHighBit = VGA_INTERLACE_HIGH_BIT; + + if (VgaGcRegisters[VGA_GC_MODE_REG] & VGA_GC_MODE_OE) + { + /* Shift the high bit right by 1 in odd/even mode */ + InterlaceHighBit >>= 1; + } + + if ((VgaGcRegisters[VGA_GC_MISC_REG] & VGA_GC_MISC_OE) && (i & 1)) + { + /* Odd-numbered line in interlaced mode - set the high bit */ + Address |= InterlaceHighBit; + } /* Loop through the pixels */ for (j = 0; j < Resolution.X; j++) @@ -1203,21 +1215,8 @@ static VOID VgaUpdateFramebuffer(VOID) */ DWORD BankNumber = (j / 4) % 2; DWORD Offset = Address + (j / 8); - BYTE LowPlaneData, HighPlaneData; - - if (i % 2 != 0) - { - /* Odd-numbered line - add the CGA emulation offset */ - Offset += VGA_CGA_ODD_LINE_OFFSET; - } - else - { - /* Even-numbered line - use the same scanline */ - RepeatScanline = TRUE; - } - - LowPlaneData = VgaMemory[BankNumber * VGA_BANK_SIZE + Offset * AddressSize]; - HighPlaneData = VgaMemory[(BankNumber + 2) * VGA_BANK_SIZE + Offset * AddressSize]; + BYTE LowPlaneData = VgaMemory[BankNumber * VGA_BANK_SIZE + Offset * AddressSize]; + BYTE HighPlaneData = VgaMemory[(BankNumber + 2) * VGA_BANK_SIZE + Offset * AddressSize]; /* Extract the two bits from each plane */ LowPlaneData = (LowPlaneData >> (6 - ((j % 4) * 2))) & 3; @@ -1310,8 +1309,17 @@ static VOID VgaUpdateFramebuffer(VOID) } } - /* Move to the next scanline */ - if (!RepeatScanline) Address += ScanlineSize; + if (VgaGcRegisters[VGA_GC_MISC_REG] & VGA_GC_MISC_OE && (i & 1)) + { + /* Clear the high bit */ + Address &= ~InterlaceHighBit; + } + + if (!(VgaGcRegisters[VGA_GC_MISC_REG] & VGA_GC_MISC_OE) || (i & 1)) + { + /* Move to the next scanline */ + Address += ScanlineSize; + } } /* diff --git a/reactos/subsystems/ntvdm/hardware/vga.h b/reactos/subsystems/ntvdm/hardware/vga.h index ba7884ee430..ca6de8d4bb2 100644 --- a/reactos/subsystems/ntvdm/hardware/vga.h +++ b/reactos/subsystems/ntvdm/hardware/vga.h @@ -24,7 +24,7 @@ #define VGA_MINIMUM_HEIGHT 300 #define VGA_DAC_TO_COLOR(x) (((x) << 2) | ((x) >> 4)) #define VGA_COLOR_TO_DAC(x) ((x) >> 2) -#define VGA_CGA_ODD_LINE_OFFSET 0x1000 +#define VGA_INTERLACE_HIGH_BIT (1 << 13) /* Register I/O ports */ From b9cff19fcafccc721abcfb9f422145110d6b63de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Fri, 9 May 2014 22:07:49 +0000 Subject: [PATCH 21/92] [NTVDM] Factor the shift of the interlaced high bit out of the for(...) loop (since the interlaced high bit is not modified anymore after), and add extra parentheses. svn path=/trunk/; revision=63209 --- reactos/subsystems/ntvdm/hardware/vga.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/reactos/subsystems/ntvdm/hardware/vga.c b/reactos/subsystems/ntvdm/hardware/vga.c index 47fe3a64507..7c4665dc401 100644 --- a/reactos/subsystems/ntvdm/hardware/vga.c +++ b/reactos/subsystems/ntvdm/hardware/vga.c @@ -1136,6 +1136,7 @@ static VOID VgaUpdateFramebuffer(VOID) { /* Graphics mode */ PBYTE GraphicsBuffer = (PBYTE)ConsoleFramebuffer; + DWORD InterlaceHighBit = VGA_INTERLACE_HIGH_BIT; /* * Synchronize access to the graphics framebuffer @@ -1143,17 +1144,15 @@ static VOID VgaUpdateFramebuffer(VOID) */ WaitForSingleObject(ConsoleMutex, INFINITE); + /* Shift the high bit right by 1 in odd/even mode */ + if (VgaGcRegisters[VGA_GC_MODE_REG] & VGA_GC_MODE_OE) + { + InterlaceHighBit >>= 1; + } + /* Loop through the scanlines */ for (i = 0; i < Resolution.Y; i++) { - DWORD InterlaceHighBit = VGA_INTERLACE_HIGH_BIT; - - if (VgaGcRegisters[VGA_GC_MODE_REG] & VGA_GC_MODE_OE) - { - /* Shift the high bit right by 1 in odd/even mode */ - InterlaceHighBit >>= 1; - } - if ((VgaGcRegisters[VGA_GC_MISC_REG] & VGA_GC_MISC_OE) && (i & 1)) { /* Odd-numbered line in interlaced mode - set the high bit */ @@ -1309,7 +1308,7 @@ static VOID VgaUpdateFramebuffer(VOID) } } - if (VgaGcRegisters[VGA_GC_MISC_REG] & VGA_GC_MISC_OE && (i & 1)) + if ((VgaGcRegisters[VGA_GC_MISC_REG] & VGA_GC_MISC_OE) && (i & 1)) { /* Clear the high bit */ Address &= ~InterlaceHighBit; From d68dcedf68868888ce7d75f12b9f565513b793f3 Mon Sep 17 00:00:00 2001 From: James Tabor Date: Fri, 9 May 2014 23:08:56 +0000 Subject: [PATCH 22/92] - Fix API see CORE-8107. svn path=/trunk/; revision=63210 --- reactos/win32ss/user/user32/windows/accel.c | 31 ++++++++++++--------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/reactos/win32ss/user/user32/windows/accel.c b/reactos/win32ss/user/user32/windows/accel.c index 40db647e99a..cc25f91486e 100644 --- a/reactos/win32ss/user/user32/windows/accel.c +++ b/reactos/win32ss/user/user32/windows/accel.c @@ -344,21 +344,26 @@ HACCEL WINAPI CreateAcceleratorTableA(LPACCEL lpaccl, int cEntries) */ int WINAPI TranslateAcceleratorA(HWND hWnd, HACCEL hAccTable, LPMSG lpMsg) { - MSG mCopy = *lpMsg; - CHAR cChar; - WCHAR wChar; - NTSTATUS Status; + switch (lpMsg->message) + { + case WM_KEYDOWN: + case WM_SYSKEYDOWN: + return TranslateAcceleratorW( hWnd, hAccTable, lpMsg ); - if(!U32IsValidAccelMessage(lpMsg->message)) return 0; + case WM_CHAR: + case WM_SYSCHAR: + { + MSG msgW = *lpMsg; + char ch = LOWORD(lpMsg->wParam); + WCHAR wch; + MultiByteToWideChar(CP_ACP, 0, &ch, 1, &wch, 1); + msgW.wParam = MAKEWPARAM(wch, HIWORD(lpMsg->wParam)); + return TranslateAcceleratorW( hWnd, hAccTable, &msgW ); + } - Status = RtlMultiByteToUnicodeN(&wChar, sizeof(wChar), NULL, &cChar, sizeof(cChar)); - if(!NT_SUCCESS(Status)) - { - SetLastError(RtlNtStatusToDosError(Status)); - return 0; - } - - return TranslateAcceleratorW(hWnd, hAccTable, &mCopy); + default: + return 0; + } } /* EOF */ From 4857a9216fbcf4c47601836e69a65af5d2e63b00 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Sat, 10 May 2014 08:37:45 +0000 Subject: [PATCH 23/92] [KERNEL32] Fix GetTickCount on 64 bit architecture [RTL] Implement RtlGetTickCount (currently a copy of GetTickCount from kernel32) [NTDLL] Export RtlGetTickCount as NtGetTickCount and ZwGetTickCount svn path=/trunk/; revision=63211 --- reactos/dll/ntdll/def/ntdll.spec | 4 ++-- reactos/dll/ntdll/rtl/libsupp.c | 28 ++++++++++++++++++++++++ reactos/dll/win32/kernel32/client/time.c | 4 ++++ reactos/lib/rtl/rtlp.h | 5 +++++ 4 files changed, 39 insertions(+), 2 deletions(-) diff --git a/reactos/dll/ntdll/def/ntdll.spec b/reactos/dll/ntdll/def/ntdll.spec index e6f87994c59..c649d574d51 100644 --- a/reactos/dll/ntdll/def/ntdll.spec +++ b/reactos/dll/ntdll/def/ntdll.spec @@ -175,7 +175,7 @@ @ stdcall NtGetCurrentProcessorNumber() ; 5.2 and higher @ stdcall NtGetDevicePowerState(ptr ptr) @ stdcall NtGetPlugPlayEvent(long long ptr long) -@ stdcall -stub NtGetTickCount() +@ stdcall NtGetTickCount() RtlGetTickCount @ stdcall NtGetWriteWatch(long long ptr long ptr ptr ptr) @ stdcall NtImpersonateAnonymousToken(ptr) @ stdcall NtImpersonateClientOfPort(ptr ptr) @@ -1051,7 +1051,7 @@ @ stdcall ZwGetCurrentProcessorNumber() @ stdcall ZwGetDevicePowerState(ptr ptr) @ stdcall ZwGetPlugPlayEvent(long long ptr long) -;@ stdcall ZwGetTickCount() NtGetTickCount +@ stdcall ZwGetTickCount() RtlGetTickCount @ stdcall ZwGetWriteWatch(long long ptr long ptr ptr ptr) NtGetWriteWatch @ stdcall ZwImpersonateAnonymousToken(ptr) @ stdcall ZwImpersonateClientOfPort(ptr ptr) NtImpersonateClientOfPort diff --git a/reactos/dll/ntdll/rtl/libsupp.c b/reactos/dll/ntdll/rtl/libsupp.c index 9ceb2b0bda2..69d58f36f89 100644 --- a/reactos/dll/ntdll/rtl/libsupp.c +++ b/reactos/dll/ntdll/rtl/libsupp.c @@ -613,4 +613,32 @@ RtlpSafeCopyMemory( return STATUS_SUCCESS; } +/* FIXME: code duplication with kernel32/client/time.c */ +ULONG +NTAPI +RtlGetTickCount(VOID) +{ + ULARGE_INTEGER TickCount; + +#ifdef _WIN64 + TickCount.QuadPart = *((volatile ULONG64*)&SharedUserData->TickCount); +#else + while (TRUE) + { + TickCount.HighPart = (ULONG)SharedUserData->TickCount.High1Time; + TickCount.LowPart = SharedUserData->TickCount.LowPart; + + if (TickCount.HighPart == (ULONG)SharedUserData->TickCount.High2Time) + break; + + YieldProcessor(); + } +#endif + + return (ULONG)((UInt32x32To64(TickCount.LowPart, + SharedUserData->TickCountMultiplier) >> 24) + + UInt32x32To64((TickCount.HighPart << 8) & 0xFFFFFFFF, + SharedUserData->TickCountMultiplier)); +} + /* EOF */ diff --git a/reactos/dll/win32/kernel32/client/time.c b/reactos/dll/win32/kernel32/client/time.c index aee6d8ab169..abba55b6a90 100644 --- a/reactos/dll/win32/kernel32/client/time.c +++ b/reactos/dll/win32/kernel32/client/time.c @@ -446,6 +446,9 @@ GetTickCount(VOID) { ULARGE_INTEGER TickCount; +#ifdef _WIN64 + TickCount.QuadPart = *((volatile ULONG64*)&SharedUserData->TickCount); +#else while (TRUE) { TickCount.HighPart = (ULONG)SharedUserData->TickCount.High1Time; @@ -456,6 +459,7 @@ GetTickCount(VOID) YieldProcessor(); } +#endif return (ULONG)((UInt32x32To64(TickCount.LowPart, SharedUserData->TickCountMultiplier) >> 24) + diff --git a/reactos/lib/rtl/rtlp.h b/reactos/lib/rtl/rtlp.h index 634357bf7f9..b9429af356f 100644 --- a/reactos/lib/rtl/rtlp.h +++ b/reactos/lib/rtl/rtlp.h @@ -125,6 +125,11 @@ RtlpHandleDpcStackException(IN PEXCEPTION_REGISTRATION_RECORD RegistrationFrame, #define RtlpAllocateStringMemory RtlpAllocateMemory #define RtlpFreeStringMemory RtlpFreeMemory +ULONG +NTAPI +RtlGetTickCount(VOID); +#define NtGetTickCount RtlGetTickCount + BOOLEAN NTAPI RtlpSetInDbgPrint( From 7c33407e96480a2597896ecc7e4e2149a6de11f6 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Sat, 10 May 2014 09:16:50 +0000 Subject: [PATCH 24/92] [KSECDD] Fix 64 bit compilation svn path=/trunk/; revision=63212 --- reactos/drivers/crypto/ksecdd/random.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/reactos/drivers/crypto/ksecdd/random.c b/reactos/drivers/crypto/ksecdd/random.c index 392ad0f70ca..1d1168a8776 100644 --- a/reactos/drivers/crypto/ksecdd/random.c +++ b/reactos/drivers/crypto/ksecdd/random.c @@ -31,11 +31,13 @@ KsecGenRandom( PVOID Buffer, SIZE_T Length) { + LARGE_INTEGER TickCount; ULONG i, RandomValue; PULONG P; /* Try to generate a more random seed */ - KsecRandomSeed ^= _rotl(KeTickCount.LowPart, (KsecRandomSeed % 23)); + KeQueryTickCount(&TickCount); + KsecRandomSeed ^= _rotl(TickCount.LowPart, (KsecRandomSeed % 23)); P = Buffer; for (i = 0; i < Length / sizeof(ULONG); i++) @@ -94,7 +96,7 @@ KsecGatherEntropyData( PTEB Teb; PPEB Peb; PWSTR String; - ULONG ReturnLength; + SIZE_T ReturnLength; NTSTATUS Status; /* Query some generic values */ @@ -125,7 +127,7 @@ KsecGatherEntropyData( /* Update the MD4 context from the environment data */ MD4Update(&Md4Context, (PUCHAR)Peb->ProcessParameters->Environment, - (PUCHAR)String - (PUCHAR)Peb->ProcessParameters->Environment); + (ULONG)((PUCHAR)String - (PUCHAR)Peb->ProcessParameters->Environment)); } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { From 97ab95bca68f26a0c88f240ba11e4496b10fdae7 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sat, 10 May 2014 09:37:38 +0000 Subject: [PATCH 25/92] [RPCRT4] * Fix the ros_diff. svn path=/trunk/; revision=63213 --- reactos/dll/win32/rpcrt4/rpcrt4_ros.diff | 893 ----------------------- 1 file changed, 893 deletions(-) diff --git a/reactos/dll/win32/rpcrt4/rpcrt4_ros.diff b/reactos/dll/win32/rpcrt4/rpcrt4_ros.diff index 048b37f2345..098606b3610 100644 --- a/reactos/dll/win32/rpcrt4/rpcrt4_ros.diff +++ b/reactos/dll/win32/rpcrt4/rpcrt4_ros.diff @@ -1,695 +1,6 @@ -diff -prudN .\wine\dlls\rpcrt4/cproxy.c .\reactos\dll\win32\rpcrt4/cproxy.c ---- .\wine\dlls\rpcrt4/cproxy.c 2014-05-09 03:43:55.921033400 +0200 -+++ .\reactos\dll\win32\rpcrt4/cproxy.c 2013-12-27 18:11:56.483967600 +0100 -@@ -21,24 +21,7 @@ - * TODO: Handle non-i386 architectures - */ - --#include "config.h" --#include "wine/port.h" -- --#include -- --#define COBJMACROS -- --#include "windef.h" --#include "winbase.h" --#include "winerror.h" -- --#include "objbase.h" --#include "rpcproxy.h" -- --#include "cpsf.h" --#include "ndr_misc.h" --#include "ndr_stubless.h" --#include "wine/debug.h" -+#include "precomp.h" - - WINE_DEFAULT_DEBUG_CHANNEL(ole); - -diff -prudN .\wine\dlls\rpcrt4/cpsf.c .\reactos\dll\win32\rpcrt4/cpsf.c ---- .\wine\dlls\rpcrt4/cpsf.c 2014-05-09 03:43:55.924033600 +0200 -+++ .\reactos\dll\win32\rpcrt4/cpsf.c 2013-12-27 18:11:57.185968800 +0100 -@@ -18,28 +18,9 @@ - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - --#include "config.h" --#include "wine/port.h" -- --#include --#include --#include -- --#define COBJMACROS -- --#include "windef.h" --#include "winbase.h" --#include "winerror.h" --#include "winreg.h" -- --#include "objbase.h" -- --#include "rpcproxy.h" -- --#include "wine/unicode.h" --#include "wine/debug.h" -+#include "precomp.h" - --#include "cpsf.h" -+#include - - WINE_DEFAULT_DEBUG_CHANNEL(ole); - -diff -prudN .\wine\dlls\rpcrt4/cstub.c .\reactos\dll\win32\rpcrt4/cstub.c ---- .\wine\dlls\rpcrt4/cstub.c 2014-05-09 03:43:55.927033800 +0200 -+++ .\reactos\dll\win32\rpcrt4/cstub.c 2013-12-27 18:11:56.905168300 +0100 -@@ -19,25 +19,7 @@ - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - --#include "config.h" --#include "wine/port.h" -- --#include -- --#define COBJMACROS -- --#include "windef.h" --#include "winbase.h" --#include "winerror.h" --#include "excpt.h" -- --#include "objbase.h" --#include "rpcproxy.h" -- --#include "wine/debug.h" --#include "wine/exception.h" -- --#include "cpsf.h" -+#include "precomp.h" - - WINE_DEFAULT_DEBUG_CHANNEL(ole); - -diff -prudN .\wine\dlls\rpcrt4/epm_towers.h .\reactos\dll\win32\rpcrt4/epm_towers.h ---- .\wine\dlls\rpcrt4/epm_towers.h 2014-05-09 03:43:55.988037200 +0200 -+++ .\reactos\dll\win32\rpcrt4/epm_towers.h 2013-12-27 18:11:57.170368800 +0100 -@@ -19,7 +19,9 @@ - * - */ - --#include "epm.h" -+#pragma once -+ -+#include - - #define EPM_PROTOCOL_DNET_NSP 0x04 - #define EPM_PROTOCOL_OSI_TP4 0x05 -diff -prudN .\wine\dlls\rpcrt4/msvc.S .\reactos\dll\win32\rpcrt4/msvc.S ---- .\wine\dlls\rpcrt4/msvc.S 1970-01-01 01:00:00.000000000 +0100 -+++ .\reactos\dll\win32\rpcrt4/msvc.S 2012-02-14 21:27:35.943001900 +0100 -@@ -0,0 +1,146 @@ -+ -+#include -+ -+#ifdef _M_IX86 -+.code32 -+ -+EXTERN _ndr_client_call:PROC -+ -+PUBLIC _call_stubless_func -+_call_stubless_func: -+ -+ mov ecx,[esp+4] /* This Pointer */ -+ mov ecx,[ecx] /* This->lpVtbl */ -+ mov ecx,[ecx-8] /* MIDL_STUBLESS_PROXY_INFO */ -+ mov edx,[ecx+8] /* Info->FormatStringOffset */ -+ mov edx,[edx+eax*2] /* FormatStringOffset[index] */ -+ and edx, 0000FFFFh -+ add edx,[ecx+4] /* info->ProcFormatString + offset */ -+ mov eax, [edx+8] /* arguments size */ -+ and eax, 0000FFFFh -+ push eax -+ lea eax, [esp+8] /* &This */ -+ push eax -+ push edx /* format string */ -+ push [ecx] /* info->pstubdesc */ -+ call _ndr_client_call -+ lea esp, [esp+12] -+ pop edx /* arguments size */ -+ mov ecx, [esp] /* return address */ -+ add esp, edx -+ jmp ecx -+#else -+.code64 -+ -+EXTERN ndr_client_call:PROC -+ -+PUBLIC call_stubless_func -+FUNC call_stubless_func -+ mov [rsp + 8], rcx -+ .SAVEREG rcx, 8 -+ mov [rsp + 10h], rdx -+ .SAVEREG rdx, 10h -+ mov [rsp + 18h], r8 -+ .SAVEREG r8, 18h -+ mov [rsp + 20h], r9 -+ .SAVEREG r9, 20h -+ sub rsp, 38h -+ .ALLOCSTACK 38h -+ .ENDPROLOG -+ -+ lea r8, [rsp +38h + 8] /* &This */ -+ mov rcx, [rcx] /* This->lpVtbl */ -+ mov rcx, [rcx - 10h] /* MIDL_STUBLESS_PROXY_INFO */ -+ mov rdx, [rcx + 10h] /* info->FormatStringOffset */ -+ movzx rdx, word ptr [rdx+r10*2] /* FormatStringOffset[index] */ -+ add rdx, [rcx + 8] /* info->ProcFormatString + offset */ -+ mov rcx, [rcx] /* info->pStubDesc */ -+ -+ movaps [rsp + 20h], xmm1 -+ movaps [rsp + 28h], xmm2 -+ movaps [rsp + 30h], xmm3 -+ lea r9, [rsp + 18h] /* fpu_args */ -+ call ndr_client_call -+ add rsp, 38h -+ ret -+ENDFUNC -+ -+PUBLIC call_server_func -+FUNC call_server_func -+ push rbp -+ .PUSHREG rbp -+ mov rbp, rsp -+ push rsi -+ .PUSHREG rsi -+ push rdi -+ .PUSHREG rdi -+ .ENDPROLOG -+ -+ mov rax, rcx /* function to call */ -+ mov rcx, 32 /* allocate max(32,stack_size) bytes of stack space */ -+ cmp r8, rcx -+ cmovg rcx, r8 -+ sub rsp, rcx -+ and rsp, NOT 15 -+ mov rcx, r8 -+ shr rcx, 3 -+ mov rdi, rsp -+ mov rsi, rdx -+ rep movsq /* copy arguments */ -+ mov rcx, [rsp] -+ mov rdx, [rsp + 8] -+ mov r8, [rsp + 16] -+ mov r9, [rsp + 24] -+ movd xmm0, rcx -+ movd xmm1, rdx -+ movd xmm2, r8 -+ movd xmm3, r9 -+ call rax -+ -+ lea rsp, [rbp - 16] /* restore stack */ -+ pop rdi -+ pop rsi -+ pop rbp -+ ret -+ENDFUNC -+ -+ -+PUBLIC NdrClientCall2 -+FUNC NdrClientCall2 -+ mov [rsp + 18h], r8 -+ .SAVEREG r8, 18h -+ mov [rsp + 20h], r9 -+ .SAVEREG r9, 20h -+ sub rsp, 28h -+ .ALLOCSTACK 28h -+ .ENDPROLOG -+ -+ lea r8, [rsp + 28h + 18h] -+ xor r9, r9 -+ call ndr_client_call -+ -+ add rsp, 28h -+ ret -+ENDFUNC -+ -+EXTERN ndr_async_client_call:PROC -+PUBLIC NdrAsyncClientCall -+FUNC NdrAsyncClientCall -+ mov [rsp + 18h], r8 -+ .SAVEREG r8, 18h -+ mov [rsp + 20h], r9 -+ .SAVEREG r9, 20h -+ sub rsp, 28h -+ .ALLOCSTACK 28h -+ .ENDPROLOG -+ -+ lea r8, [rsp + 28h + 18h] -+ call ndr_async_client_call -+ -+ add rsp, 28h -+ ret -+ENDFUNC -+ -+#endif -+ -+END -diff -prudN .\wine\dlls\rpcrt4/ncastatus.h .\reactos\dll\win32\rpcrt4/ncastatus.h ---- .\wine\dlls\rpcrt4/ncastatus.h 2014-05-09 03:43:55.867030300 +0200 -+++ .\reactos\dll\win32\rpcrt4/ncastatus.h 2013-12-27 18:11:56.764768100 +0100 -@@ -18,6 +18,8 @@ - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -+#pragma once -+ - #define NCA_S_COMM_FAILURE 0x1C010001 - #define NCA_S_OP_RNG_ERROR 0x1C010002 - #define NCA_S_UNK_IF 0x1C010003 -diff -prudN .\wine\dlls\rpcrt4/ndr_clientserver.c .\reactos\dll\win32\rpcrt4/ndr_clientserver.c ---- .\wine\dlls\rpcrt4/ndr_clientserver.c 2014-05-09 03:43:55.931034000 +0200 -+++ .\reactos\dll\win32\rpcrt4/ndr_clientserver.c 2013-12-27 18:11:56.437167500 +0100 -@@ -22,22 +22,7 @@ - * - check for errors and throw exceptions - */ - --#include -- --#define COBJMACROS -- --#include "windef.h" --#include "winbase.h" --#include "winerror.h" -- --#include "objbase.h" -- --#include "rpcproxy.h" -- --#include "wine/debug.h" -- --#include "ndr_misc.h" --#include "rpcndr.h" -+#include "precomp.h" - - WINE_DEFAULT_DEBUG_CHANNEL(rpc); - -diff -prudN .\wine\dlls\rpcrt4/ndr_contexthandle.c .\reactos\dll\win32\rpcrt4/ndr_contexthandle.c ---- .\wine\dlls\rpcrt4/ndr_contexthandle.c 2014-05-09 03:43:55.935034200 +0200 -+++ .\reactos\dll\win32\rpcrt4/ndr_contexthandle.c 2013-12-27 18:11:56.639967900 +0100 -@@ -19,14 +19,7 @@ - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - --#include "ndr_misc.h" --#include "rpc_assoc.h" --#include "rpcndr.h" -- --#include "wine/rpcfc.h" -- --#include "wine/debug.h" --#include "wine/list.h" -+#include "precomp.h" - - WINE_DEFAULT_DEBUG_CHANNEL(ole); - -diff -prudN .\wine\dlls\rpcrt4/ndr_es.c .\reactos\dll\win32\rpcrt4/ndr_es.c ---- .\wine\dlls\rpcrt4/ndr_es.c 2014-05-09 03:43:55.938034400 +0200 -+++ .\reactos\dll\win32\rpcrt4/ndr_es.c 2013-12-27 18:11:56.764768100 +0100 -@@ -18,21 +18,9 @@ - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - --#include --#include -- --#include "windef.h" --#include "winbase.h" --#include "winerror.h" --#include "rpc.h" --#include "midles.h" --#include "ndrtypes.h" -- --#include "ndr_misc.h" --#include "ndr_stubless.h" -+#include "precomp.h" - --#include "wine/debug.h" --#include "wine/rpcfc.h" -+#include - - WINE_DEFAULT_DEBUG_CHANNEL(ole); - -diff -prudN .\wine\dlls\rpcrt4/ndr_fullpointer.c .\reactos\dll\win32\rpcrt4/ndr_fullpointer.c ---- .\wine\dlls\rpcrt4/ndr_fullpointer.c 2014-05-09 03:43:55.941034600 +0200 -+++ .\reactos\dll\win32\rpcrt4/ndr_fullpointer.c 2013-12-27 18:11:56.655567900 +0100 -@@ -18,14 +18,7 @@ - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - --#include -- --#include "windef.h" --#include "winbase.h" --#include "rpc.h" --#include "rpcndr.h" -- --#include "wine/debug.h" -+#include "precomp.h" - - WINE_DEFAULT_DEBUG_CHANNEL(rpc); - -diff -prudN .\wine\dlls\rpcrt4/ndr_marshall.c .\reactos\dll\win32\rpcrt4/ndr_marshall.c ---- .\wine\dlls\rpcrt4/ndr_marshall.c 2014-05-09 03:43:55.945034800 +0200 -+++ .\reactos\dll\win32\rpcrt4/ndr_marshall.c 2014-04-27 11:37:38.078578700 +0200 -@@ -27,25 +27,7 @@ - * - Checks for integer addition overflow in user marshall functions - */ - --#include --#include --#include --#include --#include -- --#define NONAMELESSUNION --#include "windef.h" --#include "winbase.h" --#include "winerror.h" -- --#include "ndr_misc.h" --#include "rpcndr.h" --#include "ndrtypes.h" -- --#include "wine/unicode.h" --#include "wine/rpcfc.h" -- --#include "wine/debug.h" -+#include "precomp.h" - - WINE_DEFAULT_DEBUG_CHANNEL(ole); - -diff -prudN .\wine\dlls\rpcrt4/ndr_misc.h .\reactos\dll\win32\rpcrt4/ndr_misc.h ---- .\wine\dlls\rpcrt4/ndr_misc.h 2014-05-09 03:43:55.873030700 +0200 -+++ .\reactos\dll\win32\rpcrt4/ndr_misc.h 2013-12-27 18:11:56.624367800 +0100 -@@ -21,13 +21,6 @@ - #ifndef __WINE_NDR_MISC_H - #define __WINE_NDR_MISC_H - --#include -- --#include "windef.h" --#include "winbase.h" --#include "rpc.h" --#include "rpcndr.h" -- - struct IPSFactoryBuffer; - - PFORMAT_STRING ComputeConformanceOrVariance( -diff -prudN .\wine\dlls\rpcrt4/ndr_ole.c .\reactos\dll\win32\rpcrt4/ndr_ole.c ---- .\wine\dlls\rpcrt4/ndr_ole.c 2014-05-09 03:43:55.948035000 +0200 -+++ .\reactos\dll\win32\rpcrt4/ndr_ole.c 2013-12-27 18:11:56.468367600 +0100 -@@ -22,27 +22,7 @@ - * - finish RpcStream_Vtbl - */ - --#include --#include --#include -- --#define COBJMACROS --#define NONAMELESSUNION --#define NONAMELESSSTRUCT -- --#include "windef.h" --#include "winbase.h" --#include "winerror.h" -- --#include "objbase.h" -- --#include "ndr_misc.h" --#include "rpcndr.h" --#include "rpcproxy.h" --#include "wine/rpcfc.h" --#include "cpsf.h" -- --#include "wine/debug.h" -+#include "precomp.h" - - WINE_DEFAULT_DEBUG_CHANNEL(ole); - -diff -prudN .\wine\dlls\rpcrt4/ndr_stubless.c .\reactos\dll\win32\rpcrt4/ndr_stubless.c ---- .\wine\dlls\rpcrt4/ndr_stubless.c 2014-05-09 03:43:55.952035200 +0200 -+++ .\reactos\dll\win32\rpcrt4/ndr_stubless.c 2013-12-27 18:11:56.437167500 +0100 -@@ -23,28 +23,7 @@ - * - Some types of binding handles - */ - --#include "config.h" --#include "wine/port.h" -- --#include --#include --#include -- --#include "windef.h" --#include "winbase.h" --#include "winerror.h" -- --#include "objbase.h" --#include "rpc.h" --#include "rpcproxy.h" -- --#include "wine/exception.h" --#include "wine/debug.h" --#include "wine/rpcfc.h" -- --#include "cpsf.h" --#include "ndr_misc.h" --#include "ndr_stubless.h" -+#include "precomp.h" - - WINE_DEFAULT_DEBUG_CHANNEL(rpc); - -diff -prudN .\wine\dlls\rpcrt4/ndr_stubless.h .\reactos\dll\win32\rpcrt4/ndr_stubless.h ---- .\wine\dlls\rpcrt4/ndr_stubless.h 2014-05-09 03:43:55.878030900 +0200 -+++ .\reactos\dll\win32\rpcrt4/ndr_stubless.h 2013-12-27 18:11:56.452767500 +0100 -@@ -18,10 +18,12 @@ - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - --#include "ndrtypes.h" -+#pragma once -+ -+#include - - /* there can't be any alignment with the structures in this file */ --#include "pshpack1.h" -+#include - - typedef struct _NDR_PROC_HEADER - { -@@ -223,7 +225,7 @@ typedef struct _NDR_EHD_CONTEXT - unsigned char param_num; - } NDR_EHD_CONTEXT; - --#include "poppack.h" -+#include - - enum stubless_phase - { -diff -prudN .\wine\dlls\rpcrt4/precomp.h .\reactos\dll\win32\rpcrt4/precomp.h ---- .\wine\dlls\rpcrt4/precomp.h 1970-01-01 01:00:00.000000000 +0100 -+++ .\reactos\dll\win32\rpcrt4/precomp.h 2014-03-14 01:43:22.357516600 +0100 -@@ -0,0 +1,40 @@ -+#ifndef _RPCRT4_PCH_ -+#define _RPCRT4_PCH_ -+ -+#include -+ -+#include -+#include -+#include -+ -+#define _INC_WINDOWS -+ -+#define COBJMACROS -+#define NONAMELESSUNION -+#define NONAMELESSSTRUCT -+ -+#include -+#define WIN32_NO_STATUS -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+#include -+#include -+ -+#include "cpsf.h" -+#include "ncastatus.h" -+#include "ndr_misc.h" -+#include "ndr_stubless.h" -+#include "rpc_assoc.h" -+#include "rpc_binding.h" -+#include "rpc_message.h" -+#include "rpc_server.h" -+ -+#endif /* _RPCRT4_PCH_ */ -diff -prudN .\wine\dlls\rpcrt4/rpc_assoc.c .\reactos\dll\win32\rpcrt4/rpc_assoc.c ---- .\wine\dlls\rpcrt4/rpc_assoc.c 2014-05-09 03:43:55.955035400 +0200 -+++ .\reactos\dll\win32\rpcrt4/rpc_assoc.c 2013-12-27 18:11:56.780368100 +0100 -@@ -19,19 +19,7 @@ - * - */ - --#include --#include -- --#include "rpc.h" --#include "rpcndr.h" --#include "winternl.h" -- --#include "wine/unicode.h" --#include "wine/debug.h" -- --#include "rpc_binding.h" --#include "rpc_assoc.h" --#include "rpc_message.h" -+#include "precomp.h" - - WINE_DEFAULT_DEBUG_CHANNEL(rpc); - -diff -prudN .\wine\dlls\rpcrt4/rpc_assoc.h .\reactos\dll\win32\rpcrt4/rpc_assoc.h ---- .\wine\dlls\rpcrt4/rpc_assoc.h 2014-05-09 03:43:55.884031300 +0200 -+++ .\reactos\dll\win32\rpcrt4/rpc_assoc.h 2013-12-27 18:11:56.905168300 +0100 -@@ -20,7 +20,6 @@ - */ - - #include "rpc_binding.h" --#include "wine/list.h" - - typedef struct _RpcAssoc - { -diff -prudN .\wine\dlls\rpcrt4/rpc_async.c .\reactos\dll\win32\rpcrt4/rpc_async.c ---- .\wine\dlls\rpcrt4/rpc_async.c 2014-05-09 03:43:55.958035500 +0200 -+++ .\reactos\dll\win32\rpcrt4/rpc_async.c 2013-12-27 18:11:56.468367600 +0100 -@@ -19,17 +19,7 @@ - * - */ - --#include -- --#include "rpc.h" --#include "rpcndr.h" --#include "rpcasync.h" -- --#include "wine/debug.h" -- --#include "rpc_binding.h" --#include "rpc_message.h" --#include "ndr_stubless.h" -+#include "precomp.h" - - WINE_DEFAULT_DEBUG_CHANNEL(rpc); - -diff -prudN .\wine\dlls\rpcrt4/rpc_binding.c .\reactos\dll\win32\rpcrt4/rpc_binding.c ---- .\wine\dlls\rpcrt4/rpc_binding.c 2014-05-09 03:43:55.962035800 +0200 -+++ .\reactos\dll\win32\rpcrt4/rpc_binding.c 2013-12-27 18:11:56.452767500 +0100 -@@ -21,25 +21,7 @@ - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - --#include --#include --#include --#include -- --#include "windef.h" --#include "winbase.h" --#include "winnls.h" --#include "winerror.h" --#include "winternl.h" --#include "wine/unicode.h" -- --#include "rpc.h" --#include "rpcndr.h" -- --#include "wine/debug.h" -- --#include "rpc_binding.h" --#include "rpc_assoc.h" -+#include "precomp.h" - - WINE_DEFAULT_DEBUG_CHANNEL(rpc); - -diff -prudN .\wine\dlls\rpcrt4/rpc_binding.h .\reactos\dll\win32\rpcrt4/rpc_binding.h ---- .\wine\dlls\rpcrt4/rpc_binding.h 2014-05-09 03:43:55.890031600 +0200 -+++ .\reactos\dll\win32\rpcrt4/rpc_binding.h 2013-12-27 18:11:56.483967600 +0100 -@@ -21,12 +21,8 @@ - #ifndef __WINE_RPC_BINDING_H - #define __WINE_RPC_BINDING_H - --#include "rpcndr.h" --#include "security.h" --#include "wine/list.h" - #include "rpc_defs.h" - -- - enum secure_packet_direction - { - SECURE_PACKET_SEND, -diff -prudN .\wine\dlls\rpcrt4/rpc_defs.h .\reactos\dll\win32\rpcrt4/rpc_defs.h ---- .\wine\dlls\rpcrt4/rpc_defs.h 2014-05-09 03:43:55.895031900 +0200 -+++ .\reactos\dll\win32\rpcrt4/rpc_defs.h 2013-01-25 00:19:54.167254400 +0100 -@@ -22,7 +22,7 @@ - #ifndef __WINE_RPC_DEFS_H - #define __WINE_RPC_DEFS_H - --#include "pshpack1.h" -+#include - typedef struct - { - unsigned char rpc_ver; /* RPC major version (5) */ -@@ -168,7 +168,7 @@ typedef struct - unsigned char auth_reserved; /* reserved, must be zero */ - unsigned int auth_context_id; /* unique value for the authenticated connection */ - } RpcAuthVerifier; --#include "poppack.h" -+#include - - #define RPC_AUTH_VERIFIER_LEN(common_hdr) \ - ((common_hdr)->auth_len ? (common_hdr)->auth_len + sizeof(RpcAuthVerifier) : 0) diff -prudN .\wine\dlls\rpcrt4/rpc_epmap.c .\reactos\dll\win32\rpcrt4/rpc_epmap.c --- .\wine\dlls\rpcrt4/rpc_epmap.c 2014-05-09 03:43:55.965035900 +0200 +++ .\reactos\dll\win32\rpcrt4/rpc_epmap.c 2013-12-27 18:11:56.421567500 +0100 -@@ -20,19 +20,7 @@ - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - --#include -- --#include "windef.h" --#include "winbase.h" --#include "winerror.h" -- --#include "rpc.h" -- --#include "wine/debug.h" --#include "wine/exception.h" -- --#include "rpc_binding.h" --#include "epm.h" -+#include "precomp.h" - #include "epm_towers.h" - - WINE_DEFAULT_DEBUG_CHANNEL(ole); @@ -92,7 +80,7 @@ static BOOL start_rpcss(void) lstrcatW( cmd, rpcss ); @@ -708,86 +19,9 @@ diff -prudN .\wine\dlls\rpcrt4/rpc_epmap.c .\reactos\dll\win32\rpcrt4/rpc_epmap. { case EXCEPTION_ACCESS_VIOLATION: case EXCEPTION_ILLEGAL_INSTRUCTION: -diff -prudN .\wine\dlls\rpcrt4/rpc_message.c .\reactos\dll\win32\rpcrt4/rpc_message.c ---- .\wine\dlls\rpcrt4/rpc_message.c 2014-05-09 03:43:55.969036200 +0200 -+++ .\reactos\dll\win32\rpcrt4/rpc_message.c 2014-04-27 11:37:38.078578700 +0200 -@@ -20,25 +20,9 @@ - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - --#include --#include --#include -- --#include "windef.h" --#include "winbase.h" --#include "winerror.h" --#include "winuser.h" -- --#include "rpc.h" --#include "rpcndr.h" --#include "rpcdcep.h" -- --#include "wine/debug.h" -+#include "precomp.h" - --#include "rpc_binding.h" --#include "rpc_defs.h" --#include "rpc_message.h" --#include "ncastatus.h" -+#include - - WINE_DEFAULT_DEBUG_CHANNEL(rpc); - -diff -prudN .\wine\dlls\rpcrt4/rpc_message.h .\reactos\dll\win32\rpcrt4/rpc_message.h ---- .\wine\dlls\rpcrt4/rpc_message.h 2014-05-09 03:43:55.901032300 +0200 -+++ .\reactos\dll\win32\rpcrt4/rpc_message.h 2013-12-27 18:11:56.499567600 +0100 -@@ -21,8 +21,6 @@ - #ifndef __WINE_RPC_MESSAGE_H - #define __WINE_RPC_MESSAGE_H - --#include "rpc_defs.h" -- - typedef unsigned int NCA_STATUS; - - RpcPktHdr *RPCRT4_BuildFaultHeader(ULONG DataRepresentation, RPC_STATUS Status) DECLSPEC_HIDDEN; diff -prudN .\wine\dlls\rpcrt4/rpc_server.c .\reactos\dll\win32\rpcrt4/rpc_server.c --- .\wine\dlls\rpcrt4/rpc_server.c 2014-05-09 03:43:55.973036400 +0200 +++ .\reactos\dll\win32\rpcrt4/rpc_server.c 2013-12-27 18:11:56.780368100 +0100 -@@ -20,31 +20,9 @@ - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - --#include "config.h" --#include "wine/port.h" -- --#include --#include --#include --#include -- --#include "windef.h" --#include "winbase.h" --#include "winerror.h" -- --#include "rpc.h" --#include "rpcndr.h" --#include "excpt.h" -- --#include "wine/debug.h" --#include "wine/exception.h" -+#include "precomp.h" - --#include "rpc_server.h" --#include "rpc_assoc.h" --#include "rpc_message.h" --#include "rpc_defs.h" --#include "ncastatus.h" --#include "secext.h" -+#include - - WINE_DEFAULT_DEBUG_CHANNEL(rpc); - @@ -1075,8 +1053,10 @@ void RPCRT4_destroy_all_protseqs(void) EnterCriticalSection(&server_cs); LIST_FOR_EACH_ENTRY_SAFE(cps, cursor2, &protseqs, RpcServerProtseq, entry) @@ -799,61 +33,9 @@ diff -prudN .\wine\dlls\rpcrt4/rpc_server.c .\reactos\dll\win32\rpcrt4/rpc_serve destroy_serverprotoseq(cps); } LeaveCriticalSection(&server_cs); -diff -prudN .\wine\dlls\rpcrt4/rpc_server.h .\reactos\dll\win32\rpcrt4/rpc_server.h ---- .\wine\dlls\rpcrt4/rpc_server.h 2014-05-09 03:43:55.907032600 +0200 -+++ .\reactos\dll\win32\rpcrt4/rpc_server.h 2013-12-27 18:11:56.905168300 +0100 -@@ -22,7 +22,6 @@ - #define __WINE_RPC_SERVER_H - - #include "rpc_binding.h" --#include "wine/list.h" - - struct protseq_ops; - diff -prudN .\wine\dlls\rpcrt4/rpc_transport.c .\reactos\dll\win32\rpcrt4/rpc_transport.c --- .\wine\dlls\rpcrt4/rpc_transport.c 2014-05-09 03:43:55.977036600 +0200 +++ .\reactos\dll\win32\rpcrt4/rpc_transport.c 2014-05-09 03:10:59.250551600 +0200 -@@ -23,14 +23,7 @@ - * - */ - --#include "config.h" -- --#include --#include --#include --#include --#include --#include -+#include "precomp.h" - - #if defined(__MINGW32__) || defined (_MSC_VER) - # include -@@ -76,23 +69,8 @@ - # define ioctlsocket ioctl - #endif /* defined(__MINGW32__) || defined (_MSC_VER) */ - --#include "windef.h" --#include "winbase.h" --#include "winnls.h" --#include "winerror.h" --#include "wininet.h" --#include "winternl.h" --#include "wine/unicode.h" -- --#include "rpc.h" --#include "rpcndr.h" -- --#include "wine/debug.h" -+#include - --#include "rpc_binding.h" --#include "rpc_assoc.h" --#include "rpc_message.h" --#include "rpc_server.h" - #include "epm_towers.h" - - #ifndef SOL_TCP @@ -113,31 +91,41 @@ typedef struct _RpcConnection_np { RpcConnection common; @@ -1151,78 +333,3 @@ diff -prudN .\wine\dlls\rpcrt4/rpcrt4.spec .\reactos\dll\win32\rpcrt4/rpcrt4.spe @ stub NdrRpcSsDefaultAllocate @ stub NdrRpcSsDefaultFree @ stub NdrRpcSsDisableAllocate -diff -prudN .\wine\dlls\rpcrt4/rpcrt4_main.c .\reactos\dll\win32\rpcrt4/rpcrt4_main.c ---- .\wine\dlls\rpcrt4/rpcrt4_main.c 2014-05-09 03:43:55.980036800 +0200 -+++ .\reactos\dll\win32\rpcrt4/rpcrt4_main.c 2014-05-09 03:45:42.047103500 +0200 -@@ -28,35 +28,10 @@ - * NT-based native rpcrt4's. Commonly-used transport for self-to-self RPC's. - */ - --#include "config.h" -- --#include --#include --#include --#include -- --#include "ntstatus.h" --#define WIN32_NO_STATUS --#include "windef.h" --#include "winerror.h" --#include "winbase.h" --#include "winuser.h" --#include "winnt.h" --#include "winternl.h" --#include "ntsecapi.h" --#include "iptypes.h" --#include "iphlpapi.h" --#include "wine/unicode.h" --#include "rpc.h" -- --#include "ole2.h" --#include "rpcndr.h" --#include "rpcproxy.h" -- --#include "rpc_binding.h" --#include "rpc_server.h" -+#include "precomp.h" - --#include "wine/debug.h" -+#include -+#include - - WINE_DEFAULT_DEBUG_CHANNEL(rpc); - -diff -prudN .\wine\dlls\rpcrt4/unix_func.c .\reactos\dll\win32\rpcrt4/unix_func.c ---- .\wine\dlls\rpcrt4/unix_func.c 1970-01-01 01:00:00.000000000 +0100 -+++ .\reactos\dll\win32\rpcrt4/unix_func.c 2013-01-25 00:19:53.278052800 +0100 -@@ -0,0 +1,29 @@ -+#define WIN32_NO_STATUS -+#define _INC_WINDOWS -+#include -+#include -+ -+const char * -+WSAAPI -+inet_ntop (int af, -+ const void *src, -+ char *dst, -+ size_t cnt) -+{ -+ struct in_addr in; -+ char *text_addr; -+ -+ if (af == AF_INET) -+ { -+ memcpy(&in.s_addr, src, sizeof(in.s_addr)); -+ text_addr = inet_ntoa(in); -+ if (text_addr && dst) -+ { -+ strncpy(dst, text_addr, cnt); -+ return dst; -+ } -+ } -+ -+ return 0; -+} -+ From 5984090c7b72f18bc4024423b5bee859f3dab811 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Sat, 10 May 2014 10:02:09 +0000 Subject: [PATCH 26/92] [KS] Fix some prototypes and some MSVC/x64 warnings svn path=/trunk/; revision=63214 --- reactos/drivers/ksfilter/ks/api.c | 16 ++++++++-------- reactos/drivers/ksfilter/ks/event.c | 23 ++++++++++++----------- reactos/drivers/ksfilter/ks/ksfunc.h | 2 +- reactos/drivers/ksfilter/ks/methods.c | 20 +++++++++++--------- reactos/drivers/ksfilter/ks/misc.c | 6 +++--- reactos/drivers/ksfilter/ks/property.c | 13 +++++++------ reactos/drivers/ksfilter/ks/swenum.c | 14 +++++++------- reactos/include/psdk/ks.h | 10 +++++----- 8 files changed, 54 insertions(+), 50 deletions(-) diff --git a/reactos/drivers/ksfilter/ks/api.c b/reactos/drivers/ksfilter/ks/api.c index 26aa2cf8025..575a5a4bc73 100644 --- a/reactos/drivers/ksfilter/ks/api.c +++ b/reactos/drivers/ksfilter/ks/api.c @@ -1140,7 +1140,7 @@ KsSynchronousIoControlDevice( if (Status) { /* store bytes returned */ - *BytesReturned = IoStatusBlock.Information; + *BytesReturned = (ULONG)IoStatusBlock.Information; /* return status */ return IoStatusBlock.Status; } @@ -1181,7 +1181,7 @@ KsSynchronousIoControlDevice( Status = IoStatusBlock.Status; } - *BytesReturned = IoStatusBlock.Information; + *BytesReturned = (ULONG)IoStatusBlock.Information; return Status; } @@ -1716,8 +1716,8 @@ KsCompletePendingRequest( return; } - /* FIXME - * delete object / device header + /* FIXME + * delete object / device header * remove dead pin / filter instance */ UNIMPLEMENTED @@ -1782,7 +1782,7 @@ KspDeviceSetGetBusData( Status = IoCallDriver(DeviceObject, Irp); /* is the request still pending */ - if (Status == STATUS_PENDING) + if (Status == STATUS_PENDING) { /* have a nap */ KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL); @@ -1887,7 +1887,7 @@ KsGetNextSibling( /* get the basic header */ BasicHeader = (PKSBASIC_HEADER)((ULONG_PTR)Object - sizeof(KSBASIC_HEADER)); - ASSERT(BasicHeader->Type == KsObjectTypeDevice || BasicHeader->Type == KsObjectTypeFilterFactory || + ASSERT(BasicHeader->Type == KsObjectTypeDevice || BasicHeader->Type == KsObjectTypeFilterFactory || BasicHeader->Type == KsObjectTypeFilter || BasicHeader->Type == KsObjectTypePin); return (PVOID)BasicHeader->Next.Pin; @@ -2128,7 +2128,7 @@ KspMergePropertySet( PKSPROPERTY_ITEM PropertyItem, CurrentPropertyItem; NTSTATUS Status; - // max properties + // max properties PropertyCount = PropertySetA->PropertiesCount + PropertySetB->PropertiesCount; // allocate items @@ -2518,7 +2518,7 @@ KsRegisterAggregatedClientUnknown( PKSBASIC_HEADER BasicHeader = (PKSBASIC_HEADER)((ULONG_PTR)Object - sizeof(KSBASIC_HEADER)); /* sanity check */ - ASSERT(BasicHeader->Type == KsObjectTypeDevice || BasicHeader->Type == KsObjectTypeFilterFactory || + ASSERT(BasicHeader->Type == KsObjectTypeDevice || BasicHeader->Type == KsObjectTypeFilterFactory || BasicHeader->Type == KsObjectTypeFilter || BasicHeader->Type == KsObjectTypePin); if (BasicHeader->ClientAggregate) diff --git a/reactos/drivers/ksfilter/ks/event.c b/reactos/drivers/ksfilter/ks/event.c index f851957c19e..32999b90409 100644 --- a/reactos/drivers/ksfilter/ks/event.c +++ b/reactos/drivers/ksfilter/ks/event.c @@ -87,7 +87,7 @@ NTSTATUS KspEnableEvent( IN PIRP Irp, IN ULONG EventSetsCount, - IN PKSEVENT_SET EventSet, + IN const KSEVENT_SET* EventSet, IN OUT PLIST_ENTRY EventsList OPTIONAL, IN KSEVENTS_LOCKTYPE EventsFlags OPTIONAL, IN PVOID EventsLock OPTIONAL, @@ -99,7 +99,7 @@ KspEnableEvent( KSEVENT Event; PKSEVENT_ITEM EventItem, FoundEventItem; PKSEVENTDATA EventData; - PKSEVENT_SET FoundEventSet; + const KSEVENT_SET* FoundEventSet; PKSEVENT_ENTRY EventEntry; ULONG Index, SubIndex, Size; PVOID Object; @@ -270,7 +270,7 @@ KspEnableEvent( /* invalid type requested */ return STATUS_INVALID_PARAMETER; } - } + } /* calculate request size */ @@ -398,18 +398,19 @@ KsEnableEvent( /* @implemented */ +_IRQL_requires_max_(PASSIVE_LEVEL) KSDDKAPI NTSTATUS NTAPI KsEnableEventWithAllocator( - IN PIRP Irp, - IN ULONG EventSetsCount, - IN PKSEVENT_SET EventSet, - IN OUT PLIST_ENTRY EventsList OPTIONAL, - IN KSEVENTS_LOCKTYPE EventsFlags OPTIONAL, - IN PVOID EventsLock OPTIONAL, - IN PFNKSALLOCATOR Allocator OPTIONAL, - IN ULONG EventItemSize OPTIONAL) + _In_ PIRP Irp, + _In_ ULONG EventSetsCount, + _In_reads_(EventSetsCount) const KSEVENT_SET* EventSet, + _Inout_opt_ PLIST_ENTRY EventsList, + _In_opt_ KSEVENTS_LOCKTYPE EventsFlags, + _In_opt_ PVOID EventsLock, + _In_opt_ PFNKSALLOCATOR Allocator, + _In_opt_ ULONG EventItemSize) { return KspEnableEvent(Irp, EventSetsCount, EventSet, EventsList, EventsFlags, EventsLock, Allocator, EventItemSize); } diff --git a/reactos/drivers/ksfilter/ks/ksfunc.h b/reactos/drivers/ksfilter/ks/ksfunc.h index 83d57b2bef8..8a930dde136 100644 --- a/reactos/drivers/ksfilter/ks/ksfunc.h +++ b/reactos/drivers/ksfilter/ks/ksfunc.h @@ -175,7 +175,7 @@ NTSTATUS KspEnableEvent( IN PIRP Irp, IN ULONG EventSetsCount, - IN PKSEVENT_SET EventSet, + IN const KSEVENT_SET* EventSet, IN OUT PLIST_ENTRY EventsList OPTIONAL, IN KSEVENTS_LOCKTYPE EventsFlags OPTIONAL, IN PVOID EventsLock OPTIONAL, diff --git a/reactos/drivers/ksfilter/ks/methods.c b/reactos/drivers/ksfilter/ks/methods.c index 65b49c60373..e58a6ff0a81 100644 --- a/reactos/drivers/ksfilter/ks/methods.c +++ b/reactos/drivers/ksfilter/ks/methods.c @@ -147,7 +147,7 @@ KspMethodHandlerWithAllocator( if (Allocator) { /* allocate the requested amount */ - Status = Allocator(Irp, Irp->IoStatus.Information, FALSE); + Status = Allocator(Irp, (ULONG)Irp->IoStatus.Information, FALSE); /* check if the block was allocated */ if (!NT_SUCCESS(Status)) @@ -189,13 +189,14 @@ KspMethodHandlerWithAllocator( /* @implemented */ +_IRQL_requires_max_(PASSIVE_LEVEL) KSDDKAPI NTSTATUS NTAPI KsMethodHandler( - IN PIRP Irp, - IN ULONG MethodSetsCount, - IN PKSMETHOD_SET MethodSet) + _In_ PIRP Irp, + _In_ ULONG MethodSetsCount, + _In_reads_(MethodSetsCount) const KSMETHOD_SET* MethodSet) { return KspMethodHandlerWithAllocator(Irp, MethodSetsCount, MethodSet, NULL, 0); } @@ -203,15 +204,16 @@ KsMethodHandler( /* @implemented */ +_IRQL_requires_max_(PASSIVE_LEVEL) KSDDKAPI NTSTATUS NTAPI KsMethodHandlerWithAllocator( - IN PIRP Irp, - IN ULONG MethodSetsCount, - IN PKSMETHOD_SET MethodSet, - IN PFNKSALLOCATOR Allocator OPTIONAL, - IN ULONG MethodItemSize OPTIONAL) + _In_ PIRP Irp, + _In_ ULONG MethodSetsCount, + _In_reads_(MethodSetsCount) const KSMETHOD_SET* MethodSet, + _In_opt_ PFNKSALLOCATOR Allocator, + _In_opt_ ULONG MethodItemSize) { return KspMethodHandlerWithAllocator(Irp, MethodSetsCount, MethodSet, Allocator, MethodItemSize); } diff --git a/reactos/drivers/ksfilter/ks/misc.c b/reactos/drivers/ksfilter/ks/misc.c index 1aa2b7dcbdc..9ad2cc57883 100644 --- a/reactos/drivers/ksfilter/ks/misc.c +++ b/reactos/drivers/ksfilter/ks/misc.c @@ -103,7 +103,7 @@ KspCopyCreateRequest( OUT PVOID * Result) { PIO_STACK_LOCATION IoStack; - ULONG ObjectLength, ParametersLength; + SIZE_T ObjectLength, ParametersLength; PVOID Buffer; /* get current irp stack */ @@ -129,7 +129,7 @@ KspCopyCreateRequest( /* store result */ *Result = Buffer; - *Size = ParametersLength; + *Size = (ULONG)ParametersLength; return STATUS_SUCCESS; } @@ -199,7 +199,7 @@ KsGetOuterUnknown( PKSBASIC_HEADER BasicHeader = (PKSBASIC_HEADER)((ULONG_PTR)Object - sizeof(KSBASIC_HEADER)); /* sanity check */ - ASSERT(BasicHeader->Type == KsObjectTypeDevice || BasicHeader->Type == KsObjectTypeFilterFactory || + ASSERT(BasicHeader->Type == KsObjectTypeDevice || BasicHeader->Type == KsObjectTypeFilterFactory || BasicHeader->Type == KsObjectTypeFilter || BasicHeader->Type == KsObjectTypePin); /* return objects outer unknown */ diff --git a/reactos/drivers/ksfilter/ks/property.c b/reactos/drivers/ksfilter/ks/property.c index 7d6a29b704c..029043574a1 100644 --- a/reactos/drivers/ksfilter/ks/property.c +++ b/reactos/drivers/ksfilter/ks/property.c @@ -300,7 +300,7 @@ KspPropertyHandler( if (Allocator) { /* allocate the requested amount */ - Status = Allocator(Irp, Irp->IoStatus.Information, FALSE); + Status = Allocator(Irp, (ULONG)Irp->IoStatus.Information, FALSE); /* check if the block was allocated */ if (!NT_SUCCESS(Status)) @@ -364,15 +364,16 @@ KsPropertyHandler( /* @implemented */ +_IRQL_requires_max_(PASSIVE_LEVEL) KSDDKAPI NTSTATUS NTAPI KsPropertyHandlerWithAllocator( - IN PIRP Irp, - IN ULONG PropertySetsCount, - IN PKSPROPERTY_SET PropertySet, - IN PFNKSALLOCATOR Allocator OPTIONAL, - IN ULONG PropertyItemSize OPTIONAL) + _In_ PIRP Irp, + _In_ ULONG PropertySetsCount, + _In_reads_(PropertySetsCount) const KSPROPERTY_SET* PropertySet, + _In_opt_ PFNKSALLOCATOR Allocator, + _In_opt_ ULONG PropertyItemSize) { return KspPropertyHandler(Irp, PropertySetsCount, PropertySet, Allocator, PropertyItemSize); } diff --git a/reactos/drivers/ksfilter/ks/swenum.c b/reactos/drivers/ksfilter/ks/swenum.c index 0b76c8562a4..93dbb41274f 100644 --- a/reactos/drivers/ksfilter/ks/swenum.c +++ b/reactos/drivers/ksfilter/ks/swenum.c @@ -329,7 +329,7 @@ KspCreateDeviceReference( IN LPWSTR ReferenceString) { LPWSTR DeviceName; - ULONG Length; + SIZE_T Length; PLIST_ENTRY Entry; PBUS_DEVICE_ENTRY DeviceEntry = NULL; /* GCC warning */ BOOLEAN ItemExists = FALSE; @@ -523,7 +523,7 @@ KspBusQueryReferenceString( IN OUT PWCHAR *String) { LPWSTR Name; - ULONG Length; + SIZE_T Length; PBUS_ENUM_DEVICE_EXTENSION BusDeviceExtension = (PBUS_ENUM_DEVICE_EXTENSION)Context; /* sanity checks */ @@ -665,7 +665,7 @@ KspDoReparseForIrp( PIRP Irp, PBUS_DEVICE_ENTRY DeviceEntry) { - ULONG Length; + SIZE_T Length; LPWSTR Buffer; PIO_STACK_LOCATION IoStack; @@ -885,7 +885,7 @@ KspQueryId( PBUS_DEVICE_ENTRY DeviceEntry; PBUS_ENUM_DEVICE_EXTENSION BusDeviceExtension; LPWSTR Name; - ULONG Length; + SIZE_T Length; /* get current irp stack location */ IoStack = IoGetCurrentIrpStackLocation(Irp); @@ -972,7 +972,7 @@ KspInstallInterface( IN PBUS_ENUM_DEVICE_EXTENSION BusDeviceExtension, IN PSWENUM_INSTALL_INTERFACE InstallInterface) { - ULONG Length, Index; + SIZE_T Length, Index; UNICODE_STRING DeviceString, InterfaceString, ReferenceString; HANDLE hKey, hDeviceKey, hInterfaceKey, hReferenceKey; NTSTATUS Status; @@ -1369,7 +1369,7 @@ KsGetBusEnumIdentifier( PDEV_EXTENSION DeviceExtension; PBUS_ENUM_DEVICE_EXTENSION BusDeviceExtension; PIO_STACK_LOCATION IoStack; - ULONG Length; + SIZE_T Length; NTSTATUS Status; LPWSTR Buffer; @@ -1489,7 +1489,7 @@ KsCreateBusEnumObject( IN REFGUID InterfaceGuid OPTIONAL, IN PWCHAR ServiceRelativePath OPTIONAL) { - ULONG Length; + SIZE_T Length; NTSTATUS Status = STATUS_SUCCESS; UNICODE_STRING ServiceKeyPath = RTL_CONSTANT_STRING(L"\\REGISTRY\\MACHINE\\SYSTEM\\CurrentControlSet\\Services\\"); PBUS_ENUM_DEVICE_EXTENSION BusDeviceExtension; diff --git a/reactos/include/psdk/ks.h b/reactos/include/psdk/ks.h index eb5d2f5b2d6..3ae6e9a3f23 100644 --- a/reactos/include/psdk/ks.h +++ b/reactos/include/psdk/ks.h @@ -3525,7 +3525,7 @@ NTAPI KsMethodHandler( _In_ PIRP Irp, _In_ ULONG MethodSetsCount, - _In_reads_(MethodSetsCount) const PKSMETHOD_SET MethodSet); + _In_reads_(MethodSetsCount) const KSMETHOD_SET* MethodSet); _IRQL_requires_max_(PASSIVE_LEVEL) KSDDKAPI @@ -3534,7 +3534,7 @@ NTAPI KsMethodHandlerWithAllocator( _In_ PIRP Irp, _In_ ULONG MethodSetsCount, - _In_reads_(MethodSetsCount) const PKSMETHOD_SET MethodSet, + _In_reads_(MethodSetsCount) const KSMETHOD_SET* MethodSet, _In_opt_ PFNKSALLOCATOR Allocator, _In_opt_ ULONG MethodItemSize); @@ -3576,7 +3576,7 @@ NTAPI KsPropertyHandlerWithAllocator( _In_ PIRP Irp, _In_ ULONG PropertySetsCount, - _In_reads_(PropertySetsCount) const PKSPROPERTY_SET PropertySet, + _In_reads_(PropertySetsCount) const KSPROPERTY_SET* PropertySet, _In_opt_ PFNKSALLOCATOR Allocator, _In_opt_ ULONG PropertyItemSize); @@ -3659,7 +3659,7 @@ NTAPI KsEnableEventWithAllocator( _In_ PIRP Irp, _In_ ULONG EventSetsCount, - _In_reads_(EventSetsCount) const PKSEVENT_SET EventSet, + _In_reads_(EventSetsCount) const KSEVENT_SET* EventSet, _Inout_opt_ PLIST_ENTRY EventsList, _In_opt_ KSEVENTS_LOCKTYPE EventsFlags, _In_opt_ PVOID EventsLock, @@ -4819,7 +4819,7 @@ DEFINE_GUID(IID_IKsControl, 0x28F54685L, 0x06FD, 0x11D2, 0xB2, 0x7A, 0x00, 0xA0, DECLARE_INTERFACE_(IKsControl,IUnknown) { - STDMETHOD_(NTSTATUS, QueryInterface)( THIS_ + STDMETHOD_(NTSTATUS, QueryInterface)( THIS_ REFIID InterfaceId, PVOID* Interface)PURE; From 9f8fa2af137fec970d1f35c29953dfe924f2035d Mon Sep 17 00:00:00 2001 From: James Tabor Date: Sat, 10 May 2014 11:38:52 +0000 Subject: [PATCH 27/92] [Win32k] - Patch by Huw Campbell : Fixes maximizing Explorer window, the horizontal scroll bar is not painted correctly. See CORE-6249. svn path=/trunk/; revision=63215 --- reactos/win32ss/user/ntuser/winpos.c | 44 +++++++++++++++++++--------- 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/reactos/win32ss/user/ntuser/winpos.c b/reactos/win32ss/user/ntuser/winpos.c index 5ad490abfb6..f11f57c6553 100644 --- a/reactos/win32ss/user/ntuser/winpos.c +++ b/reactos/win32ss/user/ntuser/winpos.c @@ -1710,6 +1710,7 @@ co_WinPosSetWindowPos( RECTL valid_rects[2]; PROSRGNDATA VisRgn; HRGN VisBefore = NULL; + HRGN VisBeforeJustClient = NULL; HRGN VisAfter = NULL; HRGN DirtyRgn = NULL; HRGN ExposedRgn = NULL; @@ -1806,6 +1807,28 @@ co_WinPosSetWindowPos( RGNOBJAPI_Unlock(VisRgn); NtGdiOffsetRgn(VisBefore, -Window->rcWindow.left, -Window->rcWindow.top); } + + /* Calculate the non client area for resizes, as this is used in the copy region */ + if (!(WinPos.flags & SWP_NOSIZE)) + { + VisBeforeJustClient = VIS_ComputeVisibleRegion(Window, TRUE, FALSE, + (Window->style & WS_CLIPSIBLINGS) ? TRUE : FALSE); + VisRgn = NULL; + + if ( VisBeforeJustClient != NULL && + (VisRgn = (PROSRGNDATA)RGNOBJAPI_Lock(VisBeforeJustClient, NULL)) && + REGION_Complexity(VisRgn) == NULLREGION ) + { + RGNOBJAPI_Unlock(VisRgn); + GreDeleteObject(VisBeforeJustClient); + VisBeforeJustClient = NULL; + } + else if(VisRgn) + { + RGNOBJAPI_Unlock(VisRgn); + NtGdiOffsetRgn(VisBeforeJustClient, -Window->rcWindow.left, -Window->rcWindow.top); + } + } } } @@ -1909,8 +1932,6 @@ co_WinPosSetWindowPos( ((WinPos.flags & SWP_NOSIZE) || !(WvrFlags & WVR_REDRAW)) && !(Window->ExStyle & WS_EX_TRANSPARENT) ) { - CopyRgn = IntSysCreateRectRgn(0, 0, 0, 0); - RgnType = NtGdiCombineRgn(CopyRgn, VisAfter, VisBefore, RGN_AND); /* * If this is (also) a window resize, the whole nonclient area @@ -1920,19 +1941,14 @@ co_WinPosSetWindowPos( * we don't have to crop (can't take anything away from an empty * region...) */ - if (!(WinPos.flags & SWP_NOSIZE) && - RgnType != ERROR && - RgnType != NULLREGION ) + + CopyRgn = IntSysCreateRectRgn(0, 0, 0, 0); + if (WinPos.flags & SWP_NOSIZE) + RgnType = NtGdiCombineRgn(CopyRgn, VisAfter, VisBefore, RGN_AND); + else if (VisBeforeJustClient != NULL) { - PROSRGNDATA pCopyRgn; - RECTL ORect = OldClientRect; - RECTL NRect = NewClientRect; - RECTL_vOffsetRect(&ORect, - OldWindowRect.left, - OldWindowRect.top); - RECTL_vOffsetRect(&NRect, - NewWindowRect.left, - NewWindowRect.top); - RECTL_bIntersectRect(&CopyRect, &ORect, &NRect); - pCopyRgn = RGNOBJAPI_Lock(CopyRgn, NULL); - REGION_CropAndOffsetRegion(pCopyRgn, pCopyRgn, &CopyRect, NULL); - RGNOBJAPI_Unlock(pCopyRgn); + RgnType = NtGdiCombineRgn(CopyRgn, VisAfter, VisBeforeJustClient, RGN_AND); + GreDeleteObject(VisBeforeJustClient); } /* No use in copying bits which are in the update region. */ From 6c9afdb59049860a11fd0f0c23ba7aee70c84065 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Sat, 10 May 2014 12:01:17 +0000 Subject: [PATCH 28/92] [CPPRT] Add an alias for __CxxFrameHandler3 on x64 builds svn path=/trunk/; revision=63216 --- reactos/lib/sdk/cpprt/amd64/cpprt.s | 3 +++ 1 file changed, 3 insertions(+) diff --git a/reactos/lib/sdk/cpprt/amd64/cpprt.s b/reactos/lib/sdk/cpprt/amd64/cpprt.s index ae741c57869..526caa66c6c 100644 --- a/reactos/lib/sdk/cpprt/amd64/cpprt.s +++ b/reactos/lib/sdk/cpprt/amd64/cpprt.s @@ -13,4 +13,7 @@ DEFINE_ALIAS ??_L@YAXPEAX_KHP6AX0@Z2@Z, ?MSVCRTEX_eh_vector_constructor_iterator ; void __cdecl `eh vector destructor iterator'(void *,unsigned __int64,int,void (__cdecl*)(void *)) DEFINE_ALIAS ??_M@YAXPEAX_KHP6AX0@Z@Z, ?MSVCRTEX_eh_vector_destructor_iterator@@YAXPEAX_KHP6AX0@Z@Z +; These are the same +DEFINE_ALIAS __CxxFrameHandler3, __CxxFrameHandler + END From fda4b225f85c2a517c956f5489d0d6962510d8ab Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Sat, 10 May 2014 13:55:09 +0000 Subject: [PATCH 29/92] [SPEC2DEF] Add support for adding aliases when exporting data by specifying the -withalias switch. This will cause MS LINK to generate _FooVar as an alias alias for _imp__FooVar. While this looks wrong and is not the way you usually handle data imports, this is what we have in the DDK for a number of data exports like KdDebuggerNotPresent, IoFileObjectType, ..., which we currently define in an incompatible way. Remove stdcall decorations on non-x86 builds svn path=/trunk/; revision=63217 --- reactos/tools/spec2def/spec2def.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/reactos/tools/spec2def/spec2def.c b/reactos/tools/spec2def/spec2def.c index 018b72fe424..de427f06e19 100644 --- a/reactos/tools/spec2def/spec2def.c +++ b/reactos/tools/spec2def/spec2def.c @@ -52,6 +52,7 @@ enum FL_STUB = 2, FL_NONAME = 4, FL_ORDINAL = 8, + FL_DATA_ALIAS = 16 }; enum @@ -369,6 +370,15 @@ PrintName(FILE *fileDest, EXPORT *pexp, PSTRING pstr, int fDeco) } else { + /* Does the string already have stdcall decoration? */ + pcAt = ScanToken(pcName, '@'); + if (pcAt && (pcAt < (pcName + nNameLength)) && pcName[0] == '_') + { + /* Skip leading underscore and remove trailing decoration */ + pcName++; + nNameLength = pcAt - pcName; + } + /* Print the undecorated function name */ fprintf(fileDest, "%.*s", nNameLength, pcName); } @@ -492,7 +502,9 @@ OutputLine_def(FILE *fileDest, EXPORT *pexp) fprintf(fileDest, " PRIVATE"); } - if (pexp->nCallingConvention == CC_EXTERN) + /* Make this a data export, unless this is MSVC and -withalias was given */ + if ((pexp->nCallingConvention == CC_EXTERN) && + !(gbMSComp && (pexp->uFlags & FL_DATA_ALIAS))) { fprintf(fileDest, " DATA"); } @@ -645,6 +657,15 @@ ParseFile(char* pcStart, FILE *fileDest, PFNOUTLINE OutputLine) { exp.uFlags |= FL_STUB; } + else if (CompareToken(pc, "-withalias")) + { + /* This flag is to create a nin _imp_ prefixed alias for a + data export, so that the hacked DDK declarations work */ + if (exp.nCallingConvention != CC_EXTERN) + fprintf(stderr, "error: line %d -withalias on non-data export\n", nLine); + else + exp.uFlags |= FL_DATA_ALIAS; + } else if (CompareToken(pc, "-norelay") || CompareToken(pc, "-register") || CompareToken(pc, "-ret64")) From 2e1ac56d1c43f595cbc913005edf3b391322bc38 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Sat, 10 May 2014 14:12:20 +0000 Subject: [PATCH 30/92] [SPEC2DEF] Improve the previous fix. svn path=/trunk/; revision=63218 --- reactos/tools/spec2def/spec2def.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/reactos/tools/spec2def/spec2def.c b/reactos/tools/spec2def/spec2def.c index de427f06e19..5a5b5fc94aa 100644 --- a/reactos/tools/spec2def/spec2def.c +++ b/reactos/tools/spec2def/spec2def.c @@ -325,7 +325,22 @@ PrintName(FILE *fileDest, EXPORT *pexp, PSTRING pstr, int fDeco) int nNameLength = pstr->len; const char* pcDot, *pcAt; - if ((giArch == ARCH_X86) && fDeco && + /* Check for non-x86 first */ + if (giArch != ARCH_X86) + { + /* Does the string already have stdcall decoration? */ + pcAt = ScanToken(pcName, '@'); + if ((pcAt < (pcName + nNameLength)) && (pcName[0] == '_')) + { + /* Skip leading underscore and remove trailing decoration */ + pcName++; + nNameLength = pcAt - pcName; + } + + /* Print the undecorated function name */ + fprintf(fileDest, "%.*s", nNameLength, pcName); + } + else if (fDeco && ((pexp->nCallingConvention == CC_STDCALL) || (pexp->nCallingConvention == CC_FASTCALL))) { @@ -370,15 +385,6 @@ PrintName(FILE *fileDest, EXPORT *pexp, PSTRING pstr, int fDeco) } else { - /* Does the string already have stdcall decoration? */ - pcAt = ScanToken(pcName, '@'); - if (pcAt && (pcAt < (pcName + nNameLength)) && pcName[0] == '_') - { - /* Skip leading underscore and remove trailing decoration */ - pcName++; - nNameLength = pcAt - pcName; - } - /* Print the undecorated function name */ fprintf(fileDest, "%.*s", nNameLength, pcName); } From a74ecc13fd6f1ea87ee5bf29eb9ce1d13117aa1f Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Sat, 10 May 2014 14:16:11 +0000 Subject: [PATCH 31/92] [MSVCRT] Fix export of __uncaught_exception [MSHTML] Add x64 asm wrappers svn path=/trunk/; revision=63219 --- reactos/dll/win32/mshtml/msvc.S | 20 +++++++++++++++----- reactos/dll/win32/msvcrt/msvcrt.spec | 3 +-- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/reactos/dll/win32/mshtml/msvc.S b/reactos/dll/win32/mshtml/msvc.S index 9d210be115f..90b65d8ab37 100644 --- a/reactos/dll/win32/mshtml/msvc.S +++ b/reactos/dll/win32/mshtml/msvc.S @@ -4,13 +4,23 @@ .code MACRO(DEFINE_WRAPPER_FUNC, n, off, x) +#ifdef _M_IX86 PUBLIC _wrapper_func_&n& _wrapper_func_&n&: -mov eax, [esp+4] -mov eax, [eax+4] -mov [esp+4], eax -mov eax, [eax] -jmp dword ptr [eax+off] + mov eax, [esp+4] + mov eax, [eax+4] + mov [esp+4], eax + mov eax, [eax] + jmp dword ptr [eax+off] +#elif defined(_M_AMD64) +PUBLIC wrapper_func_&n& +wrapper_func_&n&: + mov rcx, [rcx+4] + mov rax, [rcx] + jmp qword ptr [rax+off] +#else +#error Unimplemented +#endif ENDM DEFINE_WRAPPER_FUNC 3, 12, 24 diff --git a/reactos/dll/win32/msvcrt/msvcrt.spec b/reactos/dll/win32/msvcrt/msvcrt.spec index 1e5e0670fd1..8587c0d9e66 100644 --- a/reactos/dll/win32/msvcrt/msvcrt.spec +++ b/reactos/dll/win32/msvcrt/msvcrt.spec @@ -73,7 +73,7 @@ # @ cdecl ??_U@YAPAXIHPBDH@Z(long long str long) MSVCRT_operator_new_dbg @ cdecl -arch=win32 ??_V@YAXPAX@Z(ptr) MSVCRT_operator_delete @ cdecl -arch=win64 ??_V@YAXPEAX@Z(ptr) MSVCRT_operator_delete -@ cdecl -arch=win64 -norelay __uncaught_exception(ptr) +@ cdecl -norelay __uncaught_exception(ptr) @ cdecl -arch=win32 -norelay ?_query_new_handler@@YAP6AHI@ZXZ() MSVCRT__query_new_handler @ cdecl -arch=win64 -norelay ?_query_new_handler@@YAP6AH_K@ZXZ() MSVCRT__query_new_handler @ cdecl ?_query_new_mode@@YAHXZ() MSVCRT__query_new_mode @@ -256,7 +256,6 @@ @ cdecl __threadhandle() kernel32.GetCurrentThread @ cdecl __threadid() kernel32.GetCurrentThreadId @ cdecl __toascii(long) -@ cdecl __uncaught_exception() @ cdecl __unDName(ptr str long ptr ptr long) @ cdecl __unDNameEx(ptr str long ptr ptr ptr long) @ extern __unguarded_readlc_active From 2b89f1925ea6e155276642b217724e74aa81feb7 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Sat, 10 May 2014 14:33:37 +0000 Subject: [PATCH 32/92] [KS/NTOSKRNL/WIN32K] Fix MSVC warnings [WMILIB] Don't put it in a cab file, so we can use it in first stage [DDK/VDDSVC.H] use the 16 bit interface only on MIPS [WINE/PORT.H] WIN32 -> _WIN32 [NTOSKRNL] KfAcquire/ReleaseSpinLock -> KeAcquire/ReleaseSpinLock [NTOSKRNL] Make sure KeUpdateSystemTime returns properly on non-x86 builds svn path=/trunk/; revision=63220 --- reactos/drivers/ksfilter/ks/topology.c | 4 ++-- reactos/drivers/wmi/CMakeLists.txt | 2 +- reactos/include/ddk/vddsvc.h | 2 +- reactos/include/reactos/wine/port.h | 2 +- reactos/ntoskrnl/ex/sysinfo.c | 8 ++++---- reactos/ntoskrnl/include/internal/amd64/mm.h | 2 +- reactos/ntoskrnl/ke/time.c | 3 +++ reactos/ntoskrnl/ps/quota.c | 8 ++++---- reactos/win32ss/gdi/eng/mem.c | 2 +- reactos/win32ss/user/ntuser/misc/rtlstr.c | 8 ++++---- reactos/win32ss/w32ksvc.h | 11 +++++------ 11 files changed, 27 insertions(+), 25 deletions(-) diff --git a/reactos/drivers/ksfilter/ks/topology.c b/reactos/drivers/ksfilter/ks/topology.c index c6dc1b77718..2785a9b871b 100644 --- a/reactos/drivers/ksfilter/ks/topology.c +++ b/reactos/drivers/ksfilter/ks/topology.c @@ -28,7 +28,7 @@ KspCreateObjectType( /* calculate request length */ Name.Length = 0; - Name.MaximumLength = wcslen(ObjectType) * sizeof(WCHAR) + CreateParametersSize + 1 * sizeof(WCHAR); + Name.MaximumLength = (USHORT)(wcslen(ObjectType) * sizeof(WCHAR) + CreateParametersSize + 1 * sizeof(WCHAR)); Name.MaximumLength += sizeof(WCHAR); /* acquire request buffer */ Name.Buffer = AllocateItem(NonPagedPool, Name.MaximumLength); @@ -39,7 +39,7 @@ KspCreateObjectType( return STATUS_INSUFFICIENT_RESOURCES; } - /* build a request which looks like {ObjectClass}\CreateParameters + /* build a request which looks like {ObjectClass}\CreateParameters * For pins the parent is the reference string used in registration * For clocks it is full path for pin\{ClockGuid}\ClockCreateParams */ diff --git a/reactos/drivers/wmi/CMakeLists.txt b/reactos/drivers/wmi/CMakeLists.txt index 2fb593b2893..35f19842bab 100644 --- a/reactos/drivers/wmi/CMakeLists.txt +++ b/reactos/drivers/wmi/CMakeLists.txt @@ -12,4 +12,4 @@ set_module_type(wmilib kernelmodedriver ENTRYPOINT 0) add_importlibs(wmilib ntoskrnl) -add_cd_file(TARGET wmilib DESTINATION reactos/system32/drivers FOR all) +add_cd_file(TARGET wmilib DESTINATION reactos/system32/drivers NO_CAB FOR all) diff --git a/reactos/include/ddk/vddsvc.h b/reactos/include/ddk/vddsvc.h index eb808223141..451a2c444e9 100644 --- a/reactos/include/ddk/vddsvc.h +++ b/reactos/include/ddk/vddsvc.h @@ -50,7 +50,7 @@ call_ica_hw_interrupt */ PVOID WINAPI getIntelRegistersPointer(VOID); -#ifdef __i386__ +#ifndef _M_MIPS ULONG WINAPI getEAX(VOID); VOID WINAPI setEAX(ULONG); diff --git a/reactos/include/reactos/wine/port.h b/reactos/include/reactos/wine/port.h index 8c075637343..30d8e9e41b8 100644 --- a/reactos/include/reactos/wine/port.h +++ b/reactos/include/reactos/wine/port.h @@ -278,7 +278,7 @@ ssize_t pwrite( int fd, const void *buf, size_t count, off_t offset ); #endif /* HAVE_PWRITE */ #endif /* __REACTOS__ */ -#ifdef WIN32 +#ifdef _WIN32 #ifndef HAVE_SIGSETJMP # include typedef jmp_buf sigjmp_buf; diff --git a/reactos/ntoskrnl/ex/sysinfo.c b/reactos/ntoskrnl/ex/sysinfo.c index 0fa37b675ea..88178addb5d 100644 --- a/reactos/ntoskrnl/ex/sysinfo.c +++ b/reactos/ntoskrnl/ex/sysinfo.c @@ -1964,7 +1964,7 @@ QSI_DEF(SystemLookasideInformation) } /* Acquire spinlock for ExpNonPagedLookasideListHead */ - OldIrql = KfAcquireSpinLock(&ExpNonPagedLookasideListLock); + KeAcquireSpinLock(&ExpNonPagedLookasideListLock, &OldIrql); /* Copy info from non-paged lookaside lists */ ExpCopyLookasideInformation(&Info, @@ -1973,7 +1973,7 @@ QSI_DEF(SystemLookasideInformation) TRUE); /* Release spinlock for ExpNonPagedLookasideListHead */ - KfReleaseSpinLock(&ExpNonPagedLookasideListLock, OldIrql); + KeReleaseSpinLock(&ExpNonPagedLookasideListLock, OldIrql); if (Remaining == 0) { @@ -1981,7 +1981,7 @@ QSI_DEF(SystemLookasideInformation) } /* Acquire spinlock for ExpPagedLookasideListHead */ - OldIrql = KfAcquireSpinLock(&ExpPagedLookasideListLock); + KeAcquireSpinLock(&ExpPagedLookasideListLock, &OldIrql); /* Copy info from paged lookaside lists */ ExpCopyLookasideInformation(&Info, @@ -1990,7 +1990,7 @@ QSI_DEF(SystemLookasideInformation) TRUE); /* Release spinlock for ExpPagedLookasideListHead */ - KfReleaseSpinLock(&ExpPagedLookasideListLock, OldIrql); + KeReleaseSpinLock(&ExpPagedLookasideListLock, OldIrql); Leave: diff --git a/reactos/ntoskrnl/include/internal/amd64/mm.h b/reactos/ntoskrnl/include/internal/amd64/mm.h index 0021a0569a2..09049141e51 100644 --- a/reactos/ntoskrnl/include/internal/amd64/mm.h +++ b/reactos/ntoskrnl/include/internal/amd64/mm.h @@ -296,7 +296,7 @@ MI_IS_MAPPED_PTE(PMMPTE PointerPte) { /// FIXME __debugbreak(); - return (PointerPte->u.Long & 0xFFFFFC01 != 0); + return ((PointerPte->u.Long & 0xFFFFFC01) != 0); } VOID diff --git a/reactos/ntoskrnl/ke/time.c b/reactos/ntoskrnl/ke/time.c index 76b125321fc..f54b9258a46 100644 --- a/reactos/ntoskrnl/ke/time.c +++ b/reactos/ntoskrnl/ke/time.c @@ -78,6 +78,9 @@ KeUpdateSystemTime(IN PKTRAP_FRAME TrapFrame, /* Increase interrupt count and end the interrupt */ Prcb->InterruptCount++; KiEndInterrupt(Irql, TrapFrame); + + /* Note: non-x86 return back to the caller! */ + return; } /* Add the increment time to the shared data */ diff --git a/reactos/ntoskrnl/ps/quota.c b/reactos/ntoskrnl/ps/quota.c index 42899ddb3db..beba4d0b368 100644 --- a/reactos/ntoskrnl/ps/quota.c +++ b/reactos/ntoskrnl/ps/quota.c @@ -132,9 +132,9 @@ PspInsertQuotaBlock( { KIRQL OldIrql; - OldIrql = KfAcquireSpinLock(&PspQuotaLock); + KeAcquireSpinLock(&PspQuotaLock, &OldIrql); InsertTailList(&PspQuotaBlockList, &QuotaBlock->QuotaList); - KfReleaseSpinLock(&PspQuotaLock, OldIrql); + KeReleaseSpinLock(&PspQuotaLock, OldIrql); } VOID @@ -147,9 +147,9 @@ PspDestroyQuotaBlock(PEPROCESS Process) if (QuotaBlock != &PspDefaultQuotaBlock && InterlockedDecrementUL(&QuotaBlock->ReferenceCount) == 0) { - OldIrql = KfAcquireSpinLock(&PspQuotaLock); + KeAcquireSpinLock(&PspQuotaLock, &OldIrql); RemoveEntryList(&QuotaBlock->QuotaList); - KfReleaseSpinLock(&PspQuotaLock, OldIrql); + KeReleaseSpinLock(&PspQuotaLock, OldIrql); ExFreePool(QuotaBlock); } } diff --git a/reactos/win32ss/gdi/eng/mem.c b/reactos/win32ss/gdi/eng/mem.c index 7d887b1247e..26f9aec6fc1 100644 --- a/reactos/win32ss/gdi/eng/mem.c +++ b/reactos/win32ss/gdi/eng/mem.c @@ -114,7 +114,7 @@ HackSecureVirtualMemory( else if (ProbeMode == PAGE_READWRITE) Operation = IoModifyAccess; else return NULL; - pmdl = IoAllocateMdl(Address, Size, FALSE, TRUE, NULL); + pmdl = IoAllocateMdl(Address, (ULONG)Size, FALSE, TRUE, NULL); if (pmdl == NULL) { return NULL; diff --git a/reactos/win32ss/user/ntuser/misc/rtlstr.c b/reactos/win32ss/user/ntuser/misc/rtlstr.c index e4ee395c39d..73c92bf7bde 100644 --- a/reactos/win32ss/user/ntuser/misc/rtlstr.c +++ b/reactos/win32ss/user/ntuser/misc/rtlstr.c @@ -19,11 +19,11 @@ RtlInitLargeAnsiString( IN PCSZ SourceString, IN INT Unknown) { - ULONG DestSize; + USHORT DestSize; if (SourceString) { - DestSize = strlen(SourceString); + DestSize = (USHORT)strlen(SourceString); DestinationString->Length = DestSize; DestinationString->MaximumLength = DestSize + sizeof(CHAR); } @@ -44,11 +44,11 @@ RtlInitLargeUnicodeString( IN PCWSTR SourceString, IN INT Unknown) { - ULONG DestSize; + USHORT DestSize; if (SourceString) { - DestSize = wcslen(SourceString) * sizeof(WCHAR); + DestSize = (USHORT)wcslen(SourceString) * sizeof(WCHAR); DestinationString->Length = DestSize; DestinationString->MaximumLength = DestSize + sizeof(WCHAR); } diff --git a/reactos/win32ss/w32ksvc.h b/reactos/win32ss/w32ksvc.h index a780e82a0b0..177313ef6cf 100644 --- a/reactos/win32ss/w32ksvc.h +++ b/reactos/win32ss/w32ksvc.h @@ -1,6 +1,6 @@ // SVC_(, ) // -// Funcs, order, should, match, Windows, XP, 5.1.2600, SP2) +// Funcs order should match Windows XP 5.1.2600 SP2 // SVC_(GdiAbortDoc, 1) SVC_(GdiAbortPath, 1) @@ -235,7 +235,7 @@ SVC_(GdiMonoBitmap, 1) SVC_(GdiMoveTo, 4) SVC_(GdiOffsetClipRgn, 3) SVC_(GdiOffsetRgn, 3) -SVC_(GdiOpenDCW, 8) +SVC_(GdiOpenDCW, 8) /* FIXME: 7 params on XP */ SVC_(GdiPatBlt, 6) SVC_(GdiPolyPatBlt, 5) SVC_(GdiPathToRegion, 1) @@ -374,8 +374,7 @@ SVC_(UserEndDeferWindowPosEx, 2) SVC_(UserEndMenu, 0) SVC_(UserEndPaint, 2) SVC_(UserEnumDisplayDevices, 4) -// SVC_(UserEnumDisplayMonitors, 4, Wrong, number, of, param, ?) -SVC_(UserEnumDisplayMonitors, 5) +SVC_(UserEnumDisplayMonitors, 5) /* FIXME: 4 on XP */ SVC_(UserEnumDisplaySettings, 4) SVC_(UserEvent, 1) SVC_(UserExcludeUpdateRgn, 2) @@ -496,7 +495,7 @@ SVC_(UserRealInternalGetMessage, 6) SVC_(UserRealWaitMessageEx, 2) SVC_(UserRedrawWindow, 4) SVC_(UserRegisterClassExWOW, 7) -SVC_(UserRegisterUserApiHook, 4) +SVC_(UserRegisterUserApiHook, 4) /* FIXME: 2 params on XP */ SVC_(UserRegisterHotKey, 4) SVC_(UserRegisterRawInputDevices, 3) SVC_(UserRegisterTasklist, 1) @@ -590,7 +589,7 @@ SVC_(UserUnregisterUserApiHook, 0) SVC_(UserUnregisterHotKey, 2) SVC_(UserUpdateInputContext, 3) SVC_(UserUpdateInstance, 3) -SVC_(UserUpdateLayeredWindow, 10) +SVC_(UserUpdateLayeredWindow, 10) /* FIXME: 9 params on XP */ SVC_(UserGetLayeredWindowAttributes, 4) SVC_(UserSetLayeredWindowAttributes, 4) SVC_(UserUpdatePerUserSystemParameters, 2) From 5a330ec787525d3831c1327d5fd5f7a0987d2a8b Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Sat, 10 May 2014 16:43:13 +0000 Subject: [PATCH 33/92] [WIN32K] Fix comments for some systemcalls, noticed by Giannis svn path=/trunk/; revision=63221 --- reactos/win32ss/w32ksvc.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/reactos/win32ss/w32ksvc.h b/reactos/win32ss/w32ksvc.h index 177313ef6cf..3b6db971587 100644 --- a/reactos/win32ss/w32ksvc.h +++ b/reactos/win32ss/w32ksvc.h @@ -235,7 +235,7 @@ SVC_(GdiMonoBitmap, 1) SVC_(GdiMoveTo, 4) SVC_(GdiOffsetClipRgn, 3) SVC_(GdiOffsetRgn, 3) -SVC_(GdiOpenDCW, 8) /* FIXME: 7 params on XP */ +SVC_(GdiOpenDCW, 8) /* FIXME: 7 params on XP/2k3 */ SVC_(GdiPatBlt, 6) SVC_(GdiPolyPatBlt, 5) SVC_(GdiPathToRegion, 1) @@ -374,7 +374,7 @@ SVC_(UserEndDeferWindowPosEx, 2) SVC_(UserEndMenu, 0) SVC_(UserEndPaint, 2) SVC_(UserEnumDisplayDevices, 4) -SVC_(UserEnumDisplayMonitors, 5) /* FIXME: 4 on XP */ +SVC_(UserEnumDisplayMonitors, 5) /* FIXME: 4 on XP/2k3 */ SVC_(UserEnumDisplaySettings, 4) SVC_(UserEvent, 1) SVC_(UserExcludeUpdateRgn, 2) @@ -495,7 +495,7 @@ SVC_(UserRealInternalGetMessage, 6) SVC_(UserRealWaitMessageEx, 2) SVC_(UserRedrawWindow, 4) SVC_(UserRegisterClassExWOW, 7) -SVC_(UserRegisterUserApiHook, 4) /* FIXME: 2 params on XP */ +SVC_(UserRegisterUserApiHook, 4) /* Note: 2 params on XP, 4 on 2k3 */ SVC_(UserRegisterHotKey, 4) SVC_(UserRegisterRawInputDevices, 3) SVC_(UserRegisterTasklist, 1) @@ -589,7 +589,7 @@ SVC_(UserUnregisterUserApiHook, 0) SVC_(UserUnregisterHotKey, 2) SVC_(UserUpdateInputContext, 3) SVC_(UserUpdateInstance, 3) -SVC_(UserUpdateLayeredWindow, 10) /* FIXME: 9 params on XP */ +SVC_(UserUpdateLayeredWindow, 10) /* Note: 9 params on XP, 10 on 2k3 */ SVC_(UserGetLayeredWindowAttributes, 4) SVC_(UserSetLayeredWindowAttributes, 4) SVC_(UserUpdatePerUserSystemParameters, 2) From be359827c589f8a37a7c62a9ff4aba17a014affa Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Sat, 10 May 2014 17:19:53 +0000 Subject: [PATCH 34/92] [KMTEST] Add a temp hack that allows to compile kmtest_drv with either the current incompatible object type data imports or with the fixed ones svn path=/trunk/; revision=63222 --- rostests/kmtests/npfs/NpfsHelpers.c | 4 +++ rostests/kmtests/ntos_ex/ExFastMutex.c | 10 ++++-- rostests/kmtests/ntos_ex/ExResource.c | 9 ++++- rostests/kmtests/ntos_io/IoCreateFile.c | 35 +++++++++++++++++++ rostests/kmtests/ntos_ke/KeEvent.c | 8 ++++- rostests/kmtests/ntos_ke/KeGuardedMutex.c | 8 ++++- rostests/kmtests/ntos_mm/MmSection.c | 16 +++++++-- .../kmtests/ntos_mm/ZwAllocateVirtualMemory.c | 16 +++++++-- rostests/kmtests/ntos_mm/ZwCreateSection.c | 8 ++++- rostests/kmtests/ntos_mm/ZwMapViewOfSection.c | 16 +++++++-- rostests/kmtests/ntos_ob/ObTypes.c | 34 ++++++++++++++++++ 11 files changed, 152 insertions(+), 12 deletions(-) diff --git a/rostests/kmtests/npfs/NpfsHelpers.c b/rostests/kmtests/npfs/NpfsHelpers.c index f81c61a6309..a06aec7f527 100644 --- a/rostests/kmtests/npfs/NpfsHelpers.c +++ b/rostests/kmtests/npfs/NpfsHelpers.c @@ -742,7 +742,11 @@ KmtStartThread( { Status = ObReferenceObjectByHandle(ThreadHandle, SYNCHRONIZE, +#ifdef _PROPER_NT_EXPORTS + *PsThreadType, +#else PsThreadType, +#endif KernelMode, &ThreadObject, NULL); diff --git a/rostests/kmtests/ntos_ex/ExFastMutex.c b/rostests/kmtests/ntos_ex/ExFastMutex.c index 25065ddaa6c..6ac87b68cc8 100644 --- a/rostests/kmtests/ntos_ex/ExFastMutex.c +++ b/rostests/kmtests/ntos_ex/ExFastMutex.c @@ -90,7 +90,7 @@ TestFastMutex( KmtSetIrql(OriginalIrql); CheckMutex(Mutex, 1L, NULL, 0LU, PASSIVE_LEVEL, OriginalIrql); } - + if (!KmtIsCheckedBuild) { /* release without acquire */ @@ -196,7 +196,13 @@ StartThread( InitializeObjectAttributes(&Attributes, NULL, OBJ_KERNEL_HANDLE, NULL, NULL); Status = PsCreateSystemThread(&ThreadData->Handle, GENERIC_ALL, &Attributes, NULL, NULL, AcquireMutexThread, ThreadData); ok_eq_hex(Status, STATUS_SUCCESS); - Status = ObReferenceObjectByHandle(ThreadData->Handle, SYNCHRONIZE, PsThreadType, KernelMode, (PVOID *)&ThreadData->Thread, NULL); + Status = ObReferenceObjectByHandle(ThreadData->Handle, SYNCHRONIZE, +#ifdef _PROPER_NT_EXPORTS + *PsThreadType, +#else + PsThreadType, +#endif + KernelMode, (PVOID *)&ThreadData->Thread, NULL); ok_eq_hex(Status, STATUS_SUCCESS); return KeWaitForSingleObject(&ThreadData->OutEvent, Executive, KernelMode, FALSE, Timeout); diff --git a/rostests/kmtests/ntos_ex/ExResource.c b/rostests/kmtests/ntos_ex/ExResource.c index f87f5b389f3..2463c3c9ee5 100644 --- a/rostests/kmtests/ntos_ex/ExResource.c +++ b/rostests/kmtests/ntos_ex/ExResource.c @@ -268,7 +268,14 @@ StartThread( InitializeObjectAttributes(&Attributes, NULL, OBJ_KERNEL_HANDLE, NULL, NULL); Status = PsCreateSystemThread(&ThreadData->Handle, GENERIC_ALL, &Attributes, NULL, NULL, AcquireResourceThread, ThreadData); ok_eq_hex(Status, STATUS_SUCCESS); - Status = ObReferenceObjectByHandle(ThreadData->Handle, SYNCHRONIZE, PsThreadType, KernelMode, (PVOID *)&ThreadData->Thread, NULL); + Status = ObReferenceObjectByHandle(ThreadData->Handle, SYNCHRONIZE, +#ifdef _PROPER_NT_EXPORTS + *PsThreadType, +#else + PsThreadType, +#endif + + KernelMode, (PVOID *)&ThreadData->Thread, NULL); ok_eq_hex(Status, STATUS_SUCCESS); return KeWaitForSingleObject(&ThreadData->OutEvent, Executive, KernelMode, FALSE, Timeout); diff --git a/rostests/kmtests/ntos_io/IoCreateFile.c b/rostests/kmtests/ntos_io/IoCreateFile.c index 17ec02a053e..f970e4d7738 100644 --- a/rostests/kmtests/ntos_io/IoCreateFile.c +++ b/rostests/kmtests/ntos_io/IoCreateFile.c @@ -57,7 +57,11 @@ KernelModeTest(IN PVOID Context) { Status = ObReferenceObjectByHandle(TargetHandle, FILE_READ_DATA, +#ifdef _PROPER_NT_EXPORTS + *IoFileObjectType, +#else IoFileObjectType, +#endif KernelMode, (PVOID *)&TargetFileObject, NULL); @@ -103,7 +107,11 @@ KernelModeTest(IN PVOID Context) { Status = ObReferenceObjectByHandle(ParentHandle, FILE_READ_DATA, +#ifdef _PROPER_NT_EXPORTS + *IoFileObjectType, +#else IoFileObjectType, +#endif KernelMode, (PVOID *)&ParentFileObject, NULL); @@ -173,7 +181,11 @@ KernelModeTest(IN PVOID Context) { Status = ObReferenceObjectByHandle(ParentHandle, FILE_READ_DATA, +#ifdef _PROPER_NT_EXPORTS + *IoFileObjectType, +#else IoFileObjectType, +#endif KernelMode, (PVOID *)&ParentFileObject, NULL); @@ -187,7 +199,11 @@ KernelModeTest(IN PVOID Context) ok_eq_long(RtlCompareUnicodeString(&ParentFileObject->FileName, &TargetFileObject->FileName, FALSE), 0); Status = ObReferenceObjectByHandle(SystemRootHandle, FILE_READ_DATA, +#ifdef _PROPER_NT_EXPORTS + *IoFileObjectType, +#else IoFileObjectType, +#endif KernelMode, (PVOID *)&SystemRootFileObject, NULL); @@ -240,7 +256,12 @@ KernelModeTest(IN PVOID Context) { Status = ObReferenceObjectByHandle(ParentHandle, FILE_READ_DATA, +#ifdef _PROPER_NT_EXPORTS + *IoFileObjectType, +#else IoFileObjectType, +#endif + KernelMode, (PVOID *)&ParentFileObject, NULL); @@ -302,7 +323,12 @@ KernelModeTest(IN PVOID Context) { Status = ObReferenceObjectByHandle(ParentHandle, FILE_READ_DATA, +#ifdef _PROPER_NT_EXPORTS + *IoFileObjectType, +#else IoFileObjectType, +#endif + KernelMode, (PVOID *)&ParentFileObject, NULL); @@ -316,7 +342,12 @@ KernelModeTest(IN PVOID Context) ok_eq_long(RtlCompareUnicodeString(&ParentFileObject->FileName, &TargetFileObject->FileName, FALSE), 0); Status = ObReferenceObjectByHandle(SystemRootHandle, FILE_READ_DATA, +#ifdef _PROPER_NT_EXPORTS + *IoFileObjectType, +#else IoFileObjectType, +#endif + KernelMode, (PVOID *)&SystemRootFileObject, NULL); @@ -534,7 +565,11 @@ START_TEST(IoCreateFile) /* Then, just wait on our thread to finish */ Status = ObReferenceObjectByHandle(ThreadHandle, SYNCHRONIZE, +#ifdef _PROPER_NT_EXPORTS + *PsThreadType, +#else PsThreadType, +#endif KernelMode, &ThreadObject, NULL); diff --git a/rostests/kmtests/ntos_ke/KeEvent.c b/rostests/kmtests/ntos_ke/KeEvent.c index af95c461f18..95feb125ace 100644 --- a/rostests/kmtests/ntos_ke/KeEvent.c +++ b/rostests/kmtests/ntos_ke/KeEvent.c @@ -169,7 +169,13 @@ TestEventConcurrent( Threads[i].Signal = FALSE; Status = PsCreateSystemThread(&Threads[i].Handle, GENERIC_ALL, NULL, NULL, NULL, WaitForEventThread, &Threads[i]); ok_eq_hex(Status, STATUS_SUCCESS); - Status = ObReferenceObjectByHandle(Threads[i].Handle, SYNCHRONIZE, PsThreadType, KernelMode, (PVOID *)&Threads[i].Thread, NULL); + Status = ObReferenceObjectByHandle(Threads[i].Handle, SYNCHRONIZE, +#ifdef _PROPER_NT_EXPORTS + *PsThreadType, +#else + PsThreadType, +#endif + KernelMode, (PVOID *)&Threads[i].Thread, NULL); ok_eq_hex(Status, STATUS_SUCCESS); ThreadObjects[i] = Threads[i].Thread; Priority = KeQueryPriorityThread(Threads[i].Thread); diff --git a/rostests/kmtests/ntos_ke/KeGuardedMutex.c b/rostests/kmtests/ntos_ke/KeGuardedMutex.c index ef8f3c1b1d0..3acbec1a312 100644 --- a/rostests/kmtests/ntos_ke/KeGuardedMutex.c +++ b/rostests/kmtests/ntos_ke/KeGuardedMutex.c @@ -204,7 +204,13 @@ StartThread( InitializeObjectAttributes(&Attributes, NULL, OBJ_KERNEL_HANDLE, NULL, NULL); Status = PsCreateSystemThread(&ThreadData->Handle, GENERIC_ALL, &Attributes, NULL, NULL, AcquireMutexThread, ThreadData); ok_eq_hex(Status, STATUS_SUCCESS); - Status = ObReferenceObjectByHandle(ThreadData->Handle, SYNCHRONIZE, PsThreadType, KernelMode, (PVOID *)&ThreadData->Thread, NULL); + Status = ObReferenceObjectByHandle(ThreadData->Handle, SYNCHRONIZE, +#ifdef _PROPER_NT_EXPORTS + *PsThreadType, +#else + PsThreadType, +#endif + KernelMode, (PVOID *)&ThreadData->Thread, NULL); ok_eq_hex(Status, STATUS_SUCCESS); return KeWaitForSingleObject(&ThreadData->OutEvent, Executive, KernelMode, FALSE, Timeout); diff --git a/rostests/kmtests/ntos_mm/MmSection.c b/rostests/kmtests/ntos_mm/MmSection.c index 7fdc12cc821..e465721d0b7 100644 --- a/rostests/kmtests/ntos_mm/MmSection.c +++ b/rostests/kmtests/ntos_mm/MmSection.c @@ -428,7 +428,13 @@ START_TEST(MmSection) if (!skip(Status == STATUS_SUCCESS && FileHandle1 != NULL, "Failed to open file 1\n")) { - Status = ObReferenceObjectByHandle(FileHandle1, FILE_READ_DATA | FILE_WRITE_DATA, IoFileObjectType, KernelMode, (PVOID *)&FileObject1, NULL); + Status = ObReferenceObjectByHandle(FileHandle1, FILE_READ_DATA | FILE_WRITE_DATA, +#ifdef _PROPER_NT_EXPORTS + *IoFileObjectType, +#else + IoFileObjectType, +#endif + KernelMode, (PVOID *)&FileObject1, NULL); ok_eq_hex(Status, STATUS_SUCCESS); ok(FileObject1 != NULL, "FileObject1 is NULL\n"); CheckObject(FileHandle1, 3L, 1L); @@ -436,7 +442,13 @@ START_TEST(MmSection) if (!skip(Status == STATUS_SUCCESS && FileHandle2 != NULL, "Failed to open file 2\n")) { - Status = ObReferenceObjectByHandle(FileHandle2, FILE_READ_DATA | FILE_WRITE_DATA, IoFileObjectType, KernelMode, (PVOID *)&FileObject2, NULL); + Status = ObReferenceObjectByHandle(FileHandle2, FILE_READ_DATA | FILE_WRITE_DATA, +#ifdef _PROPER_NT_EXPORTS + *IoFileObjectType, +#else + IoFileObjectType, +#endif + KernelMode, (PVOID *)&FileObject2, NULL); ok_eq_hex(Status, STATUS_SUCCESS); ok(FileObject2 != NULL, "FileObject2 is NULL\n"); } diff --git a/rostests/kmtests/ntos_mm/ZwAllocateVirtualMemory.c b/rostests/kmtests/ntos_mm/ZwAllocateVirtualMemory.c index 67a8ec249fa..2d7b7b74824 100644 --- a/rostests/kmtests/ntos_mm/ZwAllocateVirtualMemory.c +++ b/rostests/kmtests/ntos_mm/ZwAllocateVirtualMemory.c @@ -437,7 +437,13 @@ SystemProcessTest(VOID) goto cleanup; } - Status = ObReferenceObjectByHandle(Thread1, THREAD_ALL_ACCESS, PsThreadType, KernelMode, &ThreadObjects[0], NULL); + Status = ObReferenceObjectByHandle(Thread1, THREAD_ALL_ACCESS, +#ifdef _PROPER_NT_EXPORTS + *PsThreadType, +#else + PsThreadType, +#endif + KernelMode, &ThreadObjects[0], NULL); if (!NT_SUCCESS(Status)) { trace("error referencing thread1\n"); @@ -451,7 +457,13 @@ SystemProcessTest(VOID) goto cleanup; } - Status = ObReferenceObjectByHandle(Thread2, THREAD_ALL_ACCESS, PsThreadType, KernelMode, &ThreadObjects[1], NULL); + Status = ObReferenceObjectByHandle(Thread2, THREAD_ALL_ACCESS, +#ifdef _PROPER_NT_EXPORTS + *PsThreadType, +#else + PsThreadType, +#endif + KernelMode, &ThreadObjects[1], NULL); if (!NT_SUCCESS(Status)) { trace("error referencing thread2\n"); diff --git a/rostests/kmtests/ntos_mm/ZwCreateSection.c b/rostests/kmtests/ntos_mm/ZwCreateSection.c index 0a4ba5993dd..55720dab999 100644 --- a/rostests/kmtests/ntos_mm/ZwCreateSection.c +++ b/rostests/kmtests/ntos_mm/ZwCreateSection.c @@ -464,7 +464,13 @@ BasicBehaviorChecks(HANDLE FileHandle) /* FIXME: Null pointer dereference. See ROSTESTS-108 */ #ifdef ROSTESTS_108_FIXED //mimic lack of section support for a particular file as well. - Status = ObReferenceObjectByHandle(FileHandle, STANDARD_RIGHTS_ALL, IoFileObjectType, KernelMode, (PVOID *)&FileObject, NULL); + Status = ObReferenceObjectByHandle(FileHandle, STANDARD_RIGHTS_ALL, +#ifdef _PROPER_NT_EXPORTS + *IoFileObjectType, +#else + IoFileObjectType, +#endif + KernelMode, (PVOID *)&FileObject, NULL); if (!skip(NT_SUCCESS(Status), "Cannot reference object by handle\n")) { PSECTION_OBJECT_POINTERS Pointers = FileObject->SectionObjectPointer; diff --git a/rostests/kmtests/ntos_mm/ZwMapViewOfSection.c b/rostests/kmtests/ntos_mm/ZwMapViewOfSection.c index cd7f4e45a7c..3a4bcad2336 100644 --- a/rostests/kmtests/ntos_mm/ZwMapViewOfSection.c +++ b/rostests/kmtests/ntos_mm/ZwMapViewOfSection.c @@ -390,7 +390,13 @@ BehaviorChecks(HANDLE FileHandleReadOnly, HANDLE FileHandleWriteOnly) Status = PsCreateSystemThread(&SysThreadHandle, STANDARD_RIGHTS_ALL, &ObjectAttributes, NULL, NULL, SystemProcessWorker, NULL); if (!skip(NT_SUCCESS(Status), "Error creating System thread. Error = %p\n", Status)) { - Status = ObReferenceObjectByHandle(SysThreadHandle, THREAD_ALL_ACCESS, PsThreadType, KernelMode, &ThreadObject, NULL); + Status = ObReferenceObjectByHandle(SysThreadHandle, THREAD_ALL_ACCESS, +#ifdef _PROPER_NT_EXPORTS + *PsThreadType, +#else + PsThreadType, +#endif + KernelMode, &ThreadObject, NULL); if (!skip(NT_SUCCESS(Status), "Error getting reference to System thread when testing file-backed section\n")) { //wait until the system thread actually terminates @@ -515,7 +521,13 @@ PageFileBehaviorChecks() if (!skip(NT_SUCCESS(Status), "Error creating System thread. Error = %p\n", Status)) { - Status = ObReferenceObjectByHandle(SysThreadHandle, THREAD_ALL_ACCESS, PsThreadType, KernelMode, &ThreadObject, NULL); + Status = ObReferenceObjectByHandle(SysThreadHandle, THREAD_ALL_ACCESS, +#ifdef _PROPER_NT_EXPORTS + *PsThreadType, +#else + PsThreadType, +#endif + KernelMode, &ThreadObject, NULL); if (!skip(NT_SUCCESS(Status), "Error getting reference to System thread when testing pagefile-backed section\n")) { //wait until the system thread actually terminates diff --git a/rostests/kmtests/ntos_ob/ObTypes.c b/rostests/kmtests/ntos_ob/ObTypes.c index 00784549f2d..5f2e14fc3b1 100644 --- a/rostests/kmtests/ntos_ob/ObTypes.c +++ b/rostests/kmtests/ntos_ob/ObTypes.c @@ -164,6 +164,40 @@ TestObjectTypes(VOID) SeDefaultObjectMethod = ObpTypeObjectType->TypeInfo.SecurityProcedure; ok(SeDefaultObjectMethod != NULL, "No SeDefaultObjectMethod\n"); +#ifdef _PROPER_NT_EXPORTS +#define ExSemaphoreObjectType *ExSemaphoreObjectType +#define SeTokenObjectType *SeTokenObjectType +#define PsProcessType *PsProcessType +#define PsThreadType *PsThreadType +#define ExEventObjectType *ExEventObjectType +#define IoFileObjectType *IoFileObjectType +#endif +#ifdef _PROPER_NT_NDK_EXPORTS +#define ObpTypeObjectType *ObpTypeObjectType +#define ObpDirectoryObjectType *ObpDirectoryObjectType +#define ObpSymbolicLinkObjectType *ObpSymbolicLinkObjectType +#define PsJobType *PsJobType +#define DbgkDebugObjectType *DbgkDebugObjectType +#define ExEventPairObjectType *ExEventPairObjectType +#define ExMutantObjectType *ExMutantObjectType +#define ExCallbackObjectType *ExCallbackObjectType +#define ExTimerObjectType *ExTimerObjectType +#define ExProfileObjectType *ExProfileObjectType +#define ExpKeyedEventObjectType *ExpKeyedEventObjectType +#define ExWindowStationObjectType *ExWindowStationObjectType +#define ExDesktopObjectType *ExDesktopObjectType +#define MmSectionObjectType *MmSectionObjectType +#define CmpKeyObjectType *CmpKeyObjectType +#define LpcPortObjectType *LpcPortObjectType +#define LpcWaitablePortObjectType *LpcWaitablePortObjectType +#define IoAdapterObjectType *IoAdapterObjectType +#define IoControllerObjectType *IoControllerObjectType +#define IoDeviceObjectType *IoDeviceObjectType +#define IoDriverObjectType *IoDriverObjectType +#define IoCompletionObjectType *IoCompletionObjectType +#define WmipGuidObjectType *WmipGuidObjectType +#endif + Index = 1; CheckObjectType(Type, ObpTypeObjectType, OBT_MAINTAIN_TYPE_LIST | OBT_CUSTOM_KEY, 0x100, 0x020000, 0x020000, 0x020000, 0x0f0001, 0x1f0001); ok_eq_hex(ObpTypeObjectType->Key, TAG('ObjT')); From 8ce24812f86a3bcf79487438fe796a391575f8e8 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sat, 10 May 2014 20:38:26 +0000 Subject: [PATCH 35/92] [CRT] * Update MSVCRT_CHECK_PMT and co. * Update the use of MSVCRT_INVALID_PMT throughout our code. * Fix the return of _ltoa_s() in some case. Fixes a couple msvcrt:string tests. CORE-8080 svn path=/trunk/; revision=63223 --- reactos/lib/sdk/crt/include/internal/safecrt.h | 10 ++++++---- reactos/lib/sdk/crt/printf/_sxprintf.c | 2 +- reactos/lib/sdk/crt/stdio/file.c | 6 ++---- reactos/lib/sdk/crt/stdlib/senv.c | 3 +-- reactos/lib/sdk/crt/string/itoa.c | 15 +++------------ reactos/lib/sdk/crt/string/itow.c | 15 +++------------ reactos/lib/sdk/crt/string/strerror.c | 3 +-- reactos/lib/sdk/crt/string/wcs.c | 4 ++-- reactos/lib/sdk/crt/time/gmtime.c | 12 ++++-------- reactos/lib/sdk/crt/wine/heap.c | 3 +-- 10 files changed, 24 insertions(+), 49 deletions(-) diff --git a/reactos/lib/sdk/crt/include/internal/safecrt.h b/reactos/lib/sdk/crt/include/internal/safecrt.h index ad948fe0c92..ec5c93038a4 100644 --- a/reactos/lib/sdk/crt/include/internal/safecrt.h +++ b/reactos/lib/sdk/crt/include/internal/safecrt.h @@ -11,10 +11,12 @@ void _invalid_parameter( uintptr_t pReserved); #ifndef _LIBCNT_ -#define MSVCRT_INVALID_PMT(x) _invalid_parameter(NULL, NULL, NULL, 0, 0) -#define MSVCRT_CHECK_PMT(x) ((x) || (MSVCRT_INVALID_PMT(0),0)) +#define MSVCRT_INVALID_PMT(x,err) (*_errno() = (err), _invalid_parameter(NULL, NULL, NULL, 0, 0)) +#define MSVCRT_CHECK_PMT_ERR(x,err) ((x) || (MSVCRT_INVALID_PMT( 0, (err) ), 0)) +#define MSVCRT_CHECK_PMT(x) MSVCRT_CHECK_PMT_ERR((x), EINVAL) #else /* disable secure crt parameter checks */ -#define MSVCRT_CHECK_PMT -#define MSVCRT_INVALID_PMT +#define MSVCRT_INVALID_PMT(x,err) +#define MSVCRT_CHECK_PMT_ERR(x,err) +#define MSVCRT_CHECK_PMT(x) (x) #endif diff --git a/reactos/lib/sdk/crt/printf/_sxprintf.c b/reactos/lib/sdk/crt/printf/_sxprintf.c index 57d7f4ff336..46667195314 100644 --- a/reactos/lib/sdk/crt/printf/_sxprintf.c +++ b/reactos/lib/sdk/crt/printf/_sxprintf.c @@ -104,7 +104,7 @@ _sxprintf( if (count != _TRUNCATE) { /* We can't, invoke invalid parameter handler */ - MSVCRT_INVALID_PMT("Buffer is too small"); + MSVCRT_INVALID_PMT("Buffer is too small", ERANGE); /* If we came back, set the buffer to an empty string */ *buffer = 0; diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index 52e7f09f244..0159d96d7bd 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -1553,8 +1553,7 @@ int CDECL _sopen_s( int *fd, const char *path, int oflags, int shflags, int pmod if (!fd) { - MSVCRT_INVALID_PMT("null out fd pointer"); - *_errno() = EINVAL; + MSVCRT_INVALID_PMT("null out fd pointer", EINVAL); return EINVAL; } @@ -1672,8 +1671,7 @@ int CDECL _wsopen_s( int *fd, const wchar_t* path, int oflags, int shflags, int if (!fd) { - MSVCRT_INVALID_PMT("null out fd pointer"); - *_errno() = EINVAL; + MSVCRT_INVALID_PMT("null out fd pointer", EINVAL); return EINVAL; } diff --git a/reactos/lib/sdk/crt/stdlib/senv.c b/reactos/lib/sdk/crt/stdlib/senv.c index a7a45438b2c..ea7cafd309e 100644 --- a/reactos/lib/sdk/crt/stdlib/senv.c +++ b/reactos/lib/sdk/crt/stdlib/senv.c @@ -109,8 +109,7 @@ int _tsearchenv_s(const _TCHAR* file, const _TCHAR* env, _TCHAR *buf, size_t cou { if (_tcslen(curPath) + 1 > count) { - MSVCRT_INVALID_PMT("buf[count] is too small"); - *_errno() = ERANGE; + MSVCRT_INVALID_PMT("buf[count] is too small", ERANGE); return ERANGE; } _tcscpy(buf, curPath); diff --git a/reactos/lib/sdk/crt/string/itoa.c b/reactos/lib/sdk/crt/string/itoa.c index e2f5918c13d..0d6e0e575c2 100644 --- a/reactos/lib/sdk/crt/string/itoa.c +++ b/reactos/lib/sdk/crt/string/itoa.c @@ -113,10 +113,7 @@ int CDECL _i64toa_s(__int64 value, char *str, size_t size, int radix) *p++ = *pos--; str[0] = '\0'; - MSVCRT_INVALID_PMT("str[size] is too small"); -#ifndef _LIBCNT_ - *_errno() = ERANGE; -#endif + MSVCRT_INVALID_PMT("str[size] is too small", ERANGE); return ERANGE; } @@ -182,10 +179,7 @@ int CDECL _ui64toa_s(unsigned __int64 value, char *str, }while(value != 0); if((unsigned)(buffer-pos+65) > size) { - MSVCRT_INVALID_PMT("str[size] is too small"); -#ifndef _LIBCNT_ - *_errno() = EINVAL; -#endif + MSVCRT_INVALID_PMT("str[size] is too small", EINVAL); return EINVAL; } @@ -322,10 +316,7 @@ int CDECL _ltoa_s(long value, char *str, size_t size, int radix) *p++ = *pos--; str[0] = '\0'; - MSVCRT_INVALID_PMT("str[size] is too small"); -#ifndef _LIBCNT_ - *_errno() = EINVAL; -#endif + MSVCRT_INVALID_PMT("str[size] is too small", ERANGE); return ERANGE; } diff --git a/reactos/lib/sdk/crt/string/itow.c b/reactos/lib/sdk/crt/string/itow.c index c18b679665a..204bcf7e3c6 100644 --- a/reactos/lib/sdk/crt/string/itow.c +++ b/reactos/lib/sdk/crt/string/itow.c @@ -123,11 +123,8 @@ _i64tow_s(__int64 value, wchar_t *str, size_t size, int radix) for (pos = buffer + 63, i = 0; i < size; i++) *p++ = *pos--; - MSVCRT_INVALID_PMT("str[size] is too small"); + MSVCRT_INVALID_PMT("str[size] is too small", ERANGE); str[0] = '\0'; -#ifndef _LIBCNT_ - *_errno() = ERANGE; -#endif return ERANGE; } @@ -195,10 +192,7 @@ _ui64tow_s( unsigned __int64 value, wchar_t *str, } while (value != 0); if((size_t)(buffer-pos+65) > size) { - MSVCRT_INVALID_PMT("str[size] is too small"); -#ifndef _LIBCNT_ - *_errno() = EINVAL; -#endif + MSVCRT_INVALID_PMT("str[size] is too small", EINVAL); return EINVAL; } @@ -338,11 +332,8 @@ _ltow_s(long value, wchar_t *str, size_t size, int radix) for (pos = buffer + 31, i = 0; i < size; i++) *p++ = *pos--; - MSVCRT_INVALID_PMT("str[size] is too small"); + MSVCRT_INVALID_PMT("str[size] is too small", ERANGE); str[0] = '\0'; -#ifndef _LIBCNT_ - *_errno() = ERANGE; -#endif return ERANGE; } diff --git a/reactos/lib/sdk/crt/string/strerror.c b/reactos/lib/sdk/crt/string/strerror.c index 8d0eced6a8b..a583c22c7bd 100644 --- a/reactos/lib/sdk/crt/string/strerror.c +++ b/reactos/lib/sdk/crt/string/strerror.c @@ -204,8 +204,7 @@ int CDECL __wcserror_s(wchar_t* buffer, size_t nc, const wchar_t* str) if (str && *str) len += lstrlenW(str) + 2 /* ': ' */; if (len > nc) { - MSVCRT_INVALID_PMT("buffer[nc] is too small"); - _set_errno(ERANGE); + MSVCRT_INVALID_PMT("buffer[nc] is too small", ERANGE); return ERANGE; } if (str && *str) diff --git a/reactos/lib/sdk/crt/string/wcs.c b/reactos/lib/sdk/crt/string/wcs.c index 846179a0589..81adfdb5e46 100644 --- a/reactos/lib/sdk/crt/string/wcs.c +++ b/reactos/lib/sdk/crt/string/wcs.c @@ -432,7 +432,7 @@ INT CDECL wcsncat_s(wchar_t *dst, size_t elem, } if (dststart == elem) { - MSVCRT_INVALID_PMT("dst[elem] is not NULL terminated\n"); + MSVCRT_INVALID_PMT("dst[elem] is not NULL terminated\n", EINVAL); return EINVAL; } @@ -453,7 +453,7 @@ INT CDECL wcsncat_s(wchar_t *dst, size_t elem, dst[dststart+srclen] = '\0'; return ret; } - MSVCRT_INVALID_PMT("dst[elem] is too small"); + MSVCRT_INVALID_PMT("dst[elem] is too small", ERANGE); dst[0] = '\0'; return ERANGE; } diff --git a/reactos/lib/sdk/crt/time/gmtime.c b/reactos/lib/sdk/crt/time/gmtime.c index ad4eafbe46c..314811ac586 100644 --- a/reactos/lib/sdk/crt/time/gmtime.c +++ b/reactos/lib/sdk/crt/time/gmtime.c @@ -126,15 +126,13 @@ _gmtime64_s( __time64_t time = *ptime; if (!ptm) { - _set_errno(ERROR_BAD_COMMAND); - MSVCRT_INVALID_PMT("ptm == NULL"); + MSVCRT_INVALID_PMT("ptm == NULL", ERROR_BAD_COMMAND); return ERROR_BAD_COMMAND; } if (!ptime) { - _set_errno(ERROR_BAD_COMMAND); - MSVCRT_INVALID_PMT("ptime == NULL"); + MSVCRT_INVALID_PMT("ptime == NULL", ERROR_BAD_COMMAND); return ERROR_BAD_COMMAND; } @@ -167,15 +165,13 @@ _gmtime32_s( __time64_t time = *ptime; if (!ptm) { - _set_errno(ERROR_BAD_COMMAND); - MSVCRT_INVALID_PMT("ptm == NULL"); + MSVCRT_INVALID_PMT("ptm == NULL", ERROR_BAD_COMMAND); return ERROR_BAD_COMMAND; } if (!ptime) { - _set_errno(ERROR_BAD_COMMAND); - MSVCRT_INVALID_PMT("ptime == NULL"); + MSVCRT_INVALID_PMT("ptime == NULL", ERROR_BAD_COMMAND); return ERROR_BAD_COMMAND; } diff --git a/reactos/lib/sdk/crt/wine/heap.c b/reactos/lib/sdk/crt/wine/heap.c index b72f63fe6cb..8ee2d1b433f 100644 --- a/reactos/lib/sdk/crt/wine/heap.c +++ b/reactos/lib/sdk/crt/wine/heap.c @@ -603,8 +603,7 @@ int CDECL strncpy_s(char *dest, size_t numberOfElements, return 0; } - MSVCRT_INVALID_PMT("dest[numberOfElements] is too small"); + MSVCRT_INVALID_PMT("dest[numberOfElements] is too small", EINVAL); dest[0] = '\0'; - *_errno() = EINVAL; return EINVAL; } From 94f60baa091fd515b368f1625881e3472da88962 Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Sat, 10 May 2014 21:15:36 +0000 Subject: [PATCH 36/92] [VIDEOPRT] Fix buggy monitor device id decode routine. This patch is dedicated to Christoph von Wittlich. svn path=/trunk/; revision=63224 --- reactos/win32ss/drivers/videoprt/child.c | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/reactos/win32ss/drivers/videoprt/child.c b/reactos/win32ss/drivers/videoprt/child.c index 96df9228212..bfca7069b1d 100644 --- a/reactos/win32ss/drivers/videoprt/child.c +++ b/reactos/win32ss/drivers/videoprt/child.c @@ -20,6 +20,7 @@ */ #include "videoprt.h" +#include #define NDEBUG #include @@ -33,30 +34,24 @@ IntVideoPortGetMonitorId( IN OUT PWCHAR Buffer) { USHORT Manufacturer, Model; - UNICODE_STRING UnicodeModelStr; /* This must be valid to call this function */ ASSERT(ChildExtension->EdidValid); /* 3 letters 5-bit ANSI manufacturer code (big endian) */ - Manufacturer = *(PUSHORT)(&ChildExtension->ChildDescriptor[8]); - /* Letters encoded as A=1 to Z=26 */ - Buffer[0] = (WCHAR)((Manufacturer & 0x7C00) + 'A' - 1); - Buffer[1] = (WCHAR)((Manufacturer & 0x03E0) + 'A' - 1); - Buffer[2] = (WCHAR)((Manufacturer & 0x001F) + 'A' - 1); + Manufacturer = *(PUSHORT)(&ChildExtension->ChildDescriptor[8]); /* Model number (16-bit little endian) */ Model = *(PUSHORT)(&ChildExtension->ChildDescriptor[10]); - /* Use Rtl helper for conversion */ - UnicodeModelStr.Buffer = &Buffer[3]; - UnicodeModelStr.Length = 0; - UnicodeModelStr.MaximumLength = 4 * sizeof(WCHAR); - RtlIntegerToUnicodeString(Model, 16, &UnicodeModelStr); - - /* Terminate it */ - Buffer[7] = UNICODE_NULL; + /* Convert the Monitor ID to a readable form */ + swprintf(Buffer, + L"%C%C%C%04hx", + (WCHAR)((Manufacturer >> 10 & 0x001F) + 'A' - 1), + (WCHAR)((Manufacturer >> 5 & 0x001F) + 'A' - 1), + (WCHAR)((Manufacturer & 0x001F) + 'A' - 1), + Model); /* And we're done */ return TRUE; From c93f8e51f03910973064660c03c3c5c2dbf2f5b7 Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Sun, 11 May 2014 05:04:56 +0000 Subject: [PATCH 37/92] [comctl32] Notify the parent on a return key press. fixes return key in device manager svn path=/trunk/; revision=63225 --- reactos/dll/win32/comctl32/treeview.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/reactos/dll/win32/comctl32/treeview.c b/reactos/dll/win32/comctl32/treeview.c index ec60708de55..73e5ca0a3c9 100644 --- a/reactos/dll/win32/comctl32/treeview.c +++ b/reactos/dll/win32/comctl32/treeview.c @@ -5242,6 +5242,10 @@ TREEVIEW_KeyDown(TREEVIEW_INFO *infoPtr, WPARAM wParam) newSelection = TREEVIEW_GetNextListItem(infoPtr, prevItem); break; + case VK_RETURN: + TREEVIEW_SendSimpleNotify(infoPtr, NM_RETURN); + break; + case VK_HOME: newSelection = infoPtr->root->firstChild; break; From bef8de14c4c0870656e1260e30fb301719191521 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sun, 11 May 2014 10:45:02 +0000 Subject: [PATCH 38/92] [CRT] * Update _ftelli64() * Fixes a couple msvcrt tests. CORE-8080 svn path=/trunk/; revision=63226 --- reactos/lib/sdk/crt/stdio/file.c | 55 ++++++++++++++++++++++---------- 1 file changed, 39 insertions(+), 16 deletions(-) diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index 0159d96d7bd..b35d402b5f0 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -83,6 +83,7 @@ int *__p___mb_cur_max(void); /* values for wxflag in file descriptor */ #define WX_OPEN 0x01 #define WX_ATEOF 0x02 +#define WX_READNL 0x04 /* read started with \n */ #define WX_READEOF 0x04 /* like ATEOF, but for underlying file rather than buffer */ #define WX_READCR 0x08 /* underlying file is at \r */ #define WX_DONTINHERIT 0x10 @@ -2894,8 +2895,6 @@ int CDECL fsetpos(FILE* file, const fpos_t *pos) */ __int64 CDECL _ftelli64(FILE* file) { - /* TODO: just call fgetpos and return lower half of result */ - int off=0; __int64 pos; _lock_file(file); @@ -2905,26 +2904,50 @@ __int64 CDECL _ftelli64(FILE* file) return -1; } if(file->_bufsiz) { - if( file->_flag & _IOWRT ) { - off = file->_ptr - file->_base; + if(file->_flag & _IOWRT) { + pos += file->_ptr - file->_base; + + if(get_ioinfo(file->_file)->wxflag & WX_TEXT) { + char *p; + + for(p=file->_base; p_ptr; p++) + if(*p == '\n') + pos++; + } + } else if(!file->_cnt) { /* nothing to do */ + } else if(_lseeki64(file->_file, 0, SEEK_END)==pos) { + int i; + + pos -= file->_cnt; + if(get_ioinfo(file->_file)->wxflag & WX_TEXT) { + for(i=0; i_cnt; i++) + if(file->_ptr[i] == '\n') + pos--; + } } else { - off = -file->_cnt; - if (get_ioinfo(file->_file)->wxflag & WX_TEXT) { - /* Black magic correction for CR removal */ - int i; - for (i=0; i_cnt; i++) { - if (file->_ptr[i] == '\n') - off--; - } - /* Black magic when reading CR at buffer boundary*/ - if(get_ioinfo(file->_file)->wxflag & WX_READCR) - off--; + char *p; + + if(_lseeki64(file->_file, pos, SEEK_SET) != pos) { + _unlock_file(file); + return -1; + } + + pos -= file->_bufsiz; + pos += file->_ptr - file->_base; + + if(get_ioinfo(file->_file)->wxflag & WX_TEXT) { + if(get_ioinfo(file->_file)->wxflag & WX_READNL) + pos--; + + for(p=file->_base; p_ptr; p++) + if(*p == '\n') + pos++; } } } _unlock_file(file); - return off + pos; + return pos; } /********************************************************************* From 83effd53affda0e7b5ff7991c259c071606a35e0 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sun, 11 May 2014 11:32:19 +0000 Subject: [PATCH 39/92] [CRT] * Update _open_osfhandle() * Fixes a couple msvcrt tests. CORE-8080 svn path=/trunk/; revision=63227 --- reactos/lib/sdk/crt/stdio/file.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index b35d402b5f0..31502aa103e 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -85,9 +85,11 @@ int *__p___mb_cur_max(void); #define WX_ATEOF 0x02 #define WX_READNL 0x04 /* read started with \n */ #define WX_READEOF 0x04 /* like ATEOF, but for underlying file rather than buffer */ +#define WX_PIPE 0x08 #define WX_READCR 0x08 /* underlying file is at \r */ #define WX_DONTINHERIT 0x10 #define WX_APPEND 0x20 +#define WX_NOSEEK 0x40 #define WX_TEXT 0x80 /* FIXME: this should be allocated dynamically */ @@ -1836,6 +1838,7 @@ int CDECL _wcreat(const wchar_t *path, int flags) */ int CDECL _open_osfhandle(intptr_t handle, int oflags) { + DWORD flags; int fd; /* _O_RDONLY (0) always matches, so set the read flag @@ -1847,8 +1850,23 @@ int CDECL _open_osfhandle(intptr_t handle, int oflags) if (!(oflags & (_O_BINARY | _O_TEXT))) oflags |= _O_BINARY; - fd = alloc_fd((HANDLE)handle, split_oflags(oflags)); - TRACE(":handle (%ld) fd (%d) flags 0x%08x\n", handle, fd, oflags); + flags = GetFileType((HANDLE)handle); + if (flags==FILE_TYPE_UNKNOWN && GetLastError()!=NO_ERROR) + { + _dosmaperr(GetLastError()); + return -1; + } + + if (flags == FILE_TYPE_CHAR) + flags = WX_NOSEEK; + else if (flags == FILE_TYPE_PIPE) + flags = WX_PIPE; + else + flags = 0; + flags |= split_oflags(oflags); + + fd = alloc_fd((HANDLE)handle, flags); + TRACE(":handle (%ld) fd (%d) flags 0x%08x\n", handle, fd, flags); return fd; } From da76ed637b602b616b9e67b7010926f8e2bf23ad Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sun, 11 May 2014 13:02:16 +0000 Subject: [PATCH 40/92] [RAPPS] * Italian translation update by Marco Maria Emanuele Bartucci. * A small Polish translation update from wojo664. CORE-8086 #resolve #Committed in r63228. Thanks! svn path=/trunk/; revision=63228 --- reactos/base/applications/rapps/rapps/ac97forvirtualbox.txt | 5 +++++ reactos/base/applications/rapps/rapps/alreader.txt | 2 +- reactos/base/applications/rapps/rapps/ants.txt | 3 +++ reactos/base/applications/rapps/rapps/audiograbber.txt | 3 +++ reactos/base/applications/rapps/rapps/bochs.txt | 3 +++ reactos/base/applications/rapps/rapps/boundaround.txt | 4 ++++ reactos/base/applications/rapps/rapps/christmasbound.txt | 3 +++ reactos/base/applications/rapps/rapps/codeblocks.txt | 3 +++ reactos/base/applications/rapps/rapps/codeblocks_gcc.txt | 3 +++ reactos/base/applications/rapps/rapps/codeblocks_gcc_2.txt | 3 +++ reactos/base/applications/rapps/rapps/devcpp_mingw32.txt | 3 +++ .../base/applications/rapps/rapps/devcpp_tdm_gcc_x64.txt | 3 +++ reactos/base/applications/rapps/rapps/fira.txt | 4 ++++ reactos/base/applications/rapps/rapps/globulation2.txt | 2 +- reactos/base/applications/rapps/rapps/hxd.txt | 3 +++ reactos/base/applications/rapps/rapps/lbreakout2.txt | 2 +- reactos/base/applications/rapps/rapps/lgeneral.txt | 2 +- reactos/base/applications/rapps/rapps/lmarbles.txt | 2 +- reactos/base/applications/rapps/rapps/mpxplay.txt | 3 +++ reactos/base/applications/rapps/rapps/openoffice.txt | 1 + reactos/base/applications/rapps/rapps/openoffice2.4.txt | 1 + reactos/base/applications/rapps/rapps/openttd.txt | 2 +- reactos/base/applications/rapps/rapps/opera.txt | 2 +- reactos/base/applications/rapps/rapps/opera9.txt | 2 +- reactos/base/applications/rapps/rapps/peazip.txt | 6 ++++++ reactos/base/applications/rapps/rapps/photofiltre.txt | 3 +++ reactos/base/applications/rapps/rapps/ptanks.txt | 3 +++ reactos/base/applications/rapps/rapps/qb64sdl.txt | 3 +++ reactos/base/applications/rapps/rapps/qmmp.txt | 3 +++ reactos/base/applications/rapps/rapps/remood.txt | 3 +++ reactos/base/applications/rapps/rapps/reshack.txt | 3 +++ reactos/base/applications/rapps/rapps/rocks.txt | 3 +++ reactos/base/applications/rapps/rapps/sambatng.txt | 2 +- reactos/base/applications/rapps/rapps/sbforvmware.txt | 2 +- reactos/base/applications/rapps/rapps/scite.txt | 2 +- reactos/base/applications/rapps/rapps/scummvm.txt | 4 ++-- reactos/base/applications/rapps/rapps/seamonkey.txt | 2 +- reactos/base/applications/rapps/rapps/snoopy.txt | 3 +++ reactos/base/applications/rapps/rapps/stamina.txt | 3 +++ reactos/base/applications/rapps/rapps/sumatrapdf.txt | 2 +- reactos/base/applications/rapps/rapps/summerbound.txt | 3 +++ reactos/base/applications/rapps/rapps/superdxb.txt | 3 +++ reactos/base/applications/rapps/rapps/supertux.txt | 2 +- reactos/base/applications/rapps/rapps/thunderbird.txt | 2 +- reactos/base/applications/rapps/rapps/thunderbird3.txt | 2 +- reactos/base/applications/rapps/rapps/ultravnc.txt | 2 +- reactos/base/applications/rapps/rapps/zaz.txt | 2 +- 47 files changed, 107 insertions(+), 20 deletions(-) diff --git a/reactos/base/applications/rapps/rapps/ac97forvirtualbox.txt b/reactos/base/applications/rapps/rapps/ac97forvirtualbox.txt index b760df4ab22..4c299243a9d 100644 --- a/reactos/base/applications/rapps/rapps/ac97forvirtualbox.txt +++ b/reactos/base/applications/rapps/rapps/ac97forvirtualbox.txt @@ -20,6 +20,11 @@ Name = AC97 Treiber für VirtualBox Licence = Unbekannt Description = Entpacken in das "ReactOS"-Verzeichnis und ReactOS zweimal neustarten. +[Section.0410] +Name = Driver AC97 per VirtualBox +License = Sconosciuta +Descrizione = Estrarre nella cartella "ReactOS" e poi riavviare ReactOs due volte. + [Section.040a] Name = Driver AC97 para VirtualBox Licence = Desconocida diff --git a/reactos/base/applications/rapps/rapps/alreader.txt b/reactos/base/applications/rapps/rapps/alreader.txt index 4dd4561fcff..c431481c7d1 100644 --- a/reactos/base/applications/rapps/rapps/alreader.txt +++ b/reactos/base/applications/rapps/rapps/alreader.txt @@ -13,7 +13,7 @@ CDPath = none Description = Ein FB2 eBook Reader. Unterstützung für folgende Formate: fb2, fbz, txt, epub, html, doc, docx, odt, rtf, mobi, prc (PalmDoc), tcr. ZIP und GZ Archive werden ebenfalls unterstützt. [Section.0410] -Description = Un eBook Reader. +Description = Un eBook Reader. Legge i formati fb2, fbz, txt, epub, html, doc, docx, odt, rtf, mobi, prc (PalmDoc), tcr. Supporta gli archivi ZIP e GZ. [Section.0415] Description = Czytnik eBooków. Obsługuje formaty: fb2, fbz, txt, epub, html, doc, docx, odt, rtf, mobi, prc (PalmDoc), tcr. Obsługiwane są także pliki w archivach ZIP i GZ. diff --git a/reactos/base/applications/rapps/rapps/ants.txt b/reactos/base/applications/rapps/rapps/ants.txt index 629b5484da0..b77198d0688 100644 --- a/reactos/base/applications/rapps/rapps/ants.txt +++ b/reactos/base/applications/rapps/rapps/ants.txt @@ -14,6 +14,9 @@ CDPath = none [Section.0407] Description = Ein strategisches Kartenspiel. Sie bauen Ihr eigenes Schloss und versuchen, die gegnerische Burg zu zerstören. Sie benötigen ein ZIP-Programm, um es zu installieren. +[Section.0410] +Description = Un gioco di carte strategico. Costruisci il tuo castello e prova a distruggere il castello nemico. Necessita di un programma di estrazione ZIP per essere installato. + [Section.0415] Description = Karciana gra strategiczna. Budujesz zamek, przy okazji próbujesz zniszczyć zamek wroga. Wymaga programu archiwizującego do wypakowania. diff --git a/reactos/base/applications/rapps/rapps/audiograbber.txt b/reactos/base/applications/rapps/rapps/audiograbber.txt index 6a2d08aebe7..4f808d0c28f 100644 --- a/reactos/base/applications/rapps/rapps/audiograbber.txt +++ b/reactos/base/applications/rapps/rapps/audiograbber.txt @@ -14,6 +14,9 @@ CDPath = none [Section.0407] Description = Ein sehr guter CD-Ripper/Audio-Datei-Konverter. +[Section.0410] +Description = Un buon CD Ripper/Convertitore di file Audio. + [Section.040a] Description = Un buen CD Ripper/ conversor de archivos de audio. diff --git a/reactos/base/applications/rapps/rapps/bochs.txt b/reactos/base/applications/rapps/rapps/bochs.txt index 4707c75bbca..df1ca70b8d3 100644 --- a/reactos/base/applications/rapps/rapps/bochs.txt +++ b/reactos/base/applications/rapps/rapps/bochs.txt @@ -15,6 +15,9 @@ CDPath = none [Section.0407] Description = Bochs ist ein portabler Open-Source IA-32 (x86) PC-Emulator geschrieben in C++, der auf den meisten populären Plattformen läuft. +[Section.0410] +Description = Bochs è un emulatore pc IA-32 (x86) scritto in C++ open source e portatile, che può essere eseguito sulle piattaformi più popolari. + [Section.0415] Description = Bochs to przenośny (portable) emulator platformy IA-32 (x86) napisany w C++, działa na wielu popularnych platformach sprzętowych. diff --git a/reactos/base/applications/rapps/rapps/boundaround.txt b/reactos/base/applications/rapps/rapps/boundaround.txt index 6c50c4304cf..3e0deabc360 100644 --- a/reactos/base/applications/rapps/rapps/boundaround.txt +++ b/reactos/base/applications/rapps/rapps/boundaround.txt @@ -13,6 +13,10 @@ CDPath = none [Section.0407] Description = Ein Spiel, ähnlich zu Frozen Fruits. +[Section.0410] +Name = Bound Around (Versione di prova) +Description = Un gioco simile a Frozen Fruits. + [Section.041f] Name = Bound Around (Göstermelik) Licence = Kısıtlı diff --git a/reactos/base/applications/rapps/rapps/christmasbound.txt b/reactos/base/applications/rapps/rapps/christmasbound.txt index dac37a48392..e9902b65bda 100644 --- a/reactos/base/applications/rapps/rapps/christmasbound.txt +++ b/reactos/base/applications/rapps/rapps/christmasbound.txt @@ -14,6 +14,9 @@ CDPath = none [Section.0407] Description = Ein Spiel, ähnlich zu Frozen Fruits. +[Section.0410] +Description = Un gioco simile a Frozen Fuits. + [Section.041f] Licence = Ücretsiz Description = Frozen Fruits'e benzeyen bir oyun. diff --git a/reactos/base/applications/rapps/rapps/codeblocks.txt b/reactos/base/applications/rapps/rapps/codeblocks.txt index a21ed29d735..928f99b23ed 100644 --- a/reactos/base/applications/rapps/rapps/codeblocks.txt +++ b/reactos/base/applications/rapps/rapps/codeblocks.txt @@ -14,6 +14,9 @@ CDPath = none [Section.0407] Description = Eine quelloffene, plattformübergreifende, mächtige IDE. Diese enthält keinen Compiler. +[Section.0410] +Description = Un IDE potente, open source, multipiattaforma. Non contiene un compilatore. + [Section.041f] Name = Code::Blocks (Derleyicisiz) Description = Açık kaynak, çapraz platform, güçlü bir tümleşik geliştirme ortamı. Bir derleyici içermez. diff --git a/reactos/base/applications/rapps/rapps/codeblocks_gcc.txt b/reactos/base/applications/rapps/rapps/codeblocks_gcc.txt index 8f0f87d8367..5f9e72312d7 100644 --- a/reactos/base/applications/rapps/rapps/codeblocks_gcc.txt +++ b/reactos/base/applications/rapps/rapps/codeblocks_gcc.txt @@ -14,6 +14,9 @@ CDPath = none [Section.0407] Description = Eine quelloffene, plattformübergreifende, mächtige IDE. Diese enthält den TDM-GCC (version 4.7.1, 32 bit) Compiler. +[Section.0410] +Description = Un IDE potente, open source, multipiattaforma. Contiene il compilatore TDM-GCC (versione 4.7.1, 32 bit). + [Section.041f] Name = Code::Blocks TDM-GCC (sürüm 4.7.1, 32 bitlik) Description = Açık kaynak, çapraz platform, güçlü bir tümleşik geliştirme ortamı. TDM-GCC (sürüm 4.7.1, 32 bitlik) derleyicisini içerir. diff --git a/reactos/base/applications/rapps/rapps/codeblocks_gcc_2.txt b/reactos/base/applications/rapps/rapps/codeblocks_gcc_2.txt index 20e15bf5dff..7ff4888a42a 100644 --- a/reactos/base/applications/rapps/rapps/codeblocks_gcc_2.txt +++ b/reactos/base/applications/rapps/rapps/codeblocks_gcc_2.txt @@ -14,6 +14,9 @@ CDPath = none [Section.0407] Description = Eine quelloffene, plattformübergreifende, mächtige IDE. Diese enthät den TDM-GCC (version 4.8.1, 32 bit) Compiler. +[Section.0410] +Description = Un IDE potente, open source, multipiattaforma. Contiene il compilatore TDM-GCC (versione 4.8.1, 32 bit). + [Section.041f] Name = Code::Blocks TDM-GCC (sürüm 4.8.1, 32 bitlik) Description = Açık kaynak, çapraz platform, güçlü bir tümleşik geliştirme ortamı. TDM-GCC (sürüm 4.8.1, 32 bitlik) derleyicisini içerir. diff --git a/reactos/base/applications/rapps/rapps/devcpp_mingw32.txt b/reactos/base/applications/rapps/rapps/devcpp_mingw32.txt index de51e041100..4df995849b7 100644 --- a/reactos/base/applications/rapps/rapps/devcpp_mingw32.txt +++ b/reactos/base/applications/rapps/rapps/devcpp_mingw32.txt @@ -14,6 +14,9 @@ CDPath = none [Section.0407] Description = Eine gepflegte Version von Dev-C++. Der MinGW32 Compiler liegt bei. +[Section.0410] +Description = Una versione mantenuta di Dev-C++. Contiene il compilatore MinGW32. + [Section.041f] Description = Dev-C++'nın sürdürülen bir sürümü. MinGW32 derleyicisini içerir. Size = 60,2 MB diff --git a/reactos/base/applications/rapps/rapps/devcpp_tdm_gcc_x64.txt b/reactos/base/applications/rapps/rapps/devcpp_tdm_gcc_x64.txt index 2761f212b10..31147f635d8 100644 --- a/reactos/base/applications/rapps/rapps/devcpp_tdm_gcc_x64.txt +++ b/reactos/base/applications/rapps/rapps/devcpp_tdm_gcc_x64.txt @@ -14,6 +14,9 @@ CDPath = none [Section.0407] Description = Eine gepflegte Version von Dev-C++. Der 64 bit TDM-GCC Compiler liegt bei. +[Section.0410] +Description = Una versione sostenuta di Dev-C++. Contiene il compilatore a 64bit TDM-GCC. + [Section.041f] Description = Dev-C++'nın sürdürülen bir sürümü. 64 bitlik TDM-GCC derleyicisini içerir. Size = 44,8 MB diff --git a/reactos/base/applications/rapps/rapps/fira.txt b/reactos/base/applications/rapps/rapps/fira.txt index b27dee4a663..bdd05ab31ee 100644 --- a/reactos/base/applications/rapps/rapps/fira.txt +++ b/reactos/base/applications/rapps/rapps/fira.txt @@ -16,6 +16,10 @@ CDPath = none Licence = Unbekannt Description = Mozilla Fira Font Pack, Beinhaltet Mono und Sans Schriften. Bitte in den "ReactOS" Ordner entpacken. +[Section.0410] +Licence = Sconosciuta +Description = Fira Font Pack di Mozilla, Include i font Mono e Sans. Estrare nella cartella "ReactOS". + [Section.0415] Description = Pakiet czcionek Mozilla Fira Font, zawiera czcionki Mono i Sans. Wypakuj do folderu "ReactOS". Licence = Nieznana diff --git a/reactos/base/applications/rapps/rapps/globulation2.txt b/reactos/base/applications/rapps/rapps/globulation2.txt index 4ecca2c89ca..b0defe38e35 100644 --- a/reactos/base/applications/rapps/rapps/globulation2.txt +++ b/reactos/base/applications/rapps/rapps/globulation2.txt @@ -15,7 +15,7 @@ CDPath = none Description = Globulation 2 ist ein Echtzeitstrategiespiel. Das Spiel vereinfacht das Mikromanagement, indem es Einheiten automatisch mit Aufträgen versieht. [Section.0410] -Description = Globulation 2 è un gioco di strategia in tempo reale. +Description = Globulation 2 è un gioco di strategia in tempo reale. Il gioco minimizza la supervisone eccessiva assegnando in automatico compiti alle unità. [Section.0415] Description = Globulation 2 to gra strategiczna czasu rzeczywistego. Gra minimalizuje zarządzanie automatycznie przydzielając zadania jednostkom. diff --git a/reactos/base/applications/rapps/rapps/hxd.txt b/reactos/base/applications/rapps/rapps/hxd.txt index 9e54d7a5c43..bab2aeccf74 100644 --- a/reactos/base/applications/rapps/rapps/hxd.txt +++ b/reactos/base/applications/rapps/rapps/hxd.txt @@ -21,6 +21,9 @@ URLDownload = http://mh-nexus.de/downloads/HxDSetupDE.zip [Section.0415] Description = Dobry edytor Hex. Do wypakowania pliku potrzebny jest program archiwizujący np. 7-Zip. +[Section.0410] +Description = Un buon editor hexadecimale. Necessita 7-Zip o un programma simile per estrarlo. + [Section.0418] Licence = Gratuită Description = Un bun editor hexazecimal. E necesar un utilitar de dezarhivare de tip ZIP. diff --git a/reactos/base/applications/rapps/rapps/lbreakout2.txt b/reactos/base/applications/rapps/rapps/lbreakout2.txt index 19c6e54d935..35e3337cf18 100644 --- a/reactos/base/applications/rapps/rapps/lbreakout2.txt +++ b/reactos/base/applications/rapps/rapps/lbreakout2.txt @@ -22,7 +22,7 @@ Description = Clone de casse-brique utilisant la bibliothèque SDL. Size = 3,03 Mo [Section.0410] -Description = Clone di Breakout utilizza librerie SDL. +Description = Clone di Breakout che utilizza librerie SDL. [Section.0413] Description = Breakout kloon, gebruikt SDL. diff --git a/reactos/base/applications/rapps/rapps/lgeneral.txt b/reactos/base/applications/rapps/rapps/lgeneral.txt index 6b25b9112cc..2ab08460291 100644 --- a/reactos/base/applications/rapps/rapps/lgeneral.txt +++ b/reactos/base/applications/rapps/rapps/lgeneral.txt @@ -22,7 +22,7 @@ Description = Clone de Pansez General utilisant la bibliothèque SDL. Size = 1,92 Mo [Section.0410] -Description = Clone di Pansez General utilizza librerie SDL. +Description = Clone di Pansez General che utilizza librerie SDL. [Section.0413] Description = Panzer General kloon, gebruikt SDL. diff --git a/reactos/base/applications/rapps/rapps/lmarbles.txt b/reactos/base/applications/rapps/rapps/lmarbles.txt index be06d7c1c91..aad7984ed28 100644 --- a/reactos/base/applications/rapps/rapps/lmarbles.txt +++ b/reactos/base/applications/rapps/rapps/lmarbles.txt @@ -22,7 +22,7 @@ Description = Clone de Atomix utilisant la bibliothèque SDL. Size = 1,39 Mo [Section.0410] -Description = Clone di Atomix utilizza le librerie SDL. +Description = Clone di Atomix che utilizza le librerie SDL. [Section.0413] Description = Atomix kloon, gebruikt SDL. diff --git a/reactos/base/applications/rapps/rapps/mpxplay.txt b/reactos/base/applications/rapps/rapps/mpxplay.txt index 6246d0a89d4..6121237929f 100644 --- a/reactos/base/applications/rapps/rapps/mpxplay.txt +++ b/reactos/base/applications/rapps/rapps/mpxplay.txt @@ -14,6 +14,9 @@ CDPath = none [Section.0407] Description = Mpxplay ist ein konsolenbasierter 32-bit Audio Player für Windows. Zum extrahieren wird 7-Zip oder ein ähnliches Tool benötigt. +[Section.0410] +Description = Mpxplay è una console audio 32-bit per Windows. Necessita 7-Zip o un programma simile per essere estratto. + [Section.0415] Description = Mpxplay to 32 bitowy odtwarzacz audio (działający w konsoli) dla Windows. Wymaga programu archiwizującego (np. 7-Zip) do wypakowania. diff --git a/reactos/base/applications/rapps/rapps/openoffice.txt b/reactos/base/applications/rapps/rapps/openoffice.txt index 63ae76581f4..6f2709dd259 100644 --- a/reactos/base/applications/rapps/rapps/openoffice.txt +++ b/reactos/base/applications/rapps/rapps/openoffice.txt @@ -30,6 +30,7 @@ Size = 127,22 Mo URLDownload = http://download.sourceforge.net/project/openofficeorg.mirror/4.0.1/binaries/fr/Apache_OpenOffice_4.0.1_Win_x86_install_fr.exe [Section.0410] +Description = La suite di office Open Source. URLSite = http://www.openoffice.org/it/ Size = 132.39 MB URLDownload = http://download.sourceforge.net/project/openofficeorg.mirror/4.0.1/binaries/it/Apache_OpenOffice_4.0.1_Win_x86_install_it.exe diff --git a/reactos/base/applications/rapps/rapps/openoffice2.4.txt b/reactos/base/applications/rapps/rapps/openoffice2.4.txt index 2021f27d423..c52f8dfa605 100644 --- a/reactos/base/applications/rapps/rapps/openoffice2.4.txt +++ b/reactos/base/applications/rapps/rapps/openoffice2.4.txt @@ -31,6 +31,7 @@ URLSite = http://www.openoffice.org/fr/ URLDownload = http://archive.services.openoffice.org/pub/openoffice-archive/localized/fr/2.4.2/OOo_2.4.2_Win32Intel_install_fr.exe [Section.0410] +Description = La suite di office Open Source. Size = 113.79 MB URLSite = http://www.openoffice.org/it/ URLDownload = http://archive.services.openoffice.org/pub/openoffice-archive/localized/it/2.4.3/OOo_2.4.3_Win32Intel_install_it.exe diff --git a/reactos/base/applications/rapps/rapps/openttd.txt b/reactos/base/applications/rapps/rapps/openttd.txt index cca8069cf2a..07de900b2b4 100644 --- a/reactos/base/applications/rapps/rapps/openttd.txt +++ b/reactos/base/applications/rapps/rapps/openttd.txt @@ -22,7 +22,7 @@ Description = Clone open source du moteur de jeu "Transport Tycoon Deluxe". Vous Size = 7,0 Mo [Section.0410] -Description = Clone open source del motore di gioco di "Transport Tycoon Deluxe". Hai bisogno di una copia di Transport Tycoon. +Description = Clone open source del motore di gioco di "Transport Tycoon Deluxe". Hai bisogno di una copia di Transport Tycoon. [Section.0413] Description = Open-bron kloon van de "Transport Tycoon Deluxe" spelletjesmotor. Je hebt een kopij van Transport Tycoon nodig. diff --git a/reactos/base/applications/rapps/rapps/opera.txt b/reactos/base/applications/rapps/rapps/opera.txt index c31b64d2130..cbeb398b718 100644 --- a/reactos/base/applications/rapps/rapps/opera.txt +++ b/reactos/base/applications/rapps/rapps/opera.txt @@ -25,7 +25,7 @@ Description = Le populaire navigateur Opera avec beaucoup de fonctionnalités av Size = 12,56 Mo [Section.0410] -Description = Il famoso browser Opera con features avanzate come un client BitTorrent integrato e la gestione delle Mail. +Description = Il famoso browser Opera con funzionalità avanzate come un client BitTorrent integrato e la gestione delle Mail. [Section.0413] Description = De populaire Opera Browser met vele gevorderde mogelijkheden, inclusief e-mail en BitTorrent afnemers. diff --git a/reactos/base/applications/rapps/rapps/opera9.txt b/reactos/base/applications/rapps/rapps/opera9.txt index 4378e545246..10239e35ddc 100644 --- a/reactos/base/applications/rapps/rapps/opera9.txt +++ b/reactos/base/applications/rapps/rapps/opera9.txt @@ -22,7 +22,7 @@ Description = Le populaire navigateur Opera avec beaucoup de fonctionnalités av Size = 7,21 Mo [Section.0410] -Description = Il famoso browser Opera con features avanzate come un client BitTorrent integrato e la gestione delle Mail. +Description = Il famoso browser Opera con funzionalità avanzate come un client BitTorrent integrato e la gestione delle Mail. [Section.0413] Description = De populaire Opera Browser met vele gevorderde mogelijkheden, inclusief e-mail en BitTorrent afnemers. diff --git a/reactos/base/applications/rapps/rapps/peazip.txt b/reactos/base/applications/rapps/rapps/peazip.txt index 52857bd448c..da3e87252dd 100644 --- a/reactos/base/applications/rapps/rapps/peazip.txt +++ b/reactos/base/applications/rapps/rapps/peazip.txt @@ -14,6 +14,12 @@ CDPath = none [Section.0407] Description = PeaZip ist ein freier, plattformübergreifender, quelloffener Datei- und Archivmanager. Er unterstützt über 150 Archiv-Formate. +[Section.0410] +Description = PeaZip è un manager di file e archivi gratis, multipiattaforma e open source. Supporta oltre 150 formati d'archivio. + +[Section.0415] +PeaZip to darmowy, wieloplatformowy menedżer plików i archiwów, o otwartym źródle. Obsługuje ponad 150 formatów archiwów. + [Section.041f] Description = PeaZip; ücretsiz, çapraz platform, açık kaynak bir kütük ve belgelik yöneticisidir. 150'den çok belgelikleme biçimini destekler. Size = 5,8 MB diff --git a/reactos/base/applications/rapps/rapps/photofiltre.txt b/reactos/base/applications/rapps/rapps/photofiltre.txt index 174a39674e8..fb25fa3b4c5 100644 --- a/reactos/base/applications/rapps/rapps/photofiltre.txt +++ b/reactos/base/applications/rapps/rapps/photofiltre.txt @@ -18,6 +18,9 @@ Description = Version mit Layers, aber eingeschänkter als die Studio-X Version. [Section.0415] Description = Ta wersja obsługuje warstwy, ale ma większe ograniczenia od Studio X. PhotoFiltre Studio to program do retuszu zdjęć. +[Section.0410] +Description = Questa versione con pannelli ma più limitata della versione Studio X. PhotoFiltre Studio è un programma di fotoritocco completo. + [Section.0418] Licence = Gratuită Description = PhotoFiltre Studio este o aplicație completă de retușare a imaginilor. diff --git a/reactos/base/applications/rapps/rapps/ptanks.txt b/reactos/base/applications/rapps/rapps/ptanks.txt index 220317a01fa..afa8745002c 100644 --- a/reactos/base/applications/rapps/rapps/ptanks.txt +++ b/reactos/base/applications/rapps/rapps/ptanks.txt @@ -15,6 +15,9 @@ CDPath = none [Section.0407] Description = Das schnellste Artillerie-Spiel, das Sie jemals gespielt haben. +[Section.0410] +Description = Il gioco d'artiglieria più veloce a cui potrai giocare. + [Section.0415] Description = Szybka gra artyleryjska diff --git a/reactos/base/applications/rapps/rapps/qb64sdl.txt b/reactos/base/applications/rapps/rapps/qb64sdl.txt index ef97238df67..903ac149321 100644 --- a/reactos/base/applications/rapps/rapps/qb64sdl.txt +++ b/reactos/base/applications/rapps/rapps/qb64sdl.txt @@ -14,6 +14,9 @@ CDPath = none [Section.0407] Description = QB64 ist ein Self-Hosting BASIC-Compiler für Microsoft Windows, Linux und Mac OS X, entwickelt, um mit Microsoft QBasic und Microsoft QuickBASIC kompatibel zu sein. Sie müssen 7-Zip oder ein ähnliches Dienstprogramm installiert haben, um es zu extrahieren. +[Section.0410] +Description = QB64 è un compilatore auto ospitante per Microsoft Windows, Linux e Mac OS X, progettato per essere compatibile con Microsoft QuickBasic. Necessita di 7-Zip o uno strumento simile per essere estratto. + [Section.0415] Description = QB64 to kompilator BASIC zdolny do kompilacji własnego kodu źródłowego. Działa w systemach Windows, Linux i Mac OS X. Jest kompatybilny z Microsoft QBasic i QuickBASIC. Wymaga programu archiwizującego do wypakowania. diff --git a/reactos/base/applications/rapps/rapps/qmmp.txt b/reactos/base/applications/rapps/rapps/qmmp.txt index a666c7261c6..878b5aaca84 100644 --- a/reactos/base/applications/rapps/rapps/qmmp.txt +++ b/reactos/base/applications/rapps/rapps/qmmp.txt @@ -15,6 +15,9 @@ CDPath = none [Section.0407] Description = Qmmp ist ein Audio-Player, der mit Hilfe der Qt Bibliothek geschrieben wurde. Die Benutzeroberfläche ist ähnlich zu WinAMP oder XMMS. Alternative Benutzeroberflächen sind ebenfalls verfügbar. +[Section.0410] +Description = Qmmp è un lettore multimediale, scritto con l'aiuto della libreria Qt. L'interfaccia grafica è simile a WinAMP o XMMS. Interfaccie utenti alternative sono disponibili. + [Section.0415] Description = Gmmp to odtwarzacz audio, napisany z pomocą biblioteki Qt. Interfejs podobny jest do Winampa lub XMMS. Dostępnme są także dodatkowe skórki. diff --git a/reactos/base/applications/rapps/rapps/remood.txt b/reactos/base/applications/rapps/rapps/remood.txt index 8a5f1d530d1..f84503f0e33 100644 --- a/reactos/base/applications/rapps/rapps/remood.txt +++ b/reactos/base/applications/rapps/rapps/remood.txt @@ -14,6 +14,9 @@ CDPath = none [Section.0407] Description = ReMooD ist ein Port des Doom Legacy Sources. Es versucht das klassische Legacy Erfahrung zusammen mit neuen Features und mehr Stabilität zu bieten. +[Section.0410] +Description = ReMooD è un porting sorgente di Doom Legacy. Punta a provedere la classica esperienza ereditaria con nuove funzionalità e maggiore stabilità. + [Section.040a] Description = ReMood es un port de Doom Legacy. Su fin es proporcionar la clásica experiencia anterior con nuevas características y mayor estabilidad. diff --git a/reactos/base/applications/rapps/rapps/reshack.txt b/reactos/base/applications/rapps/rapps/reshack.txt index 18e22d6455c..bd047d54f29 100644 --- a/reactos/base/applications/rapps/rapps/reshack.txt +++ b/reactos/base/applications/rapps/rapps/reshack.txt @@ -15,6 +15,9 @@ CDPath = none [Section.0407] Description = Resource Hacker ist ein Freeware-Tool zum anzeigen, ändern, umbenennen, hinzufügen, löschen und extrahieren von Ressourcen in 32-Bit & 64-Bit-Windows Anwendungen und Ressourcen-Dateien (*. Res). +[Section.0410] +Description = Resource Hacker, è uno strumento freewere per vedere, modificare, rinominare, aggiungere, rimuovere e estrarre risorse in eseguibili Windows 32 e 64 bit e file di risorse (*.res). + [Section.0415] Description = Resource Hacker to darmowe narzędzie do podglądu, modyfikacji, zmiany nazw, dodawania, kasowania i wypakowywania zasobów w plikach wykonywalnych 32bit i 64bit, oraz w plikach zasobów (*.res). diff --git a/reactos/base/applications/rapps/rapps/rocks.txt b/reactos/base/applications/rapps/rapps/rocks.txt index 5e8f0b29462..ec1a4fc0d24 100644 --- a/reactos/base/applications/rapps/rapps/rocks.txt +++ b/reactos/base/applications/rapps/rapps/rocks.txt @@ -15,6 +15,9 @@ CDPath = none [Section.0407] Description = Arcade-Style Spiel für UNIX, Mac OS X, Windows und DOS in der Tradition von: "Boulder Dash" (C64), "Emerald Mine" (Amiga), "Supaplex" (Amiga / PC), "Sokoban" (PC). Sie benötigen ein ZIP-Programm, um es zu installieren. +[Section.0410] +Description = Gioco in stile arcade per UNIX, Mac OS X, Windows e DOS nella tradizione di: "Boulder Dash" (C64), "Emerald Mine" (Amiga), "Supaplex" (Amiga/PC), "Sokoban" (PC). Necessita di un programma di decompressione di archivi ZIP per essere installato. + Section.0415] Description = Gra typu Arcade dla UNIX, Mac OS X, Windows i DOS. Bazująca na "Boulder Dash" (C64), "Emerald Mine" (Amiga), "Supaplex" (Amiga/PC), "Sokoban" (PC). Aby zainstalować te grę, potrzebny jest program archiwizujący np. 7-Zip. diff --git a/reactos/base/applications/rapps/rapps/sambatng.txt b/reactos/base/applications/rapps/rapps/sambatng.txt index b004377749c..a3e670c3917 100644 --- a/reactos/base/applications/rapps/rapps/sambatng.txt +++ b/reactos/base/applications/rapps/rapps/sambatng.txt @@ -22,7 +22,7 @@ Description = Cet outil vous permet d'accéder à vos répertoire/imprimantes pa Size = 2,13 Mo [Section.0410] -Description = Questo strumento consente di accedere alle cartelle condivise di Windows / stampanti con ReactOS. +Description = Questo strumento consente di accedere alle cartelle/stampanti condivise di Windows con ReactOS. [Section.0413] Description = Maakt het mogelijk om Windows gedeelde printers te gebruiken met ReactOS. diff --git a/reactos/base/applications/rapps/rapps/sbforvmware.txt b/reactos/base/applications/rapps/rapps/sbforvmware.txt index 4d610352543..586a09d3871 100644 --- a/reactos/base/applications/rapps/rapps/sbforvmware.txt +++ b/reactos/base/applications/rapps/rapps/sbforvmware.txt @@ -34,7 +34,7 @@ Size = 2,22 Mo [Section.0410] Name = Driver SoundBlaster per VMWare Licence = Sconosciuta -Description = Unzip nella cartella "ReactOS" e riavviare ReactOS. +Description = Estrarre nella cartella "ReactOS" e riavviare ReactOS due volte. [Section.0413] Name = SoundBlaster Driver voor VMWare diff --git a/reactos/base/applications/rapps/rapps/scite.txt b/reactos/base/applications/rapps/rapps/scite.txt index 52300c0fb42..c03adf87d2c 100644 --- a/reactos/base/applications/rapps/rapps/scite.txt +++ b/reactos/base/applications/rapps/rapps/scite.txt @@ -22,7 +22,7 @@ Description = SciTE est un éditeur de texte basé sur SCIntilla. Originelement Size = 730 ko [Section.0410] -Description = SciTE è un editor di testo basato scintilla. Originariamente costruito per dimostrare Scintilla, è cresciuto fino a essere un editor generalmente utile con strutture per la creazione e l'esecuzione di programmi. +Description = SciTE è un editor di testo basato su scintilla. Originariamente costruito per dimostrare Scintilla, è cresciuto fino a essere un editor generalmente utile con strutture per la creazione e l'esecuzione di programmi. [Section.0413] Description = SciTE is een tekstbewerker gebaseerd op SCIntilla. Origineel bedoeld om Scontilla te demonstreren, is uitgegroeid tot een handige editor met mogelijkheden voor ontwerken en uitvoeren van programma's. diff --git a/reactos/base/applications/rapps/rapps/scummvm.txt b/reactos/base/applications/rapps/rapps/scummvm.txt index c976de62309..e313558922f 100644 --- a/reactos/base/applications/rapps/rapps/scummvm.txt +++ b/reactos/base/applications/rapps/rapps/scummvm.txt @@ -4,7 +4,7 @@ Name = ScummVM Version = 1.6.0 Licence = GPL -Description = Sam and Max, Day of the Tentacle, etc on ReactOS. +Description = Software that reproduce the working of graphical engine for videogames (Sam and Max, Day of the Tentacle, etc) on ReactOS. Size = 6.28 MB Category = 4 URLSite = http://scummvm.org/ @@ -22,7 +22,7 @@ Description = Sam and Max, Day of the Tentacle, etc sur ReactOS. Size = 6,28 Mo [Section.0410] -Description = Software che riproduce il funzionamento di motori grafici per videogiochi(Sam and Max, Day of the Tentacle, etc) su ReactOS. +Description = Software che riproduce il funzionamento di motori grafici per videogiochi (Sam and Max, Day of the Tentacle, etc) su ReactOS. [Section.0413] Description = Sam and Max, Day of the Tentacle, enz. op ReactOS. diff --git a/reactos/base/applications/rapps/rapps/seamonkey.txt b/reactos/base/applications/rapps/rapps/seamonkey.txt index 4355489b8e7..194993487a2 100644 --- a/reactos/base/applications/rapps/rapps/seamonkey.txt +++ b/reactos/base/applications/rapps/rapps/seamonkey.txt @@ -27,7 +27,7 @@ Size = 24,06 Mo URLDownload = http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/2.25/win32/fr/SeaMonkey%20Setup%202.25.exe [Section.0410] -Description = Mozilla Suite è vivo. Questo è l'unico e solo Browser, Mail, Chat, e Composer di cui avrete mai bisogno... +Description = Mozilla Suite è vivo. Questo è l'unico pachetto che include Browser, Mail, Chat, e Composer di cui avrete mai bisogno... Size = 23.71 MB URLDownload = http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/2.25/win32/it/SeaMonkey%20Setup%202.25.exe diff --git a/reactos/base/applications/rapps/rapps/snoopy.txt b/reactos/base/applications/rapps/rapps/snoopy.txt index 8ae0a8a6eab..063350be8d3 100644 --- a/reactos/base/applications/rapps/rapps/snoopy.txt +++ b/reactos/base/applications/rapps/rapps/snoopy.txt @@ -14,6 +14,9 @@ CDPath = none [Section.0407] Description = Das Original C64 Snoopy Remake. +[Section.0410] +Description = Il remake del gioco Snoopy per Commodore 64. + [Section.041f] Licence = Ücretsiz Description = Özgün C64 Snoppy'nın yeniden yapılmışı. diff --git a/reactos/base/applications/rapps/rapps/stamina.txt b/reactos/base/applications/rapps/rapps/stamina.txt index e2c97693eec..cfb4f196b87 100644 --- a/reactos/base/applications/rapps/rapps/stamina.txt +++ b/reactos/base/applications/rapps/rapps/stamina.txt @@ -13,6 +13,9 @@ CDPath = none [Section.0407] Description = Ein freies Schreiblernprogramm. +[Section.0410] +Description = Tutore di scrittura gratuita. + [Section.0415] Description = Darmowy program do nauki pisania na klawiaturze. diff --git a/reactos/base/applications/rapps/rapps/sumatrapdf.txt b/reactos/base/applications/rapps/rapps/sumatrapdf.txt index af1fd201847..09521193e5b 100644 --- a/reactos/base/applications/rapps/rapps/sumatrapdf.txt +++ b/reactos/base/applications/rapps/rapps/sumatrapdf.txt @@ -22,7 +22,7 @@ Description = Sumatra PDF est un lecteur PDF léger, libre et open-source. Size = 4,0 Mo [Section.0410] -Description = Sumatra PDF è un visualizzatore di file PDF. E' molto leggero ed è open source. +Description = Sumatra PDF è un visualizzatore di file PDF, leggero e open source. [Section.0413] Description = Sumatra PDF is een slanke, gratis, open-bron PDF lezer. diff --git a/reactos/base/applications/rapps/rapps/summerbound.txt b/reactos/base/applications/rapps/rapps/summerbound.txt index e17a8d4c813..271cc0e1d61 100644 --- a/reactos/base/applications/rapps/rapps/summerbound.txt +++ b/reactos/base/applications/rapps/rapps/summerbound.txt @@ -14,6 +14,9 @@ CDPath = none [Section.0407] Description = Ein Spiel, ähnlich zu Frozen Fruits. +[Section.0410] +Description = Un gioco simile a Frozen Fuits + [Section.041f] Licence = Ücretsiz Description = Frozen Fruits'e benzeyen bir oyun. diff --git a/reactos/base/applications/rapps/rapps/superdxb.txt b/reactos/base/applications/rapps/rapps/superdxb.txt index 370b20b2b0d..ae5e4327125 100644 --- a/reactos/base/applications/rapps/rapps/superdxb.txt +++ b/reactos/base/applications/rapps/rapps/superdxb.txt @@ -14,6 +14,9 @@ CDPath = none [Section.0407] Description = Super DX-Ball ist ein lebendiges und buntes Brick-Breaking-Spiel. +[Section.0410] +Description = Super DX-Ball è un gioco spacca blocchi vibrante e colorato + [Section.0415] Description = Super DX-Ball - pełna koloru i animacji gra polegająca na zbijaniu klocków. diff --git a/reactos/base/applications/rapps/rapps/supertux.txt b/reactos/base/applications/rapps/rapps/supertux.txt index 6f6cfac8db5..86ff46d5c0c 100644 --- a/reactos/base/applications/rapps/rapps/supertux.txt +++ b/reactos/base/applications/rapps/rapps/supertux.txt @@ -15,7 +15,7 @@ CDPath = none Description = SuperTux ist ein zweidimensionales, freies, Open Source Plattformspiel. [Section.0410] -Description = SuperTux è un gioco open-source a 2D. +Description = SuperTux è un gioco open-source gratuito in 2D. [Section.0415] Description = SuperTux to darmowa dwu wymiarowa gra platformowa OpenSource. diff --git a/reactos/base/applications/rapps/rapps/thunderbird.txt b/reactos/base/applications/rapps/rapps/thunderbird.txt index a25ed479ffb..8c0e8ab9d18 100644 --- a/reactos/base/applications/rapps/rapps/thunderbird.txt +++ b/reactos/base/applications/rapps/rapps/thunderbird.txt @@ -30,7 +30,7 @@ URLSite = https://www.mozilla.org/fr/thunderbird/ URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/24.4.0/win32/fr/Thunderbird%20Setup%2024.4.0.exe [Section.0410] -Description = Il più popolare e il migliore Clients mail gratuito. +Description = Il più popolare e il migliore Client mail gratuito. Size = 20.91 MB URLSite = https://www.mozilla.org/it/thunderbird/ URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/24.4.0/win32/it/Thunderbird%20Setup%2024.4.0.exe diff --git a/reactos/base/applications/rapps/rapps/thunderbird3.txt b/reactos/base/applications/rapps/rapps/thunderbird3.txt index 201a4bf2826..facf4e9e6de 100644 --- a/reactos/base/applications/rapps/rapps/thunderbird3.txt +++ b/reactos/base/applications/rapps/rapps/thunderbird3.txt @@ -30,7 +30,7 @@ URLSite = https://www.mozilla.org/fr/thunderbird/ URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/3.1.20/win32/fr/Thunderbird%20Setup%203.1.20.exe [Section.0410] -Description = Il più popolare e il migliore Clients mail gratuito. +Description = Il più popolare e il migliore Client mail gratuito. Size = 8.88 MB URLSite = https://www.mozilla.org/it/thunderbird/ URLDownload = http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/3.1.20/win32/it/Thunderbird%20Setup%203.1.20.exe diff --git a/reactos/base/applications/rapps/rapps/ultravnc.txt b/reactos/base/applications/rapps/rapps/ultravnc.txt index 3a9954b4b96..1e8aefbb9b3 100644 --- a/reactos/base/applications/rapps/rapps/ultravnc.txt +++ b/reactos/base/applications/rapps/rapps/ultravnc.txt @@ -22,7 +22,7 @@ Description = Client/serveur VNC open source. Size = 3,27 Mo [Section.0410] -Description = Client/serveur VNC open source. +Description = Client/server VNC open source. [Section.0413] Description = Open-bron VNC afnemer/aanbieder. diff --git a/reactos/base/applications/rapps/rapps/zaz.txt b/reactos/base/applications/rapps/rapps/zaz.txt index 12604c87972..0f68949ce45 100644 --- a/reactos/base/applications/rapps/rapps/zaz.txt +++ b/reactos/base/applications/rapps/rapps/zaz.txt @@ -16,7 +16,7 @@ CDPath = none Description = Zaz ist ein freies Arcade Action Puzzle Spiel, ein wenig wie Frozen Bubble. [Section.0410] -Description = Zaz è un puzzle game gratuito, simile a Frozen Bubble. +Description = Zaz è un gioco arcade puzzle gratuito per computer, in parte simile a Frozen Bubble. [Section.0415] Description = Zaz to darmowa gra logiczno-zręcznościowa, trochę podobna do gry Frozen Bubble From bd3aa41c2946a8be4b060a6cac84316a41cb8652 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sun, 11 May 2014 13:10:44 +0000 Subject: [PATCH 41/92] [TRANSLATIONS] * Turkish translation update by Erdem Ersoy. CORE-7861 #comment Committed in r63229. Thanks! svn path=/trunk/; revision=63229 --- .../base/applications/dxdiag/lang/tr-TR.rc | 2 +- .../games/solitaire/lang/tr-TR.rc | 14 +- .../base/applications/msconfig/lang/tr-TR.rc | 2 +- .../mscutils/servman/lang/tr-TR.rc | 4 +- reactos/base/applications/rapps/lang/tr-TR.rc | 6 +- .../base/applications/regedit/lang/tr-TR.rc | 16 +-- .../base/applications/sndvol32/lang/tr-TR.rc | 2 +- .../base/applications/taskmgr/lang/tr-TR.rc | 128 +++++++++--------- reactos/base/setup/reactos/lang/tr-TR.rc | 72 +++++----- reactos/base/setup/reactos/reactos.rc | 6 +- reactos/base/setup/vmwinst/lang/tr-TR.rc | 86 ++++++------ reactos/base/setup/vmwinst/vmwinst.rc | 6 +- reactos/base/setup/welcome/lang/tr-TR.rc | 18 +-- reactos/base/setup/welcome/welcome.rc | 6 +- reactos/base/shell/explorer-new/lang/tr-TR.rc | 38 +++--- reactos/base/system/rundll32/lang/tr-TR.rc | 4 +- reactos/base/system/rundll32/rundll32.rc | 6 +- reactos/base/system/runonce/lang/tr-TR.rc | 2 +- reactos/base/system/runonce/runonce.rc | 6 +- reactos/base/system/userinit/lang/tr-TR.rc | 2 +- reactos/base/system/userinit/userinit.rc | 6 +- reactos/base/system/winlogon/lang/tr-TR.rc | 20 +-- reactos/base/system/winlogon/winlogon.rc | 12 +- 23 files changed, 232 insertions(+), 232 deletions(-) diff --git a/reactos/base/applications/dxdiag/lang/tr-TR.rc b/reactos/base/applications/dxdiag/lang/tr-TR.rc index 39a43a1a75c..9734d84ce80 100644 --- a/reactos/base/applications/dxdiag/lang/tr-TR.rc +++ b/reactos/base/applications/dxdiag/lang/tr-TR.rc @@ -118,7 +118,7 @@ BEGIN RTEXT "Sürüm:", -1, 275, 35, 55, 10 RTEXT "Zaman:", -1, 275, 45, 55, 10 RTEXT "WHQL İmleği:", -1, 275, 55, 55, 10 - RTEXT "Diğer Kütükler:", -1, 275, 65, 55, 10 + RTEXT "Başka Kütükler:", -1, 275, 65, 55, 10 RTEXT "Sağlayıcı:", -1, 275, 75, 55, 10 LTEXT "", IDC_STATIC_DSOUND_DRIVER, 335, 25, 100, 10 LTEXT "", IDC_STATIC_DSOUND_VERSION, 335, 35, 100, 10 diff --git a/reactos/base/applications/games/solitaire/lang/tr-TR.rc b/reactos/base/applications/games/solitaire/lang/tr-TR.rc index d3c6a86ad1e..8ddadb88227 100644 --- a/reactos/base/applications/games/solitaire/lang/tr-TR.rc +++ b/reactos/base/applications/games/solitaire/lang/tr-TR.rc @@ -3,7 +3,7 @@ * LICENSE: Freeware, permission to use under Public Domain * FILE: base/applications/games/solitaire/lang/tr-TR.rc * PURPOSE: Turkish Resource File for ReactOS Solitaire - * TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) + * TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT @@ -18,13 +18,13 @@ BEGIN GROUPBOX "Kâğı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 - GROUPBOX "Scoring", -1, 100, 7, 75, 53 - AUTORADIOBUTTON "&Standard", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP + GROUPBOX "Sayılama", -1, 100, 7, 75, 53 + AUTORADIOBUTTON "&Ölçünlü", IDC_OPT_STANDARD, 107, 19, 60, 10, WS_GROUP | WS_TABSTOP AUTORADIOBUTTON "&Vegas", IDC_OPT_VEGAS, 107, 32, 60, 10 - AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10 + AUTORADIOBUTTON "&Yok", IDC_OPT_NOSCORE, 107, 45, 60, 10 AUTOCHECKBOX "&Süreyi Göster", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP AUTOCHECKBOX "&Durum Çubuğu", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP - AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP + AUTOCHECKBOX "S&ayıyı Koru", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP DEFPUSHBUTTON "Tamam", IDOK, 35, 97, 50, 14 PUSHBUTTON "İptal", IDCANCEL, 101, 97, 50, 14 END @@ -59,8 +59,8 @@ BEGIN IDS_SOL_QUIT "Bu oyundan çıkılsın mı?" IDS_SOL_WIN "Tebrikler, kazandınız!" IDS_SOL_DEAL "Yine dağıtılsın mı?" - IDS_SOL_SCORE "Score: %d" - IDS_SOL_TIME "Time: %d" + IDS_SOL_SCORE "Sayı: %d" + IDS_SOL_TIME "Süre: %d" END /* Menus */ diff --git a/reactos/base/applications/msconfig/lang/tr-TR.rc b/reactos/base/applications/msconfig/lang/tr-TR.rc index a96b9fb9fe2..141d7fce7a4 100644 --- a/reactos/base/applications/msconfig/lang/tr-TR.rc +++ b/reactos/base/applications/msconfig/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/applications/mscutils/servman/lang/tr-TR.rc b/reactos/base/applications/mscutils/servman/lang/tr-TR.rc index 6d90b1c12aa..e9c1274b80b 100644 --- a/reactos/base/applications/mscutils/servman/lang/tr-TR.rc +++ b/reactos/base/applications/mscutils/servman/lang/tr-TR.rc @@ -114,7 +114,7 @@ BEGIN CONTROL "", IDC_DEPEND_TREE2, "SysTreeView32", WS_BORDER | WS_CHILDWINDOW | WS_VISIBLE | WS_TABSTOP | TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | TVS_DISABLEDRAGDROP, 8, 151, 234, 67 - LTEXT "Birtakım hizmetler, diğer hizmetlere, dizge sürücülerine ve yükleme sıra öbeklerine bağımlıdır. Eğer bir dizge bileşeni, durdurulmuşsa ya da düzgün bir şekilde çalışmıyorsa bağımlı hizmetler etkilenebilir.", IDC_STATIC, 8, 7, 238, 26 + LTEXT "Birtakım hizmetler, başka hizmetlere, dizge sürücülerine ve yükleme sıra öbeklerine bağımlıdır. Eğer bir dizge bileşeni, durdurulmuşsa ya da düzgün bir şekilde çalışmıyorsa bağımlı hizmetler etkilenebilir.", IDC_STATIC, 8, 7, 238, 26 LTEXT "Bu hizmet aşağıdaki bileşenlere bağımlıdır:", IDC_STATIC, 8, 57, 236, 9 LTEXT "", IDC_DEPEND_SERVICE, 8, 38, 236, 13 END @@ -155,7 +155,7 @@ BEGIN END IDD_DLG_DEPEND_STOP DIALOGEX 6, 6, 240, 148 -CAPTION "Diğer Hizmetleri Kapatma" +CAPTION "Başka Hizmetleri Kapatma" FONT 8, "MS Shell Dlg", 0, 0 STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | DS_MODALFRAME BEGIN diff --git a/reactos/base/applications/rapps/lang/tr-TR.rc b/reactos/base/applications/rapps/lang/tr-TR.rc index 7e20c851cb8..bd0a12ffb37 100644 --- a/reactos/base/applications/rapps/lang/tr-TR.rc +++ b/reactos/base/applications/rapps/lang/tr-TR.rc @@ -165,7 +165,7 @@ BEGIN IDS_CAT_INTERNET "Ağ" IDS_CAT_LIBS "Kitaplıklar" IDS_CAT_OFFICE "Büro" - IDS_CAT_OTHER "Diğer" + IDS_CAT_OTHER "Başka" IDS_CAT_SCIENCE "Bilim" IDS_CAT_TOOLS "Araçlar" IDS_CAT_VIDEO "Vidyo" @@ -188,7 +188,7 @@ BEGIN IDS_APPLICATIONS "Uygulamalar" IDS_CHOOSE_FOLDER_TEXT "İndirilenlerin saklanacağı bir dizin seçiniz:" IDS_CHOOSE_FOLDER_ERROR "Belirttiğiniz dizin yok. Belirttiğiniz dizin oluşturulsun mu?" - IDS_APP_REG_REMOVE "Kurulan izlencenin girişini Değer Defteri'nden silmeyi doğruluyor musunuz?" + IDS_APP_REG_REMOVE "Kurulan izlencenin girişini değer defterinden silmek istemeyi doğruluyor musunuz?" IDS_INFORMATION "Bilgi" - IDS_UNABLE_TO_REMOVE "İzlencenin girişi Değer Defteri'nden silinemiyor." + IDS_UNABLE_TO_REMOVE "İzlencenin girişi değer defterinden silinemiyor." END diff --git a/reactos/base/applications/regedit/lang/tr-TR.rc b/reactos/base/applications/regedit/lang/tr-TR.rc index b24e5566779..03cfb35bb51 100644 --- a/reactos/base/applications/regedit/lang/tr-TR.rc +++ b/reactos/base/applications/regedit/lang/tr-TR.rc @@ -293,7 +293,7 @@ BEGIN ID_REGISTRY_DISCONNECTNETWORKREGISTRY "Uzaktaki bir bilgisayarın Değer Defteri'sine olan bağlantıyı keser." ID_REGISTRY_PRINT "Değer Defteri'nin tümünü ya da bir bölümünü yazdırır." /* ID_HELP_HELPTOPICS "Değer Defteri Düzenleyicisi Yardımı'nı açar." */ - ID_HELP_ABOUT "İzlenceyle ilgili bilgi görüntüler." + ID_HELP_ABOUT "İzlenceyle ilgili bilgi, sürüm numarası ve telif hakkı görüntüler." END STRINGTABLE @@ -320,18 +320,18 @@ BEGIN IDS_UNSUPPORTED_TYPE "Bu türdeki dizinler değiştirilemiyor: %ld" IDS_TOO_BIG_VALUE "Değer çok büyük: %ld" IDS_MULTI_SZ_EMPTY_STRING "REG_MULTI_SZ veri türü boş dizgi içeremez.\nBoş dizgiler dizelgeden silinmiştir." - IDS_QUERY_DELETE_KEY_ONE "Bu dizini silmeyi doğruluyor musunuz?" - IDS_QUERY_DELETE_KEY_MORE "Bu dizinleri silmeyi doğruluyor musunuz?" + IDS_QUERY_DELETE_KEY_ONE "Bu dizini silmek istemeyi doğruluyor musunuz?" + IDS_QUERY_DELETE_KEY_MORE "Bu dizinleri silmek istemeyi doğruluyor musunuz?" IDS_QUERY_DELETE_KEY_CONFIRM "Dizin Silme Doğrulaması" - IDS_QUERY_DELETE_ONE "Bu değeri silmeyi doğruluyor musunuz?" - IDS_QUERY_DELETE_MORE "Bu değerleri silmeyi doğruluyor musunuz?" + IDS_QUERY_DELETE_ONE "Bu değeri silmek istemeyi doğruluyor musunuz?" + IDS_QUERY_DELETE_MORE "Bu değerleri silmek istemeyi doğruluyor musunuz?" IDS_QUERY_DELETE_CONFIRM "Değer Silme Doğrulaması" IDS_ERR_DELVAL_CAPTION "Değerler Silinmesi Yanlışlığı" IDS_ERR_DELETEVALUE "Tüm belirtilmiş değerler silinemiyor." IDS_ERR_RENVAL_CAPTION "Değer Adı Değiştirilmesi Yanlışlığı" IDS_ERR_RENVAL_TOEMPTY "Adı değiştirilemiyor: %s. Belirtilen değer adı boş. Başka bir ad yazıp yeniden deneyiniz." IDS_QUERY_IMPORT_HIVE_CAPTION "Dizin Yenileme Doğrulaması" - IDS_QUERY_IMPORT_HIVE_MSG "Bir dizin seçili dizinle yenilenecektir.\nBu dizinin tüm alt dizinleri ve değerleri silinecektir.\nEylemi sürdürmek istiyor musunuz?" + IDS_QUERY_IMPORT_HIVE_MSG "Bir dizin seçili dizinle yenilenecektir.\nBu dizinin tüm alt dizinleri ve değerleri silinecektir.\nİşlemi sürdürmek istiyor musunuz?" IDS_NEW_KEY "%d. Yeni Dizin" IDS_NEW_VALUE "%d. Yeni Değer" END @@ -397,7 +397,7 @@ END STRINGTABLE BEGIN IDS_IMPORT_PROMPT "Bilgi ekleme, yanlışlıkla değerleri değiştirebilir ya da silebilir ve bileşenlerin doğru çalışmasını engelleyebilir.\nEğer ""%s"" içindeki bilginin kaynağına güvenmiyorsanız onu Değer Defteri'ne eklemeyiniz.\n\nSürdürmek istediğinizi doğruluyor musunuz?" - IDS_IMPORT_OK "%s içinde bulunan dizinler ve değerler Değer Defteri'ne başarıyla eklendi." + IDS_IMPORT_OK """%s"" içinde bulunan dizinler ve değerler Değer Defteri'ne başarıyla eklendi." IDS_IMPORT_ERROR """%s"" alınamıyor: Kütüğü açmada yanlışlık. Bir disk yanlışlığı, bir kütük dizgesi yanlışlığı ya da kütüğün olmaması olabilir." IDS_EXPORT_ERROR """%s"" verilemiyor: Kütüğü oluşturmada ya da kütüğe yazmada yanlışlık. Bir disk yanlışlığı ya da bir kütük dizgesi yanlışlığı olabilir." END @@ -541,6 +541,6 @@ END *STRINGTABLE *BEGIN * ID_HELP_HELPTOPICS "Değer Defteri Düzenleyicisi Yardımı'nı açar." - * ID_HELP_ABOUT "İzlenceyle ilgili bilgi görüntüler." + * ID_HELP_ABOUT "İzlenceyle ilgili bilgi, sürüm numarası ve telif hakkı görüntüler." *END */ diff --git a/reactos/base/applications/sndvol32/lang/tr-TR.rc b/reactos/base/applications/sndvol32/lang/tr-TR.rc index 81ca9ed6a30..b12348b583a 100644 --- a/reactos/base/applications/sndvol32/lang/tr-TR.rc +++ b/reactos/base/applications/sndvol32/lang/tr-TR.rc @@ -35,7 +35,7 @@ BEGIN GROUPBOX "Ses Düzeyi Düzenlenecekler", -1, 7, 25, 211, 77 PUSHBUTTON "&Çalma", IDC_PLAYBACK, 13, 43, 47, 8, BS_AUTORADIOBUTTON PUSHBUTTON "K&aydetme", IDC_RECORDING, 13, 61, 47, 8, BS_AUTORADIOBUTTON - PUSHBUTTON "&Diğer:", IDC_OTHER, 13, 80, 42, 8, BS_AUTORADIOBUTTON | WS_DISABLED + PUSHBUTTON "&Başka:", IDC_OTHER, 13, 80, 42, 8, BS_AUTORADIOBUTTON | WS_DISABLED COMBOBOX IDC_LINE, 55, 80, 155, 50, CBS_DROPDOWNLIST | WS_TABSTOP | WS_DISABLED LTEXT "Aşağıdaki ses düzeyi denetimlerini göster:", IDC_LABELCONTROLS, 7, 109, 162, 8 CONTROL "", IDC_CONTROLS, "SysListView32", LVS_REPORT | LVS_NOCOLUMNHEADER | WS_TABSTOP | WS_BORDER, 7, 122, 211, 96 diff --git a/reactos/base/applications/taskmgr/lang/tr-TR.rc b/reactos/base/applications/taskmgr/lang/tr-TR.rc index c0715aaf2e7..93329ebe90f 100644 --- a/reactos/base/applications/taskmgr/lang/tr-TR.rc +++ b/reactos/base/applications/taskmgr/lang/tr-TR.rc @@ -277,11 +277,11 @@ FONT 8, "MS Shell Dlg" BEGIN DEFPUSHBUTTON "Tamam", IDOK, 84, 178, 50, 14 PUSHBUTTON "İptal", IDCANCEL, 138, 178, 50, 14 - LTEXT "Bu seçenekler, ""İşlemci"" sekmesindeki dikeçlerin hangisinin görüntülenip görüntülenmeyeceğini belirler.", IDC_STATIC, 7, 7, 181, 17 + LTEXT "Görev Yöneticisi'nin İşlemler sayfasında gözükecek dikeçleri seçiniz.", IDC_STATIC, 7, 7, 181, 17 CONTROL "Yansıma Adı", IDC_IMAGENAME, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 7, 28, 56, 10 CONTROL "PID (İşlem Tanımlayıcı)", IDC_PID, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 39, 88, 10 CONTROL "CPU Kullanımı", IDC_CPUUSAGE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 50, 53, 10 - CONTROL "CPU Çalışma Süresi", IDC_CPUTIME, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 61, 48, 10 + CONTROL "CPU Süresi", IDC_CPUTIME, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 61, 48, 10 CONTROL "Bellek Kullanımı", IDC_MEMORYUSAGE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 72, 63, 10 CONTROL "Bellek Kullanım Aralığı", IDC_MEMORYUSAGEDELTA, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 83, 82, 10 CONTROL "En Yüksek Bellek Kullanımı", IDC_PEAKMEMORYUSAGE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 94, 82, 10 @@ -295,14 +295,14 @@ BEGIN CONTROL "Farazî Bellek Boyutu", IDC_VIRTUALMEMORYSIZE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 39, 77, 10 CONTROL "Sayfalanmış Havuz", IDC_PAGEDPOOL, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 50, 53, 10 CONTROL "Sayfalanmamış Havuz", IDC_NONPAGEDPOOL, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 61, 67, 10 - CONTROL "Öncelik", IDC_BASEPRIORITY, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 72, 55, 10 + CONTROL "Birinci Öncelik", IDC_BASEPRIORITY, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 72, 55, 10 CONTROL "İşleçler", IDC_HANDLECOUNT, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 83, 59, 10 CONTROL "İş Parçacıkları", IDC_THREADCOUNT, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 94, 59, 10 CONTROL "GDI Nesneleri", IDC_GDIOBJECTS, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 105, 55, 10 CONTROL "G/Ç Yazma", IDC_IOWRITES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 116, 49, 10 CONTROL "G/Ç Yazma Çokluları", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 127, 65, 10 - CONTROL "G/Ç Diğer", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 138, 46, 10 - CONTROL "G/Ç Diğer Çoklular", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 149, 65, 10 + CONTROL "G/Ç Başka", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 138, 46, 10 + CONTROL "G/Ç Başka Çoklular", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 149, 65, 10 END /* String Tables */ @@ -311,64 +311,64 @@ STRINGTABLE BEGIN IDS_APP_TITLE "Görev Yöneticisi" IDC_TASKMGR "Görev Yöneticisi" - IDS_IDLE_PROCESS "Çalışmayan İşlemci Yüzdesi İşlemi" + IDS_IDLE_PROCESS "Dizge Boşta İşlemi" END STRINGTABLE BEGIN - ID_FILE_NEW "Yeni görev çalıştırır." - ID_OPTIONS_ALWAYSONTOP "Görev Yöneticisi'ni diğer pencerelerin üstünde tutar." - ID_OPTIONS_MINIMIZEONUSE "Geçiş yapılırken Görev Yöneticisi'ni simge durumuna küçültür." + ID_FILE_NEW "Yeni bir izlence çalıştırır." + ID_OPTIONS_ALWAYSONTOP "Simge durumuna küçültülmeden Görev Yöneticisi başka tüm pencerelerin önünde durur." + ID_OPTIONS_MINIMIZEONUSE "Geçme işlemi uygulanırken Görev Yöneticisi simge durumuna küçültülür." ID_OPTIONS_HIDEWHENMINIMIZED "Görev Yöneticisi simge durumuna küçültüldüğünde Görev Yöneticisi'ni gizler." - ID_VIEW_REFRESH "Görev Yöneticisi'ndeki bilgileri yeniler." - ID_VIEW_LARGE "Görevleri büyük simgelerle gösterir." - ID_VIEW_SMALL "Görevleri küçük simgelerle gösterir." - ID_VIEW_DETAILS "Görevleri küçük simgelerle, ayrıntılı olarak gösterir." - ID_VIEW_UPDATESPEED_HIGH "Her yarım sâniyede bir Görev Yöneticisi'ndeki bilgileri yeniler." - ID_VIEW_UPDATESPEED_NORMAL "Her iki sâniyede bir Görev Yöneticisi'ndeki bilgileri yeniler." - ID_VIEW_UPDATESPEED_LOW "Her dört sâniyede bir Görev Yöneticisi'ndeki bilgileri yeniler." + ID_VIEW_REFRESH "Yenileme Hızı ayârını önemsemeden Görev Yöneticisi'ni şimdi yenilemeye zorlar." + ID_VIEW_LARGE "Görevleri büyük simgeler kullanarak gösterir." + ID_VIEW_SMALL "Görevleri küçük simgeler kullanarak gösterir." + ID_VIEW_DETAILS "Her bir görev için bilgi görüntüler." + ID_VIEW_UPDATESPEED_HIGH "Her sâniyede iki kez görünümü yeniler." + ID_VIEW_UPDATESPEED_NORMAL "Her iki sâniyede bir görünümü yeniler." + ID_VIEW_UPDATESPEED_LOW "Her dört sâniyede bir görünümü yeniler." END STRINGTABLE BEGIN - ID_VIEW_UPDATESPEED_PAUSED "Görev Yöneticisi'ndeki bilgilerin kendiliğinden yenilenmesini durdurur." - ID_WINDOWS_TILEHORIZONTALLY "Masaüstündeki pencereleri yatay olarak sıralar." - ID_WINDOWS_TILEVERTICALLY "Masaüstündeki pencereleri dikey olarak sıralar." + ID_VIEW_UPDATESPEED_PAUSED "Kendiliğinden yenilemez." + ID_WINDOWS_TILEHORIZONTALLY "Masaüstünde pencereleri yatay olarak döşer." + ID_WINDOWS_TILEVERTICALLY "Masaüstünde pencereleri dikey olarak döşer." ID_WINDOWS_MINIMIZE "Pencereleri simge durumuna küçültür." - ID_WINDOWS_MAXIMIZE "Pencereleri her bir pencerenin görüntülüğü kaplayacağı şekilde büyütür." - ID_WINDOWS_CASCADE "Pencereleri masaüstünde çapraz olarak sıralar." - ID_WINDOWS_BRINGTOFRONT "Pencereyi öne getirir ancak o pencereye geçiş yapmaz." - ID_HELP_TOPICS "Görev Yöneticisi ile ilgili yardım konularını görüntüler." - ID_HELP_ABOUT "Görev Yöneticisi ile ilgili bilgi görüntüler." - ID_FILE_EXIT "Görev Yöneticisi'nden çıkar." - ID_OPTIONS_SHOW16BITTASKS "Farazî DOS Makinesi (ntvdm.exe) altında çalışan 16 bitlik uygulamaları da görüntüler." - ID_VIEW_SELECTCOLUMNS """İşlemler"" sekmesinde hangi dikeçlerin görüntülenip görüntülenmeyeceğini belirler." - ID_VIEW_SHOWKERNELTIMES "İşlemci çizgelerinde çekirdek zamanlarını gösterir." - ID_VIEW_CPUHISTORY_ONEGRAPHALL "Toplam CPU kullanımını tek çizgede gösterir." - ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU "Her CPU'nun kullanımını ayrı çizgelerde gösterir." - ID_APPLICATION_PAGE_SWITCHTO "Seçilen görevi öne getirip o göreve odaklatır." + ID_WINDOWS_MAXIMIZE "Pencereleri büyütür." + ID_WINDOWS_CASCADE "Masaüstünde pencereleri çapraz olarak basamaklar." + ID_WINDOWS_BRINGTOFRONT "Pencereyi öne getirir ancak ona geçmez." + ID_HELP_TOPICS "Görev Yöneticisi yardım konularını görüntüler." + ID_HELP_ABOUT "İzlenceyle ilgili bilgi, sürüm numarası ve telif hakkı görüntüler." + ID_FILE_EXIT "Görev Yöneticisi uygulamasından çıkar." + ID_OPTIONS_SHOW16BITTASKS "İlişkili ntvdm.exe altındaki 16 bitlik görevleri gösterir." + ID_VIEW_SELECTCOLUMNS "İşlemler sayfasında hangi dikeçlerin görünür olacağını seçer." + ID_VIEW_SHOWKERNELTIMES "Başarım çizgelerinde çekirdek sürelerini görüntüler." + ID_VIEW_CPUHISTORY_ONEGRAPHALL "Bir bayağı geçmiş çizgesi toplam CPU kullanımını gösterir." + ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU "Her bir CPU'nun kendi geçmiş çizgesi vardır." + ID_APPLICATION_PAGE_SWITCHTO "Bir görevi ön plana getirir, o göreve odaklatır." END STRINGTABLE BEGIN - ID_ENDTASK "Seçili görevi sonlandırmaya çalışır." - ID_GOTOPROCESS "Seçili görevin işlemine gider." - ID_RESTORE "Görev Yöneticisi'ni gizli olmaktan çıkarır." - ID_PROCESS_PAGE_ENDPROCESS "Seçili işlemi sonlandırır." - ID_PROCESS_PAGE_ENDPROCESSTREE "Seçili işlemi ve bu işlemin bağlı olduğu tüm işlemleri sonlandırır." - ID_PROCESS_PAGE_DEBUG "Seçili işleme bir yanlışlık ayıklayıcı bağlar." - ID_PROCESS_PAGE_SETAFFINITY "Seçili işlemin hangi CPU'larla yürütüleceğini belirler." - ID_PROCESS_PAGE_SETPRIORITY_REALTIME "Seçili işlemin öncelik sırasını EŞ ZAMANLI yapar." - ID_PROCESS_PAGE_SETPRIORITY_HIGH "Seçili işlemin öncelik sırasını YÜKSEK yapar." - ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL "Seçili işlemin öncelik sırasını ORTA-YÜKSEK yapar." - ID_PROCESS_PAGE_SETPRIORITY_NORMAL "Seçili işlemin öncelik sırasını ORTA yapar." - ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL "Seçili işlemin öncelik sırasını ORTA-DÜŞÜK yapar." - ID_PROCESS_PAGE_SETPRIORITY_LOW "Seçili işlemin öncelik sırasını DÜŞÜK yapar." + ID_ENDTASK "Seçilen görevleri sonlandırmayı bildirir." + ID_GOTOPROCESS "Seçilen görevin işlemine odaklatır." + ID_RESTORE "Görev Yöneticisi'ni gizli durumdan döndürür." + ID_PROCESS_PAGE_ENDPROCESS "İşlemi dizgeden siler." + ID_PROCESS_PAGE_ENDPROCESSTREE "Bu işlemi ve tüm astlarını bu dizgeden sonlandırır." + ID_PROCESS_PAGE_DEBUG "Bu işleme yanlışlık ayıklayıcı bağlar." + ID_PROCESS_PAGE_SETAFFINITY "İşleme hangi CPU'ların üzerinde çalışmasına izin verileceğini denetler." + ID_PROCESS_PAGE_SETPRIORITY_REALTIME "İşlemi EŞ ZAMANLI öncelik sınıfına getirir." + ID_PROCESS_PAGE_SETPRIORITY_HIGH "İşlemi YÜKSEK öncelik sınıfına getirir." + ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL "İşlemi DÜZGÜLÜ ÜSTÜ öncelik sınıfına getirir." + ID_PROCESS_PAGE_SETPRIORITY_NORMAL "İşlemi DÜZGÜLÜ öncelik sınıfına getirir." + ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL "İşlemi DÜZGÜLÜ ALTI öncelik sınıfına getirir." + ID_PROCESS_PAGE_SETPRIORITY_LOW "İşlemi DÜŞÜK öncelik sınıfına getirir." END STRINGTABLE BEGIN - IDS_TAB_APPS "Görevler" + IDS_TAB_APPS "Uygulamalar" IDS_TAB_PROCESSES "İşlemler" IDS_TAB_PERFORMANCE "Başarım" IDS_TAB_TASK "Görev" @@ -378,7 +378,7 @@ BEGIN IDS_TAB_USERNAME "Kullanıcı Adı" IDS_TAB_SESSIONID "Oturum Kimliği" IDS_TAB_CPU "CPU Kullanımı" - IDS_TAB_CPUTIME "CPU Çalışma Süresi" + IDS_TAB_CPUTIME "CPU Süresi" IDS_TAB_MEMUSAGE "Bellek Kullanımı" IDS_TAB_PEAKMEMUSAGE "En Yüksek Bellek Kullanımı" IDS_TAB_MEMDELTA "Bellek Kullanım Aralığı" @@ -387,43 +387,43 @@ BEGIN IDS_TAB_VMSIZE "Farazî Bellek Boyutu" IDS_TAB_PAGEDPOOL "Sayfalanmış Havuz" IDS_TAB_NPPOOL "Sayfalanmamış Havuz" - IDS_TAB_BASEPRI "Öncelik" + IDS_TAB_BASEPRI "Birinci Öncelik" IDS_TAB_HANDLES "İşleçler" IDS_TAB_THREADS "İş Parçacıkları" IDS_TAB_USERPBJECTS "Kullanıcı Nesneleri" IDS_TAB_GDIOBJECTS "GDI Nesneleri" IDS_TAB_IOREADS "G/Ç Okuma" IDS_TAB_IOWRITES "G/Ç Yazma" - IDS_TAB_IOOTHER "G/Ç Diğer" + IDS_TAB_IOOTHER "G/Ç Başka" IDS_TAB_IOREADBYTES "G/Ç Okuma Çokluları" IDS_TAB_IOWRITESBYTES "G/Ç Yazma Çokluları" - IDS_TAB_IOOTHERBYTES "G/Ç Diğer Çoklular" + IDS_TAB_IOOTHERBYTES "G/Ç Başka Çoklular" IDS_MENU_SELECTCOLUMNS "&Dikeçleri Seç..." IDS_MENU_16BITTASK "&16 Bitlik Görevleri Göster" IDS_MENU_WINDOWS "&Pencereler" IDS_MENU_LARGEICONS "&Büyük Simgeler" IDS_MENU_SMALLICONS "&Küçük Simgeler" IDS_MENU_DETAILS "&Ayrıntılar" - IDS_MENU_ONEGRAPHALLCPUS "&Tüm CPU'lar İçin Aynı Çizge" - IDS_MENU_ONEGRAPHPERCPU "&Her CPU'ya Birer Çizge" + IDS_MENU_ONEGRAPHALLCPUS "&Tek Çizge, Tüm CPU'lar" + IDS_MENU_ONEGRAPHPERCPU "&CPU Başına Bir Çizge" IDS_MENU_CPUHISTORY "&CPU Geçmişi" - IDS_MENU_SHOWKERNELTIMES "&Çekirdek Zamanlarını Göster" + IDS_MENU_SHOWKERNELTIMES "&Çekirdek Sürelerini Göster" IDS_CREATENEWTASK "Yeni Görev Oluşturma" - IDS_CREATENEWTASK_DESC "Çalıştırılacak görevin konumunu yazınız:" - IDS_MSG_ACCESSPROCESSAFF "CPU'larla ilişkisi erişilemez veyâ değiştirilemez." - IDS_MSG_PROCESSONEPRO "Herhangi bir işlem, en az bir CPU ile ilişkili olmalıdır." - IDS_MSG_INVALIDOPTION "Geçersiz seçenek." - IDS_MSG_UNABLEDEBUGPROCESS "Yanlışlık ayıklama işlemi yapılamaz." - IDS_MSG_WARNINGDEBUG "UYARI: Bu işlemde yanlışlık ayıklama, veri yitimine neden olabilir.\nBu işleme bir yanlışlık ayıklayıcı bağlamayı doğruluyor musunuz?" - IDS_MSG_TASKMGRWARNING "Uyarı" - IDS_MSG_WARNINGTERMINATING "UYARI: Bir işlemin sonlandırılması, dizge\nkararsızlığı veyâ veri yitimi gibi istenmeyen durumlara neden olabilir. Bu\nişlemi sonlandırmayı doğruluyor musunuz?" - IDS_MSG_UNABLETERMINATEPRO "İşlem sonlandırma yapılamaz." - IDS_MSG_UNABLECHANGEPRIORITY "İşlemci önceliği değiştirilemez." - IDS_MSG_WARNINGCHANGEPRIORITY "UYARI: İşlemci önceliğinin değiştirilmesi, dizge\nkararsızlığı gibi istenmeyen durumlara neden olabilir. Bu işlemin\nişlemci önceliğini değiştirmeyi doğruluyor musunuz?" + IDS_CREATENEWTASK_DESC "Bir izlencenin, bir dizinin, bir belgenin veyâ bir Umûmî Ağ kaynağının adını yazınız, Görev Yöneticisi onu sizin için açacaktır." + IDS_MSG_ACCESSPROCESSAFF "İşlemci İlişkisinin Erişilememesi veyâ Ayarlanamaması" + IDS_MSG_PROCESSONEPRO "İşlem en azından bir işlemciyle ilişkisi olmalıdır." + IDS_MSG_INVALIDOPTION "Geçersiz Seçenek" + IDS_MSG_UNABLEDEBUGPROCESS "Yanlışlık Ayıklama İşleminin Yapılamaması" + IDS_MSG_WARNINGDEBUG "UYARI: Bu işlemde yanlışlık ayıklama veri yitimiyle sonuçlanabilir.\nYanlışlık ayıklayıcı bağlamak istediğinizi doğruluyor musunuz?" + IDS_MSG_TASKMGRWARNING "Görev Yöneticisi Uyarısı" + IDS_MSG_WARNINGTERMINATING "UYARI: Bir işlemin sonlandırılması, veri\nyitimi ve dizge kararsızlığını içeren istenmeyen sonuçlara neden\nolabilir. İşlem sonlandırılmadan önce durumunu veyâ verisini\nkaydetme fırsatı verilmeyecektir. İşlemi\nsonlandırmak istediğinizi doğruluyor musunuz?" + IDS_MSG_UNABLETERMINATEPRO "İşlem Sonlandırmanın Yapılamaması" + IDS_MSG_UNABLECHANGEPRIORITY "Önceliğin Değiştirilememesi" + IDS_MSG_WARNINGCHANGEPRIORITY "UYARI: Bu işlemin öncelik sınıfının değiştirilmesi, dizge\nkararsızlığını içeren istenmeyen sonuçlara neden olabilir. Öncelik \nsınıfını değiştirmek istediğinizi doğruluyor musunuz?" IDS_MSG_TRAYICONCPUUSAGE "CPU Kullanımı: %%%d" IDS_STATUS_MEMUSAGE "Bellek Kullanımı: %d KB / %d KB" IDS_STATUS_CPUUSAGE "CPU Kullanımı: %%%3d" - IDS_STATUS_PROCESSES "İşlem Sayısı: %d" + IDS_STATUS_PROCESSES "İşlem: %d" IDS_Not_Responding "Yanıt Vermiyor" IDS_Running "Çalışıyor" END diff --git a/reactos/base/setup/reactos/lang/tr-TR.rc b/reactos/base/setup/reactos/lang/tr-TR.rc index b7860ff9ced..0468cd7c2f8 100644 --- a/reactos/base/setup/reactos/lang/tr-TR.rc +++ b/reactos/base/setup/reactos/lang/tr-TR.rc @@ -7,9 +7,9 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "ReactOS Kur" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "ReactOS Kur'a Hoşgeldiniz.", IDC_STARTTITLE, 115, 8, 195, 24 - LTEXT "Daha bu CD'den ReactOS'u doğrudan kuramazsınız. Bu CD'den ReactOS'u kurmak için bilgisayarınızı yeniden başlatınız.", IDC_STATIC, 115, 40, 195, 100 - LTEXT "Kur'dan çıkmak için ""İptal"" düğmesine tıklayınız.", IDC_STATIC, 115, 169, 195, 17 + LTEXT "ReactOS Kur Büyücüsü'ne Hoşgeldiniz", IDC_STARTTITLE, 115, 8, 195, 24 + LTEXT "Daha bu CD'den ReactOS'u doğrudan kuramazsınız. Lütfen ReactOS'u kurmak için bu CD'den bilgisayarınızı yeniden başlatınız.", IDC_STATIC, 115, 40, 195, 100 + LTEXT "Kur'dan çıkmak için İptal'e tıklayınız.", IDC_STATIC, 115, 169, 195, 17 END IDD_LANGSELPAGE DIALOGEX 0, 0, 317, 193 @@ -20,9 +20,9 @@ BEGIN CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99 CONTROL "Kurulum Dili:", 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 "Düğme Takımı Düzeni:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11 + CONTROL "Düğme Takımı Giriş Yöntemi:", 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 "Kurulum türünü seçmek için ""İleri >"" düğmesine tıklayınız.", IDC_STATIC, 10, 180, 297, 10 + LTEXT "Kurulum türünü seçmek için İleri'ye tıklayınız.", IDC_STATIC, 10, 180, 297, 10 END IDD_TYPEPAGE DIALOGEX 0, 0, 317, 193 @@ -32,8 +32,8 @@ FONT 8, "MS Shell Dlg" BEGIN CONTROL "Kurulum Türü", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 CONTROL "ReactOS'u Yükleme", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10 - CONTROL "ReactOS'u Onarma ya da Yükseltme", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 - LTEXT "Aygıt seçeneklerini seçmek için ""İleri >"" düğmesine tıklayınız.", IDC_STATIC, 10, 180, 297, 10 + CONTROL "Kurulu ReactOS'u Onarma ya da Yükseltme", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 20, 30, 277, 10 + LTEXT "Aygıtları kurmak için İleri'ye tıklayınız.", IDC_STATIC, 10, 180, 297, 10 END IDD_DEVICEPAGE DIALOGEX 0, 0, 317, 193 @@ -41,14 +41,14 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "ReactOS Kur" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "Aygıt Seçenekleri", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 - LTEXT "Bilgisayar Türü:", IDC_STATIC, 20, 15, 80, 10 + CONTROL "Aygıt Ayarları", IDC_STATIC, "Button", BS_GROUPBOX, 10, 0, 297, 172 + LTEXT "Bilgisayar:", IDC_STATIC, 20, 15, 80, 10 CONTROL "", IDC_COMPUTER, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 100, 15, 180, 80 - LTEXT "Görüntü Ayarları:", IDC_STATIC, 20, 35, 80, 10 + LTEXT "Görüntü:", IDC_STATIC, 20, 35, 80, 10 CONTROL "", IDC_DISPLAY, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 100, 35, 180, 80 - LTEXT "Düğme Takımı Türü:", IDC_STATIC, 20, 55, 80, 10 + LTEXT "Düğme Takımı:", IDC_STATIC, 20, 55, 80, 10 CONTROL "", IDC_KEYBOARD, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 100, 55, 180, 80 - LTEXT "Kurulum yapılacak bölümü seçmek için ""İleri >"" düğmesine tıklayınız.", IDC_STATIC, 10, 180, 277, 20 + LTEXT "Kurulum aygıtını kurmak için İleri'ye tıklayınız.", IDC_STATIC, 10, 180, 277, 20 END IDD_DRIVEPAGE DIALOGEX 0, 0, 317, 193 @@ -56,13 +56,13 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "ReactOS Kur" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "ReactOS'un Kurulacağı Bölüm", IDC_STATIC, "Button", BS_GROUPBOX, 10, 1, 298, 176 + CONTROL "ReactOS Kurulumu İçin Bölümlendirme", IDC_STATIC, "Button", BS_GROUPBOX, 10, 1, 298, 176 LISTBOX IDC_PARTITION, 20, 12, 278, 142, LBS_HASSTRINGS | WS_VSCROLL PUSHBUTTON "&Oluştur...", IDC_PARTCREATE, 20, 155, 50, 15 PUSHBUTTON "&Sil", IDC_PARTDELETE, 76, 155, 50, 15 PUSHBUTTON "S&ürücü", IDC_DEVICEDRIVER, 162, 155, 50, 15, WS_DISABLED PUSHBUTTON "G&elişmiş Seçenekler...", IDC_PARTMOREOPTS, 218, 155, 80, 15 - LTEXT "Kurulum özetini görmek için ""İleri >"" düğmesine tıklayınız.", IDC_STATIC, 10, 180, 277, 20 + LTEXT "Kurulum özetini gözden geçirmek için İleri'ye tıklayınız.", IDC_STATIC, 10, 180, 277, 20 END IDD_PARTITION DIALOGEX 0, 0, 145, 90 @@ -71,7 +71,7 @@ CAPTION "Bölüm Oluşturma" FONT 8, "MS Shell Dlg" BEGIN CONTROL "", IDC_UPDOWN1, "msctls_updown32", WS_VISIBLE, 104, 22, 9, 13 - CONTROL "Bölüm Oluşturma", IDC_STATIC, "Button", BS_GROUPBOX, 7, 5, 129, 57 + CONTROL "Bölüm Oluşturma ve Biçimlendirme", IDC_STATIC, "Button", BS_GROUPBOX, 7, 5, 129, 57 LTEXT "Büyüklük:", 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 @@ -83,15 +83,15 @@ END IDD_BOOTOPTIONS DIALOGEX 0, 0, 305, 116 STYLE WS_VISIBLE | WS_CAPTION -CAPTION "Gelişmiş Seçenekler" +CAPTION "Gelişmiş Bölümlendirme Seçenekleri" FONT 8, "MS Shell Dlg" BEGIN CONTROL "Kurulum Dizini", IDC_STATIC, "Button", BS_GROUPBOX, 4, 1, 298, 30 EDITTEXT IDC_PATH, 10, 11, 278, 13, WS_VISIBLE - CONTROL "Önyükleyici Kurulumu", IDC_STATIC, "Button", BS_GROUPBOX, 4, 36, 298, 52 - CONTROL "Önyükleyici, diskin MBR'sine ve VBR'sine kurulsun.", IDC_INSTFREELDR, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 10, 46, 278, 11 - CONTROL "Önyükleyici, diskin yalnızca VBR'sine kurulsun.", IDC_INSTVBRONLY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 10, 57, 278, 11 - CONTROL "Önyükleyici kurulmasın.", IDC_NOINSTFREELDR, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 10, 68, 278, 11 + CONTROL "Ön Yükleyici Kurulumu", IDC_STATIC, "Button", BS_GROUPBOX, 4, 36, 298, 52 + CONTROL "Ön yükleyiciyi diskin üzerine kur. (MBR ve VBR)", IDC_INSTFREELDR, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 10, 46, 278, 11 + CONTROL "Ön yükleyiciyi diskin üzerine kur. (Yalnızca VBR)", IDC_INSTVBRONLY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 10, 57, 278, 11 + CONTROL "Ön yükleyici kurulumu yok.", IDC_NOINSTFREELDR, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED, 10, 68, 278, 11 PUSHBUTTON "Tamam", IDOK, 180, 94, 50, 15, WS_TABSTOP | WS_VISIBLE PUSHBUTTON "İptal", IDCANCEL, 240, 94, 50, 15, WS_TABSTOP | WS_VISIBLE END @@ -102,7 +102,7 @@ CAPTION "ReactOS Kur" FONT 8, "MS Shell Dlg" BEGIN CONTROL "Kurulum Özeti", IDC_ACTION, "Button", BS_GROUPBOX, 10, 0, 297, 172 - LTEXT "Kurulumu başlatmak için ""İleri >"" düğmesine tıklayınız.", IDC_STATIC, 10, 180, 277, 20 + LTEXT "Kurulumu işlemini başlatmak için İleri'ye tıklayınız.", IDC_STATIC, 10, 180, 277, 20 END IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193 @@ -110,7 +110,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "ReactOS Kur" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "Kurulum Süreci", IDC_ACTION, "Button", BS_GROUPBOX, 10, 0, 297, 172 + CONTROL "Kurulum İşlemi", IDC_ACTION, "Button", BS_GROUPBOX, 10, 0, 297, 172 LTEXT "Kütükler yükleniyor...", IDC_ACTIVITY, 20, 50, 277, 10 LTEXT "sınama.txt", IDC_ITEM, 30, 80, 257, 10 CONTROL "", IDC_PROCESSPROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 20, 120, 277, 8 @@ -118,32 +118,32 @@ END IDD_RESTARTPAGE DIALOGEX 0, 0, 317, 193 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "ReactOS Kur" +CAPTION "ReactOS Kurulumunun Bitirilmesi" FONT 8, "MS Shell Dlg" BEGIN CONTROL "ReactOS Kurulumunun İlk Aşaması Bitmesi", IDC_FINISHTITLE, "Button", BS_GROUPBOX, 10, 0, 297, 172 - LTEXT "ReactOS kurulumunun ilk aşaması bitti.", IDC_STATIC, 20, 50, 277, 10 - LTEXT """Bitir"" düğmesine bastığınızda bilgisayarınız yeniden başlatılacak.", IDC_STATIC, 20, 80, 277, 10 + LTEXT "ReactOS kurulumunun ilk aşamasını başarılı bir şekilde bitirdiniz.", IDC_STATIC, 20, 50, 277, 10 + LTEXT "Bitir'e tıkladığınızda bilgisayarınız yeniden başlatılacaktır.", 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 "Eğer bilgisayarınızda takılı bir CD varsa onu çıkarttığınızdan sonra ""Bitir"" düğmesine tıklayınız.", IDC_STATIC, 10, 180, 297, 20 + LTEXT "Eğer bir sürücüde bir CD varsa onu çıkartınız. Sonra, bilgisayarınızı yeniden başlatmak için Bitir'e tıklayınız.", IDC_STATIC, 10, 180, 297, 20 END STRINGTABLE BEGIN IDS_LANGTITLE "Dil Seçimi" - IDS_LANGSUBTITLE "Kurulum ve dizge dilini seçiniz." + IDS_LANGSUBTITLE "Kurulum ve son dizge dilini seçiniz." IDS_TYPETITLE "ReactOS Kur'a Hoşgeldiniz" IDS_TYPESUBTITLE "Kurulum türünü seçiniz." - IDS_DEVICETITLE "Aygıt Seçeneklerinin Seçilmesi" - IDS_DEVICESUBTITLE "Görüntü ayarlarını ve düğme takımı türünü seçiniz." - IDS_DRIVETITLE "Kurulum Yapılacak Bölümün Seçilmesi" - IDS_DRIVESUBTITLE "Kurulum yapılacak bölümü, kurulum dizinini ve önyükleyici seçeneklerini seçiniz." + IDS_DEVICETITLE "Ana Aygıtların Kurulumu" + IDS_DEVICESUBTITLE "Görüntü ve düğme takımı ayarlarını yapınız." + IDS_DRIVETITLE "Kurulum Bölümünün ve Dizge Dizininin Anıklanması" + IDS_DRIVESUBTITLE "Kurulum bölümünü, dizge dizinini ve ön yükleyiciyi anıklayınız." IDS_PROCESSTITLE "Bölümün Biçimlendirilmesi, Kütüklerin Çoğaltılması ve Önyükleyicinin Kurulması" - IDS_PROCESSSUBTITLE "Bölüm biçimlendiriliyor, kütükler çoğaltılıyor ve önyükleyici kuruluyor." - IDS_RESTARTTITLE "Kurulumun İlk Aşamasının Bitmesi" - IDS_RESTARTSUBTITLE "Kurulumun ilk aşaması bitti. İkincisine geçmek için bilgisayarı yeniden başlatınız." + IDS_PROCESSSUBTITLE "Bölüm oluşturuluyor ve biçimlendiriliyor, kütükler çoğaltılıyor, ön yükleyici kuruluyor ve anıklanıyor." + IDS_RESTARTTITLE "Kurulumun İlk Aşaması Bitti" + IDS_RESTARTSUBTITLE "Kurulumun ilk aşaması bitirildi, ikinci aşamayla sürdürmek için yeniden başlatınız." IDS_SUMMARYTITLE "Kurulum Özeti" - IDS_SUMMARYSUBTITLE "Kurulumdan önce, dizelgelenen kurulum seçeneklerini gözden geçiriniz." - IDS_ABORTSETUP "ReactOS kurulumu bitmedi. Eğer Kur'dan çıkarsanız, ReactOS'u kurmak için Kur'u yeniden çalıştırabilirsiniz. Çıkmayı doğruluyor musunuz?" + IDS_SUMMARYSUBTITLE "Kurulumdan aygıtına uygulanmadan önce gözden geçirmek için dizelgelenen kurulum seçenekleri." + IDS_ABORTSETUP "ReactOS bilgisayarınıza tümüyle kurulmadı. Eğer şimdi Kur'dan çıkarsanız, ReactOS'u kurmak için Kur'u yeniden çalıştırmayı isteybilirsiniz. Gerçekten çıkılsın mı?" IDS_ABORTSETUP2 "Kurulum iptal edilsin mi?" END diff --git a/reactos/base/setup/reactos/reactos.rc b/reactos/base/setup/reactos/reactos.rc index 84b31a1a4fa..3fb5b36b4b5 100644 --- a/reactos/base/setup/reactos/reactos.rc +++ b/reactos/base/setup/reactos/reactos.rc @@ -78,12 +78,12 @@ IDB_ROSLOGO BITMAP "res/rosbitmap.bmp" #ifdef LANGUAGE_SK_SK #include "lang/sk-SK.rc" #endif -#ifdef LANGUAGE_TR_TR - #include "lang/tr-TR.rc" -#endif #ifdef LANGUAGE_SQ_AL #include "lang/sq-AL.rc" #endif +#ifdef LANGUAGE_TR_TR + #include "lang/tr-TR.rc" +#endif #ifdef LANGUAGE_UK_UA #include "lang/uk-UA.rc" #endif diff --git a/reactos/base/setup/vmwinst/lang/tr-TR.rc b/reactos/base/setup/vmwinst/lang/tr-TR.rc index 9a1528d50a3..657dcb770fd 100644 --- a/reactos/base/setup/vmwinst/lang/tr-TR.rc +++ b/reactos/base/setup/vmwinst/lang/tr-TR.rc @@ -4,24 +4,24 @@ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT IDD_WELCOMEPAGE DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Görüntülük Sürücüsü Kurulumu" +CAPTION "Vidyo Sürücüsü Kurulumu" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - LTEXT "ReactOS Kur, VMWare(r)'de çalıştığını algıladı.", -1, 117, 8, 140, 24 - LTEXT "VMware(r) SVGA sürücüsünü kurmak için ""İleri"" düğmesine tıklayınız. Eğer sürücüyü kurmak istemiyorsanız ""İptal"" düğmesine tıklayınız.", -1, 117, 140, 140, 24 + LTEXT "ReactOS Kur, sizin ReactOS'u VMWare(r)'de çalıştırdığınızı algıladı.", -1, 117, 8, 140, 24 + LTEXT "Eğer VMware(r) SVGA sürücüsünü kurmayı istiyorsanız ""İleri""ye tıklayınız, yoksa ""İptal""e tıklayınız.", -1, 117, 140, 140, 24 END IDD_INSERT_VMWARE_TOOLS DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Görüntülük Sürücüsü Kurulumu" +CAPTION "Vidyo Sürücüsü Kurulumu" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - LTEXT "ReactOS Kur, VMware(r) SVGA sürücüsüyle birlikte gelmez.\n\nBu yüzden, VMWare(r)'de bulunan ""Install VMware tools..."" seçeneğine tıklayınız.\n\n\nİşlemi sürdürmek için ""İleri"" düğmesine, sürücünün kurulumunu atlamak için ""İptal"" düğmesine tıklayınız.", -1, 25, 25, 225, 85 + LTEXT "ReactOS Kur, VMware(r) SVGA sürücüsüyle gelmez.\n\nBu yüzden VMWare(r) seçke çubuğunuzdaki ""VM""ye gidiniz ve ""Install VMware tools...""u seçiniz.\n\n\nSürdürmek için ""İleri""ye ya da SVGA sürücüsünün kurulumunu atlamak için ""İptal""e tıklayınız.", -1, 25, 25, 225, 85 END IDD_INSTALLING_VMWARE_TOOLS DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Görüntülük Sürücüsü Kurulumu" +CAPTION "Vidyo Sürücüsü Kurulumu" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN LTEXT "{STATUS}", IDC_INSTALLINGSTATUS, 25, 68, 225, 8 @@ -30,10 +30,10 @@ END IDD_CONFIG DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Görüntülük Sürücüsü Kurulumu" +CAPTION "Vidyo Sürücüsü Kurulumu" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - LTEXT "VMware(r) SVGA sürücüsü, başarılı bir şekilde kuruldu. Aşağıdaki çözünürlüklerden birini seçiniz:", -1, 25, 5, 225, 20 + LTEXT "VMware(r) SVGA sürücüsü, başarılı bir şekilde kuruldu. Lütfen gözde görüntülük çözünürlüğünüzü seçiniz:", -1, 25, 5, 225, 20 PUSHBUTTON "640x480", 1120, 25, 30, 65, 15, BS_AUTORADIOBUTTON PUSHBUTTON "800x600", 1400, 25, 45, 65, 15, BS_AUTORADIOBUTTON PUSHBUTTON "1024x768", 1792, 25, 60, 65, 15, BS_AUTORADIOBUTTON @@ -45,89 +45,89 @@ 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 "Aşağıdaki derinliklerden birini seçiniz:", -1, 25, 93, 225, 12 + LTEXT "Lütfen gözde renk derinliğinizi seçiniz:", -1, 25, 93, 225, 12 COMBOBOX IDC_COLORQUALITY, 25, 105, 75, 80, CBS_DROPDOWNLIST | WS_TABSTOP END IDD_INSTALLATION_FAILED DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Görüntülük Sürücüsü Kurulumu" +CAPTION "Vidyo Sürücüsü Kurulumu" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - LTEXT "ReactOS Kur, VMware(r) SVGA sürücüsünü kuramadı.\n\n\nReactOS kurulumunu sürdürmek için ""Bitir"" düğmesine tıklayınız.", -1, 25, 25, 225, 85 + LTEXT "ReactOS Kur, VMware(r) SVGA sürücüsünü kuramadı.\n\n\nKurulum işlemini sürdürmek için ""Bitir""e tıklayınız.", -1, 25, 25, 225, 85 END IDD_CHOOSEACTION DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Görüntülük Sürücüsü Kurulumu" +CAPTION "Vidyo Sürücüsü Kurulumu" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - LTEXT "VMware(r) SVGA sürücüsü, daha önceden kurulmuş.\n\nNe yapmak istediğinizi seçiniz:", -1, 25, 5, 225, 30 - PUSHBUTTON "Görüntülük Ayarlarını Yapılandırmak", IDC_CONFIGSETTINGS, 25, 40, 200, 15, BS_AUTORADIOBUTTON - PUSHBUTTON "Başka Bir Görüntülük Sürücüsü Kurmak", IDC_USEOTHERDRIVER, 25, 55, 200, 15, BS_AUTORADIOBUTTON - PUSHBUTTON "VMware(r) SVGA Sürücüsünü Kaldırmak", IDC_UNINSTALL, 25, 70, 200, 15, BS_AUTORADIOBUTTON - LTEXT "Sürdürmek için ""İleri"" düğmesine, çıkmak için ""İptal"" düğmesine tıklayınız.", -1, 25, 93, 225, 19 + LTEXT "VMware(r) SVGA sürücüsü önceden kurulmuş.\n\nLütfen ne yapmak istediğinizi seçiniz:", -1, 25, 5, 225, 30 + PUSHBUTTON "Görüntülük Ayarlarını Yapılandırma", IDC_CONFIGSETTINGS, 25, 40, 200, 15, BS_AUTORADIOBUTTON + PUSHBUTTON "Başka Bir Çizge Sürücüsü Kurma", IDC_USEOTHERDRIVER, 25, 55, 200, 15, BS_AUTORADIOBUTTON + PUSHBUTTON "VMware(r) SVGA Sürücüsünü Kaldırma", IDC_UNINSTALL, 25, 70, 200, 15, BS_AUTORADIOBUTTON + LTEXT "Sürdürmek için ""İleri""ye ya da büyücüden çıkmak için ""İptal""e tıklayınız.", -1, 25, 93, 225, 19 END IDD_SELECTDRIVER DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Görüntülük Sürücüsü Kurulumu" +CAPTION "Vidyo Sürücüsü Kurulumu" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - LTEXT "Kullanmak istediğiniz görüntülük sürücüsünü seçiniz:", -1, 25, 25, 225, 15 + LTEXT "Lütfen kullanmak istediğiniz çizge sürücüsünü seçiniz:", -1, 25, 25, 225, 15 PUSHBUTTON "ReactOS VGA Sürücüsü", IDC_VGA, 25, 40, 225, 15, BS_AUTORADIOBUTTON PUSHBUTTON "ReactOS VBE Sürücüsü (SVGA)", IDC_VBE, 25, 55, 225, 15, BS_AUTORADIOBUTTON - LTEXT "İşlemi bitirmek için ""Bitir"" düğmesine, hiçbir değişiklik yapmadan çıkmak için ""İptal"" düğmesine tıklayınız.", -1, 25, 93, 225, 20 + LTEXT "İşlemi bitirmek için ""Bitir""e ya da değişiklik yapmadan kurulumdan çıkmak için ""İptal""e tıklayınız.", -1, 25, 93, 225, 20 END IDD_DOUNINSTALL DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Görüntülük Sürücüsü Kurulumu" +CAPTION "Vidyo Sürücüsü Kurulumu" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - LTEXT "ReactOS Kur, VMware(r) SVGA sürücüsünü kaldırmak üzere.\n\n\nKaldırmayı bitirmek için ""Bitir"" düğmesine, hiçbir değişiklik yapılmadan çıkmak için ""İptal"" düğmesine tıklayınız.", -1, 25, 25, 225, 85 + LTEXT "ReactOS Kur, VMware(r) SVGA sürücünüzü kaldırmak üzere.\n\n\nSürücüyü kaldırmak için ""Bitir""e ya da onu olduğu gibi bırakmak için ""İptal""e tıklayınız.", -1, 25, 25, 225, 85 END STRINGTABLE BEGIN IDS_WIZARD_NAME "VMware(r) algılandı." - IDS_FAILEDTOLOCATEDRIVERS "ReactOS Kur, gerekli kütükleri bulamadı.\nVMWare(r) Araç CD'sini bağladığınızı doğrulayınız." - IDS_FAILEDTOCOPYFILES "ReactOS Kur, gerekli kütükleri çoğaltamadı.\nVMWare(r) Araç CD'sini bağladığınızı doğrulayınız.\n" - IDS_FAILEDTOACTIVATEDRIVER "VMware(r) SVGA sürücüsünün etkinleştirilmesi başarısız oldu." - IDS_FAILEDTOSELVGADRIVER "ReactOS VGA sürücüsünün etkinleştirilmesi başarısız oldu." - IDS_FAILEDTOSELVBEDRIVER "ReactOS VBE sürücüsünün etkinleştirilmesi başarısız oldu." - IDS_UNINSTNOTICE "VMware(r) SVGA sürücüsünün kütükleri silinmedi.\nOnları, dizgeyi yeniden başlatma sonrasında siliniz." - IDS_FAILEDTOADDREGENTRIES "VMware(r) SVGA sürücüsünün değerleri oluşturulamadı." + IDS_FAILEDTOLOCATEDRIVERS "ReactOS Kur gerekli kütükleri bulamadı.\nVMWare(r) Araç CD-ROM'unun takılı olduğundan emin olunuz." + IDS_FAILEDTOCOPYFILES "ReactOS Kur gerekli kütükleri çoğaltamadı.\nVMWare(r) Araç CD-ROM'unun takılı olduğundan emin olunuz.\n" + IDS_FAILEDTOACTIVATEDRIVER "VMware(r) SVGA sürücüsünü etkinleştirme başarısız oldu." + IDS_FAILEDTOSELVGADRIVER "ReactOS VGA sürücüsünü etkinleştirme başarısız oldu." + IDS_FAILEDTOSELVBEDRIVER "ReactOS VBE sürücüsünü etkinleştirme başarısız oldu." + IDS_UNINSTNOTICE "VMware(r) SVGA sürücüsünün kütükleri daha silinmedi.\nLütfen onları bir yeniden başlatmadan sonra elle siliniz." + IDS_FAILEDTOADDREGENTRIES "VMware(r) SVGA sürücüsü için değer defteri girdilerinin oluşturulması başarısız oldu." END STRINGTABLE BEGIN - 10001 "Düşük (8 İkillik)" - 10002 "Orta (16 İkillik)" - 10003 "Yüksek (32 İkillik)" + 10001 "En Düşük (Her Noktada 8 Bit)" + 10002 "Orta (Her Noktada 16 Bit)" + 10003 "En Yüksek (Her Noktada 32 Bit)" END STRINGTABLE BEGIN - IDS_SEARCHINGFORCDROM "VMWare(r) Araç CD'si aranıyor..." + IDS_SEARCHINGFORCDROM "VMWare(r) Araç CD-ROM'u aranıyor..." IDS_COPYINGFILES "Kütükler çoğaltılıyor..." IDS_ENABLINGDRIVER "VMware(r) SVGA sürücüsü etkinleştiriliyor..." END STRINGTABLE BEGIN - IDD_INSERT_VMWARE_TOOLSTITLE "VMware(r) SVGA Sürücüsünün Kurulumu" - IDD_INSERT_VMWARE_TOOLSSUBTITLE "VMWare(r) Araç CD'sini bağlayınız." - IDD_INSTALLING_VMWARE_TOOLSTITLE "VMware(r) SVGA Sürücüsünün Kurulumu" - IDD_INSTALLING_VMWARE_TOOLSSUBTITLE "VMware(r) SVGA sürücüsünü bulunuz ve çoğaltınız." - IDD_CONFIGTITLE "VMware(r) SVGA Sürücüsünün Kurulumu" - IDD_CONFIGSUBTITLE "Çözünürlüklerden birini seçiniz." - IDD_INSTALLATION_FAILEDTITLE "VMware(r) SVGA Sürücüsünün Kurulumu" + IDD_INSERT_VMWARE_TOOLSTITLE "VMware(r) SVGA Sürücüsünün Kurulum Büyücüsü" + IDD_INSERT_VMWARE_TOOLSSUBTITLE "Lütfen VMWare(r) Araç CD-ROM'unu takınız." + IDD_INSTALLING_VMWARE_TOOLSTITLE "VMware(r) SVGA Sürücüsünün Kurulum Büyücüsü" + IDD_INSTALLING_VMWARE_TOOLSSUBTITLE "VMware(r) SVGA sürücüsünü arayınız ve çoğaltınız." + IDD_CONFIGTITLE "VMware(r) SVGA Sürücüsünün Kurulum Büyücüsü" + IDD_CONFIGSUBTITLE "Gözde görüntülük çözünürlüğünüzü seçiniz." + IDD_INSTALLATION_FAILEDTITLE "VMware(r) SVGA Sürücüsünün Kurulum Büyücüsü" IDD_INSTALLATION_FAILEDSUBTITLE "VMware(r) SVGA sürücüsünün kurulumu başarısız oldu." - IDD_CHOOSEACTIONTITLE "VMware(r) SVGA Sürücüsünün Kurulumu" + IDD_CHOOSEACTIONTITLE "VMware(r) SVGA Sürücüsünün Kurulum Büyücüsü" IDD_CHOOSEACTIONSUBTITLE "Ne yapmak istediğinizi seçiniz." - IDD_SELECTDRIVERTITLE "VMware(r) SVGA Sürücüsünün Kurulumu" + IDD_SELECTDRIVERTITLE "VMware(r) SVGA Sürücüsünün Kurulum Büyücüsü" IDD_SELECTDRIVERSUBTITLE "Bir sürücü seçiniz." - IDD_DOUNINSTALLTITLE "VMware(r) SVGA Sürücüsünün Kurulumu" + IDD_DOUNINSTALLTITLE "VMware(r) SVGA Sürücüsünün Kurulum Büyücüsü" IDD_DOUNINSTALLSUBTITLE "Sürücüyü kaldırınız." END diff --git a/reactos/base/setup/vmwinst/vmwinst.rc b/reactos/base/setup/vmwinst/vmwinst.rc index 6ff883b4f9a..835aa28e736 100644 --- a/reactos/base/setup/vmwinst/vmwinst.rc +++ b/reactos/base/setup/vmwinst/vmwinst.rc @@ -77,12 +77,12 @@ IDB_HEADER BITMAP "resources/header.bmp" #ifdef LANGUAGE_SK_SK #include "lang/sk-SK.rc" #endif -#ifdef LANGUAGE_SV_SE - #include "lang/sv-SE.rc" -#endif #ifdef LANGUAGE_SQ_AL #include "lang/sq-AL.rc" #endif +#ifdef LANGUAGE_SV_SE + #include "lang/sv-SE.rc" +#endif #ifdef LANGUAGE_TR_TR #include "lang/tr-TR.rc" #endif diff --git a/reactos/base/setup/welcome/lang/tr-TR.rc b/reactos/base/setup/welcome/lang/tr-TR.rc index d91b20872ea..78802c65f12 100644 --- a/reactos/base/setup/welcome/lang/tr-TR.rc +++ b/reactos/base/setup/welcome/lang/tr-TR.rc @@ -7,10 +7,10 @@ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT /* Default settings */ STRINGTABLE BEGIN - IDS_APPTITLE "ReactOS - Hoşgeldiniz Uygulaması" - IDS_DEFAULTTOPICTITLE "ReactOS - Hoşgeldiniz Uygulaması" - IDS_DEFAULTTOPICDESC "React İşletim Dizgesi'ne hoşgeldiniz.\n\nFârenizi, soldaki herhangi bir seçeneğe götürebilirsiniz." -// IDS_CHECKTEXT "Bir sonraki sefere bu pencereyi göster." + IDS_APPTITLE "ReactOS - Hoşgeldiniz" + IDS_DEFAULTTOPICTITLE "ReactOS" + IDS_DEFAULTTOPICDESC "React İşletim Dizgesi'ne hoşgeldiniz.\n\nSolda bir konuya tıklayınız." +// IDS_CHECKTEXT "Bu iletiyi yine göster." // IDS_CLOSETEXT "Çıkış" END @@ -18,7 +18,7 @@ END STRINGTABLE BEGIN IDS_TOPICBUTTON0 "ReactOS'u Kur" - IDS_TOPICBUTTON1 "CD'nin İçini Araştır" + IDS_TOPICBUTTON1 "Bu CD'yi Araştır" IDS_TOPICBUTTON2 "Çıkış" // IDS_TOPICBUTTON3 "Empty Topic 3" // IDS_TOPICBUTTON4 "Empty Topic 4" @@ -33,7 +33,7 @@ END STRINGTABLE BEGIN IDS_TOPICTITLE0 "ReactOS'u Kur" - IDS_TOPICTITLE1 "CD'nin İçini Araştır" + IDS_TOPICTITLE1 "Bu CD'yi Araştır" IDS_TOPICTITLE2 "Çıkış" // IDS_TOPICTITLE3 "Empty Topic Title 3" // IDS_TOPICTITLE4 "Empty Topic Title 4" @@ -47,9 +47,9 @@ END /* Topic descriptions */ STRINGTABLE BEGIN - IDS_TOPICDESC0 "Bu seçenek ile bilgisayarınıza ReactOS yükleyebilir ya da bilgisayarınızda var olan bir ReactOS yüklemesini yükseltebilirsiniz." - IDS_TOPICDESC1 "CD'deki kütükleri gösterir." - IDS_TOPICDESC2 "Bu uygulamadan çıkar." + IDS_TOPICDESC0 "Bilgisayarınıza yeni bir ReactOS yükleyiniz ya da var olan bir yüklemeyi yükseltiniz." + IDS_TOPICDESC1 "CD'yi araştır." + IDS_TOPICDESC2 "Bu uygulamadan çıkmak için tıklayınız." // IDS_TOPICDESC3 "Topic description 3.\n\nDescribe topic 3 here." // IDS_TOPICDESC4 "Topic description 4.\n\nDescribe topic 4 here." // IDS_TOPICDESC5 "Topic description 5.\n\nDescribe topic 5 here." diff --git a/reactos/base/setup/welcome/welcome.rc b/reactos/base/setup/welcome/welcome.rc index 655fcf2b344..2391afe02b8 100644 --- a/reactos/base/setup/welcome/welcome.rc +++ b/reactos/base/setup/welcome/welcome.rc @@ -116,6 +116,9 @@ END #ifdef LANGUAGE_SK_SK #include "lang/sk-SK.rc" #endif +#ifdef LANGUAGE_SQ_AL + #include "lang/sq-AL.rc" +#endif #ifdef LANGUAGE_SV_SE #include "lang/sv-SE.rc" #endif @@ -125,9 +128,6 @@ END #ifdef LANGUAGE_TR_TR #include "lang/tr-TR.rc" #endif -#ifdef LANGUAGE_SQ_AL - #include "lang/sq-AL.rc" -#endif #ifdef LANGUAGE_UK_UA #include "lang/uk-UA.rc" #endif diff --git a/reactos/base/shell/explorer-new/lang/tr-TR.rc b/reactos/base/shell/explorer-new/lang/tr-TR.rc index 5258caec0b5..95ea9523ca6 100644 --- a/reactos/base/shell/explorer-new/lang/tr-TR.rc +++ b/reactos/base/shell/explorer-new/lang/tr-TR.rc @@ -11,8 +11,8 @@ BEGIN MENUITEM "&Bildirimleri Husûsileştir...", ID_SHELL_CMD_CUST_NOTIF MENUITEM SEPARATOR MENUITEM "&Pencereleri Basamakla", ID_SHELL_CMD_CASCADE_WND - MENUITEM "P&encereleri Üst Üste Sırala", ID_SHELL_CMD_TILE_WND_H - MENUITEM "Pe&ncereleri Yan Yana Sırala", ID_SHELL_CMD_TILE_WND_V + MENUITEM "P&encereleri Yatay Olarak Döşe", ID_SHELL_CMD_TILE_WND_H + MENUITEM "Pe&ncereleri Dikey Olarak Döşe", ID_SHELL_CMD_TILE_WND_V MENUITEM "&Masaüstünü Göster", ID_SHELL_CMD_SHOW_DESKTOP MENUITEM "&Geri Al", ID_SHELL_CMD_UNDO_ACTION MENUITEM SEPARATOR @@ -28,11 +28,11 @@ BEGIN POPUP "" BEGIN MENUITEM "", -1, MFT_SEPARATOR - POPUP "&Yazılımlar", IDM_PROGRAMS + POPUP "&İzlenceler", IDM_PROGRAMS BEGIN MENUITEM "(Boş)", -1, MFT_STRING, MFS_GRAYED END - POPUP "Y&er İmleri", IDM_FAVORITES + POPUP "&Yer İmleri", IDM_FAVORITES BEGIN MENUITEM "(Boş)", -1, MFT_STRING, MFS_GRAYED END @@ -56,11 +56,11 @@ BEGIN MENUITEM "Yar&dım ve Destek", IDM_HELPANDSUPPORT, MFT_STRING, MFS_ENABLED MENUITEM "&Çalıştır...", IDM_RUN, MFT_STRING, MFS_ENABLED MENUITEM "", 450, MFT_SEPARATOR, MFS_ENABLED - MENUITEM "E&şle", IDM_SYNCHRONIZE, MFT_STRING, MFS_ENABLED - MENUITEM "&Oturumu Kapat %s...", IDM_LOGOFF, MFT_STRING, MFS_ENABLED + MENUITEM "&Eşle", IDM_SYNCHRONIZE, MFT_STRING, MFS_ENABLED + MENUITEM "&Oturumu Kapat: %s...", IDM_LOGOFF, MFT_STRING, MFS_ENABLED MENUITEM "Ba&ğlantıyı Kes...", IDM_DISCONNECT, MFT_STRING, MFS_ENABLED MENUITEM "B&ilgisayarı Ayır", IDM_UNDOCKCOMPUTER, MFT_STRING, MFS_ENABLED - MENUITEM "Bi&lgisayarı Kapat...", IDM_SHUTDOWN, MFT_STRING, MFS_ENABLED + MENUITEM "&Kapat...", IDM_SHUTDOWN, MFT_STRING, MFS_ENABLED END END @@ -69,7 +69,7 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Görev Çubuğu" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - GROUPBOX "Görev Çubuğunun Görünümü", IDC_STATIC, 6, 6, 240, 104 + GROUPBOX "Görev Çubuğu Görünümü", IDC_STATIC, 6, 6, 240, 104 CONTROL "", IDC_TASKBARPROP_TASKBARBITMAP, "Static", SS_BITMAP | SS_SUNKEN, 13, 18, 224, 21 AUTOCHECKBOX "&Görev Çubuğunu Kilitle", IDC_TASKBARPROP_LOCK, 13, 45, 200, 10 AUTOCHECKBOX "G&örev Çubuğunu Kendiliğinden Gizle", IDC_TASKBARPROP_HIDE, 13, 58, 200, 10 @@ -83,15 +83,15 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Başlat Seçkesi" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - AUTORADIOBUTTON "&Gelişmiş Başlat Seçkesi", IDC_TASKBARPROP_STARTMENU, 7, 7, 105, 10 - LTEXT "Gelişmiş Başlat Seçkesi; dizinlere, sık kullanılan yazılımlara ve aramaya kolayca ulaşmanıza olanak sağlar.", IDC_STATIC, 20, 17, 150, 24, WS_DISABLED + AUTORADIOBUTTON "&Başlat Seçkesi", IDC_TASKBARPROP_STARTMENU, 7, 7, 105, 10 + LTEXT "Bu seçke türü; size dizinlerinize, sık kullanılan izlencelere ve aramaya kolay erişim verir.", IDC_STATIC, 20, 17, 150, 24, WS_DISABLED PUSHBUTTON "&Husûsileştir...", IDC_TASKBARPROP_STARTMENUCUST, 192, 4, 53, 14, WS_DISABLED - AUTORADIOBUTTON "&Eski Başlat Seçkesi", IDC_TASKBARPROP_STARTMENUCLASSIC, 7, 47, 105, 10, WS_DISABLED - LTEXT "Eski Başlat Seçkesi, eski görünüm ve eski işlevliği sağlar.", -1, 20, 57, 150, 24, WS_DISABLED + AUTORADIOBUTTON "&Geleneklik Başlat Seçkesi", IDC_TASKBARPROP_STARTMENUCLASSIC, 7, 47, 105, 10, WS_DISABLED + LTEXT "Bu seçke türü, size geleneklik görünümü ve geleneklik işlevliliği sağlar.", -1, 20, 57, 150, 24, WS_DISABLED PUSHBUTTON "H&usûsileştir...", IDC_TASKBARPROP_STARTMENUCLASSICCUST, 192, 44, 53, 14, WS_DISABLED GROUPBOX "Gizlilik", IDC_STATIC, 7, 100, 238, 42 - AUTOCHECKBOX "&Son Kullanılan Kütüklerin Dizelgesini Sakla ve Görüntüle", IDC_TASKBARPROP_RECENTFILES, 14, 114, 224, 10, WS_DISABLED - AUTOCHECKBOX "S&on Kullanılan Yazılımların Dizelgesini Sakla ve Görüntüle", IDC_TASKBARPROP_RECENTFOLDERS, 14, 128, 224, 10, WS_DISABLED + AUTOCHECKBOX "&Son Zamanlarda Açılan Kütüklerin Bir Dizelgesini Sakla ve Görüntüle", IDC_TASKBARPROP_RECENTFILES, 14, 114, 224, 10, WS_DISABLED + AUTOCHECKBOX "S&on Zamanlarda Açılan Yazılımların Bir Dizelgesini Sakla ve Görüntüle", IDC_TASKBARPROP_RECENTFOLDERS, 14, 128, 224, 10, WS_DISABLED END IDD_TASKBARPROP_NOTIFICATION DIALOGEX 0, 0, 252, 218 @@ -101,13 +101,13 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN CONTROL "", IDC_TASKBARPROP_NOTIFICATIONBITMAP, "Static", SS_BITMAP | SS_SUNKEN,7, 6, 238, 21, WS_DISABLED GROUPBOX "Simgeler", IDC_STATIC, 6, 33, 240, 58, WS_DISABLED - LTEXT "Yakın zamanda kullanmadığınız simgeleri gizleyerek bildirim alanının şişmesini önleyebilirsiniz.", IDC_STATIC, 13, 48, 223, 16, WS_DISABLED + LTEXT "Son zamanlarda tıklamadığınız simgeleri gizleyerek bildirim alanını düzenli tutabilirsiniz.", IDC_STATIC, 13, 48, 223, 16, WS_DISABLED AUTOCHECKBOX "E&dilgin Simgeleri Gizle", IDC_TASKBARPROP_HIDEICONS, 13, 70, 125, 10, WS_DISABLED PUSHBUTTON "&Husûsileştir...", IDC_TASKBARPROP_ICONCUST, 188, 70, 50, 14, WS_DISABLED GROUPBOX "Dizge Simgeleri", IDC_STATIC, 6, 97, 240, 84, WS_DISABLED - LTEXT "Sürekli görüntülenecek dizge simgelerini seçiniz:", IDC_STATIC, 13, 112, 223, 16, WS_DISABLED + LTEXT "Sürekli göstermek için dizge simgelerini seçiniz:", IDC_STATIC, 13, 112, 223, 16, WS_DISABLED AUTOCHECKBOX "&Saat", IDC_TASKBARPROP_CLOCK, 13, 126, 200, 10, WS_DISABLED - AUTOCHECKBOX "S&es Ayârı", IDC_TASKBARPROP_VOLUME, 13, 139, 200, 10, WS_DISABLED + AUTOCHECKBOX "S&es Düzeyi", IDC_TASKBARPROP_VOLUME, 13, 139, 200, 10, WS_DISABLED AUTOCHECKBOX "&Ağ", IDC_TASKBARPROP_NETWORK, 13, 152, 200, 10, WS_DISABLED AUTOCHECKBOX "&Güç", IDC_TASKBARPROP_POWER, 13, 164, 200, 10, WS_DISABLED END @@ -117,7 +117,7 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Araç Çubukları" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - LTEXT "Görev çubuğuna hangi araç çubuklarının ekleneceğini seçebilirsiniz:", IDC_STATIC, 7, 7, 223, 12, WS_DISABLED + LTEXT "Görev çubuğuna eklemek için araç çubuklarını seçiniz:", 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 @@ -137,7 +137,7 @@ BEGIN IDS_PROPERTIES "&Husûsiyetler" IDS_OPEN_ALL_USERS "&Tüm Kullanıcılar'da Aç" IDS_EXPLORE_ALL_USERS "T&üm Kullanıcılar'da Araştır" - IDS_STARTUP_ERROR "Dizge, gerekli değerlerin, bozuk olduğundan ya da olmadığından Gezgin'i başlatamadı." + IDS_STARTUP_ERROR "Dizge, değer defterinin, bozuk ya da olmadığından gezgini başlatamadı." END STRINGTABLE diff --git a/reactos/base/system/rundll32/lang/tr-TR.rc b/reactos/base/system/rundll32/lang/tr-TR.rc index 65b747ef844..e33c668bc4e 100644 --- a/reactos/base/system/rundll32/lang/tr-TR.rc +++ b/reactos/base/system/rundll32/lang/tr-TR.rc @@ -3,6 +3,6 @@ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT STRINGTABLE BEGIN - IDS_DllNotLoaded """%s"" kitaplığı yüklenemedi." - IDS_MissingEntry "%s giriş noktası %s içinde bulunamadı." + IDS_DllNotLoaded "LoadLibrary, ""%s"" kitaplığını yüklemede başarısız oldu." + IDS_MissingEntry "%s içinde %s giriş noktası eksik." END diff --git a/reactos/base/system/rundll32/rundll32.rc b/reactos/base/system/rundll32/rundll32.rc index 3a4b4de56d4..19f7703d58a 100644 --- a/reactos/base/system/rundll32/rundll32.rc +++ b/reactos/base/system/rundll32/rundll32.rc @@ -67,15 +67,15 @@ #ifdef LANGUAGE_SK_SK #include "lang/sk-SK.rc" #endif +#ifdef LANGUAGE_SQ_AL + #include "lang/sq-AL.rc" +#endif #ifdef LANGUAGE_TH_TH #include "lang/th-TH.rc" #endif #ifdef LANGUAGE_TR_TR #include "lang/tr-TR.rc" #endif -#ifdef LANGUAGE_SQ_AL - #include "lang/sq-AL.rc" -#endif #ifdef LANGUAGE_UK_UA #include "lang/uk-UA.rc" #endif diff --git a/reactos/base/system/runonce/lang/tr-TR.rc b/reactos/base/system/runonce/lang/tr-TR.rc index 1e629c8c447..76de1eab405 100644 --- a/reactos/base/system/runonce/lang/tr-TR.rc +++ b/reactos/base/system/runonce/lang/tr-TR.rc @@ -7,7 +7,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "ReactOS Kur" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "ReactOS, şimdi aşağıdaki ayarlamaları yapıyor:", -1, 38, 8, 196, 18 + LTEXT "ReactOS şimdi aşağıdaki öğeleri kuruyor:", -1, 38, 8, 196, 18 LISTBOX IDC_COMP_LIST, 36, 32, 197, 131, LBS_OWNERDRAWVARIABLE | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP ICON IDI_ICON, -1, 5, 6, 21, 20 END diff --git a/reactos/base/system/runonce/runonce.rc b/reactos/base/system/runonce/runonce.rc index 5ed0a8f69c6..3ca6be68c51 100644 --- a/reactos/base/system/runonce/runonce.rc +++ b/reactos/base/system/runonce/runonce.rc @@ -48,12 +48,12 @@ IDI_ICON ICON "res/icon.ico" #ifdef LANGUAGE_SK_SK #include "lang/sk-SK.rc" #endif -#ifdef LANGUAGE_TR_TR - #include "lang/tr-TR.rc" -#endif #ifdef LANGUAGE_SQ_AL #include "lang/sq-AL.rc" #endif +#ifdef LANGUAGE_TR_TR + #include "lang/tr-TR.rc" +#endif #ifdef LANGUAGE_UK_UA #include "lang/uk-UA.rc" #endif diff --git a/reactos/base/system/userinit/lang/tr-TR.rc b/reactos/base/system/userinit/lang/tr-TR.rc index c7d2d068ff4..870c00f1342 100644 --- a/reactos/base/system/userinit/lang/tr-TR.rc +++ b/reactos/base/system/userinit/lang/tr-TR.rc @@ -4,5 +4,5 @@ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT STRINGTABLE BEGIN - STRING_USERINIT_FAIL "Userinit, kabuğu başlatamadı!\n" + STRING_USERINIT_FAIL "Userinit, kabuğu başlatmada başarısız oldu!\n" END diff --git a/reactos/base/system/userinit/userinit.rc b/reactos/base/system/userinit/userinit.rc index 20f5fa53937..5b573e5c3ad 100644 --- a/reactos/base/system/userinit/userinit.rc +++ b/reactos/base/system/userinit/userinit.rc @@ -70,6 +70,9 @@ #ifdef LANGUAGE_SK_SK #include "lang/sk-SK.rc" #endif +#ifdef LANGUAGE_SQ_AL + #include "lang/sq-AL.rc" +#endif #ifdef LANGUAGE_SV_SE #include "lang/sv-SE.rc" #endif @@ -79,9 +82,6 @@ #ifdef LANGUAGE_TR_TR #include "lang/tr-TR.rc" #endif -#ifdef LANGUAGE_SQ_AL - #include "lang/sq-AL.rc" -#endif #ifdef LANGUAGE_UK_UA #include "lang/uk-UA.rc" #endif diff --git a/reactos/base/system/winlogon/lang/tr-TR.rc b/reactos/base/system/winlogon/lang/tr-TR.rc index 8ea502ef894..b919dcb19c5 100644 --- a/reactos/base/system/winlogon/lang/tr-TR.rc +++ b/reactos/base/system/winlogon/lang/tr-TR.rc @@ -7,7 +7,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Bilgisayarı Kapat" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Şimdi bilgisayarınızı kapatabilirsiniz.", IDC_SHUTDOWNCOMPUTER, 31, 13, 132, 8 + LTEXT "Şimdi bilgisayarınızı kapatmak güvenlidir.", IDC_SHUTDOWNCOMPUTER, 31, 13, 132, 8 ICON IDI_WINLOGON, IDC_SHTDOWNICON, 6, 7, 18, 20 DEFPUSHBUTTON "&Yeniden Başlat", IDC_BTNSHTDOWNCOMPUTER, 62, 32, 40, 14 END @@ -17,8 +17,8 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Kullanıcı Arayüzü Yanlışlığı" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Oturum Açma Kullanıcı Arayüzü DLL'si (%s) yüklenemedi.", IDC_GINALOADFAILED, 39, 16, 156, 24 - LTEXT "DLL'nin yenilenmesi için dizge yöneticinize başvurunuz.", IDC_GINALOADFAILEDCONTACT, 39, 53, 151, 25 + LTEXT "Oturum Açma Kullanıcı Arayüzü %s DLL'si yüklemede başarısız oldu.", IDC_GINALOADFAILED, 39, 16, 156, 24 + LTEXT "DLL'yi yenisiyle değiştirmek veyâ özgün DLL'yi onarmak için dizge yöneticinize başvurunuz.", IDC_GINALOADFAILEDCONTACT, 39, 53, 151, 25 DEFPUSHBUTTON "&Yeniden Başlat", 1, 80, 91, 68, 14 END @@ -26,21 +26,21 @@ STRINGTABLE BEGIN IDS_PREPARENETWORKCONNECTIONS "Ağ Bağlantıları Anıklanıyor..." IDS_APPLYINGCOMPUTERSETTINGS "Bilgisayar Ayarları Uygulanıyor..." - IDS_RUNNINGSTARTUPSCRIPTS "Bilgisayarı Açma Betikleri Çalıştırılıyor..." - IDS_RUNNINGSHUTDOWNSCRIPTS "Bilgisayarı Kapama Betikleri Çalıştırılıyor..." - IDS_APPLYINGYOURPERSONALSETTINGS "Kullanıcı Ayarlarınız Uygulanıyor..." + IDS_RUNNINGSTARTUPSCRIPTS "Açılış Betikleri Çalıştırılıyor..." + IDS_RUNNINGSHUTDOWNSCRIPTS "Kapanış Betikleri Çalıştırılıyor..." + IDS_APPLYINGYOURPERSONALSETTINGS "Şahsî Ayarlarınız Uygulanıyor..." IDS_RUNNINGLOGOFFSCRIPTS "Oturum Kapama Betikleri Çalıştırılıyor..." IDS_RUNNINGLOGONSCRIPTS "Oturum Açma Betikleri Çalıştırılıyor..." - IDS_LOADINGYOURPERSONALSETTINGS "Kullanıcı Ayarlarınız Yükleniyor..." + IDS_LOADINGYOURPERSONALSETTINGS "Şahsî Ayarlarınız Yükleniyor..." IDS_CLOSINGNETWORKCONNECTIONS "Ağ Bağlantıları Kapatılıyor..." IDS_REACTOSISSHUTTINGDOWN "ReactOS Kapatılıyor..." - IDS_PREPARETOSTANDBY "Uyku Kipine Geçiliyor..." - IDS_PREPARETOHIBERNATE "Anıkta Beklemeye Geçiliyor..." + IDS_PREPARETOSTANDBY "Beklemeye Anıklanıyor..." + IDS_PREPARETOHIBERNATE "Anıkta Beklemeye Anıklanıyor..." IDS_SAVEYOURSETTINGS "Ayarlarınız Kaydediliyor..." IDS_REACTOSISSTARTINGUP "ReactOS Başlatılıyor..." END STRINGTABLE BEGIN - IDS_FAILEDACTIVATEUSERSHELL "Winlogon, kullanıcı kabuğunu etkinleştiremedi." + IDS_FAILEDACTIVATEUSERSHELL "Winlogon, kullanıcı kabuğunu etkinleştirmede başarısız oldu." END diff --git a/reactos/base/system/winlogon/winlogon.rc b/reactos/base/system/winlogon/winlogon.rc index 1a68945b555..d3c4747160c 100644 --- a/reactos/base/system/winlogon/winlogon.rc +++ b/reactos/base/system/winlogon/winlogon.rc @@ -74,18 +74,18 @@ IDI_WINLOGON ICON "resources/winlogon.ico" #ifdef LANGUAGE_RU_RU #include "lang/ru-RU.rc" #endif -#ifdef LANGUAGE_SV_SE - #include "lang/sv-SE.rc" -#endif #ifdef LANGUAGE_SK_SK #include "lang/sk-SK.rc" #endif -#ifdef LANGUAGE_TR_TR - #include "lang/tr-TR.rc" -#endif #ifdef LANGUAGE_SQ_AL #include "lang/sq-AL.rc" #endif +#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 From 6b76e0f40b2330080aab7d3993b266daa1022d8d Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sun, 11 May 2014 13:41:35 +0000 Subject: [PATCH 42/92] [CRT] * Update _tstat64() * Fixes several msvcrt tests. CORE-8080 svn path=/trunk/; revision=63230 --- reactos/lib/sdk/crt/stdio/stat64.c | 34 ++++++++++++++++++------------ 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/reactos/lib/sdk/crt/stdio/stat64.c b/reactos/lib/sdk/crt/stdio/stat64.c index 55e5c8f9f10..41340bbd9f5 100644 --- a/reactos/lib/sdk/crt/stdio/stat64.c +++ b/reactos/lib/sdk/crt/stdio/stat64.c @@ -27,14 +27,25 @@ int CDECL _tstat64(const _TCHAR *path, struct __stat64 *buf) DWORD dw; WIN32_FILE_ATTRIBUTE_DATA hfi; unsigned short mode = ALL_S_IREAD; - size_t plen; + int plen; TRACE(":file (%s) buf(%p)\n",path,buf); + plen = _tcslen(path); + while (plen && path[plen-1]==' ') + plen--; + + if (plen && (plen<2 || path[plen-2]!=':') && + (path[plen-1]==':' || path[plen-1]=='\\' || path[plen-1]=='/')) + { + *_errno() = ENOENT; + return -1; + } + if (!GetFileAttributesEx(path, GetFileExInfoStandard, &hfi)) { TRACE("failed (%d)\n",GetLastError()); - _dosmaperr(ERROR_FILE_NOT_FOUND); + *_errno() = ENOENT; return -1; } @@ -45,16 +56,13 @@ int CDECL _tstat64(const _TCHAR *path, struct __stat64 *buf) Also a letter as first char isn't enough to be classified as a drive letter */ - if (isalpha((unsigned char)*path)&& (*(path+1)==':')) - buf->st_dev = buf->st_rdev = _totupper(*path) - 'A'; /* drive num */ + if (isalpha(*path)&& (*(path+1)==':')) + buf->st_dev = buf->st_rdev = toupper(*path) - 'A'; /* drive num */ else buf->st_dev = buf->st_rdev = _getdrive() - 1; - plen = _tcslen(path); - /* Dir, or regular file? */ - if ((hfi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) || - (path[plen-1] == '\\')) + if (hfi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) mode |= (_S_IFDIR | ALL_S_IEXEC); else { @@ -62,8 +70,8 @@ int CDECL _tstat64(const _TCHAR *path, struct __stat64 *buf) /* executable? */ if (plen > 6 && path[plen-4] == '.') /* shortest exe: "\x.exe" */ { - TCHAR4 ext = _totlower(path[plen-1]) | (_totlower(path[plen-2]) << TCSIZE) | - (_totlower(path[plen-3]) << (2*TCSIZE)); + unsigned int ext = tolower(path[plen-1]) | (tolower(path[plen-2]) << 8) | + (tolower(path[plen-3]) << 16); if (ext == EXE || ext == BAT || ext == CMD || ext == COM) mode |= ALL_S_IEXEC; } @@ -79,9 +87,9 @@ int CDECL _tstat64(const _TCHAR *path, struct __stat64 *buf) buf->st_atime = dw; RtlTimeToSecondsSince1970((LARGE_INTEGER *)&hfi.ftLastWriteTime, &dw); buf->st_mtime = buf->st_ctime = dw; - TRACE("%d %d 0x%08lx%08lx %ld %ld %ld\n", buf->st_mode,buf->st_nlink, - (long)(buf->st_size >> 32),(long)buf->st_size, - (long)buf->st_atime,(long)buf->st_mtime,(long)buf->st_ctime); + TRACE("%d %d 0x%08x%08x %d %d %d\n", buf->st_mode,buf->st_nlink, + (int)(buf->st_size >> 32),(int)buf->st_size, + (int)buf->st_atime,(int)buf->st_mtime,(int)buf->st_ctime); return 0; } From c34bd28ce8afc2e7150840464289d4e5a28942da Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sun, 11 May 2014 14:12:21 +0000 Subject: [PATCH 43/92] * Fix a typo. svn path=/trunk/; revision=63231 --- reactos/dll/win32/mshtml/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reactos/dll/win32/mshtml/CMakeLists.txt b/reactos/dll/win32/mshtml/CMakeLists.txt index d0de62d0140..012cd047b88 100644 --- a/reactos/dll/win32/mshtml/CMakeLists.txt +++ b/reactos/dll/win32/mshtml/CMakeLists.txt @@ -7,7 +7,7 @@ add_definitions( -DCOM_NO_WINDOWS_H) include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) -add_idl_Headers(mshtml_nsiface_header nsiface.idl) +add_idl_headers(mshtml_nsiface_header nsiface.idl) spec2def(mshtml.dll mshtml.spec) list(APPEND SOURCE From 5da6e5757730357dcbac3778f58d1f81412ba36c Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sun, 11 May 2014 14:16:27 +0000 Subject: [PATCH 44/92] [ATL] * Zap atl_atliface_header dependency. svn path=/trunk/; revision=63232 --- reactos/dll/win32/atl/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/reactos/dll/win32/atl/CMakeLists.txt b/reactos/dll/win32/atl/CMakeLists.txt index 1d7d6bbc536..580e31c495b 100644 --- a/reactos/dll/win32/atl/CMakeLists.txt +++ b/reactos/dll/win32/atl/CMakeLists.txt @@ -23,6 +23,5 @@ add_library(atl SHARED ${SOURCE} rsrc.rc) set_module_type(atl win32dll) target_link_libraries(atl uuid wine) add_importlibs(atl oleaut32 ole32 user32 gdi32 advapi32 msvcrt kernel32 ntdll) -add_dependencies(atl atl_atliface_header) add_pch(atl precomp.h SOURCE) add_cd_file(TARGET atl DESTINATION reactos/system32 FOR all) From 330869f298931b04dd85bed03306be944f0d42e4 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sun, 11 May 2014 16:47:56 +0000 Subject: [PATCH 45/92] [CRT] * Update _mktemp(). * Fixes some msvcrt tests. CORE-8080 svn path=/trunk/; revision=63233 --- reactos/lib/sdk/crt/stdio/file.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index 31502aa103e..f2b8dc2702b 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -1403,9 +1403,12 @@ char * CDECL _mktemp(char *pattern) int id; char letter = 'a'; + if(!pattern) + return NULL; + while(*pattern) numX = (*pattern++ == 'X')? numX + 1 : 0; - if (numX < 5) + if (numX < 6) return NULL; pattern--; id = GetCurrentProcessId(); @@ -1420,8 +1423,7 @@ char * CDECL _mktemp(char *pattern) do { *pattern = letter++; - if (GetFileAttributesA(retVal) == INVALID_FILE_ATTRIBUTES && - GetLastError() == ERROR_FILE_NOT_FOUND) + if (GetFileAttributesA(retVal) == INVALID_FILE_ATTRIBUTES) return retVal; } while(letter <= 'z'); return NULL; From 1adaa3117e52d0d5627ff5061600da55bfd157a8 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sun, 11 May 2014 17:45:26 +0000 Subject: [PATCH 46/92] [CRT] * Update _filbuf(). CORE-8080 svn path=/trunk/; revision=63234 --- reactos/lib/sdk/crt/stdio/file.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index f2b8dc2702b..70673ba272f 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -2263,6 +2263,11 @@ int CDECL _filbuf(FILE* file) unsigned char c; _lock_file(file); + if(file->_flag & _IOSTRG) { + _unlock_file(file); + return EOF; + } + /* Allocate buffer if needed */ if(file->_bufsiz == 0 && !(file->_flag & _IONBF)) alloc_buffer(file); From 4cc030e4770e2f254e1f2f651193ba0bebd05e3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Sun, 11 May 2014 17:48:25 +0000 Subject: [PATCH 47/92] [RAPPS] - Turkish translation by Erdem Ersoy; - Italian translation by Marco Maria Emanuele Bartucci; - Polish translation by wojo664. CORE-7493 #close #comment Committed in revision 63235, thanks! Please create a new report for translation updates. svn path=/trunk/; revision=63235 --- .../base/applications/rapps/rapps/dplus.txt | 22 +++++++++++++ .../base/applications/rapps/rapps/mcwin32.txt | 32 +++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 reactos/base/applications/rapps/rapps/dplus.txt create mode 100644 reactos/base/applications/rapps/rapps/mcwin32.txt diff --git a/reactos/base/applications/rapps/rapps/dplus.txt b/reactos/base/applications/rapps/rapps/dplus.txt new file mode 100644 index 00000000000..b4cbe2f52f4 --- /dev/null +++ b/reactos/base/applications/rapps/rapps/dplus.txt @@ -0,0 +1,22 @@ +; UTF-8 + +[Section] +Name = D+ Browser +Version = 0.5b +Licence = GPLv3 +Description = DPlus is a graphical web browser with an emphasis on security, performance and portability. It is based on Dillo and it is forked from Dillo-Win32 project. +Size = 1.36 MB +Category = 5 +URLSite = http://dplus-browser.sourceforge.net/ +URLDownload = http://heanet.dl.sourceforge.net/project/dplus-browser/Releases/dplus-0.5b/dplus-0.5b-setup.exe +CDPath = none + +[Section.0410] +License = GPL versione 3 +Description = DPlus è un web browser grafico con un accenno alla sicurezza, le prestazioni e portabilità. è basata su Dillo ed è diviso dal progetto Dillo-Win32. + +[Section.041f] +Name = D+ Tarayıcı +Licence = GPL 3. sürüm +Description = DPlus; güvenlik, başarım ve taşınabilirlik üzerine bir vurguyla, çizgelik bir Umûmî Ağ tarayıcısıdır. Dillo tabanlıdır ve Dillo-Win32 tasarısından çatallanmıştır. +Size = 1,36 MB diff --git a/reactos/base/applications/rapps/rapps/mcwin32.txt b/reactos/base/applications/rapps/rapps/mcwin32.txt new file mode 100644 index 00000000000..9bc3de5a255 --- /dev/null +++ b/reactos/base/applications/rapps/rapps/mcwin32.txt @@ -0,0 +1,32 @@ +; UTF-8 + +[Section] +Name = Midnight Commander for Windows +Version = Build 183 (4.8.11) +Licence = GPLv3 +Description = 32-bit Windows port of GNU Midnight Commander. +Size = 2.35 MB +Category = 12 +URLSite = http://sourceforge.net/projects/mcwin32/ +URLDownload = http://optimate.dl.sourceforge.net/project/mcwin32/mcwin32-build183-setup.exe +CDPath = none + +[Section.0410] +Name = Midnight Commander per Windows +Version = Revisione 183 (4.8.11) +Licence = GPL versione 3 +Description = Un porting Windows 32bit di Midnight Commander. + +[Section.041f] +Name = Midnight Commander (Windows için) +Version = Yapı 183 (4.8.11) +Licence = GPL 3. sürüm +Description = GNU Midnight Commander'ın 32 bitlik Windows uyarlamasıdır. +Size = 2,35 MB + +[Section.0415] +Name = Midnight Commander dla Windows +Version = Build 183 (4.8.11) +Licence = GPL wersja 3 +Description = 32-bitowy port GNU Midnight Commander dla Windows. +Size = 2,35 MB From ad9936c2184624488fb2a8583b3216a1278eef50 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sun, 11 May 2014 17:58:25 +0000 Subject: [PATCH 48/92] [RAPPS] * Lose the BOM. svn path=/trunk/; revision=63236 --- reactos/base/applications/rapps/rapps/abiword.txt | 2 +- reactos/base/applications/rapps/rapps/abiword26.txt | 2 +- reactos/base/applications/rapps/rapps/abyss.txt | 2 +- reactos/base/applications/rapps/rapps/ac97forvirtualbox.txt | 2 +- reactos/base/applications/rapps/rapps/alreader.txt | 2 +- reactos/base/applications/rapps/rapps/ants.txt | 2 +- reactos/base/applications/rapps/rapps/audiograbber.txt | 2 +- reactos/base/applications/rapps/rapps/bittorrent.txt | 2 +- reactos/base/applications/rapps/rapps/bochs.txt | 2 +- reactos/base/applications/rapps/rapps/boswars.txt | 2 +- reactos/base/applications/rapps/rapps/boundaround.txt | 2 +- reactos/base/applications/rapps/rapps/christmasbound.txt | 2 +- reactos/base/applications/rapps/rapps/chromium.txt | 2 +- reactos/base/applications/rapps/rapps/cnt.txt | 2 +- reactos/base/applications/rapps/rapps/codeblocks.txt | 2 +- reactos/base/applications/rapps/rapps/codeblocks_gcc.txt | 2 +- reactos/base/applications/rapps/rapps/codeblocks_gcc_2.txt | 2 +- reactos/base/applications/rapps/rapps/comctl32ocx.txt | 2 +- reactos/base/applications/rapps/rapps/devcpp_mingw32.txt | 2 +- reactos/base/applications/rapps/rapps/devcpp_tdm_gcc_x64.txt | 2 +- reactos/base/applications/rapps/rapps/diablo2.txt | 2 +- reactos/base/applications/rapps/rapps/dosblaster.txt | 2 +- reactos/base/applications/rapps/rapps/dosbox.txt | 2 +- reactos/base/applications/rapps/rapps/doublecommander.txt | 2 +- reactos/base/applications/rapps/rapps/dplus.txt | 2 +- reactos/base/applications/rapps/rapps/dvdwritenow.txt | 2 +- reactos/base/applications/rapps/rapps/excelview.txt | 2 +- reactos/base/applications/rapps/rapps/fap.txt | 2 +- reactos/base/applications/rapps/rapps/fira.txt | 2 +- reactos/base/applications/rapps/rapps/firefox.txt | 2 +- reactos/base/applications/rapps/rapps/firefox2.txt | 2 +- reactos/base/applications/rapps/rapps/firefox3.txt | 2 +- reactos/base/applications/rapps/rapps/firefox36.txt | 2 +- reactos/base/applications/rapps/rapps/freebasic.txt | 2 +- reactos/base/applications/rapps/rapps/glidewrapzbag.txt | 2 +- reactos/base/applications/rapps/rapps/globulation2.txt | 2 +- reactos/base/applications/rapps/rapps/hover.txt | 2 +- reactos/base/applications/rapps/rapps/hxd.txt | 2 +- reactos/base/applications/rapps/rapps/indiftpd.txt | 2 +- reactos/base/applications/rapps/rapps/irfanview.txt | 2 +- reactos/base/applications/rapps/rapps/irfanviewplugins.txt | 2 +- reactos/base/applications/rapps/rapps/kdewin.txt | 2 +- reactos/base/applications/rapps/rapps/kyodai.txt | 2 +- reactos/base/applications/rapps/rapps/lazaruside.txt | 2 +- reactos/base/applications/rapps/rapps/lbreakout2.txt | 2 +- reactos/base/applications/rapps/rapps/lgeneral.txt | 2 +- reactos/base/applications/rapps/rapps/libreoffice.txt | 2 +- reactos/base/applications/rapps/rapps/lmarbles.txt | 2 +- reactos/base/applications/rapps/rapps/mcwin32.txt | 2 +- reactos/base/applications/rapps/rapps/mfc40.txt | 2 +- reactos/base/applications/rapps/rapps/mirandaim.txt | 2 +- reactos/base/applications/rapps/rapps/mirc.txt | 2 +- reactos/base/applications/rapps/rapps/mirc6.txt | 2 +- reactos/base/applications/rapps/rapps/mono2.txt | 2 +- reactos/base/applications/rapps/rapps/mpc.txt | 2 +- reactos/base/applications/rapps/rapps/mpxplay.txt | 2 +- reactos/base/applications/rapps/rapps/msxml3.txt | 2 +- reactos/base/applications/rapps/rapps/net11.txt | 2 +- reactos/base/applications/rapps/rapps/net20.txt | 2 +- reactos/base/applications/rapps/rapps/net20sp2.txt | 2 +- reactos/base/applications/rapps/rapps/npp.txt | 2 +- reactos/base/applications/rapps/rapps/offbyone.txt | 2 +- reactos/base/applications/rapps/rapps/opencodecs.txt | 2 +- reactos/base/applications/rapps/rapps/openoffice.txt | 2 +- reactos/base/applications/rapps/rapps/openoffice2.4.txt | 2 +- reactos/base/applications/rapps/rapps/openttd.txt | 2 +- reactos/base/applications/rapps/rapps/opera.txt | 2 +- reactos/base/applications/rapps/rapps/opera9.txt | 2 +- reactos/base/applications/rapps/rapps/peazip.txt | 2 +- reactos/base/applications/rapps/rapps/pengupop.txt | 2 +- reactos/base/applications/rapps/rapps/photofiltre.txt | 2 +- reactos/base/applications/rapps/rapps/pingus.txt | 2 +- reactos/base/applications/rapps/rapps/pptview.txt | 2 +- reactos/base/applications/rapps/rapps/pspad.txt | 2 +- reactos/base/applications/rapps/rapps/ptanks.txt | 2 +- reactos/base/applications/rapps/rapps/putty.txt | 2 +- reactos/base/applications/rapps/rapps/python.txt | 2 +- reactos/base/applications/rapps/rapps/python2.txt | 2 +- reactos/base/applications/rapps/rapps/qb64sdl.txt | 2 +- reactos/base/applications/rapps/rapps/qmmp.txt | 2 +- reactos/base/applications/rapps/rapps/remood.txt | 2 +- reactos/base/applications/rapps/rapps/reshack.txt | 2 +- reactos/base/applications/rapps/rapps/rocks.txt | 2 +- reactos/base/applications/rapps/rapps/rosbe.txt | 2 +- reactos/base/applications/rapps/rapps/rosbeamd64.txt | 2 +- reactos/base/applications/rapps/rapps/rosbearm.txt | 2 +- reactos/base/applications/rapps/rapps/sambatng.txt | 2 +- reactos/base/applications/rapps/rapps/sbforvmware.txt | 2 +- reactos/base/applications/rapps/rapps/scite.txt | 2 +- reactos/base/applications/rapps/rapps/scummvm.txt | 2 +- reactos/base/applications/rapps/rapps/sdl_mixer.txt | 2 +- reactos/base/applications/rapps/rapps/sdl_runtime.txt | 2 +- reactos/base/applications/rapps/rapps/seamonkey.txt | 2 +- reactos/base/applications/rapps/rapps/smplayer.txt | 2 +- reactos/base/applications/rapps/rapps/snoopy.txt | 2 +- reactos/base/applications/rapps/rapps/stamina.txt | 2 +- reactos/base/applications/rapps/rapps/steam.txt | 2 +- reactos/base/applications/rapps/rapps/sumatrapdf.txt | 2 +- reactos/base/applications/rapps/rapps/summerbound.txt | 2 +- reactos/base/applications/rapps/rapps/superdxb.txt | 2 +- reactos/base/applications/rapps/rapps/superfinder.txt | 2 +- reactos/base/applications/rapps/rapps/supertux.txt | 2 +- reactos/base/applications/rapps/rapps/tahoma.txt | 2 +- reactos/base/applications/rapps/rapps/thunderbird.txt | 2 +- reactos/base/applications/rapps/rapps/thunderbird3.txt | 2 +- reactos/base/applications/rapps/rapps/tileworld.txt | 2 +- reactos/base/applications/rapps/rapps/totalcommander.txt | 2 +- reactos/base/applications/rapps/rapps/tuxpaint.txt | 2 +- reactos/base/applications/rapps/rapps/ultravnc.txt | 2 +- reactos/base/applications/rapps/rapps/utorrent.txt | 2 +- reactos/base/applications/rapps/rapps/vb5run.txt | 2 +- reactos/base/applications/rapps/rapps/vb6run.txt | 2 +- reactos/base/applications/rapps/rapps/vc2005sp1run.txt | 2 +- reactos/base/applications/rapps/rapps/vc2008sp1run.txt | 2 +- reactos/base/applications/rapps/rapps/vc2010run.txt | 2 +- reactos/base/applications/rapps/rapps/vc6run.txt | 2 +- reactos/base/applications/rapps/rapps/vlc.txt | 2 +- reactos/base/applications/rapps/rapps/winboard.txt | 2 +- reactos/base/applications/rapps/rapps/wme9.txt | 2 +- reactos/base/applications/rapps/rapps/wordview.txt | 2 +- reactos/base/applications/rapps/rapps/zaz.txt | 2 +- 121 files changed, 121 insertions(+), 121 deletions(-) diff --git a/reactos/base/applications/rapps/rapps/abiword.txt b/reactos/base/applications/rapps/rapps/abiword.txt index 844f68f59ac..9d6ac792613 100644 --- a/reactos/base/applications/rapps/rapps/abiword.txt +++ b/reactos/base/applications/rapps/rapps/abiword.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = AbiWord diff --git a/reactos/base/applications/rapps/rapps/abiword26.txt b/reactos/base/applications/rapps/rapps/abiword26.txt index 0c97d941fbc..0a6ed2a6613 100644 --- a/reactos/base/applications/rapps/rapps/abiword26.txt +++ b/reactos/base/applications/rapps/rapps/abiword26.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = AbiWord diff --git a/reactos/base/applications/rapps/rapps/abyss.txt b/reactos/base/applications/rapps/rapps/abyss.txt index 69d4c65955d..7dfbe6ac50f 100644 --- a/reactos/base/applications/rapps/rapps/abyss.txt +++ b/reactos/base/applications/rapps/rapps/abyss.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Abyss Web server X1 diff --git a/reactos/base/applications/rapps/rapps/ac97forvirtualbox.txt b/reactos/base/applications/rapps/rapps/ac97forvirtualbox.txt index 4c299243a9d..cca6ec4fcf3 100644 --- a/reactos/base/applications/rapps/rapps/ac97forvirtualbox.txt +++ b/reactos/base/applications/rapps/rapps/ac97forvirtualbox.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = AC97 Driver for VirtualBox diff --git a/reactos/base/applications/rapps/rapps/alreader.txt b/reactos/base/applications/rapps/rapps/alreader.txt index c431481c7d1..501ff11ab9c 100644 --- a/reactos/base/applications/rapps/rapps/alreader.txt +++ b/reactos/base/applications/rapps/rapps/alreader.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = AlReader diff --git a/reactos/base/applications/rapps/rapps/ants.txt b/reactos/base/applications/rapps/rapps/ants.txt index b77198d0688..ac1b79f5468 100644 --- a/reactos/base/applications/rapps/rapps/ants.txt +++ b/reactos/base/applications/rapps/rapps/ants.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] Name = Ants diff --git a/reactos/base/applications/rapps/rapps/audiograbber.txt b/reactos/base/applications/rapps/rapps/audiograbber.txt index 4f808d0c28f..5f59de91cbc 100644 --- a/reactos/base/applications/rapps/rapps/audiograbber.txt +++ b/reactos/base/applications/rapps/rapps/audiograbber.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Audio Grabber diff --git a/reactos/base/applications/rapps/rapps/bittorrent.txt b/reactos/base/applications/rapps/rapps/bittorrent.txt index 59fa4fc5ab0..cd600628fdb 100644 --- a/reactos/base/applications/rapps/rapps/bittorrent.txt +++ b/reactos/base/applications/rapps/rapps/bittorrent.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = BitTorrent diff --git a/reactos/base/applications/rapps/rapps/bochs.txt b/reactos/base/applications/rapps/rapps/bochs.txt index df1ca70b8d3..84094fcd96f 100644 --- a/reactos/base/applications/rapps/rapps/bochs.txt +++ b/reactos/base/applications/rapps/rapps/bochs.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] diff --git a/reactos/base/applications/rapps/rapps/boswars.txt b/reactos/base/applications/rapps/rapps/boswars.txt index dd3435ea7aa..58e7b36c1fc 100644 --- a/reactos/base/applications/rapps/rapps/boswars.txt +++ b/reactos/base/applications/rapps/rapps/boswars.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] diff --git a/reactos/base/applications/rapps/rapps/boundaround.txt b/reactos/base/applications/rapps/rapps/boundaround.txt index 3e0deabc360..ef5adb3a1c7 100644 --- a/reactos/base/applications/rapps/rapps/boundaround.txt +++ b/reactos/base/applications/rapps/rapps/boundaround.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Bound Around (Demo) diff --git a/reactos/base/applications/rapps/rapps/christmasbound.txt b/reactos/base/applications/rapps/rapps/christmasbound.txt index e9902b65bda..4b6798c2077 100644 --- a/reactos/base/applications/rapps/rapps/christmasbound.txt +++ b/reactos/base/applications/rapps/rapps/christmasbound.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Christmas Bound diff --git a/reactos/base/applications/rapps/rapps/chromium.txt b/reactos/base/applications/rapps/rapps/chromium.txt index 1ebd82226a8..693a5884d5b 100644 --- a/reactos/base/applications/rapps/rapps/chromium.txt +++ b/reactos/base/applications/rapps/rapps/chromium.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] Name = Chromium B.S.U. diff --git a/reactos/base/applications/rapps/rapps/cnt.txt b/reactos/base/applications/rapps/rapps/cnt.txt index cb13c1f8b51..07fdc789ead 100644 --- a/reactos/base/applications/rapps/rapps/cnt.txt +++ b/reactos/base/applications/rapps/rapps/cnt.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Click-N-Type Virtual Keyboard diff --git a/reactos/base/applications/rapps/rapps/codeblocks.txt b/reactos/base/applications/rapps/rapps/codeblocks.txt index 928f99b23ed..ac2172c1b83 100644 --- a/reactos/base/applications/rapps/rapps/codeblocks.txt +++ b/reactos/base/applications/rapps/rapps/codeblocks.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Code::Blocks (no compiler) diff --git a/reactos/base/applications/rapps/rapps/codeblocks_gcc.txt b/reactos/base/applications/rapps/rapps/codeblocks_gcc.txt index 5f9e72312d7..654057867bf 100644 --- a/reactos/base/applications/rapps/rapps/codeblocks_gcc.txt +++ b/reactos/base/applications/rapps/rapps/codeblocks_gcc.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Code::Blocks TDM-GCC (version 4.7.1, 32 bit) diff --git a/reactos/base/applications/rapps/rapps/codeblocks_gcc_2.txt b/reactos/base/applications/rapps/rapps/codeblocks_gcc_2.txt index 7ff4888a42a..e8fadd4c305 100644 --- a/reactos/base/applications/rapps/rapps/codeblocks_gcc_2.txt +++ b/reactos/base/applications/rapps/rapps/codeblocks_gcc_2.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Code::Blocks TDM-GCC (version 4.8.1, 32 bit) diff --git a/reactos/base/applications/rapps/rapps/comctl32ocx.txt b/reactos/base/applications/rapps/rapps/comctl32ocx.txt index b9f10def161..b9ea0fd0d71 100644 --- a/reactos/base/applications/rapps/rapps/comctl32ocx.txt +++ b/reactos/base/applications/rapps/rapps/comctl32ocx.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Microsoft Visual Basic 6.0 Common Controls diff --git a/reactos/base/applications/rapps/rapps/devcpp_mingw32.txt b/reactos/base/applications/rapps/rapps/devcpp_mingw32.txt index 4df995849b7..0db353c927c 100644 --- a/reactos/base/applications/rapps/rapps/devcpp_mingw32.txt +++ b/reactos/base/applications/rapps/rapps/devcpp_mingw32.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Orwell Dev-C++ MinGW32 diff --git a/reactos/base/applications/rapps/rapps/devcpp_tdm_gcc_x64.txt b/reactos/base/applications/rapps/rapps/devcpp_tdm_gcc_x64.txt index 31147f635d8..f0f490d16e1 100644 --- a/reactos/base/applications/rapps/rapps/devcpp_tdm_gcc_x64.txt +++ b/reactos/base/applications/rapps/rapps/devcpp_tdm_gcc_x64.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Orwell Dev-C++ TDM GCC x64 diff --git a/reactos/base/applications/rapps/rapps/diablo2.txt b/reactos/base/applications/rapps/rapps/diablo2.txt index c266f55b2f3..5079c79e3bb 100644 --- a/reactos/base/applications/rapps/rapps/diablo2.txt +++ b/reactos/base/applications/rapps/rapps/diablo2.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Diablo II diff --git a/reactos/base/applications/rapps/rapps/dosblaster.txt b/reactos/base/applications/rapps/rapps/dosblaster.txt index 51bb21dfbab..03325b677dc 100644 --- a/reactos/base/applications/rapps/rapps/dosblaster.txt +++ b/reactos/base/applications/rapps/rapps/dosblaster.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = DosBlaster diff --git a/reactos/base/applications/rapps/rapps/dosbox.txt b/reactos/base/applications/rapps/rapps/dosbox.txt index 9c5e275c5a1..f38620fa1d4 100644 --- a/reactos/base/applications/rapps/rapps/dosbox.txt +++ b/reactos/base/applications/rapps/rapps/dosbox.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = DOSBox diff --git a/reactos/base/applications/rapps/rapps/doublecommander.txt b/reactos/base/applications/rapps/rapps/doublecommander.txt index 422148d8700..8a8975d8b63 100644 --- a/reactos/base/applications/rapps/rapps/doublecommander.txt +++ b/reactos/base/applications/rapps/rapps/doublecommander.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Double Commander diff --git a/reactos/base/applications/rapps/rapps/dplus.txt b/reactos/base/applications/rapps/rapps/dplus.txt index b4cbe2f52f4..2a54a7e534d 100644 --- a/reactos/base/applications/rapps/rapps/dplus.txt +++ b/reactos/base/applications/rapps/rapps/dplus.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = D+ Browser diff --git a/reactos/base/applications/rapps/rapps/dvdwritenow.txt b/reactos/base/applications/rapps/rapps/dvdwritenow.txt index c403f526041..d2ff1961b56 100644 --- a/reactos/base/applications/rapps/rapps/dvdwritenow.txt +++ b/reactos/base/applications/rapps/rapps/dvdwritenow.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] Name = DVD Write Now diff --git a/reactos/base/applications/rapps/rapps/excelview.txt b/reactos/base/applications/rapps/rapps/excelview.txt index 653e7d0bd0a..35e433d000a 100644 --- a/reactos/base/applications/rapps/rapps/excelview.txt +++ b/reactos/base/applications/rapps/rapps/excelview.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Microsoft Excel Viewer diff --git a/reactos/base/applications/rapps/rapps/fap.txt b/reactos/base/applications/rapps/rapps/fap.txt index 0c4631a7d29..49903520e58 100644 --- a/reactos/base/applications/rapps/rapps/fap.txt +++ b/reactos/base/applications/rapps/rapps/fap.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Fox Audio Player diff --git a/reactos/base/applications/rapps/rapps/fira.txt b/reactos/base/applications/rapps/rapps/fira.txt index bdd05ab31ee..30373c7a033 100644 --- a/reactos/base/applications/rapps/rapps/fira.txt +++ b/reactos/base/applications/rapps/rapps/fira.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] diff --git a/reactos/base/applications/rapps/rapps/firefox.txt b/reactos/base/applications/rapps/rapps/firefox.txt index 89df72c9dcf..038cfe10183 100644 --- a/reactos/base/applications/rapps/rapps/firefox.txt +++ b/reactos/base/applications/rapps/rapps/firefox.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Mozilla Firefox 28 diff --git a/reactos/base/applications/rapps/rapps/firefox2.txt b/reactos/base/applications/rapps/rapps/firefox2.txt index 141348b7ca6..ae699823393 100644 --- a/reactos/base/applications/rapps/rapps/firefox2.txt +++ b/reactos/base/applications/rapps/rapps/firefox2.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Mozilla Firefox 2.0 diff --git a/reactos/base/applications/rapps/rapps/firefox3.txt b/reactos/base/applications/rapps/rapps/firefox3.txt index 94770847870..e7032cbc1ae 100644 --- a/reactos/base/applications/rapps/rapps/firefox3.txt +++ b/reactos/base/applications/rapps/rapps/firefox3.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Mozilla Firefox 3.0 diff --git a/reactos/base/applications/rapps/rapps/firefox36.txt b/reactos/base/applications/rapps/rapps/firefox36.txt index 74af5cb753d..4046e9f1109 100644 --- a/reactos/base/applications/rapps/rapps/firefox36.txt +++ b/reactos/base/applications/rapps/rapps/firefox36.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Mozilla Firefox 3.6 diff --git a/reactos/base/applications/rapps/rapps/freebasic.txt b/reactos/base/applications/rapps/rapps/freebasic.txt index bf5a22cdaad..1a40490443a 100644 --- a/reactos/base/applications/rapps/rapps/freebasic.txt +++ b/reactos/base/applications/rapps/rapps/freebasic.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = FreeBASIC diff --git a/reactos/base/applications/rapps/rapps/glidewrapzbag.txt b/reactos/base/applications/rapps/rapps/glidewrapzbag.txt index 803f7fbf18e..8d100209291 100644 --- a/reactos/base/applications/rapps/rapps/glidewrapzbag.txt +++ b/reactos/base/applications/rapps/rapps/glidewrapzbag.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = GlidewrapZbag diff --git a/reactos/base/applications/rapps/rapps/globulation2.txt b/reactos/base/applications/rapps/rapps/globulation2.txt index b0defe38e35..22747acc973 100644 --- a/reactos/base/applications/rapps/rapps/globulation2.txt +++ b/reactos/base/applications/rapps/rapps/globulation2.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] Name = Globulation2 diff --git a/reactos/base/applications/rapps/rapps/hover.txt b/reactos/base/applications/rapps/rapps/hover.txt index d2048ceb54e..a43dd0e119c 100644 --- a/reactos/base/applications/rapps/rapps/hover.txt +++ b/reactos/base/applications/rapps/rapps/hover.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] diff --git a/reactos/base/applications/rapps/rapps/hxd.txt b/reactos/base/applications/rapps/rapps/hxd.txt index bab2aeccf74..0faa3bbe870 100644 --- a/reactos/base/applications/rapps/rapps/hxd.txt +++ b/reactos/base/applications/rapps/rapps/hxd.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] diff --git a/reactos/base/applications/rapps/rapps/indiftpd.txt b/reactos/base/applications/rapps/rapps/indiftpd.txt index 2f71b9a9570..1f146cb8d44 100644 --- a/reactos/base/applications/rapps/rapps/indiftpd.txt +++ b/reactos/base/applications/rapps/rapps/indiftpd.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] diff --git a/reactos/base/applications/rapps/rapps/irfanview.txt b/reactos/base/applications/rapps/rapps/irfanview.txt index 0d89c199e16..698ce46dfa8 100644 --- a/reactos/base/applications/rapps/rapps/irfanview.txt +++ b/reactos/base/applications/rapps/rapps/irfanview.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = IrfanView diff --git a/reactos/base/applications/rapps/rapps/irfanviewplugins.txt b/reactos/base/applications/rapps/rapps/irfanviewplugins.txt index 7ba442e2c50..54285b9d5e7 100644 --- a/reactos/base/applications/rapps/rapps/irfanviewplugins.txt +++ b/reactos/base/applications/rapps/rapps/irfanviewplugins.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = IrfanView Plugins diff --git a/reactos/base/applications/rapps/rapps/kdewin.txt b/reactos/base/applications/rapps/rapps/kdewin.txt index c78c757f65e..ca9bbe5485e 100644 --- a/reactos/base/applications/rapps/rapps/kdewin.txt +++ b/reactos/base/applications/rapps/rapps/kdewin.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = K Desktop Environment diff --git a/reactos/base/applications/rapps/rapps/kyodai.txt b/reactos/base/applications/rapps/rapps/kyodai.txt index 9b205d52dab..2e5e11235cc 100644 --- a/reactos/base/applications/rapps/rapps/kyodai.txt +++ b/reactos/base/applications/rapps/rapps/kyodai.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] Name = Kyodai Mahjongg diff --git a/reactos/base/applications/rapps/rapps/lazaruside.txt b/reactos/base/applications/rapps/rapps/lazaruside.txt index 903f58b2e73..10395af40ae 100644 --- a/reactos/base/applications/rapps/rapps/lazaruside.txt +++ b/reactos/base/applications/rapps/rapps/lazaruside.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] diff --git a/reactos/base/applications/rapps/rapps/lbreakout2.txt b/reactos/base/applications/rapps/rapps/lbreakout2.txt index 35e3337cf18..6f1aec180d8 100644 --- a/reactos/base/applications/rapps/rapps/lbreakout2.txt +++ b/reactos/base/applications/rapps/rapps/lbreakout2.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = LBreakout2 diff --git a/reactos/base/applications/rapps/rapps/lgeneral.txt b/reactos/base/applications/rapps/rapps/lgeneral.txt index 2ab08460291..e70dc80e590 100644 --- a/reactos/base/applications/rapps/rapps/lgeneral.txt +++ b/reactos/base/applications/rapps/rapps/lgeneral.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = LGeneral diff --git a/reactos/base/applications/rapps/rapps/libreoffice.txt b/reactos/base/applications/rapps/rapps/libreoffice.txt index 605e24e9b85..d3d2c50487c 100644 --- a/reactos/base/applications/rapps/rapps/libreoffice.txt +++ b/reactos/base/applications/rapps/rapps/libreoffice.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = LibreOffice diff --git a/reactos/base/applications/rapps/rapps/lmarbles.txt b/reactos/base/applications/rapps/rapps/lmarbles.txt index aad7984ed28..dac8e7a76f4 100644 --- a/reactos/base/applications/rapps/rapps/lmarbles.txt +++ b/reactos/base/applications/rapps/rapps/lmarbles.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = LMarbles diff --git a/reactos/base/applications/rapps/rapps/mcwin32.txt b/reactos/base/applications/rapps/rapps/mcwin32.txt index 9bc3de5a255..a77b674e709 100644 --- a/reactos/base/applications/rapps/rapps/mcwin32.txt +++ b/reactos/base/applications/rapps/rapps/mcwin32.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Midnight Commander for Windows diff --git a/reactos/base/applications/rapps/rapps/mfc40.txt b/reactos/base/applications/rapps/rapps/mfc40.txt index fc79d4f1828..e4e1a5bac04 100644 --- a/reactos/base/applications/rapps/rapps/mfc40.txt +++ b/reactos/base/applications/rapps/rapps/mfc40.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = OLE Viewer and Microsoft Foundation Classes version 4 diff --git a/reactos/base/applications/rapps/rapps/mirandaim.txt b/reactos/base/applications/rapps/rapps/mirandaim.txt index 3205655075f..51fdc5fa987 100644 --- a/reactos/base/applications/rapps/rapps/mirandaim.txt +++ b/reactos/base/applications/rapps/rapps/mirandaim.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Miranda IM diff --git a/reactos/base/applications/rapps/rapps/mirc.txt b/reactos/base/applications/rapps/rapps/mirc.txt index 68e24783903..7bbfff1e58a 100644 --- a/reactos/base/applications/rapps/rapps/mirc.txt +++ b/reactos/base/applications/rapps/rapps/mirc.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = mIRC 7 diff --git a/reactos/base/applications/rapps/rapps/mirc6.txt b/reactos/base/applications/rapps/rapps/mirc6.txt index 874ba2a2705..3f90e2bde66 100644 --- a/reactos/base/applications/rapps/rapps/mirc6.txt +++ b/reactos/base/applications/rapps/rapps/mirc6.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = mIRC 6 diff --git a/reactos/base/applications/rapps/rapps/mono2.txt b/reactos/base/applications/rapps/rapps/mono2.txt index b0112acfa8f..1bb628fc439 100644 --- a/reactos/base/applications/rapps/rapps/mono2.txt +++ b/reactos/base/applications/rapps/rapps/mono2.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Mono .net Development Framework diff --git a/reactos/base/applications/rapps/rapps/mpc.txt b/reactos/base/applications/rapps/rapps/mpc.txt index 0184f79f16d..5958f33126f 100644 --- a/reactos/base/applications/rapps/rapps/mpc.txt +++ b/reactos/base/applications/rapps/rapps/mpc.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Media Player Classic Home Cinema diff --git a/reactos/base/applications/rapps/rapps/mpxplay.txt b/reactos/base/applications/rapps/rapps/mpxplay.txt index 6121237929f..9b2cebfdc4c 100644 --- a/reactos/base/applications/rapps/rapps/mpxplay.txt +++ b/reactos/base/applications/rapps/rapps/mpxplay.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] Name = Mpxplay diff --git a/reactos/base/applications/rapps/rapps/msxml3.txt b/reactos/base/applications/rapps/rapps/msxml3.txt index c7c3cbc3bf6..5945a66a013 100644 --- a/reactos/base/applications/rapps/rapps/msxml3.txt +++ b/reactos/base/applications/rapps/rapps/msxml3.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Microsoft XML 3 diff --git a/reactos/base/applications/rapps/rapps/net11.txt b/reactos/base/applications/rapps/rapps/net11.txt index 34eadb61190..e7f7d59ca34 100644 --- a/reactos/base/applications/rapps/rapps/net11.txt +++ b/reactos/base/applications/rapps/rapps/net11.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Microsoft .NET Framework Version 1.1 Redistributable Package diff --git a/reactos/base/applications/rapps/rapps/net20.txt b/reactos/base/applications/rapps/rapps/net20.txt index 1a3dd4ce86d..7827168b10c 100644 --- a/reactos/base/applications/rapps/rapps/net20.txt +++ b/reactos/base/applications/rapps/rapps/net20.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Microsoft .NET Framework Version 2.0 Redistributable Package diff --git a/reactos/base/applications/rapps/rapps/net20sp2.txt b/reactos/base/applications/rapps/rapps/net20sp2.txt index a6a18a44962..cb285f88c61 100644 --- a/reactos/base/applications/rapps/rapps/net20sp2.txt +++ b/reactos/base/applications/rapps/rapps/net20sp2.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Microsoft .NET Framework Version 2.0 Service Pack 2 diff --git a/reactos/base/applications/rapps/rapps/npp.txt b/reactos/base/applications/rapps/rapps/npp.txt index 50b7a72e64c..31009edec5b 100644 --- a/reactos/base/applications/rapps/rapps/npp.txt +++ b/reactos/base/applications/rapps/rapps/npp.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Notepad++ diff --git a/reactos/base/applications/rapps/rapps/offbyone.txt b/reactos/base/applications/rapps/rapps/offbyone.txt index e25a216d5bc..7d85199b6e8 100644 --- a/reactos/base/applications/rapps/rapps/offbyone.txt +++ b/reactos/base/applications/rapps/rapps/offbyone.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Off By One Browser diff --git a/reactos/base/applications/rapps/rapps/opencodecs.txt b/reactos/base/applications/rapps/rapps/opencodecs.txt index 9dbb401462d..514944e9d2f 100644 --- a/reactos/base/applications/rapps/rapps/opencodecs.txt +++ b/reactos/base/applications/rapps/rapps/opencodecs.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL trans by wojo664 [Section] diff --git a/reactos/base/applications/rapps/rapps/openoffice.txt b/reactos/base/applications/rapps/rapps/openoffice.txt index 6f2709dd259..fd27224897a 100644 --- a/reactos/base/applications/rapps/rapps/openoffice.txt +++ b/reactos/base/applications/rapps/rapps/openoffice.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = OpenOffice 4.0 diff --git a/reactos/base/applications/rapps/rapps/openoffice2.4.txt b/reactos/base/applications/rapps/rapps/openoffice2.4.txt index c52f8dfa605..4ea78aa2fe0 100644 --- a/reactos/base/applications/rapps/rapps/openoffice2.4.txt +++ b/reactos/base/applications/rapps/rapps/openoffice2.4.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = OpenOffice 2.4 diff --git a/reactos/base/applications/rapps/rapps/openttd.txt b/reactos/base/applications/rapps/rapps/openttd.txt index 07de900b2b4..f48893de4ca 100644 --- a/reactos/base/applications/rapps/rapps/openttd.txt +++ b/reactos/base/applications/rapps/rapps/openttd.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = OpenTTD diff --git a/reactos/base/applications/rapps/rapps/opera.txt b/reactos/base/applications/rapps/rapps/opera.txt index cbeb398b718..8ce86d78d87 100644 --- a/reactos/base/applications/rapps/rapps/opera.txt +++ b/reactos/base/applications/rapps/rapps/opera.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Opera diff --git a/reactos/base/applications/rapps/rapps/opera9.txt b/reactos/base/applications/rapps/rapps/opera9.txt index 10239e35ddc..c118ee1aa5e 100644 --- a/reactos/base/applications/rapps/rapps/opera9.txt +++ b/reactos/base/applications/rapps/rapps/opera9.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Opera diff --git a/reactos/base/applications/rapps/rapps/peazip.txt b/reactos/base/applications/rapps/rapps/peazip.txt index da3e87252dd..7a6def37c03 100644 --- a/reactos/base/applications/rapps/rapps/peazip.txt +++ b/reactos/base/applications/rapps/rapps/peazip.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = PeaZip diff --git a/reactos/base/applications/rapps/rapps/pengupop.txt b/reactos/base/applications/rapps/rapps/pengupop.txt index 9804859b834..b66cffdd33c 100644 --- a/reactos/base/applications/rapps/rapps/pengupop.txt +++ b/reactos/base/applications/rapps/rapps/pengupop.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] Name = Pengupop diff --git a/reactos/base/applications/rapps/rapps/photofiltre.txt b/reactos/base/applications/rapps/rapps/photofiltre.txt index fb25fa3b4c5..eac3f5edfde 100644 --- a/reactos/base/applications/rapps/rapps/photofiltre.txt +++ b/reactos/base/applications/rapps/rapps/photofiltre.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] diff --git a/reactos/base/applications/rapps/rapps/pingus.txt b/reactos/base/applications/rapps/rapps/pingus.txt index 6e4208a9162..2497dae2553 100644 --- a/reactos/base/applications/rapps/rapps/pingus.txt +++ b/reactos/base/applications/rapps/rapps/pingus.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] diff --git a/reactos/base/applications/rapps/rapps/pptview.txt b/reactos/base/applications/rapps/rapps/pptview.txt index b5a4988c98f..bab9cb16534 100644 --- a/reactos/base/applications/rapps/rapps/pptview.txt +++ b/reactos/base/applications/rapps/rapps/pptview.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Microsoft Powerpoint Viewer diff --git a/reactos/base/applications/rapps/rapps/pspad.txt b/reactos/base/applications/rapps/rapps/pspad.txt index 1f02aa24c28..9ab8c664c38 100644 --- a/reactos/base/applications/rapps/rapps/pspad.txt +++ b/reactos/base/applications/rapps/rapps/pspad.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] diff --git a/reactos/base/applications/rapps/rapps/ptanks.txt b/reactos/base/applications/rapps/rapps/ptanks.txt index afa8745002c..4af55891617 100644 --- a/reactos/base/applications/rapps/rapps/ptanks.txt +++ b/reactos/base/applications/rapps/rapps/ptanks.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] diff --git a/reactos/base/applications/rapps/rapps/putty.txt b/reactos/base/applications/rapps/rapps/putty.txt index 7284a2e2fbf..5902e63a6ef 100644 --- a/reactos/base/applications/rapps/rapps/putty.txt +++ b/reactos/base/applications/rapps/rapps/putty.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = PuTTY diff --git a/reactos/base/applications/rapps/rapps/python.txt b/reactos/base/applications/rapps/rapps/python.txt index 16418b4813b..93e3253980b 100644 --- a/reactos/base/applications/rapps/rapps/python.txt +++ b/reactos/base/applications/rapps/rapps/python.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Python 3 diff --git a/reactos/base/applications/rapps/rapps/python2.txt b/reactos/base/applications/rapps/rapps/python2.txt index fd9eeea1a36..049cc5b5172 100644 --- a/reactos/base/applications/rapps/rapps/python2.txt +++ b/reactos/base/applications/rapps/rapps/python2.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Python 2 diff --git a/reactos/base/applications/rapps/rapps/qb64sdl.txt b/reactos/base/applications/rapps/rapps/qb64sdl.txt index 903ac149321..75be16553e3 100644 --- a/reactos/base/applications/rapps/rapps/qb64sdl.txt +++ b/reactos/base/applications/rapps/rapps/qb64sdl.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] Name = QB64 (SDL version) diff --git a/reactos/base/applications/rapps/rapps/qmmp.txt b/reactos/base/applications/rapps/rapps/qmmp.txt index 878b5aaca84..96bba2adfc7 100644 --- a/reactos/base/applications/rapps/rapps/qmmp.txt +++ b/reactos/base/applications/rapps/rapps/qmmp.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] diff --git a/reactos/base/applications/rapps/rapps/remood.txt b/reactos/base/applications/rapps/rapps/remood.txt index f84503f0e33..0b2053c5427 100644 --- a/reactos/base/applications/rapps/rapps/remood.txt +++ b/reactos/base/applications/rapps/rapps/remood.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = ReMooD diff --git a/reactos/base/applications/rapps/rapps/reshack.txt b/reactos/base/applications/rapps/rapps/reshack.txt index bd047d54f29..02fdce2faa2 100644 --- a/reactos/base/applications/rapps/rapps/reshack.txt +++ b/reactos/base/applications/rapps/rapps/reshack.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] diff --git a/reactos/base/applications/rapps/rapps/rocks.txt b/reactos/base/applications/rapps/rapps/rocks.txt index ec1a4fc0d24..b17b5290fd0 100644 --- a/reactos/base/applications/rapps/rapps/rocks.txt +++ b/reactos/base/applications/rapps/rapps/rocks.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] diff --git a/reactos/base/applications/rapps/rapps/rosbe.txt b/reactos/base/applications/rapps/rapps/rosbe.txt index 56098d8d9d6..bbdd3ebb224 100644 --- a/reactos/base/applications/rapps/rapps/rosbe.txt +++ b/reactos/base/applications/rapps/rapps/rosbe.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = ReactOS Build Environment diff --git a/reactos/base/applications/rapps/rapps/rosbeamd64.txt b/reactos/base/applications/rapps/rapps/rosbeamd64.txt index d2cb1c9a5fd..f51d300d064 100644 --- a/reactos/base/applications/rapps/rapps/rosbeamd64.txt +++ b/reactos/base/applications/rapps/rapps/rosbeamd64.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = ReactOS Build Environment AMD64 Addon diff --git a/reactos/base/applications/rapps/rapps/rosbearm.txt b/reactos/base/applications/rapps/rapps/rosbearm.txt index 258000ada33..1990dea2ed2 100644 --- a/reactos/base/applications/rapps/rapps/rosbearm.txt +++ b/reactos/base/applications/rapps/rapps/rosbearm.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = ReactOS Build Environment ARM Addon diff --git a/reactos/base/applications/rapps/rapps/sambatng.txt b/reactos/base/applications/rapps/rapps/sambatng.txt index a3e670c3917..0b586ea2c6c 100644 --- a/reactos/base/applications/rapps/rapps/sambatng.txt +++ b/reactos/base/applications/rapps/rapps/sambatng.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Samba TNG diff --git a/reactos/base/applications/rapps/rapps/sbforvmware.txt b/reactos/base/applications/rapps/rapps/sbforvmware.txt index 586a09d3871..2e184062f53 100644 --- a/reactos/base/applications/rapps/rapps/sbforvmware.txt +++ b/reactos/base/applications/rapps/rapps/sbforvmware.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = SoundBlaster Driver for VMWare diff --git a/reactos/base/applications/rapps/rapps/scite.txt b/reactos/base/applications/rapps/rapps/scite.txt index c03adf87d2c..208bcb833fa 100644 --- a/reactos/base/applications/rapps/rapps/scite.txt +++ b/reactos/base/applications/rapps/rapps/scite.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = SciTE diff --git a/reactos/base/applications/rapps/rapps/scummvm.txt b/reactos/base/applications/rapps/rapps/scummvm.txt index e313558922f..c6df83307e6 100644 --- a/reactos/base/applications/rapps/rapps/scummvm.txt +++ b/reactos/base/applications/rapps/rapps/scummvm.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = ScummVM diff --git a/reactos/base/applications/rapps/rapps/sdl_mixer.txt b/reactos/base/applications/rapps/rapps/sdl_mixer.txt index 4837a287d1e..236b3dc5095 100644 --- a/reactos/base/applications/rapps/rapps/sdl_mixer.txt +++ b/reactos/base/applications/rapps/rapps/sdl_mixer.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Simple Direct Media Layer (SDL) Mixer diff --git a/reactos/base/applications/rapps/rapps/sdl_runtime.txt b/reactos/base/applications/rapps/rapps/sdl_runtime.txt index 0412ae5d9ed..fa77781a246 100644 --- a/reactos/base/applications/rapps/rapps/sdl_runtime.txt +++ b/reactos/base/applications/rapps/rapps/sdl_runtime.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Simple Direct Media Layer (SDL) Runtime diff --git a/reactos/base/applications/rapps/rapps/seamonkey.txt b/reactos/base/applications/rapps/rapps/seamonkey.txt index 194993487a2..7e978dbe1f8 100644 --- a/reactos/base/applications/rapps/rapps/seamonkey.txt +++ b/reactos/base/applications/rapps/rapps/seamonkey.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Mozilla SeaMonkey diff --git a/reactos/base/applications/rapps/rapps/smplayer.txt b/reactos/base/applications/rapps/rapps/smplayer.txt index b203cb6dad1..ca7683d142e 100644 --- a/reactos/base/applications/rapps/rapps/smplayer.txt +++ b/reactos/base/applications/rapps/rapps/smplayer.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = SMPlayer diff --git a/reactos/base/applications/rapps/rapps/snoopy.txt b/reactos/base/applications/rapps/rapps/snoopy.txt index 063350be8d3..ad350ef230c 100644 --- a/reactos/base/applications/rapps/rapps/snoopy.txt +++ b/reactos/base/applications/rapps/rapps/snoopy.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Snoopy diff --git a/reactos/base/applications/rapps/rapps/stamina.txt b/reactos/base/applications/rapps/rapps/stamina.txt index cfb4f196b87..0ff51a0f879 100644 --- a/reactos/base/applications/rapps/rapps/stamina.txt +++ b/reactos/base/applications/rapps/rapps/stamina.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] diff --git a/reactos/base/applications/rapps/rapps/steam.txt b/reactos/base/applications/rapps/rapps/steam.txt index 61894754cc3..9197a95b539 100644 --- a/reactos/base/applications/rapps/rapps/steam.txt +++ b/reactos/base/applications/rapps/rapps/steam.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = STEAM diff --git a/reactos/base/applications/rapps/rapps/sumatrapdf.txt b/reactos/base/applications/rapps/rapps/sumatrapdf.txt index 09521193e5b..a4c3a8aa13e 100644 --- a/reactos/base/applications/rapps/rapps/sumatrapdf.txt +++ b/reactos/base/applications/rapps/rapps/sumatrapdf.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = SumatraPDF diff --git a/reactos/base/applications/rapps/rapps/summerbound.txt b/reactos/base/applications/rapps/rapps/summerbound.txt index 271cc0e1d61..e45c2c9fba8 100644 --- a/reactos/base/applications/rapps/rapps/summerbound.txt +++ b/reactos/base/applications/rapps/rapps/summerbound.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Summer Bound diff --git a/reactos/base/applications/rapps/rapps/superdxb.txt b/reactos/base/applications/rapps/rapps/superdxb.txt index ae5e4327125..bd0151d8bce 100644 --- a/reactos/base/applications/rapps/rapps/superdxb.txt +++ b/reactos/base/applications/rapps/rapps/superdxb.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] Name = Super DX-Ball diff --git a/reactos/base/applications/rapps/rapps/superfinder.txt b/reactos/base/applications/rapps/rapps/superfinder.txt index 96829073322..9695da8b2f4 100644 --- a/reactos/base/applications/rapps/rapps/superfinder.txt +++ b/reactos/base/applications/rapps/rapps/superfinder.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Super Finder XT diff --git a/reactos/base/applications/rapps/rapps/supertux.txt b/reactos/base/applications/rapps/rapps/supertux.txt index 86ff46d5c0c..20dd10d9b38 100644 --- a/reactos/base/applications/rapps/rapps/supertux.txt +++ b/reactos/base/applications/rapps/rapps/supertux.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ; PL translation by wojo664 [Section] Name = SuperTux diff --git a/reactos/base/applications/rapps/rapps/tahoma.txt b/reactos/base/applications/rapps/rapps/tahoma.txt index 73d8134515a..e40f3a14a97 100644 --- a/reactos/base/applications/rapps/rapps/tahoma.txt +++ b/reactos/base/applications/rapps/rapps/tahoma.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Microsoft Tahoma Font diff --git a/reactos/base/applications/rapps/rapps/thunderbird.txt b/reactos/base/applications/rapps/rapps/thunderbird.txt index 8c0e8ab9d18..427b78a8ac9 100644 --- a/reactos/base/applications/rapps/rapps/thunderbird.txt +++ b/reactos/base/applications/rapps/rapps/thunderbird.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Mozilla Thunderbird 24 diff --git a/reactos/base/applications/rapps/rapps/thunderbird3.txt b/reactos/base/applications/rapps/rapps/thunderbird3.txt index facf4e9e6de..ffc3bce18fd 100644 --- a/reactos/base/applications/rapps/rapps/thunderbird3.txt +++ b/reactos/base/applications/rapps/rapps/thunderbird3.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Mozilla Thunderbird diff --git a/reactos/base/applications/rapps/rapps/tileworld.txt b/reactos/base/applications/rapps/rapps/tileworld.txt index dd3011cdbb1..4aa47a2da7a 100644 --- a/reactos/base/applications/rapps/rapps/tileworld.txt +++ b/reactos/base/applications/rapps/rapps/tileworld.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Tile World diff --git a/reactos/base/applications/rapps/rapps/totalcommander.txt b/reactos/base/applications/rapps/rapps/totalcommander.txt index 0503119ca76..ca17f0ac6cc 100644 --- a/reactos/base/applications/rapps/rapps/totalcommander.txt +++ b/reactos/base/applications/rapps/rapps/totalcommander.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Total Commander diff --git a/reactos/base/applications/rapps/rapps/tuxpaint.txt b/reactos/base/applications/rapps/rapps/tuxpaint.txt index de7bc9b11d0..9a23c5034bd 100644 --- a/reactos/base/applications/rapps/rapps/tuxpaint.txt +++ b/reactos/base/applications/rapps/rapps/tuxpaint.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = TuxPaint diff --git a/reactos/base/applications/rapps/rapps/ultravnc.txt b/reactos/base/applications/rapps/rapps/ultravnc.txt index 1e8aefbb9b3..06e225f312b 100644 --- a/reactos/base/applications/rapps/rapps/ultravnc.txt +++ b/reactos/base/applications/rapps/rapps/ultravnc.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = UltraVNC diff --git a/reactos/base/applications/rapps/rapps/utorrent.txt b/reactos/base/applications/rapps/rapps/utorrent.txt index 3a3cb8baf2c..6a4bcc1a21a 100644 --- a/reactos/base/applications/rapps/rapps/utorrent.txt +++ b/reactos/base/applications/rapps/rapps/utorrent.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = µTorrent diff --git a/reactos/base/applications/rapps/rapps/vb5run.txt b/reactos/base/applications/rapps/rapps/vb5run.txt index cfdc4712208..b4813f9a136 100644 --- a/reactos/base/applications/rapps/rapps/vb5run.txt +++ b/reactos/base/applications/rapps/rapps/vb5run.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Microsoft Visual Basic 5 Runtime diff --git a/reactos/base/applications/rapps/rapps/vb6run.txt b/reactos/base/applications/rapps/rapps/vb6run.txt index 1ae706e6d56..1c48f22e06f 100644 --- a/reactos/base/applications/rapps/rapps/vb6run.txt +++ b/reactos/base/applications/rapps/rapps/vb6run.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Microsoft Visual Basic 6 Runtime diff --git a/reactos/base/applications/rapps/rapps/vc2005sp1run.txt b/reactos/base/applications/rapps/rapps/vc2005sp1run.txt index 58693a9430a..c5c773a5a86 100644 --- a/reactos/base/applications/rapps/rapps/vc2005sp1run.txt +++ b/reactos/base/applications/rapps/rapps/vc2005sp1run.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Microsoft Visual C++ 2005 SP1 Redistributable Package diff --git a/reactos/base/applications/rapps/rapps/vc2008sp1run.txt b/reactos/base/applications/rapps/rapps/vc2008sp1run.txt index 74c0f3bf4ce..1920ff12472 100644 --- a/reactos/base/applications/rapps/rapps/vc2008sp1run.txt +++ b/reactos/base/applications/rapps/rapps/vc2008sp1run.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Microsoft Visual C++ 2008 SP1 Redistributable Package diff --git a/reactos/base/applications/rapps/rapps/vc2010run.txt b/reactos/base/applications/rapps/rapps/vc2010run.txt index e944533ec75..99c699761e0 100644 --- a/reactos/base/applications/rapps/rapps/vc2010run.txt +++ b/reactos/base/applications/rapps/rapps/vc2010run.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Microsoft Visual C++ 2010 Redistributable Package diff --git a/reactos/base/applications/rapps/rapps/vc6run.txt b/reactos/base/applications/rapps/rapps/vc6run.txt index 1e580af953c..9085eb47563 100644 --- a/reactos/base/applications/rapps/rapps/vc6run.txt +++ b/reactos/base/applications/rapps/rapps/vc6run.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Microsoft Visual C++ 6 Redistributable Package diff --git a/reactos/base/applications/rapps/rapps/vlc.txt b/reactos/base/applications/rapps/rapps/vlc.txt index 6faef05b095..6aeca7556a6 100644 --- a/reactos/base/applications/rapps/rapps/vlc.txt +++ b/reactos/base/applications/rapps/rapps/vlc.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = VLC media player diff --git a/reactos/base/applications/rapps/rapps/winboard.txt b/reactos/base/applications/rapps/rapps/winboard.txt index bdc18892789..483140c9c02 100644 --- a/reactos/base/applications/rapps/rapps/winboard.txt +++ b/reactos/base/applications/rapps/rapps/winboard.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = WinBoard diff --git a/reactos/base/applications/rapps/rapps/wme9.txt b/reactos/base/applications/rapps/rapps/wme9.txt index 96a0becc5d8..a6723407167 100644 --- a/reactos/base/applications/rapps/rapps/wme9.txt +++ b/reactos/base/applications/rapps/rapps/wme9.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Windows Media Encoder 9 diff --git a/reactos/base/applications/rapps/rapps/wordview.txt b/reactos/base/applications/rapps/rapps/wordview.txt index 7d3884e8bba..c2c46eeb8b7 100644 --- a/reactos/base/applications/rapps/rapps/wordview.txt +++ b/reactos/base/applications/rapps/rapps/wordview.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 [Section] Name = Microsoft Word Viewer diff --git a/reactos/base/applications/rapps/rapps/zaz.txt b/reactos/base/applications/rapps/rapps/zaz.txt index 0f68949ce45..ce7ff58e402 100644 --- a/reactos/base/applications/rapps/rapps/zaz.txt +++ b/reactos/base/applications/rapps/rapps/zaz.txt @@ -1,4 +1,4 @@ -; UTF-8 +; UTF-8 ;PL translation by wojo664 [Section] From 5c08d6b6c59326d7e41ef7b9dbea73acebf899b9 Mon Sep 17 00:00:00 2001 From: Kamil Hornicek Date: Sun, 11 May 2014 18:43:51 +0000 Subject: [PATCH 49/92] [SHELL32] - attempt to resolve an widechar/multibyte mismatch in the applet name - fixes opening the mouse applet if the translated name contains a non ASCII character svn path=/trunk/; revision=63237 --- reactos/dll/win32/shell32/folders/cpanel.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/reactos/dll/win32/shell32/folders/cpanel.cpp b/reactos/dll/win32/shell32/folders/cpanel.cpp index 47ec5b670c3..cf0c9cf448d 100644 --- a/reactos/dll/win32/shell32/folders/cpanel.cpp +++ b/reactos/dll/win32/shell32/folders/cpanel.cpp @@ -852,9 +852,14 @@ HRESULT WINAPI CControlPanelFolder::ExecuteFromIdList(LPCITEMIDLIST pidl) } /* Build control panel applet cmd - Note: we passes applet name to Control_RunDLL to distinguish between applets in one .cpl file */ + Note: we pass the applet name to Control_RunDLL to distinguish between multiple applets in one .cpl file */ WCHAR wszCmd[2*MAX_PATH]; - StringCbPrintfW(wszCmd, sizeof(wszCmd), L"rundll32 shell32.dll,Control_RunDLL \"%hs\",\"%hs\"", pCPanel->szName, pCPanel->szName + pCPanel->offsDispName); + WCHAR wszAppletName[MAX_PATH]; + + if(!MultiByteToWideChar(CP_ACP, 0, pCPanel->szName + pCPanel->offsDispName, -1, wszAppletName, MAX_PATH)) + return E_FAIL; + + StringCbPrintfW(wszCmd, sizeof(wszCmd), L"rundll32 shell32.dll,Control_RunDLL \"%hs\",\"%ls\"", pCPanel->szName, wszAppletName); /* Start the applet */ TRACE("Run cpl %ls\n", wszCmd); From cdfa735cd1cd410278da902ee26b61dcd5ed547d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Sun, 11 May 2014 19:25:09 +0000 Subject: [PATCH 50/92] [NTVDM] - Continue to work on VGA attach/detach from console; - Stick more #if(n)def STANDALONE to portions of code that are useful (or not) in standalone (i.e. not in OS-integrated) mode; - Isolate the Dos***File functions in a new source file; - Get rid of STACK_COUNTER, STACK_VAR_A and STACK_VAR_B since we now use 32-->16 bit callbacks (and therefore adjust the callback/INT32 trampoline stubs accordingly). svn path=/trunk/; revision=63238 --- reactos/subsystems/ntvdm/CMakeLists.txt | 1 + .../subsystems/ntvdm/bios/bios32/kbdbios32.c | 35 +- reactos/subsystems/ntvdm/bios/kbdbios.h | 2 - reactos/subsystems/ntvdm/bios/vidbios.c | 40 ++ reactos/subsystems/ntvdm/bios/vidbios.h | 5 +- reactos/subsystems/ntvdm/callback.c | 16 +- reactos/subsystems/ntvdm/dos/dem.c | 8 +- reactos/subsystems/ntvdm/dos/dos32krnl/bios.c | 60 +- reactos/subsystems/ntvdm/dos/dos32krnl/dos.c | 529 +++++------------- reactos/subsystems/ntvdm/dos/dos32krnl/dos.h | 23 +- .../subsystems/ntvdm/dos/dos32krnl/dosfiles.c | 331 +++++++++++ reactos/subsystems/ntvdm/emulator.c | 15 +- reactos/subsystems/ntvdm/emulator.h | 16 +- reactos/subsystems/ntvdm/hardware/vga.c | 127 +++-- reactos/subsystems/ntvdm/int32.c | 22 +- reactos/subsystems/ntvdm/ntvdm.c | 236 ++++---- reactos/subsystems/ntvdm/ntvdm.h | 11 +- 17 files changed, 809 insertions(+), 668 deletions(-) create mode 100644 reactos/subsystems/ntvdm/dos/dos32krnl/dosfiles.c diff --git a/reactos/subsystems/ntvdm/CMakeLists.txt b/reactos/subsystems/ntvdm/CMakeLists.txt index 80ab3e92e41..2ee9f55eaad 100644 --- a/reactos/subsystems/ntvdm/CMakeLists.txt +++ b/reactos/subsystems/ntvdm/CMakeLists.txt @@ -21,6 +21,7 @@ list(APPEND SOURCE hardware/vga.c dos/dos32krnl/bios.c dos/dos32krnl/dos.c + dos/dos32krnl/dosfiles.c dos/dem.c bop.c callback.c diff --git a/reactos/subsystems/ntvdm/bios/bios32/kbdbios32.c b/reactos/subsystems/ntvdm/bios/bios32/kbdbios32.c index 9d95ccd368b..716af1f50d7 100644 --- a/reactos/subsystems/ntvdm/bios/bios32/kbdbios32.c +++ b/reactos/subsystems/ntvdm/bios/bios32/kbdbios32.c @@ -91,22 +91,13 @@ static WORD BiosPeekCharacter(VOID) else return 0xFFFF; } -WORD BiosGetCharacter(VOID) +static WORD BiosGetCharacter(VOID) { WORD CharacterData = 0; - /* Check if there is a key available */ - if (BiosKbdBufferTop(&CharacterData)) - { - /* A key was available, remove it from the queue */ - BiosKbdBufferPop(); - } - else - { - /* No key available. Set the handler CF to repeat the BOP */ - setCF(1); - // CharacterData = 0xFFFF; - } + /* Check if there is a key available, and if so, remove it from the queue */ + if (BiosKbdBufferTop(&CharacterData)) BiosKbdBufferPop(); + else CharacterData = 0xFFFF; return CharacterData; } @@ -121,7 +112,17 @@ static VOID WINAPI BiosKeyboardService(LPWORD Stack) case 0x10: // FIXME: Temporarily do the same as INT 16h, 00h { /* Read the character (and wait if necessary) */ - setAX(BiosGetCharacter()); + WORD Character = BiosGetCharacter(); + + if (Character == 0xFFFF) + { + /* No key available. Set the handler CF to repeat the BOP */ + setCF(1); + break; + } + + setAX(Character); + break; } @@ -130,13 +131,13 @@ static VOID WINAPI BiosKeyboardService(LPWORD Stack) /* Get extended keystroke status */ case 0x11: // FIXME: Temporarily do the same as INT 16h, 01h { - WORD Data = BiosPeekCharacter(); + WORD Character = BiosPeekCharacter(); - if (Data != 0xFFFF) + if (Character != 0xFFFF) { /* There is a character, clear ZF and return it */ Stack[STACK_FLAGS] &= ~EMULATOR_FLAG_ZF; - setAX(Data); + setAX(Character); } else { diff --git a/reactos/subsystems/ntvdm/bios/kbdbios.h b/reactos/subsystems/ntvdm/bios/kbdbios.h index 46486785b2b..1d8798ac763 100644 --- a/reactos/subsystems/ntvdm/bios/kbdbios.h +++ b/reactos/subsystems/ntvdm/bios/kbdbios.h @@ -21,8 +21,6 @@ /* FUNCTIONS ******************************************************************/ -WORD BiosGetCharacter(VOID); - BOOLEAN KbdBiosInitialize(VOID); VOID KbdBiosCleanup(VOID); diff --git a/reactos/subsystems/ntvdm/bios/vidbios.c b/reactos/subsystems/ntvdm/bios/vidbios.c index cec5a7060e2..41d22d3b1a6 100644 --- a/reactos/subsystems/ntvdm/bios/vidbios.c +++ b/reactos/subsystems/ntvdm/bios/vidbios.c @@ -1532,6 +1532,37 @@ VOID WINAPI VidBiosVideoService(LPWORD Stack) } } + +/* + * Those attach / detach functions are work-in-progress + */ + +static BOOL Attached = TRUE; + +VOID VidBiosAttachToConsole(VOID) +{ + // VgaRefreshDisplay(); + if (!Attached) + { + VgaAttachToConsole(); + Attached = TRUE; + } + + VgaRefreshDisplay(); + VidBiosSyncCursorPosition(); +} + +VOID VidBiosDetachFromConsole(VOID) +{ + /* Perform another screen refresh */ + VgaRefreshDisplay(); + + /* Detach from the console */ + VgaDetachFromConsole(FALSE); + Attached = FALSE; +} + + BOOLEAN VidBiosInitialize(VOID) { /* Some interrupts are in fact addresses to tables */ @@ -1541,6 +1572,15 @@ BOOLEAN VidBiosInitialize(VOID) ((PULONG)BaseAddress)[0x43] = (ULONG)NULL; ((PULONG)BaseAddress)[0x44] = (ULONG)NULL; + // + // FIXME: At the moment we always set a VGA mode. In the future, + // we should set this mode **only** when: + // - an app starts to use directly the video memory + // (that should be done in emulator.c) + // - or starts to use non-stream I/O interrupts + // (that should be done here, or maybe in VGA ??) + // + /* Set the default video mode */ VidBiosSetVideoMode(BIOS_DEFAULT_VIDEO_MODE); diff --git a/reactos/subsystems/ntvdm/bios/vidbios.h b/reactos/subsystems/ntvdm/bios/vidbios.h index 70b3e54606e..5e291471115 100644 --- a/reactos/subsystems/ntvdm/bios/vidbios.h +++ b/reactos/subsystems/ntvdm/bios/vidbios.h @@ -37,9 +37,12 @@ enum /* FUNCTIONS ******************************************************************/ +VOID VidBiosSyncCursorPosition(VOID); + VOID WINAPI VidBiosVideoService(LPWORD Stack); -VOID VidBiosSyncCursorPosition(VOID); +VOID VidBiosDetachFromConsole(VOID); +VOID VidBiosAttachToConsole(VOID); BOOLEAN VidBiosInitialize(VOID); VOID VidBiosCleanup(VOID); diff --git a/reactos/subsystems/ntvdm/callback.c b/reactos/subsystems/ntvdm/callback.c index 34c0bcc7824..feed3d80270 100644 --- a/reactos/subsystems/ntvdm/callback.c +++ b/reactos/subsystems/ntvdm/callback.c @@ -44,6 +44,13 @@ do { \ #define CALL16_TRAMPOLINE_SIZE (1 * sizeof(ULONGLONG)) #define INT16_TRAMPOLINE_SIZE (1 * sizeof(ULONGLONG)) +// +// WARNING WARNING!! +// +// If you modify the code stubs here, think also +// about updating them in int32.c too!! +// + /* 16-bit generic interrupt code for calling a 32-bit interrupt handler */ BYTE Int16To32[] = { @@ -52,12 +59,6 @@ BYTE Int16To32[] = /* Push the value of the interrupt to be called */ 0x6A, 0xFF, // push i (patchable to 0x6A, 0xIntNum) - /* The counter variable (initialized to 0) */ - 0x6A, 0x00, // push 0 - - /* Stack variables */ - 0x83, 0xEC, 0x04, // sub sp, 4 - /* The BOP Sequence */ // BOP_SEQ: 0xF8, // clc @@ -74,7 +75,8 @@ BYTE Int16To32[] = 0xEB, 0xF5, // jmp BOP_SEQ (offset -11) // EXIT: - 0x83, 0xC4, 0x08, // add sp, 8 + // 0x44, 0x44, // inc sp, inc sp + 0x83, 0xC4, 0x02, // add sp, 2 0xCF, // iret }; diff --git a/reactos/subsystems/ntvdm/dos/dem.c b/reactos/subsystems/ntvdm/dos/dem.c index f78dab86a3a..f0b251d2e03 100644 --- a/reactos/subsystems/ntvdm/dos/dem.c +++ b/reactos/subsystems/ntvdm/dos/dem.c @@ -21,7 +21,6 @@ #include "bop.h" #include "bios/bios.h" -#include "hardware/vga.h" /* Extra PSDK/NDK Headers */ #include @@ -138,8 +137,7 @@ static VOID WINAPI DosCmdInterpreterBop(LPWORD Stack) StartupInfo.cb = sizeof(StartupInfo); - VgaRefreshDisplay(); - VgaDetachFromConsole(FALSE); + VidBiosDetachFromConsole(); Result = CreateProcessA(NULL, CommandLine, @@ -171,9 +169,7 @@ static VOID WINAPI DosCmdInterpreterBop(LPWORD Stack) dwExitCode = GetLastError(); } - VgaAttachToConsole(); - VgaRefreshDisplay(); - VidBiosSyncCursorPosition(); + VidBiosAttachToConsole(); setAL((UCHAR)dwExitCode); diff --git a/reactos/subsystems/ntvdm/dos/dos32krnl/bios.c b/reactos/subsystems/ntvdm/dos/dos32krnl/bios.c index b7ce9d313e5..32057e51f4b 100644 --- a/reactos/subsystems/ntvdm/dos/dos32krnl/bios.c +++ b/reactos/subsystems/ntvdm/dos/dos32krnl/bios.c @@ -24,65 +24,15 @@ /* PRIVATE FUNCTIONS **********************************************************/ -#if 0 -static WORD DosWriteFile(WORD FileHandle, LPVOID Buffer, WORD Count, LPWORD BytesWritten) -{ - WORD Result = ERROR_SUCCESS; - DWORD BytesWritten32 = 0; - HANDLE Handle = DosGetRealHandle(FileHandle); - WORD i; - - DPRINT("DosWriteFile: FileHandle 0x%04X, Count 0x%04X\n", - FileHandle, - Count); - - /* Make sure the handle is valid */ - if (Handle == INVALID_HANDLE_VALUE) return ERROR_INVALID_HANDLE; - - if (IsConsoleHandle(Handle)) - { - for (i = 0; i < Count; i++) - { - /* Call the BIOS to print the character */ - VidBiosPrintCharacter(((LPBYTE)Buffer)[i], DOS_CHAR_ATTRIBUTE, Bda->VideoPage); - BytesWritten32++; - } - } - else - { - /* Write the file */ - if (!WriteFile(Handle, Buffer, Count, &BytesWritten32, NULL)) - { - /* Store the error code */ - Result = (WORD)GetLastError(); - } - } - - /* The number of bytes written is always 16-bit */ - *BytesWritten = LOWORD(BytesWritten32); - - /* Return the error code */ - return Result; -} -#endif - /* PUBLIC FUNCTIONS ***********************************************************/ -CHAR DosReadCharacter(VOID) +CHAR DosReadCharacter(WORD FileHandle) { CHAR Character = '\0'; WORD BytesRead; - if (IsConsoleHandle(DosGetRealHandle(DOS_INPUT_HANDLE))) - { - /* Call the BIOS */ - Character = LOBYTE(BiosGetCharacter()); - } - else - { - /* Use the file reading function */ - DosReadFile(DOS_INPUT_HANDLE, &Character, sizeof(CHAR), &BytesRead); - } + /* Use the file reading function */ + DosReadFile(FileHandle, &Character, 1, &BytesRead); return Character; } @@ -117,12 +67,12 @@ BOOLEAN DosCheckInput(VOID) } } -VOID DosPrintCharacter(CHAR Character) +VOID DosPrintCharacter(WORD FileHandle, CHAR Character) { WORD BytesWritten; /* Use the file writing function */ - DosWriteFile(DOS_OUTPUT_HANDLE, &Character, sizeof(CHAR), &BytesWritten); + DosWriteFile(FileHandle, &Character, 1, &BytesWritten); } BOOLEAN DosBIOSInitialize(VOID) diff --git a/reactos/subsystems/ntvdm/dos/dos32krnl/dos.c b/reactos/subsystems/ntvdm/dos/dos32krnl/dos.c index f1f9fffd70b..6ce7e3faf76 100644 --- a/reactos/subsystems/ntvdm/dos/dos32krnl/dos.c +++ b/reactos/subsystems/ntvdm/dos/dos32krnl/dos.c @@ -1,7 +1,7 @@ /* * COPYRIGHT: GPL - See COPYING in the top level directory * PROJECT: ReactOS Virtual DOS Machine - * FILE: dos.c + * FILE: dos/dos32krnl/dos.c * PURPOSE: VDM DOS Kernel * PROGRAMMERS: Aleksandar Andrejevic */ @@ -29,8 +29,13 @@ static DWORD DiskTransferArea; /*static*/ BYTE CurrentDrive; static CHAR LastDrive = 'E'; static CHAR CurrentDirectories[NUM_DRIVES][DOS_DIR_LENGTH]; -static HANDLE DosSystemFileTable[DOS_SFT_SIZE]; -static WORD DosSftRefCount[DOS_SFT_SIZE]; + +static struct +{ + HANDLE Handle; + WORD RefCount; +} DosSystemFileTable[DOS_SFT_SIZE]; + static BYTE DosAllocStrategy = DOS_ALLOC_BEST_FIT; static BOOLEAN DosUmbLinked = FALSE; static WORD DosErrorLevel = 0x0000; @@ -431,6 +436,11 @@ static WORD DosCopyEnvironmentBlock(LPCVOID Environment, LPCSTR ProgramName) return DestSegment; } + + + + + /* Taken from base/shell/cmd/console.c */ BOOL IsConsoleHandle(HANDLE hHandle) { @@ -455,7 +465,7 @@ BOOL IsConsoleHandle(HANDLE hHandle) return GetConsoleMode(hHandle, &dwMode); } -static WORD DosOpenHandle(HANDLE Handle) +WORD DosOpenHandle(HANDLE Handle) { BYTE i; WORD DosHandle; @@ -482,10 +492,10 @@ static WORD DosOpenHandle(HANDLE Handle) for (i = 0; i < DOS_SFT_SIZE; i++) { /* Check if this is the same handle */ - if (DosSystemFileTable[i] != Handle) continue; + if (DosSystemFileTable[i].Handle != Handle) continue; /* Already in the table, reference it */ - DosSftRefCount[i]++; + DosSystemFileTable[i].RefCount++; /* Set the JFT entry to that SFT index */ HandleTable[DosHandle] = i; @@ -498,11 +508,11 @@ static WORD DosOpenHandle(HANDLE Handle) for (i = 0; i < DOS_SFT_SIZE; i++) { /* Make sure this is an empty table entry */ - if (DosSystemFileTable[i] != INVALID_HANDLE_VALUE) continue; + if (DosSystemFileTable[i].Handle != INVALID_HANDLE_VALUE) continue; /* Initialize the empty table entry */ - DosSystemFileTable[i] = Handle; - DosSftRefCount[i] = 1; + DosSystemFileTable[i].Handle = Handle; + DosSystemFileTable[i].RefCount = 1; /* Set the JFT entry to that SFT index */ HandleTable[DosHandle] = i; @@ -531,7 +541,7 @@ HANDLE DosGetRealHandle(WORD DosHandle) if (HandleTable[DosHandle] == 0xFF) return INVALID_HANDLE_VALUE; /* Return the Win32 handle */ - return DosSystemFileTable[HandleTable[DosHandle]]; + return DosSystemFileTable[HandleTable[DosHandle]].Handle; } static VOID DosCopyHandleTable(LPBYTE DestinationTable) @@ -553,7 +563,7 @@ static VOID DosCopyHandleTable(LPBYTE DestinationTable) DestinationTable[i] = (BYTE)i; /* Increase the reference count */ - DosSftRefCount[i]++; + DosSystemFileTable[i].RefCount++; } /* Done */ @@ -570,7 +580,7 @@ static VOID DosCopyHandleTable(LPBYTE DestinationTable) DestinationTable[i] = SourceTable[i]; /* Increase the reference count */ - DosSftRefCount[SourceTable[i]]++; + DosSystemFileTable[SourceTable[i]].RefCount++; } } @@ -594,16 +604,16 @@ static BOOLEAN DosCloseHandle(WORD DosHandle) /* Decrement the reference count of the SFT entry */ SftIndex = HandleTable[DosHandle]; - DosSftRefCount[SftIndex]--; + DosSystemFileTable[SftIndex].RefCount--; /* Check if the reference count fell to zero */ - if (!DosSftRefCount[SftIndex]) + if (!DosSystemFileTable[SftIndex].RefCount) { /* Close the file, it's no longer needed */ - CloseHandle(DosSystemFileTable[SftIndex]); + CloseHandle(DosSystemFileTable[SftIndex].Handle); /* Clear the handle */ - DosSystemFileTable[SftIndex] = INVALID_HANDLE_VALUE; + DosSystemFileTable[SftIndex].Handle = INVALID_HANDLE_VALUE; } /* Clear the entry in the JFT */ @@ -641,7 +651,7 @@ static BOOLEAN DosDuplicateHandle(WORD OldHandle, WORD NewHandle) /* Increment the reference count of the SFT entry */ SftIndex = HandleTable[OldHandle]; - DosSftRefCount[SftIndex]++; + DosSystemFileTable[SftIndex].RefCount++; /* Make the new handle point to that SFT entry */ HandleTable[NewHandle] = SftIndex; @@ -650,260 +660,11 @@ static BOOLEAN DosDuplicateHandle(WORD OldHandle, WORD NewHandle) return TRUE; } -static WORD DosCreateFile(LPWORD Handle, LPCSTR FilePath, WORD Attributes) -{ - HANDLE FileHandle; - WORD DosHandle; - DPRINT("DosCreateFile: FilePath \"%s\", Attributes 0x%04X\n", - FilePath, - Attributes); - /* Create the file */ - FileHandle = CreateFileA(FilePath, - GENERIC_READ | GENERIC_WRITE, - FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, - NULL, - CREATE_ALWAYS, - Attributes, - NULL); - if (FileHandle == INVALID_HANDLE_VALUE) - { - /* Return the error code */ - return (WORD)GetLastError(); - } - /* Open the DOS handle */ - DosHandle = DosOpenHandle(FileHandle); - if (DosHandle == INVALID_DOS_HANDLE) - { - /* Close the handle */ - CloseHandle(FileHandle); - - /* Return the error code */ - return ERROR_TOO_MANY_OPEN_FILES; - } - - /* It was successful */ - *Handle = DosHandle; - return ERROR_SUCCESS; -} - -static WORD DosOpenFile(LPWORD Handle, LPCSTR FilePath, BYTE AccessMode) -{ - HANDLE FileHandle; - ACCESS_MASK Access = 0; - WORD DosHandle; - - DPRINT("DosOpenFile: FilePath \"%s\", AccessMode 0x%04X\n", - FilePath, - AccessMode); - - /* Parse the access mode */ - switch (AccessMode & 3) - { - case 0: - { - /* Read-only */ - Access = GENERIC_READ; - break; - } - - case 1: - { - /* Write only */ - Access = GENERIC_WRITE; - break; - } - - case 2: - { - /* Read and write */ - Access = GENERIC_READ | GENERIC_WRITE; - break; - } - - default: - { - /* Invalid */ - return ERROR_INVALID_PARAMETER; - } - } - - /* Open the file */ - FileHandle = CreateFileA(FilePath, - Access, - FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, - NULL, - OPEN_EXISTING, - FILE_ATTRIBUTE_NORMAL, - NULL); - - if (FileHandle == INVALID_HANDLE_VALUE) - { - /* Return the error code */ - return (WORD)GetLastError(); - } - - /* Open the DOS handle */ - DosHandle = DosOpenHandle(FileHandle); - - if (DosHandle == INVALID_DOS_HANDLE) - { - /* Close the handle */ - CloseHandle(FileHandle); - - /* Return the error code */ - return ERROR_TOO_MANY_OPEN_FILES; - } - - /* It was successful */ - *Handle = DosHandle; - return ERROR_SUCCESS; -} - -WORD DosReadFile(WORD FileHandle, LPVOID Buffer, WORD Count, LPWORD BytesRead) -{ - WORD Result = ERROR_SUCCESS; - DWORD BytesRead32 = 0; - HANDLE Handle = DosGetRealHandle(FileHandle); - - DPRINT("DosReadFile: FileHandle 0x%04X, Count 0x%04X\n", FileHandle, Count); - - /* Make sure the handle is valid */ - if (Handle == INVALID_HANDLE_VALUE) return ERROR_INVALID_HANDLE; - - /* Read the file */ - if (!ReadFile(Handle, Buffer, Count, &BytesRead32, NULL)) - { - /* Store the error code */ - Result = (WORD)GetLastError(); - } - - /* The number of bytes read is always 16-bit */ - *BytesRead = LOWORD(BytesRead32); - - /* Return the error code */ - return Result; -} - -WORD DosWriteFile(WORD FileHandle, LPVOID Buffer, WORD Count, LPWORD BytesWritten) -{ - WORD Result = ERROR_SUCCESS; - DWORD BytesWritten32 = 0; - HANDLE Handle = DosGetRealHandle(FileHandle); - WORD i; - - DPRINT("DosWriteFile: FileHandle 0x%04X, Count 0x%04X\n", - FileHandle, - Count); - - /* Make sure the handle is valid */ - if (Handle == INVALID_HANDLE_VALUE) return ERROR_INVALID_HANDLE; - - if (IsConsoleHandle(Handle)) - { - for (i = 0; i < Count; i++) - { - /* Save AX and BX */ - USHORT AX = getAX(); - USHORT BX = getBX(); - - /* Set the parameters */ - setAL(((PCHAR)Buffer)[i]); - setBL(DOS_CHAR_ATTRIBUTE); - setBH(Bda->VideoPage); - - /* Call the BIOS INT 10h, AH=0Eh "Teletype Output" */ - setAH(0x0E); - Int32Call(&DosContext, BIOS_VIDEO_INTERRUPT); - - /* Restore AX and BX */ - setBX(BX); - setAX(AX); - - BytesWritten32++; - } - } - else - { - /* Write the file */ - if (!WriteFile(Handle, Buffer, Count, &BytesWritten32, NULL)) - { - /* Store the error code */ - Result = (WORD)GetLastError(); - } - } - - /* The number of bytes written is always 16-bit */ - *BytesWritten = LOWORD(BytesWritten32); - - /* Return the error code */ - return Result; -} - -static WORD DosSeekFile(WORD FileHandle, LONG Offset, BYTE Origin, LPDWORD NewOffset) -{ - WORD Result = ERROR_SUCCESS; - DWORD FilePointer; - HANDLE Handle = DosGetRealHandle(FileHandle); - - DPRINT("DosSeekFile: FileHandle 0x%04X, Offset 0x%08X, Origin 0x%02X\n", - FileHandle, - Offset, - Origin); - - /* Make sure the handle is valid */ - if (Handle == INVALID_HANDLE_VALUE) return ERROR_INVALID_HANDLE; - - /* Check if the origin is valid */ - if (Origin != FILE_BEGIN && Origin != FILE_CURRENT && Origin != FILE_END) - { - return ERROR_INVALID_FUNCTION; - } - - /* Move the file pointer */ - FilePointer = SetFilePointer(Handle, Offset, NULL, Origin); - - /* Check if there's a possibility the operation failed */ - if (FilePointer == INVALID_SET_FILE_POINTER) - { - /* Get the real error code */ - Result = (WORD)GetLastError(); - } - - if (Result != ERROR_SUCCESS) - { - /* The operation did fail */ - return Result; - } - - /* Return the file pointer, if requested */ - if (NewOffset) *NewOffset = FilePointer; - - /* Return success */ - return ERROR_SUCCESS; -} - -static BOOLEAN DosFlushFileBuffers(WORD FileHandle) -{ - HANDLE Handle = DosGetRealHandle(FileHandle); - - /* Make sure the handle is valid */ - if (Handle == INVALID_HANDLE_VALUE) return FALSE; - - /* - * No need to check whether the handle is a console handle since - * FlushFileBuffers() automatically does this check and calls - * FlushConsoleInputBuffer() for us. - */ - // if (IsConsoleHandle(Handle)) - // return (BOOLEAN)FlushConsoleInputBuffer(Handle); - // else - return (BOOLEAN)FlushFileBuffers(Handle); -} static BOOLEAN DosChangeDrive(BYTE Drive) { @@ -1279,6 +1040,36 @@ Cleanup: return Result; } +DWORD DosStartProcess(IN LPCSTR ExecutablePath, + IN LPCSTR CommandLine, + IN PVOID Environment) +{ + DWORD Result; + + Result = DosLoadExecutable(DOS_LOAD_AND_EXECUTE, + ExecutablePath, + CommandLine, + Environment, + NULL, + NULL); + + if (Result != ERROR_SUCCESS) goto Quit; + + /* Attach to the console */ + VidBiosAttachToConsole(); // FIXME: And in fact, attach the full NTVDM UI to the console + + /* Start simulation */ + SetEvent(VdmTaskEvent); + EmulatorSimulate(); + + /* Detach from the console */ + VidBiosDetachFromConsole(); // FIXME: And in fact, detach the full NTVDM UI from the console + +Quit: + return Result; +} + +#ifndef STANDALONE WORD DosCreateProcess(DOS_EXEC_TYPE LoadType, LPCSTR ProgramName, PDOS_EXEC_PARAM_BLOCK Parameters) @@ -1363,16 +1154,17 @@ WORD DosCreateProcess(DOS_EXEC_TYPE LoadType, GetNextVDMCommand(&CommandInfo); /* Load the executable */ - Result= DosLoadExecutable(LoadType, - AppName, - CmdLine, - Env, - &Parameters->StackLocation, - &Parameters->EntryPoint); + Result = DosLoadExecutable(LoadType, + AppName, + CmdLine, + Env, + &Parameters->StackLocation, + &Parameters->EntryPoint); if (Result != ERROR_SUCCESS) { DisplayMessage(L"Could not load '%S'. Error: %u", AppName, Result); - break; + // FIXME: Decrement the reenter count. Or, instead, just increment + // the VDM reenter count *only* if this call succeeds... } break; @@ -1392,6 +1184,7 @@ WORD DosCreateProcess(DOS_EXEC_TYPE LoadType, return ERROR_SUCCESS; } +#endif VOID DosTerminateProcess(WORD Psp, BYTE ReturnCode) { @@ -1400,7 +1193,6 @@ VOID DosTerminateProcess(WORD Psp, BYTE ReturnCode) PDOS_MCB CurrentMcb; LPDWORD IntVecTable = (LPDWORD)((ULONG_PTR)BaseAddress); PDOS_PSP PspBlock = SEGMENT_TO_PSP(Psp); - VDM_COMMAND_INFO CommandInfo; DPRINT("DosTerminateProcess: Psp 0x%04X, ReturnCode 0x%02X\n", Psp, @@ -1451,10 +1243,13 @@ Done: } } +#ifndef STANDALONE // FIXME: This is probably not the best way to do it /* Check if this was a nested DOS task */ if (CurrentPsp != SYSTEM_PSP) { + VDM_COMMAND_INFO CommandInfo; + /* Decrement the re-entry count */ CommandInfo.TaskId = SessionId; CommandInfo.VDMState = VDM_DEC_REENTER_COUNT; @@ -1468,6 +1263,7 @@ Done: CommandInfo.VDMState = VDM_FLAG_DONT_WAIT; GetNextVDMCommand(&CommandInfo); } +#endif /* Save the return code - Normal termination */ DosErrorLevel = MAKEWORD(ReturnCode, 0x00); @@ -1500,12 +1296,12 @@ BOOLEAN DosHandleIoctl(BYTE ControlCode, WORD FileHandle) * for a list of possible flags. */ - if (Handle == DosSystemFileTable[0]) + if (Handle == DosSystemFileTable[DOS_INPUT_HANDLE].Handle) { /* Console input */ InfoWord |= 1 << 0; } - else if (Handle == DosSystemFileTable[1]) + else if (Handle == DosSystemFileTable[DOS_OUTPUT_HANDLE].Handle) { /* Console output */ InfoWord |= 1 << 1; @@ -1556,11 +1352,12 @@ VOID WINAPI DosInt21h(LPWORD Stack) /* Read Character from STDIN with Echo */ case 0x01: { - Character = DosReadCharacter(); - DosPrintCharacter(Character); + // FIXME: Under DOS 2+, input / output handle may be redirected!!!! + Character = DosReadCharacter(DOS_INPUT_HANDLE); + DosPrintCharacter(DOS_OUTPUT_HANDLE, Character); - /* Let the BOP repeat if needed */ - if (getCF()) break; + // /* Let the BOP repeat if needed */ + // if (getCF()) break; setAL(Character); break; @@ -1569,8 +1366,9 @@ VOID WINAPI DosInt21h(LPWORD Stack) /* Write Character to STDOUT */ case 0x02: { + // FIXME: Under DOS 2+, output handle may be redirected!!!! Character = getDL(); - DosPrintCharacter(Character); + DosPrintCharacter(DOS_OUTPUT_HANDLE, Character); /* * We return the output character (DOS 2.1+). @@ -1588,7 +1386,7 @@ VOID WINAPI DosInt21h(LPWORD Stack) { // FIXME: Really read it from STDAUX! DPRINT1("INT 16h, 03h: Read character from STDAUX is HALFPLEMENTED\n"); - setAL(DosReadCharacter()); + // setAL(DosReadCharacter()); break; } @@ -1597,7 +1395,7 @@ VOID WINAPI DosInt21h(LPWORD Stack) { // FIXME: Really write it to STDAUX! DPRINT1("INT 16h, 04h: Write character to STDAUX is HALFPLEMENTED\n"); - DosPrintCharacter(getDL()); + // DosPrintCharacter(getDL()); break; } @@ -1616,10 +1414,12 @@ VOID WINAPI DosInt21h(LPWORD Stack) { Character = getDL(); + // FIXME: Under DOS 2+, output handle may be redirected!!!! + if (Character != 0xFF) { /* Output */ - DosPrintCharacter(Character); + DosPrintCharacter(DOS_OUTPUT_HANDLE, Character); /* * We return the output character (DOS 2.1+). @@ -1634,7 +1434,7 @@ VOID WINAPI DosInt21h(LPWORD Stack) if (DosCheckInput()) { Stack[STACK_FLAGS] &= ~EMULATOR_FLAG_ZF; - setAL(DosReadCharacter()); + setAL(DosReadCharacter(DOS_INPUT_HANDLE)); } else { @@ -1651,10 +1451,15 @@ VOID WINAPI DosInt21h(LPWORD Stack) case 0x07: case 0x08: { - Character = DosReadCharacter(); + // FIXME: Under DOS 2+, input handle may be redirected!!!! + Character = DosReadCharacter(DOS_INPUT_HANDLE); - /* Let the BOP repeat if needed */ - if (getCF()) break; + // FIXME: For 0x07, do not check Ctrl-C/Break. + // For 0x08, do check those control sequences and if needed, + // call INT 0x23. + + // /* Let the BOP repeat if needed */ + // if (getCF()) break; setAL(Character); break; @@ -1667,7 +1472,7 @@ VOID WINAPI DosInt21h(LPWORD Stack) while (*String != '$') { - DosPrintCharacter(*String); + DosPrintCharacter(DOS_OUTPUT_HANDLE, *String); String++; } @@ -1683,26 +1488,27 @@ VOID WINAPI DosInt21h(LPWORD Stack) /* Read Buffered Input */ case 0x0A: { + WORD Count = 0; InputBuffer = (PDOS_INPUT_BUFFER)SEG_OFF_TO_PTR(getDS(), getDX()); - while (Stack[STACK_COUNTER] < InputBuffer->MaxLength) - { - /* Try to read a character */ - Character = DosReadCharacter(); + DPRINT1("Read Buffered Input\n"); - /* If it's not ready yet, let the BOP repeat */ - if (getCF()) break; + while (Count < InputBuffer->MaxLength) + { + /* Try to read a character (wait) */ + Character = DosReadCharacter(DOS_INPUT_HANDLE); /* Echo the character and append it to the buffer */ - DosPrintCharacter(Character); - InputBuffer->Buffer[Stack[STACK_COUNTER]] = Character; + DosPrintCharacter(DOS_OUTPUT_HANDLE, Character); + InputBuffer->Buffer[Count] = Character; if (Character == '\r') break; - Stack[STACK_COUNTER]++; + Count++; } /* Update the length */ - InputBuffer->Length = Stack[STACK_COUNTER]; + InputBuffer->Length = Count; + break; } @@ -1719,7 +1525,7 @@ VOID WINAPI DosInt21h(LPWORD Stack) BYTE InputFunction = getAL(); /* Flush STDIN buffer */ - DosFlushFileBuffers(DOS_INPUT_HANDLE); // Maybe just create a DosFlushInputBuffer... + DosFlushFileBuffers(DOS_INPUT_HANDLE); /* * If the input function number contained in AL is valid, i.e. @@ -2163,47 +1969,11 @@ VOID WINAPI DosInt21h(LPWORD Stack) /* Read from File or Device */ case 0x3F: { - WORD Handle = getBX(); - LPBYTE Buffer = (LPBYTE)SEG_OFF_TO_PTR(getDS(), getDX()); - WORD Count = getCX(); WORD BytesRead = 0; - WORD ErrorCode = ERROR_SUCCESS; - CHAR Character; - - if (IsConsoleHandle(DosGetRealHandle(Handle))) - { - while (Stack[STACK_COUNTER] < Count) - { - /* Read a character from the BIOS */ - Character = LOBYTE(BiosGetCharacter()); - - /* Stop if the BOP needs to be repeated */ - if (getCF()) break; - - // FIXME: Security checks! - DosPrintCharacter(Character); - Buffer[Stack[STACK_COUNTER]++] = Character; - - if (Character == '\r') - { - /* Stop on first carriage return */ - DosPrintCharacter('\n'); - break; - } - } - - if (Character != '\r') - { - if (Stack[STACK_COUNTER] < Count) ErrorCode = ERROR_NOT_READY; - else BytesRead = Count; - } - else BytesRead = Stack[STACK_COUNTER]; - } - else - { - /* Use the file reading function */ - ErrorCode = DosReadFile(Handle, Buffer, Count, &BytesRead); - } + WORD ErrorCode = DosReadFile(getBX(), + SEG_OFF_TO_PTR(getDS(), getDX()), + getCX(), + &BytesRead); if (ErrorCode == ERROR_SUCCESS) { @@ -2215,6 +1985,7 @@ VOID WINAPI DosInt21h(LPWORD Stack) Stack[STACK_FLAGS] |= EMULATOR_FLAG_CF; setAX(ErrorCode); } + break; } @@ -2358,7 +2129,7 @@ VOID WINAPI DosInt21h(LPWORD Stack) WORD NewHandle; HANDLE Handle = DosGetRealHandle(getBX()); - if (Handle != INVALID_HANDLE_VALUE) + if (Handle == INVALID_HANDLE_VALUE) { /* The handle is invalid */ Stack[STACK_FLAGS] |= EMULATOR_FLAG_CF; @@ -2491,6 +2262,7 @@ VOID WINAPI DosInt21h(LPWORD Stack) break; } +#ifndef STANDALONE /* Execute */ case 0x4B: { @@ -2511,6 +2283,7 @@ VOID WINAPI DosInt21h(LPWORD Stack) break; } +#endif /* Terminate With Return Code */ case 0x4C: @@ -2540,8 +2313,11 @@ VOID WINAPI DosInt21h(LPWORD Stack) getCX()); setAX(Result); - if (Result == ERROR_SUCCESS) Stack[STACK_FLAGS] &= ~EMULATOR_FLAG_CF; - else Stack[STACK_FLAGS] |= EMULATOR_FLAG_CF; + + if (Result == ERROR_SUCCESS) + Stack[STACK_FLAGS] &= ~EMULATOR_FLAG_CF; + else + Stack[STACK_FLAGS] |= EMULATOR_FLAG_CF; break; } @@ -2552,8 +2328,11 @@ VOID WINAPI DosInt21h(LPWORD Stack) WORD Result = (WORD)demFileFindNext(FAR_POINTER(DiskTransferArea)); setAX(Result); - if (Result == ERROR_SUCCESS) Stack[STACK_FLAGS] &= ~EMULATOR_FLAG_CF; - else Stack[STACK_FLAGS] |= EMULATOR_FLAG_CF; + + if (Result == ERROR_SUCCESS) + Stack[STACK_FLAGS] &= ~EMULATOR_FLAG_CF; + else + Stack[STACK_FLAGS] |= EMULATOR_FLAG_CF; break; } @@ -2581,6 +2360,23 @@ VOID WINAPI DosInt21h(LPWORD Stack) break; } + /* Internal - Get "List of lists" (SYSVARS) */ + case 0x52: + { + /* + * On return, ES points at the DOS data segment (see also INT 2F/AX=1203h). + * See Ralf Brown: http://www.ctyme.com/intr/rb-2983.htm + * for more information. + */ + + /* Return the DOS "list of lists" in ES:BX */ + setES(0x0000); + setBX(0x0000); + + DisplayMessage(L"Required for AARD code, do you remember? :P"); + break; + } + /* Get/Set Memory Management Options */ case 0x58: { @@ -2666,32 +2462,6 @@ VOID WINAPI DosFastConOut(LPWORD Stack) * for more information. */ -#if 0 - if (Stack[STACK_COUNTER] == 0) - { - Stack[STACK_COUNTER]++; - - /* Save AX and BX */ - Stack[STACK_VAR_A] = getAX(); - Stack[STACK_VAR_B] = getBX(); - - /* Rewind the BOP manually, we can't use CF because the interrupt could modify it */ - EmulatorExecute(getCS(), getIP() - 4); - - /* Call INT 0x10, AH = 0x0E */ - setAH(0x0E); - setBL(DOS_CHAR_ATTRIBUTE); - setBH(Bda->VideoPage); - - EmulatorInterrupt(0x10); - } - else - { - /* Restore AX and BX */ - setAX(Stack[STACK_VAR_A]); - setBX(Stack[STACK_VAR_B]); - } -#else /* Save AX and BX */ USHORT AX = getAX(); USHORT BX = getBX(); @@ -2707,12 +2477,11 @@ VOID WINAPI DosFastConOut(LPWORD Stack) /* Restore AX and BX */ setBX(BX); setAX(AX); -#endif } VOID WINAPI DosInt2Fh(LPWORD Stack) { - DPRINT1("DOS System Function INT 0x2F, AH = %xh, AL = %xh NOT IMPLEMENTED!\n", + DPRINT1("DOS Internal System Function INT 0x2F, AH = %xh, AL = %xh NOT IMPLEMENTED!\n", getAH(), getAL()); Stack[STACK_FLAGS] |= EMULATOR_FLAG_CF; } @@ -2778,17 +2547,19 @@ BOOLEAN DosKRNLInitialize(VOID) /* Initialize the SFT */ for (i = 0; i < DOS_SFT_SIZE; i++) { - DosSystemFileTable[i] = INVALID_HANDLE_VALUE; - DosSftRefCount[i] = 0; + DosSystemFileTable[i].Handle = INVALID_HANDLE_VALUE; + DosSystemFileTable[i].RefCount = 0; } /* Get handles to standard I/O devices */ - DosSystemFileTable[0] = GetStdHandle(STD_INPUT_HANDLE); - DosSystemFileTable[1] = GetStdHandle(STD_OUTPUT_HANDLE); - DosSystemFileTable[2] = GetStdHandle(STD_ERROR_HANDLE); + DosSystemFileTable[0].Handle = GetStdHandle(STD_INPUT_HANDLE); + DosSystemFileTable[1].Handle = GetStdHandle(STD_OUTPUT_HANDLE); + DosSystemFileTable[2].Handle = GetStdHandle(STD_ERROR_HANDLE); /* Initialize the reference counts */ - DosSftRefCount[0] = DosSftRefCount[1] = DosSftRefCount[2] = 1; + DosSystemFileTable[0].RefCount = + DosSystemFileTable[1].RefCount = + DosSystemFileTable[2].RefCount = 1; #endif diff --git a/reactos/subsystems/ntvdm/dos/dos32krnl/dos.h b/reactos/subsystems/ntvdm/dos/dos32krnl/dos.h index 18e0b14cd07..f3e9140fec3 100644 --- a/reactos/subsystems/ntvdm/dos/dos32krnl/dos.h +++ b/reactos/subsystems/ntvdm/dos/dos32krnl/dos.h @@ -30,10 +30,12 @@ #define USER_MEMORY_SIZE 0x8FFE #define SYSTEM_PSP 0x08 #define SYSTEM_ENV_BLOCK 0x800 -#define INVALID_DOS_HANDLE 0xFFFF -#define DOS_INPUT_HANDLE 0 -#define DOS_OUTPUT_HANDLE 1 -#define DOS_ERROR_HANDLE 2 + +#define INVALID_DOS_HANDLE 0xFFFF +#define DOS_INPUT_HANDLE 0 +#define DOS_OUTPUT_HANDLE 1 +#define DOS_ERROR_HANDLE 2 + #define DOS_SFT_SIZE 255 #define SEGMENT_TO_MCB(seg) ((PDOS_MCB)((ULONG_PTR)BaseAddress + TO_LINEAR((seg), 0))) #define SEGMENT_TO_PSP(seg) ((PDOS_PSP)((ULONG_PTR)BaseAddress + TO_LINEAR((seg), 0))) @@ -172,9 +174,9 @@ do { \ * DOS BIOS Functions * See bios.c */ -CHAR DosReadCharacter(VOID); +CHAR DosReadCharacter(WORD FileHandle); BOOLEAN DosCheckInput(VOID); -VOID DosPrintCharacter(CHAR Character); +VOID DosPrintCharacter(WORD FileHandle, CHAR Character); BOOLEAN DosBIOSInitialize(VOID); @@ -184,9 +186,15 @@ BOOLEAN DosBIOSInitialize(VOID); * See dos.c */ BOOL IsConsoleHandle(HANDLE hHandle); +WORD DosOpenHandle(HANDLE Handle); HANDLE DosGetRealHandle(WORD DosHandle); + +WORD DosCreateFile(LPWORD Handle, LPCSTR FilePath, WORD Attributes); +WORD DosOpenFile(LPWORD Handle, LPCSTR FilePath, BYTE AccessMode); WORD DosReadFile(WORD FileHandle, LPVOID Buffer, WORD Count, LPWORD BytesRead); WORD DosWriteFile(WORD FileHandle, LPVOID Buffer, WORD Count, LPWORD BytesWritten); +WORD DosSeekFile(WORD FileHandle, LONG Offset, BYTE Origin, LPDWORD NewOffset); +BOOL DosFlushFileBuffers(WORD FileHandle); VOID DosInitializePsp(WORD PspSegment, LPCSTR CommandLine, WORD ProgramSize, WORD Environment); DWORD DosLoadExecutable( @@ -202,6 +210,9 @@ WORD DosCreateProcess( LPCSTR ProgramName, PDOS_EXEC_PARAM_BLOCK Parameters ); +DWORD DosStartProcess(IN LPCSTR ExecutablePath, + IN LPCSTR CommandLine, + IN PVOID Environment); VOID DosTerminateProcess(WORD Psp, BYTE ReturnCode); BOOLEAN DosHandleIoctl(BYTE ControlCode, WORD FileHandle); diff --git a/reactos/subsystems/ntvdm/dos/dos32krnl/dosfiles.c b/reactos/subsystems/ntvdm/dos/dos32krnl/dosfiles.c new file mode 100644 index 00000000000..03a5df83847 --- /dev/null +++ b/reactos/subsystems/ntvdm/dos/dos32krnl/dosfiles.c @@ -0,0 +1,331 @@ +/* + * COPYRIGHT: GPL - See COPYING in the top level directory + * PROJECT: ReactOS Virtual DOS Machine + * FILE: dos/dos32krnl/dosfiles.c + * PURPOSE: DOS Files + * PROGRAMMERS: Aleksandar Andrejevic + */ + +/* INCLUDES *******************************************************************/ + +#define NDEBUG + +#include "emulator.h" +// #include "callback.h" + +#include "dos.h" +#include "dos/dem.h" + +#include "bios/bios.h" + +/* PRIVATE VARIABLES **********************************************************/ + +/* PUBLIC FUNCTIONS ***********************************************************/ + +WORD DosCreateFile(LPWORD Handle, LPCSTR FilePath, WORD Attributes) +{ + HANDLE FileHandle; + WORD DosHandle; + + DPRINT("DosCreateFile: FilePath \"%s\", Attributes 0x%04X\n", + FilePath, + Attributes); + + /* Create the file */ + FileHandle = CreateFileA(FilePath, + GENERIC_READ | GENERIC_WRITE, + FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, + NULL, + CREATE_ALWAYS, + Attributes, + NULL); + + if (FileHandle == INVALID_HANDLE_VALUE) + { + /* Return the error code */ + return (WORD)GetLastError(); + } + + /* Open the DOS handle */ + DosHandle = DosOpenHandle(FileHandle); + + if (DosHandle == INVALID_DOS_HANDLE) + { + /* Close the handle */ + CloseHandle(FileHandle); + + /* Return the error code */ + return ERROR_TOO_MANY_OPEN_FILES; + } + + /* It was successful */ + *Handle = DosHandle; + return ERROR_SUCCESS; +} + +WORD DosOpenFile(LPWORD Handle, LPCSTR FilePath, BYTE AccessMode) +{ + HANDLE FileHandle; + ACCESS_MASK Access = 0; + WORD DosHandle; + + DPRINT("DosOpenFile: FilePath \"%s\", AccessMode 0x%04X\n", + FilePath, + AccessMode); + + /* Parse the access mode */ + switch (AccessMode & 3) + { + case 0: + { + /* Read-only */ + Access = GENERIC_READ; + break; + } + + case 1: + { + /* Write only */ + Access = GENERIC_WRITE; + break; + } + + case 2: + { + /* Read and write */ + Access = GENERIC_READ | GENERIC_WRITE; + break; + } + + default: + { + /* Invalid */ + return ERROR_INVALID_PARAMETER; + } + } + + /* Open the file */ + FileHandle = CreateFileA(FilePath, + Access, + FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, + NULL, + OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL, + NULL); + + if (FileHandle == INVALID_HANDLE_VALUE) + { + /* Return the error code */ + return (WORD)GetLastError(); + } + + /* Open the DOS handle */ + DosHandle = DosOpenHandle(FileHandle); + + if (DosHandle == INVALID_DOS_HANDLE) + { + /* Close the handle */ + CloseHandle(FileHandle); + + /* Return the error code */ + return ERROR_TOO_MANY_OPEN_FILES; + } + + /* It was successful */ + *Handle = DosHandle; + return ERROR_SUCCESS; +} + +WORD DosReadFile(WORD FileHandle, LPVOID Buffer, WORD Count, LPWORD BytesRead) +{ + WORD Result = ERROR_SUCCESS; + DWORD BytesRead32 = 0; + HANDLE Handle = DosGetRealHandle(FileHandle); + + DPRINT1("DosReadFile: FileHandle 0x%04X, Count 0x%04X\n", FileHandle, Count); + + /* Make sure the handle is valid */ + if (Handle == INVALID_HANDLE_VALUE) return ERROR_INVALID_HANDLE; + + if (IsConsoleHandle(Handle)) + { + CHAR Character; + + /* + * Use BIOS Get Keystroke function + */ + + /* Save AX */ + USHORT AX = getAX(); + + for (BytesRead32 = 0; BytesRead32 < Count; BytesRead32++) + { + /* Call the BIOS INT 16h, AH=00h "Get Keystroke" */ + setAH(0x00); + Int32Call(&DosContext, BIOS_KBD_INTERRUPT); + + /* Retrieve the character in AL (scan code is in AH) */ + Character = getAL(); + + // FIXME: Sometimes we need echo, some other times not. + // DosPrintCharacter(DOS_OUTPUT_HANDLE, Character); + + ((PCHAR)Buffer)[BytesRead32] = Character; + + /* Stop on first carriage return */ + if (Character == '\r') + { + // DosPrintCharacter(DOS_OUTPUT_HANDLE, '\n'); + break; + } + + // BytesRead32++; + } + + /* Restore AX */ + setAX(AX); + } + else + { + /* Read the file */ + if (!ReadFile(Handle, Buffer, Count /* * sizeof(CHAR) */, &BytesRead32, NULL)) + { + /* Store the error code */ + Result = (WORD)GetLastError(); + } + } + + /* The number of bytes read is always 16-bit */ + *BytesRead = LOWORD(BytesRead32); + + /* Return the error code */ + return Result; +} + +WORD DosWriteFile(WORD FileHandle, LPVOID Buffer, WORD Count, LPWORD BytesWritten) +{ + WORD Result = ERROR_SUCCESS; + DWORD BytesWritten32 = 0; + HANDLE Handle = DosGetRealHandle(FileHandle); + + DPRINT1("DosWriteFile: FileHandle 0x%04X, Count 0x%04X\n", + FileHandle, + Count); + + /* Make sure the handle is valid */ + if (Handle == INVALID_HANDLE_VALUE) return ERROR_INVALID_HANDLE; + + if (IsConsoleHandle(Handle)) + { + /* + * Use BIOS Teletype function + */ + + /* Save AX and BX */ + USHORT AX = getAX(); + USHORT BX = getBX(); + + // FIXME: Use BIOS Write String function INT 10h, AH=13h ?? + + for (BytesWritten32 = 0; BytesWritten32 < Count; BytesWritten32++) + { + /* Set the parameters */ + setAL(((PCHAR)Buffer)[BytesWritten32]); + setBL(DOS_CHAR_ATTRIBUTE); + setBH(Bda->VideoPage); + + /* Call the BIOS INT 10h, AH=0Eh "Teletype Output" */ + setAH(0x0E); + Int32Call(&DosContext, BIOS_VIDEO_INTERRUPT); + + // BytesWritten32++; + } + + /* Restore AX and BX */ + setBX(BX); + setAX(AX); + } + else + { + /* Write the file */ + if (!WriteFile(Handle, Buffer, Count /* * sizeof(CHAR) */, &BytesWritten32, NULL)) + { + /* Store the error code */ + Result = (WORD)GetLastError(); + } + } + + /* The number of bytes written is always 16-bit */ + *BytesWritten = LOWORD(BytesWritten32); + + /* Return the error code */ + return Result; +} + +WORD DosSeekFile(WORD FileHandle, LONG Offset, BYTE Origin, LPDWORD NewOffset) +{ + WORD Result = ERROR_SUCCESS; + DWORD FilePointer; + HANDLE Handle = DosGetRealHandle(FileHandle); + + DPRINT("DosSeekFile: FileHandle 0x%04X, Offset 0x%08X, Origin 0x%02X\n", + FileHandle, + Offset, + Origin); + + /* Make sure the handle is valid */ + if (Handle == INVALID_HANDLE_VALUE) return ERROR_INVALID_HANDLE; + + /* Check if the origin is valid */ + if (Origin != FILE_BEGIN && Origin != FILE_CURRENT && Origin != FILE_END) + { + return ERROR_INVALID_FUNCTION; + } + + /* Move the file pointer */ + if (IsConsoleHandle(Handle)) + { + /* Always succeeds when seeking a console handle */ + FilePointer = 0; + Result = ERROR_SUCCESS; + } + else + { + FilePointer = SetFilePointer(Handle, Offset, NULL, Origin); + } + + /* Check if there's a possibility the operation failed */ + if (FilePointer == INVALID_SET_FILE_POINTER) + { + /* Get the real error code */ + Result = (WORD)GetLastError(); + } + + if (Result != ERROR_SUCCESS) + { + /* The operation did fail */ + return Result; + } + + /* Return the file pointer, if requested */ + if (NewOffset) *NewOffset = FilePointer; + + /* Return success */ + return ERROR_SUCCESS; +} + +// This function is almost exclusively used as a DosFlushInputBuffer +BOOL DosFlushFileBuffers(WORD FileHandle) +{ + HANDLE Handle = DosGetRealHandle(FileHandle); + + /* Make sure the handle is valid */ + if (Handle == INVALID_HANDLE_VALUE) return FALSE; + + /* + * No need to check whether the handle is a console handle since + * FlushFileBuffers() automatically does this check and calls + * FlushConsoleInputBuffer() for us. + */ + return FlushFileBuffers(Handle); +} diff --git a/reactos/subsystems/ntvdm/emulator.c b/reactos/subsystems/ntvdm/emulator.c index cbe3e1eb01c..094d156df7d 100644 --- a/reactos/subsystems/ntvdm/emulator.c +++ b/reactos/subsystems/ntvdm/emulator.c @@ -395,13 +395,22 @@ BOOLEAN EmulatorInitialize(HANDLE ConsoleInput, HANDLE ConsoleOutput) /* Initialize the PS2 port */ PS2Initialize(ConsoleInput); + /**************** ATTACH INPUT WITH CONSOLE *****************/ /* Start the input thread */ InputThread = CreateThread(NULL, 0, &PumpConsoleInput, ConsoleInput, 0, NULL); - // if (InputThread == NULL) return FALSE; + if (InputThread == NULL) + { + DisplayMessage(L"Failed to create the console input thread."); + return FALSE; + } + /************************************************************/ /* Initialize the VGA */ - // if (!VgaInitialize(ConsoleOutput)) return FALSE; - VgaInitialize(ConsoleOutput); + if (!VgaInitialize(ConsoleOutput)) + { + DisplayMessage(L"Failed to initialize VGA support."); + return FALSE; + } /* Initialize the software callback system and register the emulator BOPs */ InitializeCallbacks(); diff --git a/reactos/subsystems/ntvdm/emulator.h b/reactos/subsystems/ntvdm/emulator.h index 20e9a07a98c..1b1337f3726 100644 --- a/reactos/subsystems/ntvdm/emulator.h +++ b/reactos/subsystems/ntvdm/emulator.h @@ -34,13 +34,15 @@ #define EMULATOR_FLAG_VIP (1 << 20) #define EMULATOR_FLAG_ID (1 << 21) -#define STACK_VAR_B 0 -#define STACK_VAR_A 1 -#define STACK_COUNTER 2 -#define STACK_INT_NUM 3 -#define STACK_IP 4 -#define STACK_CS 5 -#define STACK_FLAGS 6 +// +// WARNING WARNING!! +// If you're changing the indices here, you then need to +// also fix the BOP code in callback.c !!!!!!!!!!!!!!!!! +// +#define STACK_INT_NUM 0 +#define STACK_IP 1 +#define STACK_CS 2 +#define STACK_FLAGS 3 /* Basic Memory Management */ diff --git a/reactos/subsystems/ntvdm/hardware/vga.c b/reactos/subsystems/ntvdm/hardware/vga.c index 7c4665dc401..590ff058407 100644 --- a/reactos/subsystems/ntvdm/hardware/vga.c +++ b/reactos/subsystems/ntvdm/hardware/vga.c @@ -421,7 +421,7 @@ static VOID VgaUpdateCursorPosition(VOID) VgaCrtcRegisters[VGA_CRTC_CURSOR_LOC_LOW_REG] = LOBYTE(Offset); VgaCrtcRegisters[VGA_CRTC_CURSOR_LOC_HIGH_REG] = HIBYTE(Offset); - VidBiosSyncCursorPosition(); + // VidBiosSyncCursorPosition(); VgaUpdateTextCursor(); } @@ -538,61 +538,6 @@ static BOOL VgaAttachToConsoleInternal(PCOORD Resolution) return TRUE; } -BOOL VgaAttachToConsole(VOID) -{ - if (TextResolution.X == 0 || TextResolution.Y == 0) - DPRINT1("VgaAttachToConsole -- TextResolution uninitialized\n"); - - if (TextResolution.X == 0) TextResolution.X = 80; - if (TextResolution.Y == 0) TextResolution.Y = 25; - - return VgaAttachToConsoleInternal(&TextResolution); -} - -VOID VgaDetachFromConsole(BOOL ChangingMode) -{ - ULONG dummyLength; - PVOID dummyPtr; - COORD dummySize = {0}; - - __RegisterConsoleVDM(0, - NULL, - NULL, - NULL, - 0, - &dummyLength, - &dummyPtr, - NULL, - 0, - dummySize, - (PCHAR*)&dummyPtr); - - TextFramebuffer = NULL; - - if (!ChangingMode) - { - SMALL_RECT ConRect; - - /* Restore the old screen buffer */ - SetConsoleActiveScreenBuffer(TextConsoleBuffer); - - /* Restore the original console size */ - ConRect.Left = 0; - ConRect.Top = 0; - ConRect.Right = ConRect.Left + OrgConsoleBufferInfo.srWindow.Right - OrgConsoleBufferInfo.srWindow.Left; - ConRect.Bottom = ConRect.Top + OrgConsoleBufferInfo.srWindow.Bottom - OrgConsoleBufferInfo.srWindow.Top ; - /* - * See the following trick explanation in VgaAttachToConsoleInternal. - */ - SetConsoleScreenBufferSize(TextConsoleBuffer, OrgConsoleBufferInfo.dwSize); - SetConsoleWindowInfo(TextConsoleBuffer, TRUE, &ConRect); - SetConsoleScreenBufferSize(TextConsoleBuffer, OrgConsoleBufferInfo.dwSize); - - /* Restore the original cursor shape */ - SetConsoleCursorInfo(TextConsoleBuffer, &OrgConsoleCursorInfo); - } -} - static BOOL IsConsoleHandle(HANDLE hHandle) { DWORD dwMode; @@ -1038,7 +983,10 @@ static BOOL VgaEnterTextMode(PCOORD Resolution) return FALSE; } } - else VgaUpdateCursorPosition(); + else + { + VgaUpdateCursorPosition(); + } /* The active framebuffer is now the text framebuffer */ ConsoleFramebuffer = TextFramebuffer; @@ -1886,6 +1834,71 @@ VOID VgaResetPalette(VOID) PaletteChanged = TRUE; } + + + +BOOL VgaAttachToConsole(VOID) +{ + // + // FIXME: We should go back to the saved screen state + // + if (TextResolution.X == 0 || TextResolution.Y == 0) + DPRINT1("VgaAttachToConsole -- TextResolution uninitialized\n"); + + if (TextResolution.X == 0) TextResolution.X = 80; + if (TextResolution.Y == 0) TextResolution.Y = 25; + + return VgaAttachToConsoleInternal(&TextResolution); +} + +VOID VgaDetachFromConsole(BOOL ChangingMode) +{ + ULONG dummyLength; + PVOID dummyPtr; + COORD dummySize = {0}; + + // + // FIXME: We should save the screen state + // + + __RegisterConsoleVDM(0, + NULL, + NULL, + NULL, + 0, + &dummyLength, + &dummyPtr, + NULL, + 0, + dummySize, + (PCHAR*)&dummyPtr); + + TextFramebuffer = NULL; + + if (!ChangingMode) + { + SMALL_RECT ConRect; + + /* Restore the old screen buffer */ + SetConsoleActiveScreenBuffer(TextConsoleBuffer); + + /* Restore the original console size */ + ConRect.Left = 0; + ConRect.Top = 0; + ConRect.Right = ConRect.Left + OrgConsoleBufferInfo.srWindow.Right - OrgConsoleBufferInfo.srWindow.Left; + ConRect.Bottom = ConRect.Top + OrgConsoleBufferInfo.srWindow.Bottom - OrgConsoleBufferInfo.srWindow.Top ; + /* + * See the following trick explanation in VgaAttachToConsoleInternal. + */ + SetConsoleScreenBufferSize(TextConsoleBuffer, OrgConsoleBufferInfo.dwSize); + SetConsoleWindowInfo(TextConsoleBuffer, TRUE, &ConRect); + SetConsoleScreenBufferSize(TextConsoleBuffer, OrgConsoleBufferInfo.dwSize); + + /* Restore the original cursor shape */ + SetConsoleCursorInfo(TextConsoleBuffer, &OrgConsoleCursorInfo); + } +} + BOOLEAN VgaInitialize(HANDLE TextHandle) { /* Save the default text-mode console output handle */ diff --git a/reactos/subsystems/ntvdm/int32.c b/reactos/subsystems/ntvdm/int32.c index b89eb137e03..2e9631df2e1 100644 --- a/reactos/subsystems/ntvdm/int32.c +++ b/reactos/subsystems/ntvdm/int32.c @@ -58,6 +58,13 @@ VOID WINAPI ControlBop(LPWORD Stack) VOID InitializeInt32(WORD BiosSegment) { + // + // WARNING WARNING!! + // + // If you modify the code stubs here, think also + // about updating them in callback.c too!! + // + LPDWORD IntVecTable = (LPDWORD)BaseAddress; LPBYTE BiosCode = (LPBYTE)SEG_OFF_TO_PTR(BiosSegment, 0); USHORT i; @@ -74,15 +81,6 @@ VOID InitializeInt32(WORD BiosSegment) BiosCode[Offset++] = 0x6A; // push i BiosCode[Offset++] = (UCHAR)i; - /* The counter variable (initialized to 0) */ - BiosCode[Offset++] = 0x6A; // push 0 - BiosCode[Offset++] = 0x00; - - /* Stack variables */ - BiosCode[Offset++] = 0x83; // sub sp, 4 - BiosCode[Offset++] = 0xEC; - BiosCode[Offset++] = 0x04; - BopSeqOffset = COMMON_STUB_OFFSET - (Offset + 3); BiosCode[Offset++] = 0xE9; // jmp near BOP_SEQ @@ -113,9 +111,11 @@ VOID InitializeInt32(WORD BiosSegment) BiosCode[Offset++] = 0xF5; // EXIT: - BiosCode[Offset++] = 0x83; // add sp, 8 + // BiosCode[Offset++] = 0x44; // inc sp + // BiosCode[Offset++] = 0x44; // inc sp + BiosCode[Offset++] = 0x83; // add sp, 2 BiosCode[Offset++] = 0xC4; - BiosCode[Offset++] = 0x08; + BiosCode[Offset++] = 0x02; BiosCode[Offset++] = 0xCF; // iret diff --git a/reactos/subsystems/ntvdm/ntvdm.c b/reactos/subsystems/ntvdm/ntvdm.c index 813a8858f0a..1239defc765 100644 --- a/reactos/subsystems/ntvdm/ntvdm.c +++ b/reactos/subsystems/ntvdm/ntvdm.c @@ -21,12 +21,6 @@ #include "resource.h" -/* - * Activate this line if you want to run NTVDM in standalone mode with: - * ntvdm.exe - */ -// #define STANDALONE - /* VARIABLES ******************************************************************/ static HANDLE ConsoleInput = INVALID_HANDLE_VALUE; @@ -39,7 +33,10 @@ static HMENU hConsoleMenu = NULL; static INT VdmMenuPos = -1; static BOOLEAN ShowPointer = FALSE; +#ifndef STANDALONE ULONG SessionId = 0; +#endif + HANDLE VdmTaskEvent = NULL; /* @@ -124,7 +121,7 @@ AppendMenuItems(HMENU hMenu, static VOID CreateVdmMenu(HANDLE ConOutHandle) { - hConsoleMenu = ConsoleMenuControl(ConsoleOutput, + hConsoleMenu = ConsoleMenuControl(ConOutHandle, ID_SHOWHIDE_MOUSE, ID_VDM_QUIT); if (hConsoleMenu == NULL) return; @@ -176,7 +173,8 @@ static VOID ShowHideMousePointer(HANDLE ConOutHandle, BOOLEAN ShowPtr) /* PUBLIC FUNCTIONS ***********************************************************/ -VOID DisplayMessage(LPCWSTR Format, ...) +VOID +DisplayMessage(LPCWSTR Format, ...) { WCHAR Buffer[256]; va_list Parameters; @@ -188,7 +186,9 @@ VOID DisplayMessage(LPCWSTR Format, ...) va_end(Parameters); } -BOOL WINAPI ConsoleCtrlHandler(DWORD ControlType) +static BOOL +WINAPI +ConsoleCtrlHandler(DWORD ControlType) { switch (ControlType) { @@ -224,12 +224,14 @@ BOOL WINAPI ConsoleCtrlHandler(DWORD ControlType) return TRUE; } -VOID ConsoleInitUI(VOID) +static VOID +ConsoleInitUI(VOID) { CreateVdmMenu(ConsoleOutput); } -VOID ConsoleCleanupUI(VOID) +static VOID +ConsoleCleanupUI(VOID) { /* Display again properly the mouse pointer */ if (ShowPointer) ShowHideMousePointer(ConsoleOutput, ShowPointer); @@ -237,7 +239,97 @@ VOID ConsoleCleanupUI(VOID) DestroyVdmMenu(); } -DWORD WINAPI PumpConsoleInput(LPVOID Parameter) +static BOOL +ConsoleAttach(VOID) +{ + /* Save the original input and output console modes */ + if (!GetConsoleMode(ConsoleInput , &OrgConsoleInputMode ) || + !GetConsoleMode(ConsoleOutput, &OrgConsoleOutputMode)) + { + CloseHandle(ConsoleOutput); + CloseHandle(ConsoleInput); + wprintf(L"FATAL: Cannot save console in/out modes\n"); + // return FALSE; + } + + /* Initialize the UI */ + ConsoleInitUI(); + + return TRUE; +} + +static VOID +ConsoleDetach(VOID) +{ + /* Restore the original input and output console modes */ + SetConsoleMode(ConsoleOutput, OrgConsoleOutputMode); + SetConsoleMode(ConsoleInput , OrgConsoleInputMode ); + + /* Cleanup the UI */ + ConsoleCleanupUI(); +} + +static BOOL +ConsoleInit(VOID) +{ + /* Set the handler routine */ + SetConsoleCtrlHandler(ConsoleCtrlHandler, TRUE); + + /* Enable the CTRL_LAST_CLOSE_EVENT */ + SetLastConsoleEventActive(); + + /* + * NOTE: The CONIN$ and CONOUT$ "virtual" files + * always point to non-redirected console handles. + */ + + /* Get the input handle to the real console, and check for success */ + ConsoleInput = CreateFileW(L"CONIN$", + GENERIC_READ | GENERIC_WRITE, + FILE_SHARE_READ | FILE_SHARE_WRITE, + NULL, + OPEN_EXISTING, + 0, + NULL); + if (ConsoleInput == INVALID_HANDLE_VALUE) + { + wprintf(L"FATAL: Cannot retrieve a handle to the console input\n"); + return FALSE; + } + + /* Get the output handle to the real console, and check for success */ + ConsoleOutput = CreateFileW(L"CONOUT$", + GENERIC_READ | GENERIC_WRITE, + FILE_SHARE_READ | FILE_SHARE_WRITE, + NULL, + OPEN_EXISTING, + 0, + NULL); + if (ConsoleOutput == INVALID_HANDLE_VALUE) + { + CloseHandle(ConsoleInput); + wprintf(L"FATAL: Cannot retrieve a handle to the console output\n"); + return FALSE; + } + + /* Effectively attach to the console */ + return ConsoleAttach(); +} + +static VOID +ConsoleCleanup(VOID) +{ + /* Detach from the console */ + ConsoleDetach(); + + /* Close the console handles */ + if (ConsoleOutput != INVALID_HANDLE_VALUE) CloseHandle(ConsoleOutput); + if (ConsoleInput != INVALID_HANDLE_VALUE) CloseHandle(ConsoleInput); +} + +DWORD +WINAPI +PumpConsoleInput(LPVOID Parameter) { HANDLE ConsoleInput = (HANDLE)Parameter; INPUT_RECORD InputRecord; @@ -296,74 +388,10 @@ DWORD WINAPI PumpConsoleInput(LPVOID Parameter) return 0; } -BOOL ConsoleInit(VOID) -{ - /* Set the handler routine */ - SetConsoleCtrlHandler(ConsoleCtrlHandler, TRUE); - - /* Enable the CTRL_LAST_CLOSE_EVENT */ - SetLastConsoleEventActive(); - - /* Get the input handle to the real console, and check for success */ - ConsoleInput = CreateFileW(L"CONIN$", - GENERIC_READ | GENERIC_WRITE, - FILE_SHARE_READ | FILE_SHARE_WRITE, - NULL, - OPEN_EXISTING, - 0, - NULL); - if (ConsoleInput == INVALID_HANDLE_VALUE) - { - wprintf(L"FATAL: Cannot retrieve a handle to the console input\n"); - return FALSE; - } - - /* Get the output handle to the real console, and check for success */ - ConsoleOutput = CreateFileW(L"CONOUT$", - GENERIC_READ | GENERIC_WRITE, - FILE_SHARE_READ | FILE_SHARE_WRITE, - NULL, - OPEN_EXISTING, - 0, - NULL); - if (ConsoleOutput == INVALID_HANDLE_VALUE) - { - CloseHandle(ConsoleInput); - wprintf(L"FATAL: Cannot retrieve a handle to the console output\n"); - return FALSE; - } - - /* Save the original input and output console modes */ - if (!GetConsoleMode(ConsoleInput , &OrgConsoleInputMode ) || - !GetConsoleMode(ConsoleOutput, &OrgConsoleOutputMode)) - { - CloseHandle(ConsoleOutput); - CloseHandle(ConsoleInput); - wprintf(L"FATAL: Cannot save console in/out modes\n"); - return FALSE; - } - - /* Initialize the UI */ - ConsoleInitUI(); - - return TRUE; -} - -VOID ConsoleCleanup(VOID) -{ - /* Restore the original input and output console modes */ - SetConsoleMode(ConsoleOutput, OrgConsoleOutputMode); - SetConsoleMode(ConsoleInput , OrgConsoleInputMode ); - - /* Cleanup the UI */ - ConsoleCleanupUI(); - - /* Close the console handles */ - if (ConsoleOutput != INVALID_HANDLE_VALUE) CloseHandle(ConsoleOutput); - if (ConsoleInput != INVALID_HANDLE_VALUE) CloseHandle(ConsoleInput); -} - -DWORD WINAPI CommandThreadProc(LPVOID Parameter) +#ifndef STANDALONE +static DWORD +WINAPI +CommandThreadProc(LPVOID Parameter) { BOOLEAN First = TRUE; DWORD Result; @@ -404,39 +432,25 @@ DWORD WINAPI CommandThreadProc(LPVOID Parameter) if (!GetNextVDMCommand(&CommandInfo)) break; /* Start the process from the command line */ - DPRINT1("Starting '%s'...\n", AppName); - - Result = DosLoadExecutable(DOS_LOAD_AND_EXECUTE, AppName, CmdLine, Env, NULL, NULL); + DPRINT1("Starting '%s' ('%s')...\n", AppName, CmdLine); + Result = DosStartProcess(AppName, CmdLine, Env); if (Result != ERROR_SUCCESS) { DisplayMessage(L"Could not start '%S'. Error: %u", AppName, Result); - break; + // break; + continue; } - /* Attach to the console */ - if (!First) VgaAttachToConsole(); - - /* Perform a screen refresh */ - VgaRefreshDisplay(); - - /* Start simulation */ - SetEvent(VdmTaskEvent); - EmulatorSimulate(); - - /* Perform another screen refresh */ - VgaRefreshDisplay(); - - /* Detach from the console */ - VgaDetachFromConsole(FALSE); - First = FALSE; } while (AcceptCommands); return 0; } +#endif -INT wmain(INT argc, WCHAR *argv[]) +INT +wmain(INT argc, WCHAR *argv[]) { #ifdef STANDALONE @@ -459,6 +473,7 @@ INT wmain(INT argc, WCHAR *argv[]) } #else + INT i; WCHAR *endptr; @@ -530,27 +545,16 @@ INT wmain(INT argc, WCHAR *argv[]) #else /* Start the process from the command line */ - DPRINT1("Starting '%s'...\n", ApplicationName); - - Result = DosLoadExecutable(DOS_LOAD_AND_EXECUTE, - ApplicationName, - CommandLine, - GetEnvironmentStrings(), - NULL, - NULL); + DPRINT1("Starting '%s' ('%s')...\n", ApplicationName, CommandLine); + Result = DosStartProcess(ApplicationName, + CommandLine, + GetEnvironmentStrings()); if (Result != ERROR_SUCCESS) { DisplayMessage(L"Could not start '%S'. Error: %u", ApplicationName, Result); goto Cleanup; } - /* Start simulation */ - SetEvent(VdmTaskEvent); - EmulatorSimulate(); - - /* Perform another screen refresh */ - VgaRefreshDisplay(); - #endif Cleanup: diff --git a/reactos/subsystems/ntvdm/ntvdm.h b/reactos/subsystems/ntvdm/ntvdm.h index 3555ce41d6b..d6a2569729e 100644 --- a/reactos/subsystems/ntvdm/ntvdm.h +++ b/reactos/subsystems/ntvdm/ntvdm.h @@ -28,13 +28,22 @@ #include +DWORD WINAPI SetLastConsoleEventActive(VOID); + #include -DWORD WINAPI SetLastConsoleEventActive(VOID); +/* + * Activate this line if you want to run NTVDM in standalone mode with: + * ntvdm.exe + */ +#define STANDALONE /* FUNCTIONS ******************************************************************/ +#ifndef STANDALONE extern ULONG SessionId; +#endif + extern HANDLE VdmTaskEvent; VOID DisplayMessage(LPCWSTR Format, ...); From ec9727816d95740b9fdf2a52e74cb0e75ee27855 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Sun, 11 May 2014 19:26:17 +0000 Subject: [PATCH 51/92] Forgot to redisable STANDALONE mode. svn path=/trunk/; revision=63239 --- reactos/subsystems/ntvdm/ntvdm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reactos/subsystems/ntvdm/ntvdm.h b/reactos/subsystems/ntvdm/ntvdm.h index d6a2569729e..4686c05e77d 100644 --- a/reactos/subsystems/ntvdm/ntvdm.h +++ b/reactos/subsystems/ntvdm/ntvdm.h @@ -36,7 +36,7 @@ DWORD WINAPI SetLastConsoleEventActive(VOID); * Activate this line if you want to run NTVDM in standalone mode with: * ntvdm.exe */ -#define STANDALONE +// #define STANDALONE /* FUNCTIONS ******************************************************************/ From a3675e98fcfac1006067ac2d90323e9b9f557f1f Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Sun, 11 May 2014 19:44:50 +0000 Subject: [PATCH 52/92] [setupapi] -sync pSetupInstallCatalog to wine -only return RequiredSize in SetupCopyOEMInfA on failure svn path=/trunk/; revision=63240 --- reactos/dll/win32/setupapi/CMakeLists.txt | 2 +- reactos/dll/win32/setupapi/install.c | 8 ++- reactos/dll/win32/setupapi/misc.c | 58 ++++++++++++++----- reactos/dll/win32/setupapi/setupapi.spec | 2 +- reactos/dll/win32/setupapi/setupapi_private.h | 2 + 5 files changed, 55 insertions(+), 17 deletions(-) diff --git a/reactos/dll/win32/setupapi/CMakeLists.txt b/reactos/dll/win32/setupapi/CMakeLists.txt index 3d1af9fe4ca..5f0c7365c4a 100644 --- a/reactos/dll/win32/setupapi/CMakeLists.txt +++ b/reactos/dll/win32/setupapi/CMakeLists.txt @@ -40,7 +40,7 @@ add_library(setupapi SHARED set_module_type(setupapi win32dll UNICODE) target_link_libraries(setupapi uuid wine ${PSEH_LIB}) -add_delay_importlibs(setupapi shell32) +add_delay_importlibs(setupapi shell32 wintrust) add_importlibs(setupapi msvcrt diff --git a/reactos/dll/win32/setupapi/install.c b/reactos/dll/win32/setupapi/install.c index 533820b8064..6bc03bee219 100644 --- a/reactos/dll/win32/setupapi/install.c +++ b/reactos/dll/win32/setupapi/install.c @@ -2173,6 +2173,7 @@ BOOL WINAPI SetupCopyOEMInfA( PWSTR DestinationInfFileNameW = NULL; PWSTR DestinationInfFileNameComponentW = NULL; BOOL ret = FALSE; + DWORD size; TRACE("%s %s 0x%lx 0x%lx %p 0%lu %p %p\n", SourceInfFileName, OEMSourceMediaLocation, OEMSourceMediaType, @@ -2204,11 +2205,14 @@ BOOL WINAPI SetupCopyOEMInfA( CopyStyle, DestinationInfFileNameW, DestinationInfFileNameSize, - RequiredSize, + &size, DestinationInfFileNameComponent ? &DestinationInfFileNameComponentW : NULL); if (!ret) + { + if (RequiredSize) *RequiredSize = size; goto cleanup; - + } + if (DestinationInfFileNameSize != 0) { if (WideCharToMultiByte(CP_ACP, 0, DestinationInfFileNameW, -1, diff --git a/reactos/dll/win32/setupapi/misc.c b/reactos/dll/win32/setupapi/misc.c index cca5891450e..138dcae87d5 100644 --- a/reactos/dll/win32/setupapi/misc.c +++ b/reactos/dll/win32/setupapi/misc.c @@ -1217,6 +1217,34 @@ DWORD WINAPI InstallCatalog( LPCSTR catalog, LPCSTR basename, LPSTR fullname ) return 0; } +/*********************************************************************** + * pSetupInstallCatalog (SETUPAPI.@) + */ +DWORD WINAPI pSetupInstallCatalog( LPCWSTR catalog, LPCWSTR basename, LPWSTR fullname ) +{ + HCATADMIN admin; + HCATINFO cat; + + TRACE ("%s, %s, %p\n", debugstr_w(catalog), debugstr_w(basename), fullname); + + if (!CryptCATAdminAcquireContext(&admin,NULL,0)) + return GetLastError(); + + if (!(cat = CryptCATAdminAddCatalog( admin, (PWSTR)catalog, (PWSTR)basename, 0 ))) + { + DWORD rc = GetLastError(); + CryptCATAdminReleaseContext(admin, 0); + return rc; + } + CryptCATAdminReleaseCatalogContext(admin, cat, 0); + CryptCATAdminReleaseContext(admin,0); + + if (fullname) + FIXME("not returning full installed catalog path\n"); + + return NO_ERROR; +} + static UINT detect_compression_type( LPCWSTR file ) { DWORD size; @@ -1536,26 +1564,29 @@ static DWORD decompress_file_lz( LPCWSTR source, LPCWSTR target ) return ret; } +struct callback_context +{ + BOOL has_extracted; + LPCWSTR target; +}; + static UINT CALLBACK decompress_or_copy_callback( PVOID context, UINT notification, UINT_PTR param1, UINT_PTR param2 ) { + struct callback_context *context_info = context; FILE_IN_CABINET_INFO_W *info = (FILE_IN_CABINET_INFO_W *)param1; switch (notification) { case SPFILENOTIFY_FILEINCABINET: { - LPCWSTR filename, targetname = context; - WCHAR *p; + if (context_info->has_extracted) + return FILEOP_ABORT; - if ((p = strrchrW( targetname, '\\' ))) filename = p + 1; - else filename = targetname; - - if (!lstrcmpiW( filename, info->NameInCabinet )) - { - strcpyW( info->FullTargetName, targetname ); - return FILEOP_DOIT; - } - return FILEOP_SKIP; + TRACE("Requesting extraction of cabinet file %s\n", + wine_dbgstr_w(info->NameInCabinet)); + strcpyW( info->FullTargetName, context_info->target ); + context_info->has_extracted = TRUE; + return FILEOP_DOIT; } default: return NO_ERROR; } @@ -1563,9 +1594,10 @@ static UINT CALLBACK decompress_or_copy_callback( PVOID context, UINT notificati static DWORD decompress_file_cab( LPCWSTR source, LPCWSTR target ) { + struct callback_context context = {0, target}; BOOL ret; - ret = SetupIterateCabinetW( source, 0, decompress_or_copy_callback, (PVOID)target ); + ret = SetupIterateCabinetW( source, 0, decompress_or_copy_callback, &context ); if (ret) return ERROR_SUCCESS; else return GetLastError(); @@ -1578,7 +1610,7 @@ static DWORD decompress_file_cab( LPCWSTR source, LPCWSTR target ) */ DWORD WINAPI SetupDecompressOrCopyFileA( PCSTR source, PCSTR target, PUINT type ) { - DWORD ret = FALSE; + DWORD ret = 0; WCHAR *sourceW = NULL, *targetW = NULL; if (source && !(sourceW = pSetupMultiByteToUnicode( source, CP_ACP ))) return FALSE; diff --git a/reactos/dll/win32/setupapi/setupapi.spec b/reactos/dll/win32/setupapi/setupapi.spec index 81f2125f8ac..2a6ad8d47e0 100644 --- a/reactos/dll/win32/setupapi/setupapi.spec +++ b/reactos/dll/win32/setupapi/setupapi.spec @@ -562,7 +562,7 @@ @ stub pSetupHandleFailedVerification @ stub pSetupInfCacheBuild @ stub pSetupInfIsFromOemLocation -@ stub pSetupInstallCatalog +@ stdcall pSetupInstallCatalog(wstr wstr ptr) @ stub pSetupInstallStopEx @ stdcall pSetupIsGuidNull(ptr) @ stub pSetupIsLocalSystem diff --git a/reactos/dll/win32/setupapi/setupapi_private.h b/reactos/dll/win32/setupapi/setupapi_private.h index 53db948def9..80a818a66bf 100644 --- a/reactos/dll/win32/setupapi/setupapi_private.h +++ b/reactos/dll/win32/setupapi/setupapi_private.h @@ -37,6 +37,8 @@ #include #include #include +#include +#include #include #include #define NTOS_MODE_USER From 5ecc57aff5773bacb2b7001601b3862f5f8746c7 Mon Sep 17 00:00:00 2001 From: Kamil Hornicek Date: Sun, 11 May 2014 19:54:14 +0000 Subject: [PATCH 53/92] [TRANSLATIONS] - czech translation update by Radek Liska (with some minor modifications by me) CORE-8092 #resolve #comment Committed in r63241. Thanks! svn path=/trunk/; revision=63241 --- .../mscutils/devmgmt/lang/cs-CZ.rc | 4 +- reactos/base/applications/rapps/lang/cs-CZ.rc | 22 +- reactos/base/shell/explorer/explorer-cz.rc | 190 +++++++------- reactos/base/shell/explorer/explorer.rc | 12 +- reactos/dll/cpl/access/access.rc | 6 +- reactos/dll/cpl/access/lang/cs-CZ.rc | 86 +++---- reactos/dll/cpl/hdwwiz/hdwwiz.rc | 6 +- reactos/dll/cpl/hdwwiz/lang/cs-CZ.rc | 116 ++++----- reactos/dll/cpl/inetcpl/inetcpl.rc | 3 + reactos/dll/cpl/inetcpl/lang/cs-CZ.rc | 99 ++++++++ reactos/dll/cpl/joy/joy.rc | 6 +- reactos/dll/cpl/joy/lang/cs-CZ.rc | 52 ++-- reactos/dll/cpl/mmsys/lang/cs-CZ.rc | 234 +++++++++--------- reactos/dll/cpl/mmsys/mmsys.rc | 6 +- reactos/dll/cpl/powercfg/lang/cs-CZ.rc | 154 ++++++------ reactos/dll/cpl/powercfg/powercfg.rc | 6 +- reactos/dll/cpl/timedate/lang/cs-CZ.rc | 32 +-- reactos/dll/cpl/timedate/timedate.rc | 6 +- reactos/dll/cpl/usrmgr/lang/cs-CZ.rc | 218 ++++++++++++++++ reactos/dll/cpl/usrmgr/usrmgr.rc | 3 + reactos/dll/win32/shell32/lang/cs-CZ.rc | 4 +- reactos/dll/win32/syssetup/lang/cs-CZ.rc | 6 +- reactos/media/inf/audio.inf | Bin 4448 -> 4564 bytes reactos/media/inf/battery.inf | Bin 4604 -> 4946 bytes reactos/media/inf/bth.inf | Bin 3316 -> 3532 bytes reactos/media/inf/cdrom.inf | Bin 4600 -> 4772 bytes reactos/media/inf/disk.inf | Bin 4310 -> 4756 bytes reactos/media/inf/display.inf | Bin 7686 -> 7698 bytes reactos/media/inf/flpydisk.inf | Bin 1587 -> 3460 bytes reactos/media/inf/hal.inf | Bin 3434 -> 3840 bytes reactos/media/inf/hdc.inf | Bin 241930 -> 242898 bytes reactos/media/inf/input.inf | Bin 6492 -> 6954 bytes reactos/media/inf/keyboard.inf | Bin 9648 -> 9864 bytes reactos/media/inf/legcydrv.inf | Bin 1568 -> 1732 bytes reactos/media/inf/machine.inf | Bin 59530 -> 60048 bytes reactos/media/inf/monitor.inf | Bin 3378 -> 3728 bytes reactos/media/inf/shortcuts.inf | Bin 86750 -> 86750 bytes reactos/media/inf/unknown.inf | Bin 1700 -> 1814 bytes reactos/media/inf/usb.inf | Bin 6062 -> 6154 bytes 39 files changed, 797 insertions(+), 474 deletions(-) create mode 100644 reactos/dll/cpl/inetcpl/lang/cs-CZ.rc create mode 100644 reactos/dll/cpl/usrmgr/lang/cs-CZ.rc diff --git a/reactos/base/applications/mscutils/devmgmt/lang/cs-CZ.rc b/reactos/base/applications/mscutils/devmgmt/lang/cs-CZ.rc index 10464f614da..f56d94120ed 100644 --- a/reactos/base/applications/mscutils/devmgmt/lang/cs-CZ.rc +++ b/reactos/base/applications/mscutils/devmgmt/lang/cs-CZ.rc @@ -1,4 +1,4 @@ -LANGUAGE LANG_CZECH, SUBLANG_DEFAULT +LANGUAGE LANG_CZECH, SUBLANG_DEFAULT IDR_MAINMENU MENU BEGIN @@ -21,7 +21,7 @@ BEGIN MENUITEM "Prostředky podle typu", IDC_RESBYTYPE, GRAYED MENUITEM "Prostředky podle připojení", IDC_RESBYCONN, GRAYED MENUITEM SEPARATOR - MENUITEM "Show hidden devices", IDC_SHOWHIDDEN + MENUITEM "Zobrazit skrytá zařízení", IDC_SHOWHIDDEN END POPUP "Nápověda" BEGIN diff --git a/reactos/base/applications/rapps/lang/cs-CZ.rc b/reactos/base/applications/rapps/lang/cs-CZ.rc index 7202c36141e..3f037363368 100644 --- a/reactos/base/applications/rapps/lang/cs-CZ.rc +++ b/reactos/base/applications/rapps/lang/cs-CZ.rc @@ -1,6 +1,6 @@ /* FILE: applications/rapps/lang/cs-CZ.rc * TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com) - * UPDATED: 2010-12-12 + * UPDATED: 2014-04-20 */ LANGUAGE LANG_CZECH, SUBLANG_DEFAULT @@ -21,9 +21,9 @@ BEGIN MENUITEM SEPARATOR MENUITEM "Odstranit z ®istru", ID_REGREMOVE MENUITEM SEPARATOR - MENUITEM "&Obnovit", ID_REFRESH + MENUITEM "Ob&novit", ID_REFRESH MENUITEM SEPARATOR - MENUITEM "Update Da&tabase", ID_RESETDB + MENUITEM "&Aktualizovat databázi", ID_RESETDB END POPUP "Nápověda" BEGIN @@ -51,9 +51,9 @@ BEGIN MENUITEM SEPARATOR MENUITEM "Odstranit z ®istru", ID_REGREMOVE MENUITEM SEPARATOR - MENUITEM "&Obnovit", ID_REFRESH + MENUITEM "Ob&novit", ID_REFRESH MENUITEM SEPARATOR - MENUITEM "Update Da&tabase", ID_RESETDB + MENUITEM "&Aktualizovat databázi", ID_RESETDB END END @@ -103,7 +103,7 @@ STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME CAPTION "O programu" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "ReactOS Manažer aplikací\nCopyright (C) 2009\nby Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39 + LTEXT "ReactOS Správce aplikací\nCopyright (C) 2009\nDmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39 PUSHBUTTON "Zavřít", IDOK, 133, 46, 50, 14 ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 END @@ -168,7 +168,7 @@ BEGIN IDS_CAT_INTERNET "Internet a sítě" IDS_CAT_LIBS "Knihovny" IDS_CAT_OFFICE "Kancelář" - IDS_CAT_OTHER "Jiné" + IDS_CAT_OTHER "Ostatní" IDS_CAT_SCIENCE "Věda" IDS_CAT_TOOLS "Nástroje" IDS_CAT_VIDEO "Video" @@ -176,20 +176,20 @@ END STRINGTABLE BEGIN - IDS_APPTITLE "ReactOS Manažer aplikací" + IDS_APPTITLE "ReactOS Správce aplikací" IDS_SEARCH_TEXT "Hledat..." IDS_INSTALL "Instalovat" IDS_UNINSTALL "Odinstalovat" IDS_MODIFY "Změnit" IDS_APPS_COUNT "Počet aplikací: %d" - IDS_WELCOME_TITLE "Vítejte v ReactOS Manažeru aplikací!\n\n" + IDS_WELCOME_TITLE "Vítejte v ReactOS Správci aplikací!\n\n" IDS_WELCOME_TEXT "Na levé straně zvolte kategorii, pak vpravo zvolte aplikaci, která bude nainstalována nebo odinstalována.\nWebová stránka ReactOS: " IDS_WELCOME_URL "http://www.reactos.org" IDS_INSTALLED "Nainstalováno" - IDS_AVAILABLEFORINST "Dostupné k instalaci" + IDS_AVAILABLEFORINST "Lze instalovat" IDS_UPDATES "Aktualizace" IDS_APPLICATIONS "Aplikace" - IDS_CHOOSE_FOLDER_TEXT "Zvolte složku, do které se budou ukládat stažené soubory:" + IDS_CHOOSE_FOLDER_TEXT "Zvolte složku, do které se budou ukládat stažené soubory: " IDS_CHOOSE_FOLDER_ERROR "Zvolená složka neexistuje. Vytvořit?" IDS_APP_REG_REMOVE "Určitě odstranit data instalovaného programu z registru?" IDS_INFORMATION "Informace" diff --git a/reactos/base/shell/explorer/explorer-cz.rc b/reactos/base/shell/explorer/explorer-cz.rc index e06138465d6..c2027c3d8ae 100644 --- a/reactos/base/shell/explorer/explorer-cz.rc +++ b/reactos/base/shell/explorer/explorer-cz.rc @@ -8,38 +8,38 @@ BEGIN BEGIN MENUITEM "&Spustit...", ID_EXECUTE MENUITEM SEPARATOR - MENUITEM "&Ukonit", ID_FILE_EXIT + MENUITEM "&Ukončit", ID_FILE_EXIT END - POPUP "&Zobrazen" + POPUP "&Zobrazení" BEGIN - MENUITEM "Panel &nstroj", ID_VIEW_TOOL_BAR + MENUITEM "Panel &nástrojů", ID_VIEW_TOOL_BAR MENUITEM "Panel &extra", ID_VIEW_EXTRA_BAR - MENUITEM "L&ita disk", ID_VIEW_DRIVE_BAR - MENUITEM "&Bon panel", ID_VIEW_SIDE_BAR - MENUITEM "&Stavov dek", ID_VIEW_STATUSBAR + MENUITEM "L&išta disků", ID_VIEW_DRIVE_BAR + MENUITEM "&Boční panel", ID_VIEW_SIDE_BAR + MENUITEM "&Stavový řádek", ID_VIEW_STATUSBAR MENUITEM SEPARATOR MENUITEM "&Aktualizovat\tF5", ID_REFRESH - MENUITEM "&Cel obrazovka\tCtrl+Shift+S", ID_VIEW_FULLSCREEN + MENUITEM "&Celá obrazovka\tCtrl+Shift+S", ID_VIEW_FULLSCREEN MENUITEM "SDI", ID_VIEW_SDI END POPUP "&Okno" BEGIN - MENUITEM "&Nov Okno", ID_WINDOW_NEW - MENUITEM "&Kaskdovat\tShift+F5", ID_WINDOW_CASCADE - MENUITEM "&Uspodat vodorovn", ID_WINDOW_TILE_HORZ - MENUITEM "U&spodat svisle\tShift+F4", ID_WINDOW_TILE_VERT - MENUITEM "Us&podat automaticky", ID_WINDOW_AUTOSORT - MENUITEM "Usp&odat symboly", ID_WINDOW_ARRANGE + MENUITEM "&Nové Okno", ID_WINDOW_NEW + MENUITEM "&Kaskádovat\tShift+F5", ID_WINDOW_CASCADE + MENUITEM "&Uspořádat vodorovně", ID_WINDOW_TILE_HORZ + MENUITEM "U&spořádat svisle\tShift+F4", ID_WINDOW_TILE_VERT + MENUITEM "Us&pořádat automaticky", ID_WINDOW_AUTOSORT + MENUITEM "Usp&ořádat symboly", ID_WINDOW_ARRANGE END - POPUP "&Nstroje" + POPUP "&Nástroje" BEGIN - MENUITEM "&Monosti", ID_TOOLS_OPTIONS + MENUITEM "&Možnosti", ID_TOOLS_OPTIONS END - POPUP "N&povda" + POPUP "Ná&pověda" BEGIN - MENUITEM "&Przkumnk &FAQ", ID_EXPLORER_FAQ - MENUITEM "O P&rzkumnku", ID_ABOUT_EXPLORER - MENUITEM "&O operanm systmu", ID_ABOUT_WINDOWS + MENUITEM "&Průzkumník &FAQ", ID_EXPLORER_FAQ + MENUITEM "O P&růzkumníku", ID_ABOUT_EXPLORER + MENUITEM "&O operačním systému", ID_ABOUT_WINDOWS END END @@ -47,10 +47,10 @@ IDM_DESKTOPBAR MENU BEGIN POPUP "" BEGIN - MENUITEM "&Nastaven", ID_DESKTOPBAR_SETTINGS - MENUITEM "&Sprvce loh", ID_TASKMGR + MENUITEM "&Nastavení", ID_DESKTOPBAR_SETTINGS + MENUITEM "&Správce úloh", ID_TASKMGR MENUITEM SEPARATOR - MENUITEM "&O Przkumnku", ID_ABOUT_EXPLORER + MENUITEM "&O Průzkumníku", ID_ABOUT_EXPLORER END END @@ -58,7 +58,7 @@ IDM_VOLUME MENU BEGIN POPUP "" BEGIN - MENUITEM "&Otevt ovldn hlasitosti", ID_TRAY_VOLUME + MENUITEM "&Otevřít ovládání hlasitosti", ID_TRAY_VOLUME MENUITEM "&Upravit vlastnosti zvuku", ID_VOLUME_PROPERTIES END END @@ -67,12 +67,12 @@ IDM_NOTIFYAREA MENU BEGIN POPUP "" BEGIN - MENUITEM "&Zobrazit skryt ikony", ID_SHOW_HIDDEN_ICONS - MENUITEM "Z&obrazit ikonu tlatka", ID_SHOW_ICON_BUTTON - MENUITEM "&Nastavit upozornn", ID_CONFIG_NOTIFYAREA - MENUITEM "N&astavit datum a as", ID_CONFIG_TIME + MENUITEM "&Zobrazit skryté ikony", ID_SHOW_HIDDEN_ICONS + MENUITEM "Z&obrazit ikonu tlačítka", ID_SHOW_ICON_BUTTON + MENUITEM "&Nastavit upozornění", ID_CONFIG_NOTIFYAREA + MENUITEM "N&astavit datum a čas", ID_CONFIG_TIME MENUITEM SEPARATOR - MENUITEM "&O Przkumnku", ID_ABOUT_EXPLORER + MENUITEM "&O Průzkumníku", ID_ABOUT_EXPLORER END END @@ -82,27 +82,27 @@ BEGIN BEGIN MENUITEM "&Spustit...", ID_EXECUTE MENUITEM SEPARATOR - MENUITEM "&Ukonit", ID_FILE_EXIT + MENUITEM "&Ukončit", ID_FILE_EXIT END - POPUP "&Zobrazen" + POPUP "&Zobrazení" BEGIN - MENUITEM "Panel &nstroj", ID_VIEW_TOOL_BAR - MENUITEM "&Bon panel", ID_VIEW_SIDE_BAR, GRAYED - MENUITEM "&Stavov dek", ID_VIEW_STATUSBAR + MENUITEM "Panel &nástrojů", ID_VIEW_TOOL_BAR + MENUITEM "&Boční panel", ID_VIEW_SIDE_BAR, GRAYED + MENUITEM "&Stavový řádek", ID_VIEW_STATUSBAR MENUITEM SEPARATOR MENUITEM "&Aktualizovat\tF5", ID_REFRESH - MENUITEM "Cel obrazovka\tCtrl+Shift+S", ID_VIEW_FULLSCREEN + MENUITEM "Celá obrazovka\tCtrl+Shift+S", ID_VIEW_FULLSCREEN MENUITEM "&MDI", ID_VIEW_MDI END - POPUP "&Nstroje" + POPUP "&Nástroje" BEGIN - MENUITEM "&Nastaven", ID_TOOLS_OPTIONS + MENUITEM "&Nastavení", ID_TOOLS_OPTIONS END - POPUP "N&povda" + POPUP "Ná&pověda" BEGIN - MENUITEM "Przkumnk &FAQ", ID_EXPLORER_FAQ - MENUITEM "O &Przkumnku", ID_ABOUT_EXPLORER - MENUITEM "O &Operanm systmu", ID_ABOUT_WINDOWS + MENUITEM "Průzkumník &FAQ", ID_EXPLORER_FAQ + MENUITEM "O &Průzkumníku", ID_ABOUT_EXPLORER + MENUITEM "O &Operačním systému", ID_ABOUT_WINDOWS END END @@ -114,18 +114,18 @@ CAPTION "Spustit" FONT 8, "MS Shell Dlg" BEGIN CONTROL "", 101, "Static", SS_SIMPLE | SS_NOPREFIX, 3, 6, 162, 10 - CONTROL "&Pkaz:", -1, "Static", SS_LEFTNOWORDWRAP | WS_GROUP, 3, 18, 60, 10 + CONTROL "&Příkaz:", -1, "Static", SS_LEFTNOWORDWRAP | WS_GROUP, 3, 18, 60, 10 EDITTEXT 201, 3, 29, 134, 12, ES_AUTOHSCROLL CONTROL "Jako &symbol", 214, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 3, 45, 71, 12 DEFPUSHBUTTON "&Spustit", 1, 158, 6, 47, 14 PUSHBUTTON "&Storno", 2, 158, 23, 47, 14 - PUSHBUTTON "N&povda", 254, 158, 43, 47, 14 + PUSHBUTTON "Ná&pověda", 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 "Hledat program v nabdce Start" +CAPTION "Hledat program v nabídce Start" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN LTEXT "&Filtr:", IDC_STATIC, 7, 9, 18, 8 @@ -140,7 +140,7 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Vlastnosti plochy" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Prosm zvolte si zpsob zarovnn ikon:", IDC_STATIC, 7, 7, 166, 8 + LTEXT "Prosím zvolte si způsob zarovnání ikon:", IDC_STATIC, 7, 7, 166, 8 CONTROL "vlevo/n. d.", IDC_ICON_ALIGN_0, "Button", BS_OWNERDRAW | BS_BOTTOM | WS_TABSTOP, 7, 25, 46, 44 CONTROL "vlevo/n. p.", IDC_ICON_ALIGN_1, "Button", BS_OWNERDRAW | BS_BOTTOM | WS_TABSTOP, 57, 25, 46, 44 CONTROL "vpravo/n. l.", IDC_ICON_ALIGN_2, "Button", BS_OWNERDRAW | BS_BOTTOM | WS_TABSTOP, 110, 25, 46, 44 @@ -158,17 +158,17 @@ END IDD_DESKBAR_TASKBAR DIALOGEX 0, 0, 210, 194 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Vlastnosti panelu loh" +CAPTION "Vlastnosti panelu úloh" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "&Zobrazit as", ID_SHOW_CLOCK, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 152, 52, 10 - CONTROL "&Skrt neaktivn ikony", ID_HIDE_INACTIVE_ICONS, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 174, 111, 10 - PUSHBUTTON "&Upozornn...", ID_CONFIG_NOTIFYAREA, 153, 173, 50, 14 + CONTROL "&Zobrazit čas", ID_SHOW_CLOCK, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 152, 52, 10 + CONTROL "&Skrýt neaktivní ikony", ID_HIDE_INACTIVE_ICONS, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 174, 111, 10 + PUSHBUTTON "&Upozornění...", ID_CONFIG_NOTIFYAREA, 153, 173, 50, 14 END IDD_DESKBAR_STARTMENU DIALOGEX 0, 0, 210, 194 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Vlastnosti nabdky Start" +CAPTION "Vlastnosti nabídky Start" FONT 8, "MS Shell Dlg" BEGIN END @@ -176,24 +176,24 @@ 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 "Nastaven ikon v oblasti upozorovn" +CAPTION "Nastavení ikon v oblasti upozorňování" 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 "&Text popisku:", IDC_LABEL1, 7, 44, 40, 8 EDITTEXT IDC_NOTIFY_TOOLTIP, 58, 42, 143, 14, ES_AUTOHSCROLL - LTEXT "&Nzev okna:", IDC_LABEL2, 7, 63, 44, 8 + LTEXT "&Název okna:", IDC_LABEL2, 7, 63, 44, 8 EDITTEXT IDC_NOTIFY_TITLE, 58, 60, 143, 14, ES_AUTOHSCROLL LTEXT "&Cesta:", IDC_LABEL3, 7, 81, 80, 8 EDITTEXT IDC_NOTIFY_MODULE, 58, 78, 143, 14, ES_AUTOHSCROLL - GROUPBOX "&Zobrazen", IDC_LABEL4, 7, 96, 157, 28 + GROUPBOX "&Zobrazení", IDC_LABEL4, 7, 96, 157, 28 CONTROL "z&obrazit", IDC_NOTIFY_SHOW, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 108, 45, 10 - CONTROL "&skrt", IDC_NOTIFY_HIDE, "Button", BS_AUTORADIOBUTTON, 66, 108, 29, 10 + CONTROL "&skrýt", IDC_NOTIFY_HIDE, "Button", BS_AUTORADIOBUTTON, 66, 108, 29, 10 CONTROL "&automaticky", IDC_NOTIFY_AUTOHIDE, "Button", BS_AUTORADIOBUTTON, 104, 108, 55, 10 ICON "", IDC_PICTURE, 173, 101, 21, 20 - LTEXT "&Posledn zmna:", IDC_LABEL6, 7, 132, 60, 8 + LTEXT "&Poslední změna:", IDC_LABEL6, 7, 132, 60, 8 EDITTEXT IDC_LAST_CHANGE, 59, 129, 105, 14, ES_AUTOHSCROLL | ES_READONLY - CONTROL "zob&razit skryt", ID_SHOW_HIDDEN_ICONS, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 158, 57, 10 + CONTROL "zob&razit skryté", ID_SHOW_HIDDEN_ICONS, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 158, 57, 10 DEFPUSHBUTTON "&OK", IDOK, 91, 153, 50, 14, WS_GROUP PUSHBUTTON "&Storno", IDCANCEL, 151, 153, 50, 14 END @@ -201,26 +201,26 @@ 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 "Volba MDI / SDI mdu" +CAPTION "Volba MDI / SDI módu" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - LTEXT "Prosm zvolte si Vmi upednostovan zpsob zobrazen oken Przkumnka:", IDC_STATIC, 7, 7, 160, 8 - CONTROL "&MDI (Mnoho dokumentov interface)", IDC_MDI, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 7, 31, 125, 10 - CONTROL "&SDI (Jedno dokumentov interface)", IDC_SDI, "Button", BS_AUTORADIOBUTTON, 7, 62, 125, 10 + LTEXT "Prosím zvolte si Vámi upřednostňovaný způsob zobrazení oken Průzkumníka:", IDC_STATIC, 7, 7, 160, 8 + CONTROL "&MDI (Mnoho dokumentový interface)", IDC_MDI, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 7, 31, 125, 10 + CONTROL "&SDI (Jedno dokumentový interface)", IDC_SDI, "Button", BS_AUTORADIOBUTTON, 7, 62, 125, 10 CONTROL 170, IDC_STATIC, "Static", SS_BITMAP, 145, 23, 15, 13 CONTROL 171, IDC_STATIC, "Static", SS_BITMAP, 145, 57, 15, 13 - CONTROL "&Otevrat sloky v novm okn", IDC_SEPARATE_SUBFOLDERS, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 90, 135, 10 - LTEXT "Toto nastaven bude pouito jako vchoz pro vechna okna Przkumnka.", IDC_STATIC, 7, 111, 174, 22 + CONTROL "&Otevírat složky v novém okně", IDC_SEPARATE_SUBFOLDERS, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 90, 135, 10 + LTEXT "Toto nastavení bude použito jako výchozí pro všechna okna Průzkumníka.", IDC_STATIC, 7, 111, 174, 22 DEFPUSHBUTTON "&OK", IDOK, 29, 136, 50, 14, WS_GROUP PUSHBUTTON "&Storno", IDCANCEL, 106, 136, 50, 14 END IDD_ABOUT_EXPLORER DIALOGEX 0, 0, 199, 106 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "O ReactOS Przkumnku" +CAPTION "O ReactOS Průzkumníku" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "ReactOS Przkumnk", IDC_ROS_EXPLORER, 91, 13, 104, 11 + LTEXT "ReactOS Průzkumník", IDC_ROS_EXPLORER, 91, 13, 104, 11 LTEXT "V 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 @@ -232,61 +232,61 @@ END STRINGTABLE BEGIN - IDS_TITLE "ReactOS Przkumnk" + IDS_TITLE "ReactOS Průzkumník" IDS_START "Start" - IDS_LOGOFF "Odhlsit se..." + IDS_LOGOFF "Odhlásit se..." IDS_SHUTDOWN "Vypnout..." IDS_RESTART "Restartovat..." IDS_LAUNCH "Spustit..." - IDS_START_HELP "Npovda" + IDS_START_HELP "Nápověda" IDS_SEARCH_FILES "Hledat" IDS_DOCUMENTS "Dokumenty" - IDS_FAVORITES "Oblben" + IDS_FAVORITES "Oblíbené" IDS_PROGRAMS "Programy" - IDS_SETTINGS "Nastaven" + IDS_SETTINGS "Nastavení" IDS_EXPLORE "Prozkoumat" - IDS_EMPTY "(Przdn)" - IDS_RECENT "Nedvn dokumenty" - IDS_ADMIN "Systmov nstroje" + IDS_EMPTY "(Prázdné)" + IDS_RECENT "Nedávné dokumenty" + IDS_ADMIN "Systémové nástroje" END STRINGTABLE BEGIN - IDS_STARTMENU "Nabdka Start" - IDS_MINIMIZE_ALL "minimalizovat vechna okna" + IDS_STARTMENU "Nabídka Start" + IDS_MINIMIZE_ALL "minimalizovat všechna okna" IDS_DESKTOP_NUM "Plocha %d" IDS_VOLUME "Hlasitost" - IDS_ITEMS_CUR "souasn poloky" - IDS_ITEMS_CONFIGURED "nastaven" - IDS_ITEMS_VISIBLE "viditeln" - IDS_ITEMS_HIDDEN "skryt" + IDS_ITEMS_CUR "současné položky" + IDS_ITEMS_CONFIGURED "nastavení" + IDS_ITEMS_VISIBLE "viditelné" + IDS_ITEMS_HIDDEN "skryté" IDS_NOTIFY_SHOW "zobrazit" - IDS_NOTIFY_HIDE "skrt" - IDS_NOTIFY_AUTOHIDE "skrvat automaticky" - IDS_SHOW_HIDDEN_ICONS "Zobrazit skryt ikony" - IDS_HIDE_ICONS "Skrt ikony" - IDS_TERMINATE "Ukonit ReactOS Przkumnka" + IDS_NOTIFY_HIDE "skrýt" + IDS_NOTIFY_AUTOHIDE "skrývat automaticky" + IDS_SHOW_HIDDEN_ICONS "Zobrazit skryté ikony" + IDS_HIDE_ICONS "Skrýt ikony" + IDS_TERMINATE "Ukončit ReactOS Průzkumníka" END STRINGTABLE BEGIN - IDS_NETWORK "S" - IDS_CONNECTIONS "Sov spojen" + IDS_NETWORK "Síť" + IDS_CONNECTIONS "Síťové spojení" IDS_DRIVES "Disky" - IDS_SEARCH_COMPUTER "Hledat pota" - IDS_SETTINGS_MENU "Nastaven" - IDS_CONTROL_PANEL "Ovldac panel" - IDS_PRINTERS "Tiskrny" - IDS_BROWSE "Prohlet soubory" + IDS_SEARCH_COMPUTER "Hledat počítač" + IDS_SETTINGS_MENU "Nastavení" + IDS_CONTROL_PANEL "Ovládací panel" + IDS_PRINTERS "Tiskárny" + IDS_BROWSE "Prohlížet soubory" IDS_SEARCH_PRG "Hledat programy" - IDS_ALL_USERS "Vichni uivatel\\" + IDS_ALL_USERS "Všichni uživatelé\\" IDS_SEARCH "Hledat" - IDS_ABOUT_EXPLORER "&O Przkumnku" - IDS_LAUNCH_MANY_PROGRAMS "Bylo vybrno vce program.\nPejete si je spustit vechny?" - IDS_DESKTOPBAR_SETTINGS "Nastaven plochy" + IDS_ABOUT_EXPLORER "&O Průzkumníku" + IDS_LAUNCH_MANY_PROGRAMS "Bylo vybráno více programů.\nPřejete si je spustit všechny?" + IDS_DESKTOPBAR_SETTINGS "Nastavení plochy" IDS_DESKTOP "Plocha" - IDS_TASKBAR "Panel loh" - IDS_NAMECOLUMN "Nzev" + IDS_TASKBAR "Panel úloh" + IDS_NAMECOLUMN "Název" IDS_PATHCOLUMN "Cesta" IDS_MENUCOLUMN "Menu path" END diff --git a/reactos/base/shell/explorer/explorer.rc b/reactos/base/shell/explorer/explorer.rc index 53d232b2a31..13882b18369 100644 --- a/reactos/base/shell/explorer/explorer.rc +++ b/reactos/base/shell/explorer/explorer.rc @@ -27,19 +27,19 @@ IDB_SDI BITMAP "res/sdi.bmp" /* Accelerators */ -IDA_EXPLORER ACCELERATORS +IDA_EXPLORER ACCELERATORS BEGIN "S", ID_VIEW_FULLSCREEN, VIRTKEY, SHIFT, CONTROL, NOINVERT VK_F5, ID_REFRESH, VIRTKEY, NOINVERT "X", ID_FILE_EXIT, VIRTKEY, ALT, NOINVERT END -IDA_SEARCH_PROGRAM ACCELERATORS +IDA_SEARCH_PROGRAM ACCELERATORS BEGIN VK_F5, ID_REFRESH, VIRTKEY, NOINVERT END -IDA_TRAYNOTIFY ACCELERATORS +IDA_TRAYNOTIFY ACCELERATORS BEGIN VK_F5, ID_REFRESH, VIRTKEY, NOINVERT END @@ -112,9 +112,6 @@ CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "explorer.exe.manifest" #ifdef LANGUAGE_BG_BG #include "explorer-bg.rc" #endif -#ifdef LANGUAGE_CS_CZ - #include "explorer-cz.rc" -#endif #ifdef LANGUAGE_DE_DE #include "explorer-de.rc" #endif @@ -164,6 +161,9 @@ CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "explorer.exe.manifest" /* UTF-8 */ #pragma code_page(65001) +#ifdef LANGUAGE_CS_CZ + #include "explorer-cz.rc" +#endif #ifdef LANGUAGE_HE_IL #include "explorer-he.rc" #endif diff --git a/reactos/dll/cpl/access/access.rc b/reactos/dll/cpl/access/access.rc index 614340b9540..3f9530afdfc 100644 --- a/reactos/dll/cpl/access/access.rc +++ b/reactos/dll/cpl/access/access.rc @@ -19,9 +19,6 @@ IDI_CPLACCESS ICON "resources/applet.ico" #ifdef LANGUAGE_BG_BG #include "lang/bg-BG.rc" #endif -#ifdef LANGUAGE_CS_CZ - #include "lang/cs-CZ.rc" -#endif #ifdef LANGUAGE_DE_DE #include "lang/de-DE.rc" #endif @@ -62,6 +59,9 @@ IDI_CPLACCESS ICON "resources/applet.ico" /* UTF-8 */ #pragma code_page(65001) +#ifdef LANGUAGE_CS_CZ + #include "lang/cs-CZ.rc" +#endif #ifdef LANGUAGE_HE_IL #include "lang/he-IL.rc" #endif diff --git a/reactos/dll/cpl/access/lang/cs-CZ.rc b/reactos/dll/cpl/access/lang/cs-CZ.rc index a7c5147cc66..0b29558454b 100644 --- a/reactos/dll/cpl/access/lang/cs-CZ.rc +++ b/reactos/dll/cpl/access/lang/cs-CZ.rc @@ -2,25 +2,25 @@ LANGUAGE LANG_CZECH, SUBLANG_DEFAULT IDD_PROPPAGEKEYBOARD DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Klvesnice" +CAPTION "Klávesnice" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - GROUPBOX "Jednm prstem", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(6) + PROPSHEETPADDING(1) - LTEXT "Tuto funkci pouijte, pokud chcete pouvat Shift, Ctrl nebo Alt stisknutm pouze jedn klvesy najednou.", + GROUPBOX "Jedním prstem", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(6) + PROPSHEETPADDING(1) + LTEXT "Tuto funkci použijte, pokud chcete používat Shift, Ctrl nebo Alt stisknutím pouze jedné klávesy najednou.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) - AUTOCHECKBOX "Pouvat funkci &Jednm prstem", IDC_STICKY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 - PUSHBUTTON "&Nastaven", IDC_STICKY_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 - GROUPBOX "Filtrovn klves", -1, PROPSHEETPADDING(1), LABELLINE(8) + 5, PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(7) + 2 - LTEXT "Pouijte funkci Filtrovn klves, pokud chcete, aby ReactOS ignoroval nhodn nebo opakovan stisknut klves.", + AUTOCHECKBOX "Používat funkci &Jedním prstem", IDC_STICKY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 + PUSHBUTTON "&Nastavení", IDC_STICKY_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 + GROUPBOX "Filtrování kláves", -1, PROPSHEETPADDING(1), LABELLINE(8) + 5, PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(7) + 2 + LTEXT "Použijte funkci Filtrování kláves, pokud chcete, aby ReactOS ignoroval náhodná nebo opakovaná stisknutí kláves.", -1, PROPSHEETPADDING(2), LABELLINE(10) - 3, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) - AUTOCHECKBOX "Pouvat funkci &Filtrovn klves", IDC_FILTER_BOX, PROPSHEETPADDING(2), LABELLINE(13) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 - PUSHBUTTON "N&astaven", IDC_FILTER_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(13) + 2, PROPSHEETPADDING(15), 14 - GROUPBOX "Ozvuen klves", -1, PROPSHEETPADDING(1), LABELLINE(16) + 3, PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(6) + PROPSHEETPADDING(1) - LTEXT "Pouijte funkci Ozvuen klves, chcete-li bt upozornni na stisk klves Caps Lock, Num Lock a Scroll Lock zvukovm signlem.", + AUTOCHECKBOX "Používat funkci &Filtrování kláves", IDC_FILTER_BOX, PROPSHEETPADDING(2), LABELLINE(13) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 + PUSHBUTTON "N&astavení", IDC_FILTER_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(13) + 2, PROPSHEETPADDING(15), 14 + GROUPBOX "Ozvučení kláves", -1, PROPSHEETPADDING(1), LABELLINE(16) + 3, PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(6) + PROPSHEETPADDING(1) + LTEXT "Použijte funkci Ozvučení kláves, chcete-li být upozorněni na stisk kláves Caps Lock, Num Lock a Scroll Lock zvukovým signálem.", -1, PROPSHEETPADDING(2), LABELLINE(18) - 3, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(2) + 6 - AUTOCHECKBOX "Pouvat funkci O&zvuen klves", IDC_TOGGLE_BOX, PROPSHEETPADDING(2), LABELLINE(20) + 4, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 - PUSHBUTTON "Na&staven", IDC_TOGGLE_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(20) + 4, PROPSHEETPADDING(15), 14 - AUTOCHECKBOX "&V programech zobrazovat dodatenou npovdu ke klvesm.", IDC_KEYBOARD_EXTRA, + AUTOCHECKBOX "Používat funkci O&zvučení kláves", IDC_TOGGLE_BOX, PROPSHEETPADDING(2), LABELLINE(20) + 4, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 + PUSHBUTTON "Na&stavení", IDC_TOGGLE_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(20) + 4, PROPSHEETPADDING(15), 14 + AUTOCHECKBOX "&V programech zobrazovat dodatečnou nápovědu ke klávesám.", IDC_KEYBOARD_EXTRA, PROPSHEETPADDING(1), LABELLINE(23) + 3, PROPSHEETWIDTH - PROPSHEETPADDING(2), 14 END @@ -30,28 +30,28 @@ CAPTION "Zvuk" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "Funkce Popis zvuku", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(10) + PROPSHEETPADDING(1) - LTEXT "Pouijte funkci Zobrazen zvuku, pokud chcete aby ReactOS vizuln upozoroval na kad zvuk vydan systmem.", + LTEXT "Použijte funkci Zobrazení zvuku, pokud chcete aby ReactOS vizuálně upozorňoval na každý zvuk vydaný systémem.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) - AUTOCHECKBOX "&Pouvat funkci Popis zvuku", IDC_SENTRY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETPADDING(20), 14 + AUTOCHECKBOX "&Používat funkci Popis zvuku", IDC_SENTRY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETPADDING(20), 14 LTEXT "Use the following warning:", IDC_SENTRY_TEXT, PROPSHEETPADDING(2), LABELLINE(8) - 2, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(1) COMBOBOX IDC_SENTRY_COMBO, PROPSHEETPADDING(2), LABELLINE(9), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(6), CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP - GROUPBOX "Funkce Zobrazen zvuku", -1, PROPSHEETPADDING(1), LABELLINE(12) + 5, PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(7) + 2 - LTEXT "Pouijte Zobrazen zvuku, aby programy zobrazovaly textov popis zrove se zvukem.", + GROUPBOX "Funkce Zobrazení zvuku", -1, PROPSHEETPADDING(1), LABELLINE(12) + 5, PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(7) + 2 + LTEXT "Použijte Zobrazení zvuku, aby programy zobrazovaly textový popis zároveň se zvukem.", -1, PROPSHEETPADDING(2), LABELLINE(14) - 3, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) - AUTOCHECKBOX "Pouvat funkci &Zobrazen zvuku", IDC_SSHOW_BOX, PROPSHEETPADDING(2), LABELLINE(16) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(4), 14 + AUTOCHECKBOX "Používat funkci &Zobrazení zvuku", IDC_SSHOW_BOX, PROPSHEETPADDING(2), LABELLINE(16) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(4), 14 END IDD_PROPPAGEDISPLAY DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Zobrazen" +CAPTION "Zobrazení" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - GROUPBOX "Funkce Vysok kontrast", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(6) + PROPSHEETPADDING(1) - LTEXT "Vyberte tuto monost pokud chcete, aby Reactos pouval barvy a psma uren pro snadnou itelnost.", + GROUPBOX "Funkce Vysoký kontrast", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(6) + PROPSHEETPADDING(1) + LTEXT "Vyberte tuto možnost pokud chcete, aby Reactos používal barvy a písma určené pro snadnou čitelnost.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) - AUTOCHECKBOX "&Pout funkci Vysok kontrast", IDC_CONTRAST_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 - PUSHBUTTON "&Nastaven", IDC_CONTRAST_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 + AUTOCHECKBOX "&Použít funkci Vysoký kontrast", IDC_CONTRAST_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 + PUSHBUTTON "&Nastavení", IDC_CONTRAST_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 GROUPBOX "Cursor options", -1, PROPSHEETPADDING(1), LABELLINE(8) + 5, PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(13) LTEXT "Use the track bars to modify the blinking speed of the cursor and its width.", -1, PROPSHEETPADDING(2), LABELLINE(9) + 5, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(2) @@ -70,40 +70,40 @@ END IDD_PROPPAGEMOUSE DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "My" +CAPTION "Myš" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - GROUPBOX "Funkce My klvesnic", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(6) + PROPSHEETPADDING(1) - LTEXT "Vyberte tuto monost, pokud chcete ovldat my pomoc ipek na numerick klvesnici.", + GROUPBOX "Funkce Myš klávesnicí", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(6) + PROPSHEETPADDING(1) + LTEXT "Vyberte tuto možnost, pokud chcete ovládat myš pomocí šipek na numerické klávesnici.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) - AUTOCHECKBOX "Pout funkci &My klvesnic", IDC_MOUSE_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 - PUSHBUTTON "&Nastaven", IDC_MOUSE_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 + AUTOCHECKBOX "Použít funkci &Myš klávesnicí", IDC_MOUSE_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 + PUSHBUTTON "&Nastavení", IDC_MOUSE_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 END IDD_PROPPAGEGENERAL DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Obecn" +CAPTION "Obecné" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - GROUPBOX "Automatick vypnut", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(5) - AUTOCHECKBOX "Vypnout &funkce usnadnn po neinnosti del ne:", + GROUPBOX "Automatické vypnutí", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(5) + AUTOCHECKBOX "Vypnout &funkce usnadnění po nečinnosti delší než:", IDC_RESET_BOX, PROPSHEETPADDING(2), LABELLINE(2) - 2, PROPSHEETWIDTH - PROPSHEETPADDING(4), 14 COMBOBOX IDC_RESET_COMBO, PROPSHEETPADDING(4), LABELLINE(4), PROPSHEETPADDING(10), LABELLINE(5), CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP - GROUPBOX "Upozornn", -1, PROPSHEETPADDING(1), LABELLINE(7) - 2, PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(5) - AUTOCHECKBOX "Pi zapnut funkce zobrazit upozornn.", IDC_NOTIFICATION_MESSAGE, + GROUPBOX "Upozornění", -1, PROPSHEETPADDING(1), LABELLINE(7) - 2, PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(5) + AUTOCHECKBOX "Při zapnutí funkce zobrazit upozornění.", IDC_NOTIFICATION_MESSAGE, PROPSHEETPADDING(2), LABELLINE(8) - 2, PROPSHEETWIDTH - PROPSHEETPADDING(4), 14 - AUTOCHECKBOX "Upozornit na zapnut nebo vypnut funkce usnadnn zvukem.", IDC_NOTIFICATION_SOUND, + AUTOCHECKBOX "Upozornit na zapnutí nebo vypnutí funkce usnadnění zvukem.", IDC_NOTIFICATION_SOUND, PROPSHEETPADDING(2), LABELLINE(10) - 2, PROPSHEETWIDTH - PROPSHEETPADDING(4), 14 GROUPBOX "Funkce SerialKey", -1, PROPSHEETPADDING(1), LABELLINE(13) - 4, PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(5) - LTEXT "Funkce SerialKey Vm umon alternativn pstup k funkcm myi a klvesnice.", + LTEXT "Funkce SerialKey Vám umožní alternativní přístup k funkcím myši a klávesnice.", -1, PROPSHEETPADDING(2), LABELLINE(14) - 4, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(2) - AUTOCHECKBOX "Pout funkci &SerialKey", IDC_SERIAL_BOX, PROPSHEETPADDING(2), LABELLINE(16) - 4, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 - PUSHBUTTON "Na&staven", IDC_SERIAL_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(16) - 4, PROPSHEETPADDING(15), 14 - GROUPBOX "Monosti sprvy", -1, PROPSHEETPADDING(1), LABELLINE(19) - 4, PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(5) - AUTOCHECKBOX "Pout &nastaven pi pihlen.", IDC_ADMIN_LOGON_BOX, + AUTOCHECKBOX "Použít funkci &SerialKey", IDC_SERIAL_BOX, PROPSHEETPADDING(2), LABELLINE(16) - 4, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 + PUSHBUTTON "Na&stavení", IDC_SERIAL_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(16) - 4, PROPSHEETPADDING(15), 14 + GROUPBOX "Možnosti správy", -1, PROPSHEETPADDING(1), LABELLINE(19) - 4, PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(5) + AUTOCHECKBOX "Použít &nastavení při přihlášení.", IDC_ADMIN_LOGON_BOX, PROPSHEETPADDING(2), LABELLINE(20) - 4, PROPSHEETWIDTH - PROPSHEETPADDING(4), 14 - AUTOCHECKBOX "Po&ut nastaven jako vchoz pro nov uivatele.", IDC_ADMIN_USERS_BOX, + AUTOCHECKBOX "Po&užít nastavení jako výchozí pro nové uživatele.", IDC_ADMIN_USERS_BOX, PROPSHEETPADDING(2), LABELLINE(22) - 4, PROPSHEETWIDTH - PROPSHEETPADDING(4), 14 END @@ -280,8 +280,8 @@ END STRINGTABLE BEGIN - IDS_CPLSYSTEMNAME "Monosti usnadnn" - IDS_CPLSYSTEMDESCRIPTION "Uprav monosti usnadnn pro tento pota." + IDS_CPLSYSTEMNAME "Možnosti usnadnění" + IDS_CPLSYSTEMDESCRIPTION "Upraví možnosti usnadnění pro tento počítač." IDS_SENTRY_NONE "[None]" IDS_SENTRY_TITLE "Flash the titlebar" IDS_SENTRY_WINDOW "Flash the active window" diff --git a/reactos/dll/cpl/hdwwiz/hdwwiz.rc b/reactos/dll/cpl/hdwwiz/hdwwiz.rc index 48d3922190e..ad82b37eaf2 100644 --- a/reactos/dll/cpl/hdwwiz/hdwwiz.rc +++ b/reactos/dll/cpl/hdwwiz/hdwwiz.rc @@ -25,9 +25,6 @@ IDB_HEADER BITMAP "resources/header.bmp" #ifdef LANGUAGE_BG_BG #include "lang/bg-BG.rc" #endif -#ifdef LANGUAGE_CS_CZ - #include "lang/cs-CZ.rc" -#endif #ifdef LANGUAGE_DE_DE #include "lang/de-DE.rc" #endif @@ -80,6 +77,9 @@ IDB_HEADER BITMAP "resources/header.bmp" /* UTF-8 */ #pragma code_page(65001) +#ifdef LANGUAGE_CS_CZ + #include "lang/cs-CZ.rc" +#endif #ifdef LANGUAGE_HE_IL #include "lang/he-IL.rc" #endif diff --git a/reactos/dll/cpl/hdwwiz/lang/cs-CZ.rc b/reactos/dll/cpl/hdwwiz/lang/cs-CZ.rc index b2680d1b72d..c0b30f246b6 100644 --- a/reactos/dll/cpl/hdwwiz/lang/cs-CZ.rc +++ b/reactos/dll/cpl/hdwwiz/lang/cs-CZ.rc @@ -1,27 +1,27 @@ /* FILE: dll/cpl/hdwwiz/lang/cs-CZ.rc * TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com) - * UPDATED: 2009-02-03 + * UPDATED: 2014-04-25 */ LANGUAGE LANG_CZECH, SUBLANG_DEFAULT IDD_STARTPAGE DIALOG 0, 0, 317, 186 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Prvodce pidnm hardwaru" +CAPTION "Průvodce přidáním hardwaru" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Vtejte v Prvodci pidnm hardwaru", IDC_FINISHTITLE, 114, 8, 203, 24 - LTEXT "Tento prvodce vm pome:", -1, 114, 40, 182, 8 - LTEXT "1) Nainstalovat software pro podporu hardwaru pidanho do potae.", -1, 121, 56, 184, 16 - LTEXT "2) Vyeit problmy, kter mete s vam hardwarem mt.", -1, 121, 78, 185, 16 + LTEXT "Vítejte v Průvodci přidáním hardwaru", IDC_FINISHTITLE, 114, 8, 203, 24 + LTEXT "Tento průvodce vám pomůže:", -1, 114, 40, 182, 8 + LTEXT "1) Nainstalovat software pro podporu hardwaru přidaného do počítače.", -1, 121, 56, 184, 16 + LTEXT "2) Vyřešit problémy, které můžete s vaším hardwarem mít.", -1, 121, 78, 185, 16 ICON IDI_WARNINGICON, IDC_WARNINGICON, 124, 109, 20, 20 - LTEXT "Pokud bylo k hardwaru pibaleno instalan CD, doporuuje se ukonit tohoto prvodce klepnutm na tlatko Storno a pout k instalaci hardwaru toto CD.", 503, 150, 106, 155, 50 - LTEXT "Pokraujte klepnutm na tlatko Dal.", -1, 114, 166, 193, 8 + LTEXT "Pokud bylo k hardwaru přibaleno instalační CD, doporučuje se ukončit tohoto průvodce klepnutím na tlačítko Storno a použít k instalaci hardwaru toto CD.", 503, 150, 106, 155, 50 + LTEXT "Pokračujte klepnutím na tlačítko Další.", -1, 114, 166, 193, 8 END IDD_SEARCHPAGE DIALOG 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Prvodce pidnm hardwaru" +CAPTION "Průvodce přidáním hardwaru" FONT 8, "MS Shell Dlg" BEGIN LTEXT "", IDC_STATUSTEXT, 21, 8, 275, 32 @@ -30,63 +30,63 @@ END IDD_ISCONNECTEDPAGE DIALOG 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Prvodce pidnm hardwaru" +CAPTION "Průvodce přidáním hardwaru" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Byl ji tento hardware pipojen k tomuto potai?", -1, 20, 11, 275, 8 - AUTORADIOBUTTON "&Ano, ji byl pipojen", IDC_CONNECTED, 29, 23, 266, 8, WS_GROUP - AUTORADIOBUTTON "&Ne, jet nebyl pidn", IDC_NOTCONNECTED, 29, 35, 266, 8 + LTEXT "Byl již tento hardware připojen k tomuto počítači?", -1, 20, 11, 275, 8 + AUTORADIOBUTTON "&Ano, již byl připojen", IDC_CONNECTED, 29, 23, 266, 8, WS_GROUP + AUTORADIOBUTTON "&Ne, ještě nebyl přidán", IDC_NOTCONNECTED, 29, 35, 266, 8 END IDD_PROBELISTPAGE DIALOG 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Prvodce pidnm hardwaru" +CAPTION "Průvodce přidáním hardwaru" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Vyberte nainstalovan zazen ze seznamu ne, pot lze klepnutm na tlatko Dal zkontrolovat jeho vlastnosti nebo zjistit een monch problm.", -1, 21, 8, 275, 22 - LTEXT "Klepnutm na ""Pidat nov zazen."" pidte hardware, kter se v tomto seznamu nenachz.", -1, 21, 32, 275, 24 - LTEXT "Nai&nstalovan hardware:", -1, 21, 62, 140, 8 + LTEXT "Vyberte nainstalované zařízení ze seznamu níže, poté lze klepnutím na tlačítko Další zkontrolovat jeho vlastnosti nebo zjistit řešení možných problémů.", -1, 21, 8, 275, 22 + LTEXT "Klepnutím na ""Přidat nové zařízení."" přidáte hardware, který se v tomto seznamu nenachází.", -1, 21, 32, 275, 24 + LTEXT "Nai&nstalovaný hardware:", -1, 21, 62, 140, 8 CONTROL "", IDC_PROBELIST, "SysListView32", WS_BORDER | WS_GROUP | WS_TABSTOP | LVS_REPORT | LVS_NOSORTHEADER | LVS_SINGLESEL | LVS_SHAREIMAGELISTS | LVS_NOCOLUMNHEADER, 21, 72, 275, 66 END IDD_SELECTWAYPAGE DIALOG 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Prvodce pidnm hardwaru" +CAPTION "Průvodce přidáním hardwaru" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Prvodce me vyhledat dal hardware a automaticky ho nainstalovat, nebo jej mete vybrat ze seznamu, pokud vte o kter model se jedn.", -1, 21, 8, 280, 24 - LTEXT "Co m prvodce udlat?", -1, 23, 40, 275, 8 - AUTORADIOBUTTON "&Vyhledat a automaticky nainstalovat hardware (doporueno)", IDC_AUTOINSTALL, 30, 55, 266, 8, WS_GROUP | NOT WS_TABSTOP - AUTORADIOBUTTON "Nainstalovat hardware, kter si &run zvolm ze seznamu (pokroil)", IDC_MANUALLYINST, 30, 70, 266, 8, NOT WS_TABSTOP + LTEXT "Průvodce může vyhledat další hardware a automaticky ho nainstalovat, nebo jej můžete vybrat ze seznamu, pokud víte o který model se jedná.", -1, 21, 8, 280, 24 + LTEXT "Co má průvodce udělat?", -1, 23, 40, 275, 8 + AUTORADIOBUTTON "&Vyhledat a automaticky nainstalovat hardware (doporučeno)", IDC_AUTOINSTALL, 30, 55, 266, 8, WS_GROUP | NOT WS_TABSTOP + AUTORADIOBUTTON "Nainstalovat hardware, který si &ručně zvolím ze seznamu (pokročilé)", IDC_MANUALLYINST, 30, 70, 266, 8, NOT WS_TABSTOP END IDD_DETECTEDHWPAGE DIALOG 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Prvodce pidnm hardwaru" +CAPTION "Průvodce přidáním hardwaru" FONT 8, "MS Shell Dlg" BEGIN LTEXT "", IDC_STATUSTEXT, 21, 9, 275, 40 - LTEXT "Detekovan hardware:", IDC_DETECTEDHWTEXT, 21, 53, 176, 8 + LTEXT "Detekovaný hardware:", IDC_DETECTEDHWTEXT, 21, 53, 176, 8 CONTROL "", IDC_DETECTEDHWLIST, "SysListView32", WS_BORDER | WS_GROUP | WS_TABSTOP | LVS_REPORT | LVS_NOSORTHEADER | LVS_SINGLESEL | LVS_SHAREIMAGELISTS | LVS_NOCOLUMNHEADER, 21, 65, 275, 70 END IDD_HWTYPESPAGE DIALOG 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Prvodce pidnm hardwaru" +CAPTION "Průvodce přidáním hardwaru" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Pokud nevidte vmi hledan typ hardwaru, klepnte na Zobrazit vechna zazen.", IDC_STATUSTEXT, 21, 9, 275, 18 - LTEXT "Bn typy &hardwaru:", IDC_HWTYPESTEXT, 21, 31, 180, 8 + LTEXT "Pokud nevidíte vámi hledaný typ hardwaru, klepněte na Zobrazit všechna zařízení.", IDC_STATUSTEXT, 21, 9, 275, 18 + LTEXT "Běžné typy &hardwaru:", IDC_HWTYPESTEXT, 21, 31, 180, 8 CONTROL "", IDC_HWTYPESLIST, "SysListView32", WS_BORDER | WS_GROUP | WS_TABSTOP | LVS_REPORT | LVS_NOSORTHEADER | LVS_SINGLESEL | LVS_SHAREIMAGELISTS | LVS_NOCOLUMNHEADER, 21, 42, 275, 92 END IDD_PROGRESSPAGE DIALOG 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Prvodce pidnm hardwaru" +CAPTION "Průvodce přidáním hardwaru" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Vyhledvn hardwaru me trvat nkolik minut.", -1, 21, 8, 275, 15 - LTEXT "Celkov postup:", IDC_TPROGRESSTEXT, 21, 25, 275, 8 + LTEXT "Vyhledávání hardwaru může trvat několik minut.", -1, 21, 8, 275, 15 + LTEXT "Celkový postup:", IDC_TPROGRESSTEXT, 21, 25, 275, 8 CONTROL "", IDC_TPROGRESSBAR, "msctls_progress32", 0, 21, 37, 275, 14 LTEXT "", IDC_PROGRESSTEXT, 58, 58, 200, 8, SS_NOPREFIX CONTROL "", IDC_PROGRESSBAR, "msctls_progress32", 0, 58, 70, 200, 8 @@ -94,59 +94,59 @@ END IDD_FINISHPAGE DIALOG 0, 0, 317, 186 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Prvodce pidnm hardwaru" +CAPTION "Průvodce přidáním hardwaru" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Dokonen Prvodce pidnm hardwaru", IDC_FINISHTITLE, 114, 8, 203, 24 - LTEXT "Prvodce pidnm hardwaru byl spn dokonen.", -1, 114, 32, 193, 19 + LTEXT "Dokončení Průvodce přidáním hardwaru", IDC_FINISHTITLE, 114, 8, 203, 24 + LTEXT "Průvodce přidáním hardwaru byl úspěšně dokončen.", -1, 114, 32, 193, 19 LTEXT "", IDC_STATUSTEXT, 114, 70, 193, 92 - LTEXT "Klepnutm na Dokonit uzavete prvodce.", -1, 114, 166, 132, 8 + LTEXT "Klepnutím na Dokončit uzavřete průvodce.", -1, 114, 166, 132, 8 END IDD_ISFOUNDPAGE DIALOG 0, 0, 317, 186 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Prvodce pidnm hardwaru" +CAPTION "Průvodce přidáním hardwaru" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Dokonen Prvodce pidnm hardwaru", IDC_FINISHTITLE, 114, 8, 203, 24 - LTEXT "Prvodce nael nsledujc hardware pipojen k tomuto potai:", -1, 114, 32, 193, 19 - LTEXT "Klepnutm na Dokonit uzavete prvodce.", -1, 114, 166, 132, 8 + LTEXT "Dokončení Průvodce přidáním hardwaru", IDC_FINISHTITLE, 114, 8, 203, 24 + LTEXT "Průvodce našel následující hardware připojený k tomuto počítači:", -1, 114, 32, 193, 19 + LTEXT "Klepnutím na Dokončit uzavřete průvodce.", -1, 114, 166, 132, 8 CONTROL "", IDC_FOUNDHARDWARELIST, "SysListView32", WS_BORDER | WS_GROUP | WS_TABSTOP | LVS_REPORT | LVS_NOSORTHEADER | LVS_SINGLESEL | LVS_SHAREIMAGELISTS, 114, 56, 193, 78 END IDD_HWSTATUSPAGE DIALOG 0, 0, 317, 186 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Prvodce pidnm hardwaru" +CAPTION "Průvodce přidáním hardwaru" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Dokonen Prvodce pidnm hardwaru", IDC_FINISHTITLE, 114, 8, 195, 28 - LTEXT "Souasn stav zvolenho hardwaru:", -1, 114, 40, 193, 19 + LTEXT "Dokončení Průvodce přidáním hardwaru", IDC_FINISHTITLE, 114, 8, 195, 28 + LTEXT "Současný stav zvoleného hardwaru:", -1, 114, 40, 193, 19 EDITTEXT IDC_HWSTATUSEDIT, 114, 60, 193, 70, ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL | NOT WS_TABSTOP - LTEXT "Klepnutm na Dokonit lze zat eit mon problmy.", -1, 114, 136, 193, 16 - LTEXT "Klepnutm na Storno ukonte prvodce.", IDC_STATUSTEXT, 114, 166, 132, 8 + LTEXT "Klepnutím na Dokončit lze začít řešit možné problémy.", -1, 114, 136, 193, 16 + LTEXT "Klepnutím na Storno ukončíte průvodce.", IDC_STATUSTEXT, 114, 166, 132, 8 END IDD_NOTCONNECTEDPAGE DIALOG 0, 0, 317, 186 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Prvodce pidnm hardwaru" +CAPTION "Průvodce přidáním hardwaru" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Nelze pokraovat v Prvodci pidnm hardwaru", IDC_FINISHTITLE, 114, 8, 203, 28 - LTEXT "Pokraovat lze po pipojen hardwaru k potai.", -1, 114, 40, 193, 16 - AUTOCHECKBOX "Vypnou&t pota po klepnut na tlatko Dokonit, aby mohl bt hardware pipojen.", IDC_TURNOFFCHECKBOX, 114, 64, 203, 20, BS_TOP | BS_MULTILINE - LTEXT "Ve vtin ppad ReactOS automaticky nainstaluje hardware po jeho pipojen. Pokud jej ReactOS nenajde, lze tohoto prvodce znovu spustit a nainstalovat podprn software.", -1, 114, 98, 193, 32 - LTEXT "Klepnutm na tlatko Dokonit ukonte prvodce.", IDC_STATUSTEXT, 114, 166, 193, 8 + LTEXT "Nelze pokračovat v Průvodci přidáním hardwaru", IDC_FINISHTITLE, 114, 8, 203, 28 + LTEXT "Pokračovat lze po připojení hardwaru k počítači.", -1, 114, 40, 193, 16 + AUTOCHECKBOX "Vypnou&t počítač po klepnutí na tlačítko Dokončit, aby mohl být hardware připojen.", IDC_TURNOFFCHECKBOX, 114, 64, 203, 20, BS_TOP | BS_MULTILINE + LTEXT "Ve většině případů ReactOS automaticky nainstaluje hardware po jeho připojení. Pokud jej ReactOS nenajde, lze tohoto průvodce znovu spustit a nainstalovat podpůrný software.", -1, 114, 98, 193, 32 + LTEXT "Klepnutím na tlačítko Dokončit ukončíte průvodce.", IDC_STATUSTEXT, 114, 166, 193, 8 END STRINGTABLE BEGIN - IDS_CPLNAME "Pidat hardware" - IDS_CPLDESCRIPTION "Pid hardware do tohoto potae." - IDS_SEARCHTITLE "ekejte, prosm, prvodce hled..." - IDS_SEARCHTEXT "Tento prvodce hled hardware, kter byl nedvno pipojen k tomuto potai, ale jet nebyl nainstalovn." - IDS_ISCONNECTED "Je hardware pipojen?" - IDS_PROBELISTTITLE "Nsledujc hardware ji je nainstalovn na tomto potai" - IDS_ADDNEWDEVICE "Pidat nov hardwarov zazen" - IDS_SELECTWAYTITLE "Prvodce vm me pomoci nainstalovat jin hardware" - IDS_HDTYPESTITLE "Ze seznamu ne zvolte typ instalovanho hardwaru" + IDS_CPLNAME "Přidat hardware" + IDS_CPLDESCRIPTION "Přidá hardware do tohoto počítače." + IDS_SEARCHTITLE "Čekejte, prosím, průvodce hledá..." + IDS_SEARCHTEXT "Tento průvodce hledá hardware, který byl nedávno připojen k tomuto počítači, ale ještě nebyl nainstalován." + IDS_ISCONNECTED "Je hardware připojen?" + IDS_PROBELISTTITLE "Následující hardware již je nainstalován na tomto počítači" + IDS_ADDNEWDEVICE "Přidat nové hardwarové zařízení" + IDS_SELECTWAYTITLE "Průvodce vám může pomoci nainstalovat jiný hardware" + IDS_HDTYPESTITLE "Ze seznamu níže zvolte typ instalovaného hardwaru" END diff --git a/reactos/dll/cpl/inetcpl/inetcpl.rc b/reactos/dll/cpl/inetcpl/inetcpl.rc index b509fceb789..c44f7c627b8 100644 --- a/reactos/dll/cpl/inetcpl/inetcpl.rc +++ b/reactos/dll/cpl/inetcpl/inetcpl.rc @@ -27,6 +27,9 @@ #include +#ifdef LANGUAGE_CS_CZ + #include "lang/cs-CZ.rc" +#endif #ifdef LANGUAGE_DE_DE #include "lang/de-DE.rc" #endif diff --git a/reactos/dll/cpl/inetcpl/lang/cs-CZ.rc b/reactos/dll/cpl/inetcpl/lang/cs-CZ.rc new file mode 100644 index 00000000000..66847279e1a --- /dev/null +++ b/reactos/dll/cpl/inetcpl/lang/cs-CZ.rc @@ -0,0 +1,99 @@ +/* FILE: dll/cpl/inetcpl/lang/cs-CZ.rc + * TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com) + * UPDATED: 2014-04-21 + */ + + /* UTF-8 */ + #pragma code_page(65001) + + LANGUAGE LANG_CZECH, SUBLANG_DEFAULT + +/* "General" propsheet */ +IDD_GENERAL DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Obecné" +BEGIN + + GROUPBOX " Domovská stránka ", IDC_STATIC, 4, 4, 312, 52 + LTEXT "Zvolená adresa bude uložena jako domovská stránka.", + IDC_STATIC, 58, 10, 252, 10 + EDITTEXT IDC_HOME_EDIT, 58, 22, 252, 12, WS_VISIBLE | ES_AUTOHSCROLL + PUSHBUTTON "&Aktuální stránka", IDC_HOME_CURRENT, 58, 36, 80, 14 + PUSHBUTTON "&Výchozí stránka", IDC_HOME_DEFAULT, 144, 36, 80, 14 + PUSHBUTTON "&Prázdná stránka", IDC_HOME_BLANK, 230, 36, 80, 14 + GROUPBOX " Historie prohlížení ", IDC_STATIC, 4, 60, 312, 46 + LTEXT "Lze smazat stránky v mezipaměti, cookies a další data.", + IDC_STATIC, 58, 72, 252, 10 + PUSHBUTTON "Smazat &soubory...", IDC_HISTORY_DELETE, 144, 86, 80, 14 + PUSHBUTTON "&Nastavení...", IDC_HISTORY_SETTINGS, 230, 86, 80, 14 + +END + +/* "Delete browsing history" dialog */ +IDD_DELETE_HISTORY DIALOG 0, 0, 250, 250 +STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +FONT 8, "MS Shell Dlg" +CAPTION "Smazat historii prohlížení" +BEGIN + + AUTOCHECKBOX "Dočasné internetové soubory\nUložené kopie webových stránek, obrázků a certifikátů.", + IDC_DELETE_TEMP_FILES, 10, 8, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "Cookies\nSoubory uložené na počítači webovými stránkami, ve kterých jsou uložené například uživatelské předvolby nebo přihlašovací údaje.", + IDC_DELETE_COOKIES, 10, 38, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "Historie\nSeznam navštívených webových stránek.", + IDC_DELETE_HISTORY, 10, 68, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "Data formulářů\nUživatelská jména a další údaje, které byly zadány do formulářů.", + IDC_DELETE_FORM_DATA, 10, 98, 230, 30, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "Hesla\nUložená hesla, která byla zadána do formulářů.", + IDC_DELETE_PASSWORDS, 10, 128, 230, 30, BS_TOP | BS_MULTILINE + DEFPUSHBUTTON "Storno", IDCANCEL, 185, 230, 60, 15, WS_GROUP + PUSHBUTTON "Smazat", IDOK, 120, 230, 60, 15, WS_GROUP + +END + +/* "Security" propsheet */ +IDD_SECURITY DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Zabezpečení" +BEGIN + + CONTROL "Listview", IDC_SEC_LISTVIEW, "SysListView32", + LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_VSCROLL, + 4, 4, 312, 58 + LTEXT "", IDC_SEC_ZONE_INFO, 4, 68, 312, 20 + GROUPBOX "", IDC_SEC_GROUP, 4, 88, 312, 126 + CONTROL "trackbar", IDC_SEC_TRACKBAR, "msctls_trackbar32", + TBS_VERT | TBS_AUTOTICKS | TBS_BOTH | TBS_REVERSED, 8, 98, 32, 100 + LTEXT "", IDC_SEC_LEVEL, 48, 102, 180, 12 + LTEXT "", IDC_SEC_LEVEL_INFO, 48, 114, 260, 80 +END + +/* "Content" propsheet */ +IDD_CONTENT DIALOG 0, 0, 320, 220 +STYLE WS_CAPTION | WS_CHILD | WS_DISABLED +FONT 8, "MS Shell Dlg" +CAPTION "Obsah" +BEGIN + + GROUPBOX " Certifikáty ", IDC_STATIC, 4, 4, 312, 50 + LTEXT "Certifikáty slouží k osobní identifikaci a k identifikaci certifikačních autorit a vydavatelů.", + IDC_STATIC, 58, 14, 252, 18 + PUSHBUTTON "Certifikáty...", IDC_CERT, 146, 34, 80, 14 + PUSHBUTTON "Vydavatelé...", IDC_CERT_PUBLISHER, 230, 34, 80, 14 + +END + +STRINGTABLE +BEGIN + IDS_CPL_NAME "Nastavení Internetu" + IDS_CPL_INFO "Konfigurovat Internetový prohlížeč Wine a související nastavení" + IDS_SEC_SETTINGS "Nastavení zabezpečení pro zónu: " + IDS_SEC_LEVEL0 "Vlastní" + IDS_SEC_LEVEL1 "Velmi nízké" + IDS_SEC_LEVEL2 "Nízké" + IDS_SEC_LEVEL3 "Střední" + IDS_SEC_LEVEL4 "Zvýšené" + IDS_SEC_LEVEL5 "Vysoké" +END diff --git a/reactos/dll/cpl/joy/joy.rc b/reactos/dll/cpl/joy/joy.rc index 0536869cad3..7637ab013d2 100644 --- a/reactos/dll/cpl/joy/joy.rc +++ b/reactos/dll/cpl/joy/joy.rc @@ -18,9 +18,6 @@ IDI_CPLSYSTEM ICON "resources/applet.ico" #ifdef LANGUAGE_BG_BG #include "lang/bg-BG.rc" #endif -#ifdef LANGUAGE_CS_CZ - #include "lang/cs-CZ.rc" -#endif #ifdef LANGUAGE_DE_DE #include "lang/de-DE.rc" #endif @@ -55,6 +52,9 @@ IDI_CPLSYSTEM ICON "resources/applet.ico" /* UTF-8 */ #pragma code_page(65001) +#ifdef LANGUAGE_CS_CZ + #include "lang/cs-CZ.rc" +#endif #ifdef LANGUAGE_HE_IL #include "lang/he-IL.rc" #endif diff --git a/reactos/dll/cpl/joy/lang/cs-CZ.rc b/reactos/dll/cpl/joy/lang/cs-CZ.rc index 603132d3464..c737c3d3daa 100644 --- a/reactos/dll/cpl/joy/lang/cs-CZ.rc +++ b/reactos/dll/cpl/joy/lang/cs-CZ.rc @@ -1,6 +1,6 @@ /* FILE: dll/cpl/joy/lang/cs-CZ.rc * TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com) - * UPDATED: 2009-01-10 + * UPDATED: 2014-04-25 */ LANGUAGE LANG_CZECH, SUBLANG_DEFAULT @@ -8,35 +8,35 @@ LANGUAGE LANG_CZECH, SUBLANG_DEFAULT IDD_PROPPAGEMAIN DIALOGEX 0, 0, 252, 205 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION EXSTYLE WS_EX_CONTEXTHELP -CAPTION "Hern ovladae" +CAPTION "Herní ovladače" FONT 8, "MS Shell Dlg" BEGIN ICON IDI_CPLSYSTEM, -1, 7, 7, 20, 20 - LTEXT "Tato nastaven pomhaj konfigurovat hern ovladae nainstalovan na tomto potai.", -1, 33, 7, 214, 20, NOT WS_GROUP - GROUPBOX "Nai&nstalovan hern ovladae", -1, 7, 34, 238, 117 + LTEXT "Tato nastavení pomáhají konfigurovat herní ovladače nainstalované na tomto počítači.", -1, 33, 7, 214, 20, NOT WS_GROUP + GROUPBOX "Nai&nstalované herní ovladače", -1, 7, 34, 238, 117 CONTROL "List1", IDC_CONTROLLER_LIST, "SysListView32", WS_BORDER | WS_GROUP | WS_TABSTOP | 0x0000808D, 14, 44, 224, 80 - PUSHBUTTON "&Pidat...", IDC_ADD_BUTTON, 35, 129, 65, 14 + PUSHBUTTON "&Přidat...", IDC_ADD_BUTTON, 35, 129, 65, 14 PUSHBUTTON "&Odebrat", IDC_REMOVE_BUTTON, 104, 129, 65, 14, WS_DISABLED PUSHBUTTON "&Vlastnosti", IDC_PROPERTIES_BUTTON, 173, 129, 65, 14, WS_DISABLED - PUSHBUTTON "&Rozen...", IDC_ADVANCED_BUTTON, 111, 157, 65, 14 - PUSHBUTTON "&een problm...", IDC_TROUBLESHOOT_BUTTON, 180, 157, 65, 14 + PUSHBUTTON "&Rozšířené...", IDC_ADVANCED_BUTTON, 111, 157, 65, 14 + PUSHBUTTON "Ř&ešení problémů...", IDC_TROUBLESHOOT_BUTTON, 180, 157, 65, 14 PUSHBUTTON "OK", IDOK, 195, 185, 50, 14 END IDD_ADD DIALOGEX 0, 0, 265, 200 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_CAPTION EXSTYLE WS_EX_CONTEXTHELP -CAPTION "Pidat hern ovlada" +CAPTION "Přidat herní ovladač" FONT 8, "MS Shell Dlg" BEGIN ICON IDI_CPLSYSTEM, -1, 8, 7, 20, 20 - LTEXT "Vyberte hern ovlada ze seznamu ne, pot kliknte na tlatko OK. Pokud se v ovlada v seznamu nenachz, kliknte na tlatko Vlastn.", -1, 35, 7, 210, 33 - LTEXT "&Hern ovladae:", -1, 8, 45, 126, 8 + LTEXT "Vyberte herní ovladač ze seznamu níže, poté klikněte na tlačítko OK. Pokud se váš ovladač v seznamu nenachází, klikněte na tlačítko Vlastní.", -1, 35, 7, 210, 33 + LTEXT "&Herní ovladače:", -1, 8, 45, 126, 8 LISTBOX IDC_GAME_CONTROLLERS_LIST, 7, 55, 251, 57, LBS_STANDARD | LBS_NOINTEGRALHEIGHT | LBS_WANTKEYBOARDINPUT | WS_HSCROLL | WS_TABSTOP - AUTOCHECKBOX "&Zapnout kormidlo a pedly", IDC_ENABLE_RUDDERS_CHECKBOX, 7, 114, 100, 10, WS_GROUP + AUTOCHECKBOX "&Zapnout kormidlo a pedály", IDC_ENABLE_RUDDERS_CHECKBOX, 7, 114, 100, 10, WS_GROUP LTEXT "&Port:", -1, 7, 134, 38, 8, NOT WS_VISIBLE COMBOBOX IDC_GAME_PORT_COMBO, 7, 147, 140, 50, CBS_DROPDOWNLIST | CBS_SORT | NOT WS_VISIBLE | WS_VSCROLL - PUSHBUTTON "&Vlastn...", IDC_CUSTOM_BUTTON, 208, 147, 50, 14 + PUSHBUTTON "&Vlastní...", IDC_CUSTOM_BUTTON, 208, 147, 50, 14 CONTROL "", -25525, "STATIC", SS_ETCHEDHORZ, 7, 170, 251, 1 DEFPUSHBUTTON "OK", IDOK, 155, 179, 50, 14 PUSHBUTTON "Storno", IDCANCEL, 208, 179, 50, 14 @@ -45,22 +45,22 @@ END IDD_CUSTOM DIALOGEX 0, 0, 265, 183, 0 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_SETFOREGROUND | WS_POPUPWINDOW | WS_CAPTION EXSTYLE WS_EX_CONTEXTHELP -CAPTION "Vlastn hern ovlada" +CAPTION "Vlastní herní ovladač" FONT 8, "MS Shell Dlg" BEGIN - GROUPBOX "Zvltn charakteristiky", -1, 7, 7, 245, 52 + GROUPBOX "Zvláštní charakteristiky", -1, 7, 7, 245, 52 AUTORADIOBUTTON "&Joystick", IDC_JOYSTICK_RADIO, 17, 23, 55, 10 - AUTORADIOBUTTON "&Leteck dc pka nebo kormidlo", IDC_FLIGHT_YOKE_RADIO, 147, 23, 89, 10 + AUTORADIOBUTTON "&Letecká řídící páka nebo kormidlo", IDC_FLIGHT_YOKE_RADIO, 147, 23, 89, 10 AUTORADIOBUTTON "&Gamepad", IDC_GAME_PAD_RADIO, 17, 40, 65, 10 - AUTORADIOBUTTON "zen &auta", IDC_RACE_CAR_RADIO, 147, 40, 93, 10 + AUTORADIOBUTTON "Řízení &auta", IDC_RACE_CAR_RADIO, 147, 40, 93, 10 GROUPBOX "&Osy", -1, 7, 67, 116, 44, WS_GROUP COMBOBOX IDC_AXES_COMBO, 37, 79, 48, 50, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL - AUTORADIOBUTTON "Kormidlo/Pedly", IDC_RUDDER_PEDALS_RADIO, 14, 97, 63, 10, NOT WS_VISIBLE + AUTORADIOBUTTON "Kormidlo/Pedály", IDC_RUDDER_PEDALS_RADIO, 14, 97, 63, 10, NOT WS_VISIBLE AUTORADIOBUTTON "Osa Z", IDC_Z_AXIS_RADIO, 81, 97, 35, 10, NOT WS_VISIBLE - GROUPBOX "&Tlatka", -1, 137, 67, 116, 44 + GROUPBOX "&Tlačítka", -1, 137, 67, 116, 44 COMBOBOX IDC_BUTTONS_COMBO, 178, 79, 48, 50, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL, WS_EX_CLIENTEDGE - AUTOCHECKBOX "Obsahuje zen zo&rnho hlu", IDC_INC_POINT_CHECKBOX, 7, 123, 115, 10 - LTEXT "Nzev hernho &ovladae:", -1, 7, 139, 200, 9 + AUTOCHECKBOX "Obsahuje řízení zo&rného úhlu", IDC_INC_POINT_CHECKBOX, 7, 123, 115, 10 + LTEXT "Název herního &ovladače:", -1, 7, 139, 200, 9 EDITTEXT IDC_CONTROLLER_NAME_EDIT, 7, 150, 116, 15, ES_AUTOHSCROLL, WS_EX_CLIENTEDGE | WS_EX_STATICEDGE DEFPUSHBUTTON "OK", IDOK, 137, 150, 50, 14 PUSHBUTTON "Storno", IDCANCEL, 203, 150, 50, 14 @@ -69,21 +69,21 @@ END IDD_ADVANCED DIALOGEX 0, 0, 220, 86 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION EXSTYLE WS_EX_CONTEXTHELP -CAPTION "Rozen nastaven" +CAPTION "Rozšířené nastavení" FONT 8, "MS Shell Dlg" BEGIN ICON IDI_CPLSYSTEM, -1, 7, 24, 20, 20 DEFPUSHBUTTON "OK", IDOK, 106, 65, 50, 14 PUSHBUTTON "Storno", IDCANCEL, 163, 65, 50, 14 - LTEXT "Vyberte zazen, kter chcete pouvat se starmi programy.", -1, 7, 7, 208, 10 - LTEXT "&Preferovan zazen:", -1, 34, 24, 70, 10 + LTEXT "Vyberte zařízení, které chcete používat se staršími programy.", -1, 7, 7, 208, 10 + LTEXT "&Preferované zařízení:", -1, 34, 24, 70, 10 COMBOBOX IDC_PREFERRED_DEV_COMBO, 34, 38, 179, 75, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL END STRINGTABLE BEGIN - IDS_CPLSYSTEMNAME "Hern ovladae" - IDS_CPLSYSTEMDESCRIPTION "Pidat, odebrat a konfigurovat hern ovladae jako napklad joysticky nebo gamepady." - IDS_CONTROLLER "Ovlada" + IDS_CPLSYSTEMNAME "Herní ovladače" + IDS_CPLSYSTEMDESCRIPTION "Přidat, odebrat a konfigurovat herní ovladače jako například joysticky nebo gamepady." + IDS_CONTROLLER "Ovladač" IDS_STATUS "Stav" END diff --git a/reactos/dll/cpl/mmsys/lang/cs-CZ.rc b/reactos/dll/cpl/mmsys/lang/cs-CZ.rc index e0207108160..364fb40c3e1 100644 --- a/reactos/dll/cpl/mmsys/lang/cs-CZ.rc +++ b/reactos/dll/cpl/mmsys/lang/cs-CZ.rc @@ -1,6 +1,6 @@ /* FILE: dll/cpl/mmsys/lang/cs-CZ.rc * TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com) - * UPDATED: 2009-02-02 + * UPDATED: 2014-04-25 */ LANGUAGE LANG_CZECH, SUBLANG_DEFAULT @@ -12,19 +12,19 @@ FONT 8, "MS Shell Dlg" BEGIN ICON IDI_CPLICON, IDI_CPLICON, 8, 5, 32, 32 LTEXT "", IDC_DEVICE_NAME, 40, 10, 194, 36 - GROUPBOX "Hlasitost zazen", -1, 7, 30, 230, 100 + GROUPBOX "Hlasitost zařízení", -1, 7, 30, 230, 100 CONTROL "", IDC_MUTE_ICON, "Static", SS_ICON | WS_VISIBLE, 17, 45, 32, 32 CONTROL "", IDC_VOLUME_TRACKBAR, "msctls_trackbar32", TBS_AUTOTICKS | TBS_ENABLESELRANGE | TBS_BOTTOM | TBS_HORZ | WS_TABSTOP, 65, 45, 140, 14 - LTEXT "Nzk", -1, 62, 66, 30, 17 - LTEXT "Vysok", -1, 195, 66, 30, 17 + LTEXT "Nízká", -1, 62, 66, 30, 17 + LTEXT "Vysoká", -1, 195, 66, 30, 17 CHECKBOX "&Ztlumit", IDC_MUTE_CHECKBOX, 50, 78, 140, 10 - CHECKBOX "Umstit &ikonu hlasitosti na panel loh", IDC_ICON_IN_TASKBAR, 50, 92, 140, 10 - PUSHBUTTON "&Upesnit...", IDC_ADVANCED_BTN, 150, 105, 75, 15 - GROUPBOX "Nastaven reproduktor", IDC_SPEAKER_SET_BTN, 7, 140, 230, 80 + CHECKBOX "Umístit &ikonu hlasitosti na panel úloh", IDC_ICON_IN_TASKBAR, 50, 92, 140, 10 + PUSHBUTTON "&Upřesnit...", IDC_ADVANCED_BTN, 150, 105, 75, 15 + GROUPBOX "Nastavení reproduktorů", IDC_SPEAKER_SET_BTN, 7, 140, 230, 80 CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 160, 70, 70 - LTEXT "Nastaven ne lze pout ke zmnn hlasitosti jednotlivch reproduktor a dalch nastaven.", -1, 70, 155, 150, 36 - PUSHBUTTON "&Hlasitost reproduktor...", IDC_SPEAKER_VOL_BTN, 70, 195, 75, 15 - PUSHBUTTON "U&pesnit...", IDC_ADVANCED2_BTN, 150, 195, 75, 15 + LTEXT "Nastavení níže lze použít ke změnění hlasitosti jednotlivých reproduktorů a dalších nastavení.", -1, 70, 155, 150, 36 + PUSHBUTTON "&Hlasitost reproduktorů...", IDC_SPEAKER_VOL_BTN, 70, 195, 75, 15 + PUSHBUTTON "U&přesnit...", IDC_ADVANCED2_BTN, 150, 195, 75, 15 END IDD_SOUNDS DIALOGEX 0, 0, 246, 228 @@ -32,18 +32,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Zvuky" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Zvukov schma je soubor zvuk, kter jsou pehrvny pi udlostech v systmu ReactOS a programech. Lze zvolit existujc schma nebo uloit jin, upraven.", -1, 8, 7, 230, 40 - LTEXT "Zvukov s&chma:", -1, 8, 42, 150, 17 + LTEXT "Zvukové schéma je soubor zvuků, které jsou přehrávány při událostech v systému ReactOS a programech. Lze zvolit existující schéma nebo uložit jiné, upravené.", -1, 8, 7, 230, 40 + LTEXT "Zvukové s&chéma:", -1, 8, 42, 150, 17 COMBOBOX IDC_SOUND_SCHEME, 8, 53, 230, 46, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "&Uloit jako...", IDC_SAVEAS_BTN, 134, 70, 50, 15 + PUSHBUTTON "&Uložit jako...", IDC_SAVEAS_BTN, 134, 70, 50, 15 PUSHBUTTON "&Smazat", IDC_DELETE_BTN, 188, 70, 50, 15 - LTEXT "Zvuky lze mnit kliknutm na programovou udlost v nsledujcm seznamu a vybrnm zvuku, kter m bt pehrn. Zmny lze uloit jako nov zvukov schma.", -1, 8, 90, 230, 40 - LTEXT "&Udlosti program:", -1, 8, 118, 150, 17 + LTEXT "Zvuky lze měnit kliknutím na programovou událost v následujícím seznamu a vybráním zvuku, který má být přehrán. Změny lze uložit jako nové zvukové schéma.", -1, 8, 90, 230, 40 + LTEXT "&Události programů:", -1, 8, 118, 150, 17 CONTROL "", IDC_SCHEME_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 8, 130, 230, 60, WS_EX_CLIENTEDGE LTEXT "&Zvuky:", IDC_TEXT_SOUND, 8, 194, 80, 17, WS_DISABLED COMBOBOX IDC_SOUND_LIST, 8, 205, 155, 146, CBS_DROPDOWNLIST | CBS_DISABLENOSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP | WS_DISABLED PUSHBUTTON "", IDC_PLAY_SOUND, 168, 205, 15, 15, WS_DISABLED | BS_ICON - PUSHBUTTON "&Prochzet...", IDC_BROWSE_SOUND, 188, 205, 50, 15, WS_DISABLED + PUSHBUTTON "&Procházet...", IDC_BROWSE_SOUND, 188, 205, 50, 15, WS_DISABLED END IDD_AUDIO DIALOGEX 0, 0, 246, 228 @@ -51,25 +51,25 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Zvuk" FONT 8, "MS Shell Dlg" BEGIN - GROUPBOX "Pehrvn zvuku", -1, 7, 7, 230, 60 + GROUPBOX "Přehrávání zvuku", -1, 7, 7, 230, 60 ICON IDI_CPLICON, IDI_CPLICON, 15, 20, 32, 32 - LTEXT "&Vchoz zazen:", -1, 50, 20, 80, 17 + LTEXT "&Výchozí zařízení:", -1, 50, 20, 80, 17 COMBOBOX IDC_DEVICE_PLAY_LIST, 50, 30, 180, 46, CBS_DROPDOWNLIST PUSHBUTTON "&Hlasitost...", IDC_VOLUME1_BTN, 85, 47, 70, 15 - PUSHBUTTON "&Upesnit...", IDC_ADV2_BTN, 160, 47, 70, 15 - GROUPBOX "Zznam zvuku", -1, 7, 75, 230, 60 + PUSHBUTTON "&Upřesnit...", IDC_ADV2_BTN, 160, 47, 70, 15 + GROUPBOX "Záznam zvuku", -1, 7, 75, 230, 60 ICON IDI_MICROPHONE_ICON, IDI_MICROPHONE_ICON, 15, 88, 32, 32 - LTEXT "V&choz zazen:", -1, 50, 88, 80, 17 + LTEXT "Vý&chozí zařízení:", -1, 50, 88, 80, 17 COMBOBOX IDC_DEVICE_REC_LIST, 50, 98, 180, 46, CBS_DROPDOWNLIST PUSHBUTTON "H&lasitost...", IDC_VOLUME2_BTN, 85, 115, 70, 15 - PUSHBUTTON "U&pesnit...", IDC_ADV1_BTN, 160, 115, 70, 15 - GROUPBOX "Pehrvn MIDI hudby", -1, 7, 145, 230, 60 + PUSHBUTTON "U&přesnit...", IDC_ADV1_BTN, 160, 115, 70, 15 + GROUPBOX "Přehrávání MIDI hudby", -1, 7, 145, 230, 60 ICON IDI_MIDICON, IDI_MIDICON, 15, 158, 32, 32 - LTEXT "Vcho&z zazen:", -1, 50, 158, 80, 17 + LTEXT "Výcho&zí zařízení:", -1, 50, 158, 80, 17 COMBOBOX IDC_DEVICE_MIDI_LIST, 50, 168, 180, 46, CBS_DROPDOWNLIST PUSHBUTTON "Hl&asitost...", IDC_VOLUME3_BTN, 85, 185, 70, 15 PUSHBUTTON "&O produktu...", IDC_ADV3_BTN, 160, 185, 70, 15 - CHECKBOX "Pouva&t jen vchoz zazen", IDC_DEFAULT_DEV_CHECKBOX, 7, 212, 140, 10 + CHECKBOX "Používa&t jen výchozí zařízení", IDC_DEFAULT_DEV_CHECKBOX, 7, 212, 140, 10 END IDD_VOICE DIALOGEX 0, 0, 246, 228 @@ -77,19 +77,19 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Hlas" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Tato nastaven ovlivuj hlasitost a rozen volby pro pehrvn hlasu a zvolen zznamov zazen.", -1, 8, 7, 230, 40 - GROUPBOX "Pehrvn hlasu", -1, 7, 37, 230, 60 + LTEXT "Tato nastavení ovlivňují hlasitost a rozšířené volby pro přehrávání hlasu a zvolené záznamové zařízení.", -1, 8, 7, 230, 40 + GROUPBOX "Přehrávání hlasu", -1, 7, 37, 230, 60 ICON IDI_CPLICON, IDI_CPLICON, 15, 50, 32, 32 - LTEXT "&Vchoz zazen:", -1, 50, 50, 80, 17 + LTEXT "&Výchozí zařízení:", -1, 50, 50, 80, 17 COMBOBOX IDC_DEVICE_VOICE_LIST, 50, 60, 180, 46, CBS_DROPDOWNLIST PUSHBUTTON "&Hlasitost...", IDC_VOLUME4_BTN, 85, 77, 70, 15 - PUSHBUTTON "&Upesnit...", IDC_ADV4_BTN, 160, 77, 70, 15 - GROUPBOX "Zznam hlasu", -1, 7, 105, 230, 60 + PUSHBUTTON "&Upřesnit...", IDC_ADV4_BTN, 160, 77, 70, 15 + GROUPBOX "Záznam hlasu", -1, 7, 105, 230, 60 ICON IDI_MICROPHONE_ICON, IDI_MICROPHONE_ICON, 15, 118, 32, 32 - LTEXT "V&choz zazen:", -1, 50, 118, 80, 17 + LTEXT "Vý&chozí zařízení:", -1, 50, 118, 80, 17 COMBOBOX IDC_DEVICE_VOICE_REC_LIST, 50, 128, 180, 46, CBS_DROPDOWNLIST PUSHBUTTON "H&lasitost...", IDC_VOLUME5_BTN, 85, 145, 70, 15 - PUSHBUTTON "U&pesnit...", IDC_ADV5_BTN, 160, 145, 70, 15 + PUSHBUTTON "U&přesnit...", IDC_ADV5_BTN, 160, 145, 70, 15 PUSHBUTTON "&Otestovat hardware...", IDC_TEST_HARDWARE, 160, 175, 70, 15 END @@ -102,10 +102,10 @@ END IDD_SAVE_SCHEME_AS DIALOG 9, 23, 225, 54 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION -CAPTION "Uloit schma jako" +CAPTION "Uložit schéma jako" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Uloit toto zvukov schma jako:", -1, 7, 7, 212, 9 + LTEXT "&Uložit toto zvukové schéma jako:", -1, 7, 7, 212, 9 EDITTEXT 8960, 7, 17, 211, 14, ES_AUTOHSCROLL DEFPUSHBUTTON "OK", IDOK, 93, 36, 60, 14 PUSHBUTTON "Storno", IDCANCEL, 157, 36, 60, 14 @@ -117,156 +117,156 @@ CAPTION "Reproduktory" FONT 8, "MS Shell Dlg" BEGIN ICON 4379, -1, 7, 8, 20, 20 - LTEXT "Zvolte rozmstn reproduktor, kter nejvce odpovd souasnmu.", -1, 36, 8, 215, 27 + LTEXT "Zvolte rozmístění reproduktorů, které nejvíce odpovídá současnému.", -1, 36, 8, 215, 27 CONTROL 110, 5376, "STATIC", SS_BITMAP | SS_CENTERIMAGE, 37, 40, 209, 112, WS_EX_TRANSPARENT - LTEXT "&Rozmstn reproduktor:", 8502, 53, 169, 55, 10 + LTEXT "&Rozmístění reproduktorů:", 8502, 53, 169, 55, 10 COMBOBOX 5401, 52, 182, 170, 200, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP END IDD_PERFORMANCE1 DIALOG 0, 0, 257, 218 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Vkon" +CAPTION "Výkon" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Tato nastaven ovlivuj, jak systm ReactOS pehrv zvuk. Mohou pomoci pi een problm se zvukem.", 8492, 34, 7, 218, 23 - GROUPBOX "Pehrvn zvuku", 8494, 7, 32, 243, 152 + LTEXT "Tato nastavení ovlivňují, jak systém ReactOS přehrává zvuk. Mohou pomoci při řešení problémů se zvukem.", 8492, 34, 7, 218, 23 + GROUPBOX "Přehrávání zvuku", 8494, 7, 32, 243, 152 ICON 4379, 8512, 8, 8, 20, 20 - LTEXT "&Hardwarov akcelerace:", 8495, 13, 56, 111, 14 + LTEXT "&Hardwarová akcelerace:", 8495, 13, 56, 111, 14 CONTROL "Slider1", 5395, "MSCTLS_TRACKBAR32", WS_GROUP | WS_TABSTOP | 0x00000401, 150, 54, 62, 18 - LTEXT "&Kvalita pevodu vzorkovn:", 8496, 13, 123, 103, 14 + LTEXT "&Kvalita převodu vzorkování:", 8496, 13, 123, 103, 14 CONTROL "Slider1", 5396, "MSCTLS_TRACKBAR32", WS_TABSTOP | 0x00000401, 150, 121, 62, 18 - PUSHBUTTON "&Obnovit vchoz", 5400, 7, 191, 110, 14 - LTEXT "dn", 8497, 128, 56, 21, 10 - LTEXT "Pln", 8498, 214, 56, 21, 9 - LTEXT "Dobr", 8499, 128, 123, 21, 10 - LTEXT "Nejlep", 8500, 214, 123, 23, 9 - LTEXT "Tento string popisuje hardwarov nastaven pro zachytvac zazen", 5399, 13, 145, 227, 21 - LTEXT "Tento string popisuje hardwarov nastaven pro vykreslovac zazen", 5398, 13, 78, 227, 22 + PUSHBUTTON "&Obnovit výchozí", 5400, 7, 191, 110, 14 + LTEXT "Žádná", 8497, 128, 56, 21, 10 + LTEXT "Plná", 8498, 214, 56, 21, 9 + LTEXT "Dobrá", 8499, 128, 123, 21, 10 + LTEXT "Nejlepší", 8500, 214, 123, 23, 9 + LTEXT "Tento string popisuje hardwarové nastavení pro zachytávací zařízení", 5399, 13, 145, 227, 21 + LTEXT "Tento string popisuje hardwarové nastavení pro vykreslovací zařízení", 5398, 13, 78, 227, 22 END IDD_PERFORMANCE2 DIALOG 0, 0, 257, 218 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Vkon" +CAPTION "Výkon" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Tato nastaven ovlivuj, jak systm ReactOS zaznamenv zvuk. Mohou pomoci pi een problm se zvukem.", 8492, 34, 7, 217, 20 - GROUPBOX "Zznam zvuku", 8494, 7, 29, 242, 122 + LTEXT "Tato nastavení ovlivňují, jak systém ReactOS zaznamenává zvuk. Mohou pomoci při řešení problémů se zvukem.", 8492, 34, 7, 217, 20 + GROUPBOX "Záznam zvuku", 8494, 7, 29, 242, 122 ICON 4380, 8512, 8, 7, 20, 20 - LTEXT "&Hardwarov akcelerace:", 8495, 13, 46, 103, 17 + LTEXT "&Hardwarová akcelerace:", 8495, 13, 46, 103, 17 CONTROL "Slider1", 5395, "MSCTLS_TRACKBAR32", WS_GROUP | WS_TABSTOP | 0x00000401, 150, 43, 62, 18 - LTEXT "&Kvalita pevodu vzorkovn:", 8496, 13, 103, 103, 17 + LTEXT "&Kvalita převodu vzorkování:", 8496, 13, 103, 103, 17 CONTROL "Slider1", 5396, "MSCTLS_TRACKBAR32", WS_TABSTOP | 0x00000401, 150, 101, 62, 18 - PUSHBUTTON "&Obnovit vchoz", 5400, 9, 158, 110, 14 - LTEXT "dn", 8497, 125, 46, 24, 10 - LTEXT "Pln", 8498, 217, 46, 19, 9 - LTEXT "Dobr", 8499, 125, 103, 24, 10 - LTEXT "Nejlep", 8500, 217, 103, 19, 9 - LTEXT "Tento string popisuje hardwarov nastaven pro zachytvac zazen", 5399, 13, 125, 222, 21 - LTEXT "Tento string popisuje hardwarov nastaven pro vykreslovac zazen", 5398, 13, 68, 218, 24 + PUSHBUTTON "&Obnovit výchozí", 5400, 9, 158, 110, 14 + LTEXT "Žádná", 8497, 125, 46, 24, 10 + LTEXT "Plná", 8498, 217, 46, 19, 9 + LTEXT "Dobrá", 8499, 125, 103, 24, 10 + LTEXT "Nejlepší", 8500, 217, 103, 19, 9 + LTEXT "Tento string popisuje hardwarové nastavení pro zachytávací zařízení", 5399, 13, 125, 222, 21 + LTEXT "Tento string popisuje hardwarové nastavení pro vykreslovací zařízení", 5398, 13, 68, 218, 24 END IDD_SETUP1 DIALOG 0, 0, 227, 206 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION -CAPTION "Nastaven" +CAPTION "Nastavení" FONT 8, "MS Shell Dlg" BEGIN GROUPBOX "ReactOS zvuk", 10243, 7, 5, 213, 192 ICON 4393, 10241, 26, 26, 20, 20 - LTEXT "Tento pota neme pehrvat zvuk, protoe sluba zvuku systmu ReactOS nen sputna.", 10245, 60, 25, 150, 40 + LTEXT "Tento počítač nemůže přehrávat zvuk, protože služba zvuku systému ReactOS není spuštěna.", 10245, 60, 25, 150, 40 AUTOCHECKBOX "&Spustit ReactOS zvuk", 10253, 60, 68, 150, 9 - LTEXT "Poznmky", 10246, 58, 87, 150, 11 - LTEXT "1. Pro sputn tto sluby je teba bt sprvcem potae. Pokud nejste pihleni jako sprvce, bude vydno jmno a heslo sprvce.", 10247, 60, 100, 150, 40 - LTEXT "2. Po sputn ReactOS zvuku bude teba restartovat pota.", 10248, 60, 140, 150, 40 + LTEXT "Poznámky", 10246, 58, 87, 150, 11 + LTEXT "1. Pro spuštění této služby je třeba být správcem počítače. Pokud nejste přihlášeni jako správce, bude vyžádáno jméno a heslo správce.", 10247, 60, 100, 150, 40 + LTEXT "2. Po spuštění ReactOS zvuku bude třeba restartovat počítač.", 10248, 60, 140, 150, 40 END IDD_MULTICHANNEL DIALOG 0, 0, 227, 218 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION -CAPTION "Vcekanlov zvuk" +CAPTION "Vícekanálový zvuk" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Tady bude popis.", 9506, 8, 4, 212, 24 - LTEXT "Nzk", 9473, 65, 31, 14, 8 + LTEXT "Nízká", 9473, 65, 31, 14, 8 LTEXT "", 9472, 5, 31, 55, 8 CONTROL "Slider1", 9475, "MSCTLS_TRACKBAR32", WS_TABSTOP | 0x00000401, 87, 29, 108, 17 - LTEXT "Vysok", 9474, 202, 31, 17, 8 - LTEXT "Nzk", 9477, 65, 50, 14, 8 + LTEXT "Vysoká", 9474, 202, 31, 17, 8 + LTEXT "Nízká", 9477, 65, 50, 14, 8 LTEXT "", 9476, 5, 50, 55, 8 CONTROL "Slider1", 9479, "MSCTLS_TRACKBAR32", WS_TABSTOP | 0x00000401, 87, 48, 108, 17 - LTEXT "Vysok", 9478, 202, 50, 17, 8 - LTEXT "Nzk", 9481, 65, 69, 14, 8 + LTEXT "Vysoká", 9478, 202, 50, 17, 8 + LTEXT "Nízká", 9481, 65, 69, 14, 8 LTEXT "", 9480, 5, 69, 55, 8 CONTROL "Slider1", 9483, "MSCTLS_TRACKBAR32", WS_TABSTOP | 0x00000401, 87, 67, 108, 17 - LTEXT "Vysok", 9482, 202, 69, 17, 8 - LTEXT "Nzk", 9485, 65, 88, 14, 8 + LTEXT "Vysoká", 9482, 202, 69, 17, 8 + LTEXT "Nízká", 9485, 65, 88, 14, 8 LTEXT "", 9484, 5, 88, 55, 8 CONTROL "Slider1", 9487, "MSCTLS_TRACKBAR32", WS_TABSTOP | 0x00000401, 87, 86, 108, 17 - LTEXT "Vysok", 9486, 202, 88, 17, 8 - LTEXT "Nzk", 9489, 65, 107, 14, 8 + LTEXT "Vysoká", 9486, 202, 88, 17, 8 + LTEXT "Nízká", 9489, 65, 107, 14, 8 LTEXT "", 9488, 5, 107, 55, 8 CONTROL "Slider1", 9491, "MSCTLS_TRACKBAR32", WS_TABSTOP | 0x00000401, 87, 105, 108, 17 - LTEXT "Vysok", 9490, 202, 107, 17, 8 - LTEXT "Nzk", 9493, 65, 126, 14, 8 + LTEXT "Vysoká", 9490, 202, 107, 17, 8 + LTEXT "Nízká", 9493, 65, 126, 14, 8 LTEXT "", 9492, 5, 126, 55, 8 CONTROL "Slider1", 9495, "MSCTLS_TRACKBAR32", WS_TABSTOP | 0x00000401, 87, 124, 108, 17 - LTEXT "Vysok", 9494, 202, 126, 17, 8 - LTEXT "Nzk", 9497, 65, 145, 14, 8 + LTEXT "Vysoká", 9494, 202, 126, 17, 8 + LTEXT "Nízká", 9497, 65, 145, 14, 8 LTEXT "", 9496, 5, 145, 55, 8 CONTROL "Slider1", 9499, "MSCTLS_TRACKBAR32", WS_TABSTOP | 0x00000401, 87, 143, 108, 17 - LTEXT "Vysok", 9498, 202, 145, 17, 8 - LTEXT "Nzk", 9501, 65, 164, 14, 8 + LTEXT "Vysoká", 9498, 202, 145, 17, 8 + LTEXT "Nízká", 9501, 65, 164, 14, 8 LTEXT "", 9500, 5, 164, 55, 8 CONTROL "Slider1", 9503, "MSCTLS_TRACKBAR32", WS_TABSTOP | 0x00000401, 87, 162, 108, 17 - LTEXT "Vysok", 9502, 202, 164, 17, 8 - AUTOCHECKBOX "&Pohybovat vemi posuvnky najednou", 9504, 5, 185, 216, 9 - PUSHBUTTON "&Obnovit vchoz", 9505, 110, 199, 110, 14 + LTEXT "Vysoká", 9502, 202, 164, 17, 8 + AUTOCHECKBOX "&Pohybovat všemi posuvníky najednou", 9504, 5, 185, 216, 9 + PUSHBUTTON "&Obnovit výchozí", 9505, 110, 199, 110, 14 END IDD_SETUP2 DIALOG 0, 0, 227, 206 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION -CAPTION "Nastaven" +CAPTION "Nastavení" FONT 8, "MS Shell Dlg" BEGIN GROUPBOX "ReactOS zvuk", 10259, 7, 5, 213, 192 ICON 4394, 10257, 25, 25, 20, 20 - LTEXT "Sluba zvuku systmu ReactOS je nyn sputna. Zvuk nicmn nemus fungovat sprvn, dokud nebude systm ReactOS restartovn. Pokud chcete restartovat nyn, nejdve ulote svou prci a ukonete vechny sputn programy.", 10261, 60, 25, 150, 50 - LTEXT "Klepnutm na tlatko OK restartujete systm ReactOS.", 10262, 60, 75, 150, 20 - LTEXT "Pokud klepnete na tlatko Storno, bude teba pota restartovat pozdji, aby ReactOS zvuk fungoval sprvn.", 10263, 60, 100, 150, 40 + LTEXT "Služba zvuku systému ReactOS je nyní spuštěna. Zvuk nicméně nemusí fungovat správně, dokud nebude systém ReactOS restartován. Pokud chcete restartovat nyní, nejdříve uložte svou práci a ukončete všechny spuštěné programy.", 10261, 60, 25, 150, 50 + LTEXT "Klepnutím na tlačítko OK restartujete systém ReactOS.", 10262, 60, 75, 150, 20 + LTEXT "Pokud klepnete na tlačítko Storno, bude třeba počítač restartovat později, aby ReactOS zvuk fungoval správně.", 10263, 60, 100, 150, 40 END STRINGTABLE BEGIN - IDS_CPLNAME "Zvuky a zvukov zazen" - IDS_CPLDESCRIPTION "Uprav zvukov schma Vaeho potae, nebo nastav reproduktory a nahrvac zazen." - IDS_NO_SOUND "(Nen)" + IDS_CPLNAME "Zvuky a zvuková zařízení" + IDS_CPLDESCRIPTION "Upraví zvukové schéma Vašeho počítače, nebo nastaví reproduktory a nahrávací zařízení." + IDS_NO_SOUND "(Není)" IDS_NO_DEVICES "No Devices" 5825 "Chyba programu" - 5826 "Ukonen programu" - 5827 "Varovn pi kritickm stavu baterie" - 5828 "Pipojen zazen" - 5829 "Odpojen zazen" - 5830 "Nezdaen pipojen zazen" - 5831 "Vysypn koe" - 5832 "Varovn pi nzkm stavu baterie" + 5826 "Ukončení programu" + 5827 "Varování při kritickém stavu baterie" + 5828 "Připojení zařízení" + 5829 "Odpojení zařízení" + 5830 "Nezdařené připojení zařízení" + 5831 "Vysypání koše" + 5832 "Varování při nízkém stavu baterie" 5833 "Maximalizace" - 5834 "Vyvoln pkazu z nabdky" - 5835 "Vyvoln nabdky" + 5834 "Vyvolání příkazu z nabídky" + 5835 "Vyvolání nabídky" 5836 "Minimalizace" - 5837 "Oznmen o nov pot" - 5838 "Zahjen navigace" - 5839 "Sputn programu" - 5840 "Dokonen tisku" - 5841 "Obnoven z maximalizace" - 5842 "Obnoven z minimalizace" - 5843 "Hvzdika" - 5844 "Vchoz nastaven zvuku" - 5845 "Vstraha" - 5846 "Ukonen systmu ReactOS" - 5847 "Kritick zastaven" - 5848 "Systmov oznmen" - 5849 "Otzka" - 5850 "Sputn systmu ReactOS" - 5851 "Oteven nabdky Start" - 5852 "Odhlen od systmu ReactOS" - 5853 "Pihlen k systmu ReactOS" + 5837 "Oznámení o nové poště" + 5838 "Zahájení navigace" + 5839 "Spuštění programu" + 5840 "Dokončení tisku" + 5841 "Obnovení z maximalizace" + 5842 "Obnovení z minimalizace" + 5843 "Hvězdička" + 5844 "Výchozí nastavení zvuku" + 5845 "Výstraha" + 5846 "Ukončení systému ReactOS" + 5847 "Kritické zastavení" + 5848 "Systémová oznámení" + 5849 "Otázka" + 5850 "Spuštění systému ReactOS" + 5851 "Otevření nabídky Start" + 5852 "Odhlášení od systému ReactOS" + 5853 "Přihlášení k systému ReactOS" 5854 "ReactOS Explorer" END diff --git a/reactos/dll/cpl/mmsys/mmsys.rc b/reactos/dll/cpl/mmsys/mmsys.rc index b8992f7d09e..0d2cc8833f0 100644 --- a/reactos/dll/cpl/mmsys/mmsys.rc +++ b/reactos/dll/cpl/mmsys/mmsys.rc @@ -66,9 +66,6 @@ IDB_SPEAKIMG BITMAP "resources/speaker.bmp" #ifdef LANGUAGE_BG_BG #include "lang/bg-BG.rc" #endif -#ifdef LANGUAGE_CS_CZ - #include "lang/cs-CZ.rc" -#endif #ifdef LANGUAGE_DE_DE #include "lang/de-DE.rc" #endif @@ -112,6 +109,9 @@ IDB_SPEAKIMG BITMAP "resources/speaker.bmp" /* UTF-8 */ #pragma code_page(65001) +#ifdef LANGUAGE_CS_CZ + #include "lang/cs-CZ.rc" +#endif #ifdef LANGUAGE_HE_IL #include "lang/he-IL.rc" #endif diff --git a/reactos/dll/cpl/powercfg/lang/cs-CZ.rc b/reactos/dll/cpl/powercfg/lang/cs-CZ.rc index 52afc5b3bc1..5b747dcb77d 100644 --- a/reactos/dll/cpl/powercfg/lang/cs-CZ.rc +++ b/reactos/dll/cpl/powercfg/lang/cs-CZ.rc @@ -2,142 +2,142 @@ LANGUAGE LANG_CZECH, SUBLANG_DEFAULT IDD_PROPPAGEPOWERSHEMES DIALOGEX 0, 0, 252, 237 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Schmata napjen" +CAPTION "Schémata napájení" FONT 8, "MS Shell Dlg" BEGIN ICON IDI_ACDC, IDI_ACDC, 7, 7, 28, 22 - LTEXT "Vyberte napjec schma, kter se nejvce hod pro tento pota. Vechny zmny nastaven se ulo do vybranho schmatu.", -1, 37, 6, 209, 36 - GROUPBOX "&Schma napjen", -1, 6, 43, 240, 50 + LTEXT "Vyberte napájecí schéma, které se nejvíce hodí pro tento počítač. Všechny změny nastavení se uloží do vybraného schématu.", -1, 37, 6, 209, 36 + GROUPBOX "&Schéma napájení", -1, 6, 43, 240, 50 COMBOBOX IDC_ENERGYLIST, 14, 54, 224, 92, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL - PUSHBUTTON "&Uloit jako...", IDC_SAVEAS_BTN, 109, 72, 70, 14, WS_DISABLED + PUSHBUTTON "&Uložit jako...", IDC_SAVEAS_BTN, 109, 72, 70, 14, WS_DISABLED PUSHBUTTON "&Odstranit", IDC_DELETE_BTN, 183, 72, 55, 14, WS_DISABLED - GROUPBOX "Neznm", IDC_GRPDETAIL, 6, 95, 240, 136 - LTEXT "Pokud je pota:", IDC_SAT, 12, 109, 60, 12 - LTEXT "Pipojen", IDC_SAC, 123, 110, 45, 15 + GROUPBOX "Neznámý", IDC_GRPDETAIL, 6, 95, 240, 136 + LTEXT "Pokud je počítač:", IDC_SAT, 12, 109, 60, 12 + LTEXT "Připojen", IDC_SAC, 123, 110, 45, 15 ICON IDI_AC, IDC_IAC, 97, 108, 21, 20 LTEXT "Funguje na baterie", IDC_SDC, 195, 110, 45, 15 ICON IDI_DC, IDC_IDC, 170, 108, 21, 20 LTEXT "Vypnout &monitor:", IDC_MONITOR, 13, 148, 84, 10 COMBOBOX IDC_MONITORACLIST, 100, 145, 65, 150, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_MONITORDCLIST, 173, 145, 65, 150, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "Vypnout pevn &disky:", IDC_DISK, 13, 171, 84, 10 + LTEXT "Vypnout pevné &disky:", IDC_DISK, 13, 171, 84, 10 COMBOBOX IDC_DISKACLIST, 100, 167, 65, 150, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_DISKDCLIST, 173, 167, 65, 150, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "sporn &reim:", IDC_STANDBY, 13, 191, 84, 10 + LTEXT "Úsporný &režim:", IDC_STANDBY, 13, 191, 84, 10 COMBOBOX IDC_STANDBYACLIST, 100, 188, 65, 150, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_STANDBYDCLIST, 173, 188, 65, 150, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "&Reim spnku:", IDC_HYBERNATE, 13, 212, 84, 10 + LTEXT "&Režim spánku:", IDC_HYBERNATE, 13, 212, 84, 10 COMBOBOX IDC_HYBERNATEACLIST, 100, 209, 65, 150, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_HYBERNATEDCLIST, 173, 209, 65, 150, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP END IDD_PROPPAGEALARMS DIALOGEX 0, 0, 252, 237 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Varovn" +CAPTION "Varování" FONT 8, "MS Shell Dlg" BEGIN - GROUPBOX "Varovn o nzkm stavu baterie", -1, 10, 15, 235, 95 - CONTROL "Aktivovat &varovn o nzkm stavu baterie, kdy rove nabit doshne:", IDC_ALARM1, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 15, 17, 190, 15 - LTEXT "neznm", IDC_ALARMVALUE1, 209, 20, 33, 10 + GROUPBOX "Varování o nízkém stavu baterie", -1, 10, 15, 235, 95 + CONTROL "Aktivovat &varování o nízkém stavu baterie, když úroveň nabití dosáhne:", IDC_ALARM1, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 15, 17, 190, 15 + LTEXT "neznámá", IDC_ALARMVALUE1, 209, 20, 33, 10 LTEXT "0%", -1, 28, 43, 15, 10 CONTROL "Slider1", IDC_ALARMBAR1, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_TABSTOP, 42, 45, 170, 15 LTEXT "100%", -1, 214, 43, 25, 10 - PUSHBUTTON "&Akce pi varovn...", -1, 17, 69, 70, 14, WS_DISABLED - LTEXT "Oznmen:", -1, 95, 71, 57, 10 - LTEXT "Neznm", IDC_ALARMMSG1, 154, 71, 84, 10 + PUSHBUTTON "&Akce při varování...", -1, 17, 69, 70, 14, WS_DISABLED + LTEXT "Oznámení:", -1, 95, 71, 57, 10 + LTEXT "Neznámé", IDC_ALARMMSG1, 154, 71, 84, 10 LTEXT "Akce:", -1, 95, 83, 55, 10 - LTEXT "Neznm", IDC_ALARMAKTION1, 154, 83, 84, 10 + LTEXT "Neznámá", IDC_ALARMAKTION1, 154, 83, 84, 10 LTEXT "Spustit program:", -1, 95, 95, 55, 10 - LTEXT "Neznm", IDC_ALARMPROG1, 154, 95, 84, 10 - GROUPBOX "Varovn o kritickm stavu baterie", -1, 6, 120, 239, 106 - CONTROL "Aktivovat varovn o &kritickm stavu baterie, kdy rove nabit doshne:", IDC_ALARM2, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 15, 131, 180, 15 - LTEXT "neznm", IDC_ALARMVALUE2, 209, 133, 33, 10 + LTEXT "Neznámý", IDC_ALARMPROG1, 154, 95, 84, 10 + GROUPBOX "Varování o kritickém stavu baterie", -1, 6, 120, 239, 106 + CONTROL "Aktivovat varování o &kritickém stavu baterie, když úroveň nabití dosáhne:", IDC_ALARM2, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 15, 131, 180, 15 + LTEXT "neznámá", IDC_ALARMVALUE2, 209, 133, 33, 10 LTEXT "0%", -1, 28, 154, 15, 10 CONTROL "Slider1", IDC_ALARMBAR2, "msctls_trackbar32", TBS_HORZ | TBS_AUTOTICKS | WS_TABSTOP, 42, 158, 170, 15 LTEXT "100%", -1, 214, 154, 25, 10 - PUSHBUTTON "Akce &pi varovn...", -1, 17, 183, 70, 14, WS_DISABLED - LTEXT "Oznmen:", -1, 95, 185, 50, 10 - LTEXT "Neznm", IDC_ALARMMSG2, 154, 185, 84, 10 + PUSHBUTTON "Akce &při varování...", -1, 17, 183, 70, 14, WS_DISABLED + LTEXT "Oznámení:", -1, 95, 185, 50, 10 + LTEXT "Neznámé", IDC_ALARMMSG2, 154, 185, 84, 10 LTEXT "Akce:", -1, 95, 198, 45, 10 - LTEXT "Neznm", IDC_ALARMAKTION2, 154, 198, 84, 10 + LTEXT "Neznámá", IDC_ALARMAKTION2, 154, 198, 84, 10 LTEXT "Spustit program:", -1, 95, 211, 50, 10 - LTEXT "Neznm", IDC_ALARMPROG2, 154, 211, 84, 10 + LTEXT "Neznámý", IDC_ALARMPROG2, 154, 211, 84, 10 END IDD_PROPPAGEADVANCED DIALOGEX 0, 0, 252, 237 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Upesnit" +CAPTION "Upřesnit" FONT 8, "MS Shell Dlg" BEGIN ICON IDI_ACDC, IDI_ACDC, 7, 7, 20, 20 - LTEXT "Vyberte, kter nastaven snen spoteby chcete pout.", -1, 37, 6, 207, 20 - GROUPBOX "Monosti", -1, 6, 30, 240, 65 - CONTROL "Vdy zobrazovat &ikonu na hlavnm panelu", IDC_SYSTRAYBATTERYMETER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 17, 43, 220, 10 - CONTROL "Dotzat se na &heslo pi pechodu z spornho reimu", IDC_PASSWORDLOGON, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 17, 60, 220, 10 - CONTROL "&Snit jas displeje pi chodu na baterie.", IDC_VIDEODIMDISPLAY, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 17, 78, 220, 10 - GROUPBOX "Tlatka napjen", -1, 6, 101, 240, 127 - LTEXT "&Pi sklopen displeje penosnho potae:", IDC_SLIDCLOSE, 15, 115, 222, 10 + LTEXT "Vyberte, které nastavení snížené spotřeby chcete použít.", -1, 37, 6, 207, 20 + GROUPBOX "Možnosti", -1, 6, 30, 240, 65 + CONTROL "Vždy zobrazovat &ikonu na hlavním panelu", IDC_SYSTRAYBATTERYMETER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 17, 43, 220, 10 + CONTROL "Dotázat se na &heslo při přechodu z úsporného režimu", IDC_PASSWORDLOGON, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 17, 60, 220, 10 + CONTROL "&Snížit jas displeje při chodu na baterie.", IDC_VIDEODIMDISPLAY, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 17, 78, 220, 10 + GROUPBOX "Tlačítka napájení", -1, 6, 101, 240, 127 + LTEXT "&Při sklopení displeje přenosného počítače:", IDC_SLIDCLOSE, 15, 115, 222, 10 COMBOBOX IDC_LIDCLOSE, 15, 127, 220, 90, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP - LTEXT "Pi stisknut tlatka &napjen:", IDC_SPOWERBUTTON, 15, 153, 222, 10 + LTEXT "Při stisknutí tlačítka &napájení:", IDC_SPOWERBUTTON, 15, 153, 222, 10 COMBOBOX IDC_POWERBUTTON, 15, 165, 220, 90, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP - LTEXT "Pi stisknut tlatka reimu &spnku:", IDC_SSLEEPBUTTON, 15, 191, 222, 10 + LTEXT "Při stisknutí tlačítka režimu &spánku:", IDC_SSLEEPBUTTON, 15, 191, 222, 10 COMBOBOX IDC_SLEEPBUTTON, 15, 203, 220, 90, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP END IDD_PROPPAGEHIBERNATE DIALOGEX 0, 0, 252, 237 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Reim spnku" +CAPTION "Režim spánku" FONT 8, "MS Shell Dlg" BEGIN ICON IDI_HIBERNATE, IDI_HIBERNATE, 7, 7, 20, 20 - LTEXT "Pokud V pota pejde do reimu spnku, ulo obsah sv pamti na pevn disk a vypne se. Po optovnm sputn se vrt do pvodnho stavu.", -1, 37, 6, 210, 35 - GROUPBOX "Reim spnku", -1, 6, 41, 240, 32 - CONTROL "Zapnout funkci reim &spnku", IDC_HIBERNATEFILE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 17, 55, 210, 10 - GROUPBOX "Msto na disku potebn pro reim spnku", -1, 6, 80, 240, 76 - LTEXT "Voln msto:", -1, 15, 95, 140, 10 - LTEXT "Neznm", IDC_FREESPACE, 160, 95, 80, 10 - LTEXT "Potebn msto na disku:", -1, 15, 115, 140, 10 - LTEXT "Neznm", IDC_SPACEFORHIBERNATEFILE, 160, 115, 80, 10 - LTEXT "Pro funkci reim spnku muste uvolnit msto na disku. ", IDC_TOLESSFREESPACE, 15, 135, 224, 20 + LTEXT "Pokud Váš počítač přejde do režimu spánku, uloží obsah své paměti na pevný disk a vypne se. Po opětovném spuštění se vrátí do původního stavu.", -1, 37, 6, 210, 35 + GROUPBOX "Režim spánku", -1, 6, 41, 240, 32 + CONTROL "Zapnout funkci režim &spánku", IDC_HIBERNATEFILE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 17, 55, 210, 10 + GROUPBOX "Místo na disku potřebné pro režim spánku", -1, 6, 80, 240, 76 + LTEXT "Volné místo:", -1, 15, 95, 140, 10 + LTEXT "Neznámé", IDC_FREESPACE, 160, 95, 80, 10 + LTEXT "Potřebné místo na disku:", -1, 15, 115, 140, 10 + LTEXT "Neznámé", IDC_SPACEFORHIBERNATEFILE, 160, 115, 80, 10 + LTEXT "Pro funkci režim spánku musíte uvolnit místo na disku. ", IDC_TOLESSFREESPACE, 15, 135, 224, 20 END STRINGTABLE BEGIN - IDS_CPLNAME_1 "Monosti napjen" - IDS_CPLDESCRIPTION_1 "Nastav monosti napjen a eten energi pro tento pota." + IDS_CPLNAME_1 "Možnosti napájení" + IDS_CPLDESCRIPTION_1 "Nastaví možnosti napájení a šetření energií pro tento počítač." IDS_PROCENT "%i%%" IDS_SOUND "Zvuk" IDS_TEXT "Text" - IDS_CONFIG1 "Nastaven pro schma napjen %1" - IDS_CONFIG2 "Pokroil nastaven pro %1" - IDS_SIZEBYTS "%i byt" + IDS_CONFIG1 "Nastavení pro schéma napájení %1" + IDS_CONFIG2 "Pokročilá nastavení pro %1" + IDS_SIZEBYTS "%i bytů" IDS_SIZEMB "%i MB" - IDS_NOACTION "Nedlat nic" - IDS_PowerActionNone1 "dn akce" - IDS_PowerActionUnknown "Neznm" - IDS_PowerActionSleep "sporn reim" - IDS_PowerActionHibernate "Reim spnku" + IDS_NOACTION "Nedělat nic" + IDS_PowerActionNone1 "Žádná akce" + IDS_PowerActionUnknown "Neznámý" + IDS_PowerActionSleep "Úsporný režim" + IDS_PowerActionHibernate "Režim spánku" IDS_PowerActionShutdown "Vypnout" IDS_PowerActionRestart "Restartovat" - IDS_PowerActionShutdownOff "Vypnout a odpojit napjen" - IDS_PowerActionWarmEject "Zeptat se na poadovanou akci" - IDS_PowerActionNone2 "Nen" - IDS_TIMEOUT1 "Po 1 minut" - IDS_TIMEOUT2 "Po 2 minutch" - IDS_TIMEOUT3 "Po 3 minutch" - IDS_TIMEOUT4 "Po 5 minutch" - IDS_TIMEOUT5 "Po 10 minutch" - IDS_TIMEOUT6 "Po 15 minutch" - IDS_TIMEOUT7 "Po 20 minutch" - IDS_TIMEOUT8 "Po 25 minutch" - IDS_TIMEOUT9 "Po 30 minutch" - IDS_TIMEOUT10 "Po 45 minutch" - IDS_TIMEOUT11 "Po 1 hodin" - IDS_TIMEOUT12 "Po 2 hodinch" - IDS_TIMEOUT13 "Po 3 hodinch" - IDS_TIMEOUT14 "Po 4 hodinch" - IDS_TIMEOUT15 "Po 5 hodinch" + IDS_PowerActionShutdownOff "Vypnout a odpojit napájení" + IDS_PowerActionWarmEject "Zeptat se na požadovanou akci" + IDS_PowerActionNone2 "Není" + IDS_TIMEOUT1 "Po 1 minutě" + IDS_TIMEOUT2 "Po 2 minutách" + IDS_TIMEOUT3 "Po 3 minutách" + IDS_TIMEOUT4 "Po 5 minutách" + IDS_TIMEOUT5 "Po 10 minutách" + IDS_TIMEOUT6 "Po 15 minutách" + IDS_TIMEOUT7 "Po 20 minutách" + IDS_TIMEOUT8 "Po 25 minutách" + IDS_TIMEOUT9 "Po 30 minutách" + IDS_TIMEOUT10 "Po 45 minutách" + IDS_TIMEOUT11 "Po 1 hodině" + IDS_TIMEOUT12 "Po 2 hodinách" + IDS_TIMEOUT13 "Po 3 hodinách" + IDS_TIMEOUT14 "Po 4 hodinách" + IDS_TIMEOUT15 "Po 5 hodinách" IDS_TIMEOUT16 "Nikdy" - IDS_DEL_SCHEME "Opravdu si pejete smazat toto schma napjen?" - IDS_DEL_SCHEME_TITLE "Smazat schma" + IDS_DEL_SCHEME "Opravdu si přejete smazat toto schéma napájení?" + IDS_DEL_SCHEME_TITLE "Smazat schéma" END diff --git a/reactos/dll/cpl/powercfg/powercfg.rc b/reactos/dll/cpl/powercfg/powercfg.rc index 944667529f0..0a1e3ea2c9d 100644 --- a/reactos/dll/cpl/powercfg/powercfg.rc +++ b/reactos/dll/cpl/powercfg/powercfg.rc @@ -23,9 +23,6 @@ IDI_HIBERNATE ICON "resources/hibernate.ico" #ifdef LANGUAGE_BG_BG #include "lang/bg-BG.rc" #endif -#ifdef LANGUAGE_CS_CZ - #include "lang/cs-CZ.rc" -#endif #ifdef LANGUAGE_DE_DE #include "lang/de-DE.rc" #endif @@ -72,6 +69,9 @@ IDI_HIBERNATE ICON "resources/hibernate.ico" /* UTF-8 */ #pragma code_page(65001) +#ifdef LANGUAGE_CS_CZ + #include "lang/cs-CZ.rc" +#endif #ifdef LANGUAGE_HE_IL #include "lang/he-IL.rc" #endif diff --git a/reactos/dll/cpl/timedate/lang/cs-CZ.rc b/reactos/dll/cpl/timedate/lang/cs-CZ.rc index d747d5a2674..eb347436365 100644 --- a/reactos/dll/cpl/timedate/lang/cs-CZ.rc +++ b/reactos/dll/cpl/timedate/lang/cs-CZ.rc @@ -2,7 +2,7 @@ LANGUAGE LANG_CZECH, SUBLANG_DEFAULT IDD_DATETIMEPAGE DIALOGEX 0, 0, 252, 146 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Datum && as" +CAPTION "Datum && Čas" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "&Datum", -1, 4, 2, 122, 125 @@ -11,7 +11,7 @@ BEGIN CONTROL "", IDC_YEAR, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_NOTHOUSANDS | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | WS_BORDER | WS_GROUP, 120, 17, 50, 12 CONTROL "", IDC_MONTHCALENDAR, "MonthCalWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 11, 37, 108, 80, WS_EX_CLIENTEDGE - GROUPBOX "&as", -1, 132, 2, 113, 125 + GROUPBOX "&Čas", -1, 132, 2, 113, 125 CONTROL "", IDC_TIMEPICKER, "SysDateTimePick32", DTS_TIMEFORMAT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 144, 105, 90, 12 LTEXT "", IDC_TIMEZONE, 6, 132, 242, 11 CONTROL "", IDC_CLOCKWND, "ClockWndClass", WS_CHILD | WS_VISIBLE, 138, 12, 102, 89 @@ -19,39 +19,39 @@ END IDD_TIMEZONEPAGE DIALOGEX 0, 0, 252, 146 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "asov psmo" +CAPTION "Časové pásmo" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN COMBOBOX IDC_TIMEZONELIST, 5, 4, 241, 136, CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP CONTROL "", IDC_WORLD_BACKGROUND, "Static", SS_OWNERDRAW, 5, 20, 240, 110, WS_EX_STATICEDGE - AUTOCHECKBOX "Provdt zmnu na letn as a zpt automaticky", + AUTOCHECKBOX "Provádět změnu na letní čas a zpět automaticky", IDC_AUTODAYLIGHT, 6, 132, 242, 11, WS_VISIBLE | WS_GROUP | WS_TABSTOP END IDD_INETTIMEPAGE DIALOGEX 0, 0, 252, 146 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "as v Internetu" +CAPTION "Čas v Internetu" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN COMBOBOX IDC_SERVERLIST, 65, 22, 117, 136, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - AUTOCHECKBOX "Automaticky synchronizovat as s asovm serverem v Internetu", + AUTOCHECKBOX "Automaticky synchronizovat čas s časovým serverem v Internetu", IDC_AUTOSYNC, 11, 7, 241, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP LTEXT "Server:", IDC_SERVERTEXT, 34, 22, 28, 13 PUSHBUTTON "Aktualizovat", IDC_UPDATEBUTTON, 187, 22, 49, 14 LTEXT "", IDC_SUCSYNC, 16, 54, 214, 23 LTEXT "", IDC_NEXTSYNC, 12, 96, 137, 12 - LTEXT "Synchronizace me probhnout pouze v ppad, e je pota pipojen k sti Internet.", -1, 12, 114, 225, 25 + LTEXT "Synchronizace může proběhnout pouze v případě, že je počítač připojen k síti Internet.", -1, 12, 114, 225, 25 END STRINGTABLE BEGIN - IDS_CPLNAME "Datum/as" - IDS_CPLDESCRIPTION "Nastavuje datum, as a zmny asovho psma." - IDS_TIMEZONETEXT "Aktuln asov psmo: %s" - IDS_TIMEZONEINVALID "Neplatn" - IDS_TIMEZONEUNKNOWN "Neznm" - IDS_INETTIMESUCSYNC "as byl spn synchronizovn z %s %s v %s" - IDS_INETTIMENEXTSYNC "Dal synchronizace: %s v %s" - IDS_INETTIMESYNCING "Prosm ekejte, zatmco systm ReactOS synchronizuje as s %s" - IDS_INETTIMEERROR "Pi synchronizaci asu s %s nastala chyba" + IDS_CPLNAME "Datum/Čas" + IDS_CPLDESCRIPTION "Nastavuje datum, čas a změny časového pásma." + IDS_TIMEZONETEXT "Aktuální časové pásmo: %s" + IDS_TIMEZONEINVALID "Neplatné" + IDS_TIMEZONEUNKNOWN "Neznámé" + IDS_INETTIMESUCSYNC "Čas byl úspěšně synchronizován z %s %s v %s" + IDS_INETTIMENEXTSYNC "Další synchronizace: %s v %s" + IDS_INETTIMESYNCING "Prosím čekejte, zatímco systém ReactOS synchronizuje čas s %s" + IDS_INETTIMEERROR "Při synchronizaci času s %s nastala chyba" END diff --git a/reactos/dll/cpl/timedate/timedate.rc b/reactos/dll/cpl/timedate/timedate.rc index 701c66f0897..34df4980078 100644 --- a/reactos/dll/cpl/timedate/timedate.rc +++ b/reactos/dll/cpl/timedate/timedate.rc @@ -20,9 +20,6 @@ IDC_WORLD BITMAP "resources/world.bmp" #ifdef LANGUAGE_BG_BG #include "lang/bg-BG.rc" #endif -#ifdef LANGUAGE_CS_CZ - #include "lang/cs-CZ.rc" -#endif #ifdef LANGUAGE_DA_DK #include "lang/da-DK.rc" #endif @@ -78,6 +75,9 @@ IDC_WORLD BITMAP "resources/world.bmp" /* UTF-8 */ #pragma code_page(65001) +#ifdef LANGUAGE_CS_CZ + #include "lang/cs-CZ.rc" +#endif #ifdef LANGUAGE_HE_IL #include "lang/he-IL.rc" #endif diff --git a/reactos/dll/cpl/usrmgr/lang/cs-CZ.rc b/reactos/dll/cpl/usrmgr/lang/cs-CZ.rc new file mode 100644 index 00000000000..96d2228182f --- /dev/null +++ b/reactos/dll/cpl/usrmgr/lang/cs-CZ.rc @@ -0,0 +1,218 @@ +/* FILE: dll/cpl/usrmgr/lang/cs-CZ.rc + * TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com) + * UPDATED: 2014-04-21 + */ + + LANGUAGE LANG_CZECH, SUBLANG_DEFAULT + +/* Dialogs */ + +IDD_USERS DIALOGEX 0, 0, 252, 223 +STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Uživatelé" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "", IDC_USERS_LIST, "SysListView32", LVS_REPORT | LVS_EDITLABELS | LVS_SINGLESEL | + LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 7, 7, 238, 85, WS_EX_CLIENTEDGE + PUSHBUTTON "&Přidat...", IDC_USERS_ADD, 87, 98, 50, 14 + PUSHBUTTON "&Odebrat", IDC_USERS_REMOVE, 141, 98, 50, 14 + PUSHBUTTON "&Vlastnosti", IDC_USERS_PROPERTIES, 195, 98, 50, 14 + AUTOCHECKBOX "Vyžadovat uživatelské jméno a heslo při spuštění sytému.", IDC_USERS_STARTUP_REQUIRE, 10, 118, 200, 14, WS_DISABLED + PUSHBUTTON "Reset Password", IDC_USERS_RESET, 165, 200, 80, 14, WS_DISABLED +END + +IDD_GROUPS DIALOGEX 0, 0, 252, 223 +STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Skupiny" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "", IDC_GROUPS_LIST, "SysListView32", LVS_REPORT | LVS_EDITLABELS | LVS_SINGLESEL | + LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 7, 7, 238, 85, WS_EX_CLIENTEDGE + PUSHBUTTON "&Přidat...", IDC_GROUPS_ADD, 87, 98, 50, 14 + PUSHBUTTON "&Odebrat", IDC_GROUPS_REMOVE, 141, 98, 50, 14 + PUSHBUTTON "&Vlastnosti", IDC_GROUPS_PROPERTIES, 195, 98, 50, 14 +END + +IDD_EXTRA DIALOGEX 0, 0, 252, 223 +STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Další" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Tady zatím nic není", IDC_STATIC, 66, 90, 112, 8 +END + +IDD_USER_GENERAL DIALOGEX 0, 0, 252, 223 +STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Obecné" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "", IDC_USER_GENERAL_NAME, 7, 12, 112, 8 + LTEXT "Celé jméno:", -1, 7, 46, 63, 8 + EDITTEXT IDC_USER_GENERAL_FULL_NAME, 77, 43, 168, 13, ES_AUTOHSCROLL + LTEXT "Popis:", -1, 7, 64, 63, 8 + EDITTEXT IDC_USER_GENERAL_DESCRIPTION, 77, 61, 168, 13, ES_AUTOHSCROLL + AUTOCHECKBOX "Uživatel musí změnit heslo po prvním přihlášení", IDC_USER_GENERAL_FORCE_CHANGE, 7, 82, 210, 10 + AUTOCHECKBOX "Uživatel nemůže měnit heslo", IDC_USER_GENERAL_CANNOT_CHANGE, 7, 95, 210, 10 + AUTOCHECKBOX "Platnost hesla je neomezená", IDC_USER_GENERAL_NEVER_EXPIRES, 7, 108, 210, 10 + AUTOCHECKBOX "Účet je vypnutý", IDC_USER_GENERAL_DISABLED, 7, 121, 210, 10 + AUTOCHECKBOX "Účet je zamčený", IDC_USER_GENERAL_LOCKED, 7, 134, 210, 10 +END + +IDD_USER_MEMBERSHIP DIALOGEX 0, 0, 252, 223 +STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Členství" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Člen:", -1, 7, 7, 56, 8 + CONTROL "", IDC_USER_MEMBERSHIP_LIST, "SysListView32", LVS_REPORT | LVS_NOCOLUMNHEADER | + LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 7, 18, 238, 173, WS_EX_CLIENTEDGE + PUSHBUTTON "Přidat...", IDC_USER_MEMBERSHIP_ADD, 7, 197, 50, 14 + PUSHBUTTON "Odebrat", IDC_USER_MEMBERSHIP_REMOVE, 61, 197, 50, 14, WS_DISABLED +END + +IDD_USER_PROFILE DIALOGEX 0, 0, 252, 223 +STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Profil" +FONT 8, "MS Shell Dlg" +BEGIN + GROUPBOX "Uživatelský profil", -1, 7, 7, 238, 54 + LTEXT "Cesta k profilu:", -1, 16, 22, 55, 8 + EDITTEXT IDC_USER_PROFILE_PATH, 78, 19, 160, 13, ES_AUTOHSCROLL + LTEXT "Přihlašovací skript:", -1, 16, 40, 55, 8 + EDITTEXT IDC_USER_PROFILE_SCRIPT, 78, 37, 160, 13, ES_AUTOHSCROLL + GROUPBOX "Domovský adresář", -1, 7, 68, 238, 54 + AUTORADIOBUTTON "Místní cesta:", IDC_USER_PROFILE_LOCAL, 16, 83, 60, 10 + AUTORADIOBUTTON "Připojit:", IDC_USER_PROFILE_REMOTE, 16, 100, 60, 10 + EDITTEXT IDC_USER_PROFILE_LOCAL_PATH, 78, 81, 160, 13, ES_AUTOHSCROLL + COMBOBOX IDC_USER_PROFILE_DRIVE, 78, 99, 26, 160, CBS_DROPDOWNLIST | CBS_SORT | + WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "k:", -1, 112, 101, 12, 8 + EDITTEXT IDC_USER_PROFILE_REMOTE_PATH, 130, 99, 108, 13, ES_AUTOHSCROLL +END + +IDD_GROUP_GENERAL DIALOGEX 0, 0, 252, 223 +STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Obecné" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "", IDC_GROUP_GENERAL_NAME, 7, 12, 112, 8 + LTEXT "Popis:", -1, 7, 45, 46, 8 + EDITTEXT IDC_GROUP_GENERAL_DESCRIPTION, 65, 42, 180, 13, ES_AUTOHSCROLL + LTEXT "Členové:", -1, 7, 63, 45, 8 + CONTROL "", IDC_GROUP_GENERAL_MEMBERS, "SysListView32", LVS_REPORT | LVS_NOCOLUMNHEADER | + LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 7, 74, 238, 117, WS_EX_CLIENTEDGE + PUSHBUTTON "Přidat...", IDC_GROUP_GENERAL_ADD, 7, 197, 50, 14 + PUSHBUTTON "Odebrat", IDC_GROUP_GENERAL_REMOVE, 61, 197, 50, 14, WS_DISABLED +END + +IDD_CHANGE_PASSWORD DIALOGEX 0, 0, 267, 74 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_SHELLFONT +CAPTION "Změna hesla" +FONT 8, "MS Shell Dlg" +BEGIN + EDITTEXT IDC_EDIT_PASSWORD1, 107, 7, 153, 14, ES_AUTOHSCROLL | ES_PASSWORD + RTEXT "Nové heslo:", -1, 7, 10, 96, 8 + EDITTEXT IDC_EDIT_PASSWORD2, 107, 25, 153, 14, ES_AUTOHSCROLL | ES_PASSWORD + RTEXT "Nové heslo znovu:", -1, 7, 28, 96, 8 + DEFPUSHBUTTON "OK", IDOK, 156, 53, 50, 14 + PUSHBUTTON "Storno", IDCANCEL, 210, 53, 50, 14 +END + +IDD_USER_NEW DIALOGEX 0, 0, 267, 200 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_SHELLFONT +CAPTION "Nový uživatel" +FONT 8, "MS Shell Dlg" +BEGIN + EDITTEXT IDC_USER_NEW_NAME, 107, 7, 153, 14, ES_AUTOHSCROLL + RTEXT "Uživatelské jméno:", -1, 7, 10, 96, 8 + EDITTEXT IDC_USER_NEW_FULL_NAME, 107, 25, 153, 14, ES_AUTOHSCROLL + RTEXT "Celé jméno uživatele:", -1, 7, 28, 96, 8 + EDITTEXT IDC_USER_NEW_DESCRIPTION, 107, 43, 153, 14, ES_AUTOHSCROLL + RTEXT "Popis:", -1, 7, 46, 96, 8 + EDITTEXT IDC_USER_NEW_PASSWORD1, 107, 67, 153, 14, ES_AUTOHSCROLL | ES_PASSWORD + RTEXT "Heslo:", -1, 7, 70, 96, 8 + EDITTEXT IDC_USER_NEW_PASSWORD2, 107, 85, 153, 14, ES_AUTOHSCROLL | ES_PASSWORD + RTEXT "Heslo znovu:", -1, 7, 88, 96, 8 + AUTOCHECKBOX "Uživatel musí změnit heslo po prvním přihlášení", IDC_USER_NEW_FORCE_CHANGE, 7, 109, 200, 10 + AUTOCHECKBOX "Uživatel nemůže měnit heslo", IDC_USER_NEW_CANNOT_CHANGE, 7, 123, 200, 10, WS_DISABLED + AUTOCHECKBOX "Platnost hesla je neomezená", IDC_USER_NEW_NEVER_EXPIRES, 7, 137, 200, 10, WS_DISABLED + AUTOCHECKBOX "Účet je vypnutý", IDC_USER_NEW_DISABLED, 7, 151, 200, 10 + DEFPUSHBUTTON "OK", IDOK, 156, 179, 50, 14, WS_DISABLED + PUSHBUTTON "Storno", IDCANCEL, 210, 179, 50, 14 +END + +IDD_GROUP_NEW DIALOGEX 0, 0, 267, 74 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_SHELLFONT +CAPTION "Nová skupina" +FONT 8, "MS Shell Dlg" +BEGIN + EDITTEXT IDC_GROUP_NEW_NAME, 107, 7, 153, 14, ES_AUTOHSCROLL + RTEXT "Jméno skupiny:", -1, 7, 10, 96, 8 + EDITTEXT IDC_GROUP_NEW_DESCRIPTION, 107, 25, 153, 14, ES_AUTOHSCROLL + RTEXT "Popis:", -1, 7, 28, 96, 8 + DEFPUSHBUTTON "OK", IDOK, 156, 53, 50, 14, WS_DISABLED + PUSHBUTTON "Storno", IDCANCEL, 210, 53, 50, 14 +END + +IDD_USER_ADD_MEMBERSHIP DIALOGEX 0, 0, 252, 223 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_SHELLFONT +CAPTION "Členství ve skupině" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Člen:", -1, 7, 7, 56, 8 + CONTROL "", IDC_USER_ADD_MEMBERSHIP_LIST, "SysListView32", LVS_REPORT | LVS_SHOWSELALWAYS | + LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 7, 18, 238, 173, WS_EX_CLIENTEDGE + DEFPUSHBUTTON "OK", IDOK, 141, 197, 50, 14 + PUSHBUTTON "Storno", IDCANCEL, 195, 197, 50, 14 +END + +/* Menus */ + +IDM_POPUP_GROUP MENU +BEGIN + POPUP "" + BEGIN + MENUITEM "Nová skupina...", IDM_GROUP_NEW + END + POPUP "" + BEGIN + MENUITEM "Přidat člena", IDM_GROUP_ADD_MEMBER, GRAYED + MENUITEM SEPARATOR + MENUITEM "Odstranit", IDM_GROUP_DELETE + MENUITEM "Přejmenovat", IDM_GROUP_RENAME + MENUITEM SEPARATOR + MENUITEM "Vlastnosti", IDM_GROUP_PROPERTIES + END +END + +IDM_POPUP_USER MENU +BEGIN + POPUP "" + BEGIN + MENUITEM "Nový uživatel...", IDM_USER_NEW + END + POPUP "" + BEGIN + MENUITEM "Změnit heslo", IDM_USER_CHANGE_PASSWORD + MENUITEM SEPARATOR + MENUITEM "Odstranit", IDM_USER_DELETE + MENUITEM "Přejmenovat", IDM_USER_RENAME + MENUITEM SEPARATOR + MENUITEM "Vlastnosti", IDM_USER_PROPERTIES + END +END + +/* Strings */ + +STRINGTABLE +BEGIN + IDS_CPLNAME "Uživatelské účty" + IDS_CPLDESCRIPTION "Spravuje uživatele a skupiny." +END + +STRINGTABLE +BEGIN + IDS_NAME "Jméno" + IDS_FULLNAME "Celé jméno" + IDS_DESCRIPTION "Popis" +END diff --git a/reactos/dll/cpl/usrmgr/usrmgr.rc b/reactos/dll/cpl/usrmgr/usrmgr.rc index 0fe2763b982..2cecdc45a77 100644 --- a/reactos/dll/cpl/usrmgr/usrmgr.rc +++ b/reactos/dll/cpl/usrmgr/usrmgr.rc @@ -37,6 +37,9 @@ IDI_GROUP ICON "resources/group.ico" /* UTF-8 */ #pragma code_page(65001) +#ifdef LANGUAGE_CS_CZ + #include "lang/cs-CZ.rc" +#endif #ifdef LANGUAGE_PL_PL #include "lang/pl-PL.rc" #endif diff --git a/reactos/dll/win32/shell32/lang/cs-CZ.rc b/reactos/dll/win32/shell32/lang/cs-CZ.rc index d653e611a86..b3f7b9336cd 100644 --- a/reactos/dll/win32/shell32/lang/cs-CZ.rc +++ b/reactos/dll/win32/shell32/lang/cs-CZ.rc @@ -1,6 +1,6 @@ /* FILE: dll/win32/shell32/lang/cs-CZ.rc * TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com) - * UPDATED: 2013-06-01 + * UPDATED: 2014-04-25 * THANKS TO: navaraf, who translated major part of this file */ @@ -764,7 +764,7 @@ BEGIN IDS_SYS_FILE "Systémový soubor" IDS_OPEN_VERB "Otevřít" - IDS_EXPLORE_VERB "Explore" + IDS_EXPLORE_VERB "Prozkoumat" IDS_RUNAS_VERB "Spustit jako " IDS_EDIT_VERB "Upravit" IDS_FIND_VERB "Najít" diff --git a/reactos/dll/win32/syssetup/lang/cs-CZ.rc b/reactos/dll/win32/syssetup/lang/cs-CZ.rc index f94b9705d0e..f9eb3a794ea 100644 --- a/reactos/dll/win32/syssetup/lang/cs-CZ.rc +++ b/reactos/dll/win32/syssetup/lang/cs-CZ.rc @@ -1,6 +1,6 @@ /* FILE: dll/win32/syssetup/lang/cs-CZ.rc * TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com) - * UPDATED: 2009-08-02 + * UPDATED: 2014-04-21 * THANKS TO: Filip Navara and Kamil Hornicek, who translated major part of this file */ @@ -12,7 +12,7 @@ CAPTION "ReactOS Instalátor" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Vítejte v průvodci instalace systému ReactOS.", IDC_WELCOMETITLE, 115, 9, 189, 31 - LTEXT "Tento průvodce nainstaluje systém ReactOS na Váš počítač. Průvodce potřebuje získat některé informace o Vás a Vašem počítači aby mohl systém správně nastavit.", IDC_STATIC, 115, 50, 189, 100 + LTEXT "Tento průvodce nainstaluje systém ReactOS na Váš počítač. Průvodce potřebuje získat některé informace o Vás a Vašem počítači, aby mohl systém správně nastavit.", IDC_STATIC, 115, 50, 189, 100 LTEXT "Kliknutím na Další pokračujte v instalaci.", IDC_STATIC, 115, 160, 189, 31 END @@ -155,7 +155,7 @@ BEGIN IDS_TIMEOUT "Vypršel časový limit registrace" IDS_REASON_UNKNOWN "" /* - * ATTENTION: + * ATTENTION: * If you translate the administator account name, keep IDS_ADMINISTRATOR_NAME and * samsrv.dll:IDS_USER_ADMINISTRATOR_NAME synchronized. * Also check the IDD_COMPUTERPAGE dialog. diff --git a/reactos/media/inf/audio.inf b/reactos/media/inf/audio.inf index 984177104cf73d89c42218ae4f1d765685f0bc4d..b197c0edb518026a02458dc41c21cb2cb0881b07 100644 GIT binary patch delta 72 zcmaE$bVYf?J)X%td}6Ey45kdRlQ;5fYDO?7GNdqMGVn5{GAJ-qF_bZsGGqg>0z)DY Y=QAWR6aiUP45gD9`4l(*;K^VC0GZkmJOBUy delta 16 Xcmcbj{6J~LJ)X&J0#ciEcr#c4Kq>}r diff --git a/reactos/media/inf/battery.inf b/reactos/media/inf/battery.inf index cb5ae49eac7480a7d0a0ae774958884a609b2f08..55b259d7ece0329de45447505e9c7cabf1770441 100644 GIT binary patch delta 100 zcmeyPd`WG?4o*hX$&TEnli%^OO^)MLn=Hr0!j{Y7#E3(w>`JRblaMFk)L diff --git a/reactos/media/inf/cdrom.inf b/reactos/media/inf/cdrom.inf index 967b5ff4f455b21835f0e1b653abdac5819b84c3..7e50b19e420d698ca347f471b9893fe5ec9201aa 100644 GIT binary patch delta 108 zcmeyNyhL@w94>w@hE#?WhCGIRh7yKshRVr}{Nj@x_}C^Z2(nH7$EP8PDxb)pFnPa# i44DkY4A~6%3}s+`7Emq) zD3{Mr0u-&B{GQWT9G9Fvmnm58A;@62 delta 24 gcmbPa(`K`wfN$~=DXqy1_%tSelM30a#Q%X00C`CXd;kCd diff --git a/reactos/media/inf/flpydisk.inf b/reactos/media/inf/flpydisk.inf index 6a1aeebf05cbf7246489b384955e3de5f7097842..c102e959ae62114d9587e65aeb35fba8b4ec3f5e 100644 GIT binary patch literal 3460 zcmbuCT~8B16o!v_$6xSf)7V54TA@&b5-+5D*r-JT#RLthg<=I-Qi|Fbf2^1O3H5nr zI^CUGC?DDEc6R2>d(L^!$87)pS+vAfZP_YTw5rt@PjP9sYHd5Up4IJ$tInup9p(~i zGCHz-H|ki|{T{J)!qw+(kM&bKbfYfgugIP{+#P$zxXYWz`pE1i;{$M|;fyumCiav& zXZLKI)i#J7`^K&W3%8ifIU6tDxdBq$8lbMD!|!>?OdqT>W>-P>UPzZb3@b&avx$z1 zn?H4$WtG1qzsgGRco}*5o0VTfM+>`yFF$M^mgnq|t=MB*uo){bnzNFX8O?H4crVxz z$Q9lSNJwf1i6vHM8O`xru%GC84No0-l?L&d+LgE1?>y4WNcbpp2mA-Cq~jr|Wu7Ic zt!&f07a9AfM#_jCP!vUFfsd7spnO+66-h}n;qeS^dP8|H;UhYW7LS%P8|RrADY_^N z@frT@IgbwTag=v2SB#`QdNw-aq=fz4UVuCeZn!;*$9ONcW85kk zsH%~UahJ!<5$`fgE3f1IHFn1grCNjCv+PoYUSUNW_7wx=y|1ROi%s6vu&>RnTxcNM zr0VhmR>!S*%yBDXZxJS{_8y!SdjiTf$g2Df&o<8YDZP`LIL`flPps^ZfM zo+a1DD-5z=yf0}@RfvxIbm)KTs;aDb-~Un`!Dq$gWR)k9l(s!$svcS7+2@XN`ouM4 zd8pS-GN3!m1>a$OKZsXS>$7?kyBYh=oxMsfZ({3XwA7B+LSgT6j%000W#wtSwuSr& z(xK+Xu=RkffyMkXk`P9lpz1pzhIgZ$|^P6f0}Z5)7*|cfk!(EnH}K#Mv)8W<&wjSz#j(0vcCI+W`lKv5FDrz6lUnwECRnrO zc&O2vHgDv=5WT<37^#*5si+-nbK9&&=mt*xUOtfHB{{#HDgn#PXXn@-!H}~o2EqK$H`(%dC a28efV-M!rc;eh?=7tm#NT$S9!Up7xCxsob&noWC#;?Y)@wsLWVF+bH$Q`DUqcRi-bd*Nr;ndwJIPI`8SB9 z*zlZ?&zD^0$O_0@EK{b|k^_vuIJy#Plzq=(wm34#@WG+aS*R}Nc=C=F*;-9>h!G^^ z#ujNz#tF-FDAx!kWndTMR`}UkL^{fk6Sw!mdpV$%*X#Bz#~FLp>16C!bUKZ<@p3NDmB3r!1zjQYfVezn z>qKcB0km_vNGrwGIqP-p*&-mXqsZq=BvjfFvnvSc521j(dFyvTKf8-|z^uq+gc-Z# zX2YF^S=#0!*RcB3XwGL@EvPirz8wsG&eC;^xyLfefS6}IE?Q(W;?fRD;?YdRO;nU=}Ec3P2 z{m_C8twT%qF1Y^m((~aE&%%qfqLh^yXRAW@UygF?vwH{$TZ=XtkT_WtdJ^os&|{!2 zi&DBS^_)wc1#B2Bdc7&#S2i7>ceGmFP7}1Il|HsX+bGUh<#$o6aLRPsI%KYxR1Kh^ z9`U5iq``(BDX1OYSfETI0_NAnq3jFgN zEFK=heBn=LXY<4HEnVlik|JGV3F?8z)ELd@g0owLkV)Ba_p_xL71aL68Du*On(?gO zKJhzzZqzPYQ=m=uTA+qTr%g|s!H!rjyb&t~wdTh4j@pl@P)y-e;w$nHCGk7)RV0rz WuaWrY*Wcd)met5Vw%I3se~f?N!rR{f diff --git a/reactos/media/inf/hal.inf b/reactos/media/inf/hal.inf index 25f902d1df8830356b61b5c73778b568af0259e8..2686870749fbafb426fe4a135f552f79a01e2645 100644 GIT binary patch delta 189 zcmaDQ)gZSagoD+9!IU9(av+yJUjRcs125xSh7yKEAU*jUhl;E}LlQ$OLo!1i!%GGQ zh5{4?sgrZrt=+wV@+m<1e4uO*kW2>hi-9zVT?W<_z~BtjTMWdGKvn>QCy)h_tzyUk d(uqL5Zy9nYPvmq}1+f$uvhbU@S(n3>6#%Z|DmDNB delta 12 TcmZpWdnL6Ygk$q7PBB&hAkzeJ diff --git a/reactos/media/inf/hdc.inf b/reactos/media/inf/hdc.inf index d72b07fa01a5d0bd8032f471be1562446ff75d91..98738ebaff542b17ce35f23a48fc9df16edbdf57 100644 GIT binary patch delta 395 zcmeBr#CPc>U&9tgH&B)vIt0) z0>wNSJQ-Xj%ZsZ{-o-DYT}6VPj}qp(N(`jfk||(q>Ccb^bWbwS6%T>7lVIOwUon1W E0AjT?00000 delta 12 TcmZ2wcE@N#f!Jm{i8o9DBwYm@ diff --git a/reactos/media/inf/keyboard.inf b/reactos/media/inf/keyboard.inf index 93d08dccba70160de33e031564029399a6dddcac..8fe2e0b3f894bf3beb375acb1cfcd6ce9c58c70a 100644 GIT binary patch delta 124 zcmdns-Ql~zOmwo7n31M8Lk`13hBAg!hGK?1hD?TJAWH$rE@4On@>76h5s)lpP?(%8 zuRPgD)M)Z9c@6ObhDgRth609shAg1^JRq&Wkj;=fIbKv$G#_Z%ONLyK9CikkXr+Au6_cme@Of0Ld5&wg3PC diff --git a/reactos/media/inf/legcydrv.inf b/reactos/media/inf/legcydrv.inf index f2296d128953639366f97faaddb55824433e3c33..a30b2daa5edda24e57081f87cc430d07d296927a 100644 GIT binary patch delta 76 zcmZ3$bA)%p4HjlohSP^_{!)OT~rQr6ZcKZNLf^j9~_qlF1b1$ z;Tu)v+Fpoj(~Z2K#(!tBt@d+S_41CdgHx))Z#~iQ3Iudog-{W)TW}|a8}v$|Bg2xg zXR;G&<>!eAU-kQaI#7Aa@o6T;=Yw|v3wHx%SHX1n?7E$mVJ|-?qrn0yVy!y5!nzEc z2J;TBxtzMI`!*EySy&Ya4)%_B|7GP}jse7%llkq4yzaUdsutYJRDyB_lS*I8#3xE8 zCvsz~gqvgkNs1J+Ad3t|rj~0~r2dmCYvCkUMhxzX8GIBw;HUkewlvMqBpBkqWDt*t zFCekrr>5uV1IH{R{`wK)MAqWH1^OB`UUHumpi>xb(lSmO#_Qh|jfyP29NO=a6EG}kKhSlF8kF#JH!(X6$22iAm;VnqbWKOO`#@x->T*sLJtR5Bc delta 12 UcmbOryGd%pEUwKzxMwf{03wYA9smFU diff --git a/reactos/media/inf/shortcuts.inf b/reactos/media/inf/shortcuts.inf index 013a54e56727b3805f5d9265a8798dd7e831f543..8d7ff549a89715ed1d540a8f69c459a45329bb68 100644 GIT binary patch delta 32 ocmcb&l=a?H)(xMGc!L=V7>XDkGL$hSGo&{EH`@N+i1EHW0NP~?;Q#;t delta 32 mcmcb&l=a?H)(xMGczqcX8S;R*jxm*?sQJIq_WwqV_vHc6gbZK+ diff --git a/reactos/media/inf/unknown.inf b/reactos/media/inf/unknown.inf index 6a32d97aa43e5b4c2df33bfb10e75750a68a7189..9bc33cedfe55f27ca16c3bdbdb2fcadde0a8f534 100644 GIT binary patch delta 54 zcmZ3&JB@Ec7z?v0L+s?Y%=)s$3?&SSK%B?$mO+7`3doLRd<&#gK_ZjqvnXy3VF_RY E0G^`{3jhEB delta 12 TcmbQnw}f{?7|Z4pEPhM?9mWJN diff --git a/reactos/media/inf/usb.inf b/reactos/media/inf/usb.inf index 75b348c6736cfa90d28f51b314ede3d5ffdec989..e7e701f5e78c31cc859aecd615812467da236715 100644 GIT binary patch delta 89 zcmZ3d-(|2tiHF;tA&DWCA(C3D<>Ceag|`T0 From 606b742bf95adb91c9016e497563f0a6d0c3f7c4 Mon Sep 17 00:00:00 2001 From: Kamil Hornicek Date: Sun, 11 May 2014 20:03:30 +0000 Subject: [PATCH 54/92] [TRANSLATIONS] - fix the floppy.inf file which got somehow completely fubared in the previous revision svn path=/trunk/; revision=63242 --- reactos/media/inf/flpydisk.inf | Bin 3460 -> 3464 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/reactos/media/inf/flpydisk.inf b/reactos/media/inf/flpydisk.inf index c102e959ae62114d9587e65aeb35fba8b4ec3f5e..592987dc18259e8e8577a23116bfdb4578fd7c1c 100644 GIT binary patch delta 16 XcmZpX?vUQ_g_}8*p=9%C?um>5G-w79 delta 12 TcmeB>Zjs*bg?sZ4?g@+lBEJPW From 109185f9defac2b2f0f9ec561e7ff18db3e63496 Mon Sep 17 00:00:00 2001 From: Sylvain Petreolle Date: Sun, 11 May 2014 20:59:17 +0000 Subject: [PATCH 56/92] [INF] Fix line endings (LF=> CRLF,CR) svn path=/trunk/; revision=63244 --- reactos/media/inf/flpydisk.inf | Bin 3464 -> 3616 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/reactos/media/inf/flpydisk.inf b/reactos/media/inf/flpydisk.inf index 592987dc18259e8e8577a23116bfdb4578fd7c1c..ee160f6002bad11d8ee5ac724a701829924cb400 100644 GIT binary patch delta 544 zcmYjNO-lk%6n!)E=G%dSglrr{!o-EfSf(Mfu!4}tEW(NiX%XQjp=ebQ?piusT1Nc= z2^TG@Rm&jgN3;%W*{(aU*Wl)G&%5WI^X|R0@8aDt*&+t9{OFd=3M9LvK@P|h`vIqX!0!Ac(Tu{cX<+Z z-*ROr)>P6gwyD@$b*9Xqs;9I$choHMs+vY@GrVT_tS*N>7I?A;3);35E<|c%jWo#; z*}&W3V!=t_UJDM43{jOrfLWePRD&QovoC@S4Z4Bqq!mAir~B_L;NFk(z$ z_a%~qhEc+*Z)V}i_}_S7BqW^R>Ks>|n{!OL&l3hlOm#^q_#5UFhbA=WM)GXxkb7@h Ic^drT7u-f>M*si- delta 392 zcmX|+y-R{o6vof{sa{_TvIalED71tWDH9_i6Db-ha4;#}5+c(@A=et(f(m+hXwQbG z{)CWfw6#B=vAIoY=v9!>MUn>Y8)?WnzNodgDI_yGcAXXmXRGT zf}oxb4JjK;X$(kpI-)JA(h1pU>YEIUV$?g0Pkr8C@PFk-!H~}9hQqJloJQ8n$=Xcd z$qaJ#ZZ0722_x((a@BGr@ZgG}%kj+-bg#3woL|ACyZm?UHtoQT9kP znc2ATtfJ$QZf(o2*m$)9C Date: Sun, 11 May 2014 22:25:46 +0000 Subject: [PATCH 57/92] [CRT] Fix handling of multibyte strings in _splitpath. Fixes 2 winetests. svn path=/trunk/; revision=63245 --- reactos/lib/sdk/crt/string/_tsplitpath_x.h | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/reactos/lib/sdk/crt/string/_tsplitpath_x.h b/reactos/lib/sdk/crt/string/_tsplitpath_x.h index 76473c98257..0e35a25656c 100644 --- a/reactos/lib/sdk/crt/string/_tsplitpath_x.h +++ b/reactos/lib/sdk/crt/string/_tsplitpath_x.h @@ -7,6 +7,7 @@ #include #include +#include #if IS_SECAPI #define _FAILURE -1 @@ -99,12 +100,24 @@ _tsplitpath_x( drive[2] = '\0'; } path += 2; - } + } /* Scan the rest of the string */ dir_start = path; while (*path != '\0') { +#ifndef _UNICODE + /* Check for multibyte lead bytes */ + if (_ismbblead((unsigned char)*path)) + { + /* Check for unexpected end of string */ + if (path[1] == 0) break; + + /* Skip the lead byte and the following byte */ + path += 2; + continue; + } +#endif /* Remember last path separator and last dot */ if ((*path == '\\') || (*path == '/')) file_start = path + 1; if (*path == '.') ext_start = path; @@ -114,14 +127,14 @@ _tsplitpath_x( /* Check if we got a file name / extension */ if (!file_start) file_start = dir_start; - if (!ext_start || ext_start < file_start) + if (!ext_start || (ext_start < file_start)) ext_start = path; if (dir) { src = dir_start; count = dir_size - 1; - while (src < file_start && count--) *dir++ = *src++; + while ((src < file_start) && count--) *dir++ = *src++; *dir = '\0'; } From bbfd5abfca392eb0477d8060d32afb8054202dc2 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Sun, 11 May 2014 22:28:54 +0000 Subject: [PATCH 58/92] [CRT] Fix build svn path=/trunk/; revision=63246 --- reactos/lib/sdk/crt/string/_tsplitpath_x.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reactos/lib/sdk/crt/string/_tsplitpath_x.h b/reactos/lib/sdk/crt/string/_tsplitpath_x.h index 0e35a25656c..c8c89e4d52c 100644 --- a/reactos/lib/sdk/crt/string/_tsplitpath_x.h +++ b/reactos/lib/sdk/crt/string/_tsplitpath_x.h @@ -106,7 +106,7 @@ _tsplitpath_x( dir_start = path; while (*path != '\0') { -#ifndef _UNICODE +#if !defined(_UNICODE) && !defined(_LIBCNT_) /* Check for multibyte lead bytes */ if (_ismbblead((unsigned char)*path)) { From df0efd555671aaf4db36b785697267a865567f1f Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Sun, 11 May 2014 23:11:16 +0000 Subject: [PATCH 59/92] [DDK/XDK/NTOSKRNL/DRIVERS] Fix incompatible definition of a number of NTOSKRNL data imports. These imports are declared in MS DDK in a way that is usually not how you would declare data imports. The proper way of doing it is using _DECLSPEC_INTRIN_TYPE(dllimport) or in this case NTKERNELAPI, which will cause the compiler to directly dereference the __imp__FooBar symbol. MS has declared some of these variables directly as pointers without using dllimport. This works with MS DDK, since it's import libraries contain aliases (like _FooBar) to the import symbols (__imp__FooBar). Neither MS LINK nor DLLTOOL create these aliases in the import libs, which is good, since hacks like these are dangerous. To make the original declarations work without using macros (which can conflict with other things, like for example the KdDebuggerEnabled member in KUSER_SHARED_DATA) these aliases have to be generated differently. Luckily both MSVC and GCC support a pragma that does exactly this. Fix the incompatible use in our drivers and the broen(!) use of KdDebuggerEnabled in kdcom (which was writing a PBOOLEAN value (FALSE == 0 == NULL, so no warning) into the location that is really a BOOLEAN, possibly overwriting other data. Finally get rid of a number of hacks in ntoskrnl, where prefixed versions were used to not conflict with the DDK definitions. svn path=/trunk/; revision=63247 --- reactos/drivers/base/kdcom/kdserial.c | 6 +- reactos/drivers/bus/acpi/compbatt/compmisc.c | 16 +-- reactos/drivers/filters/mountmgr/device.c | 2 +- reactos/drivers/ksfilter/ks/event.c | 6 +- reactos/drivers/ksfilter/ks/pin.c | 10 +- reactos/drivers/network/afd/afd/bind.c | 2 +- reactos/drivers/network/afd/afd/select.c | 4 +- reactos/drivers/network/afd/afd/tdi.c | 2 +- .../drivers/network/tcpip/tcpip/dispatch.c | 14 +-- reactos/drivers/storage/floppy/floppy.c | 6 +- .../drivers/wdm/audio/legacy/wdmaud/control.c | 8 +- .../wdm/audio/legacy/wdmaud/deviface.c | 4 +- .../drivers/wdm/audio/legacy/wdmaud/mmixer.c | 4 +- reactos/drivers/wdm/audio/legacy/wdmaud/sup.c | 2 +- reactos/drivers/wdm/audio/sysaudio/deviface.c | 2 +- reactos/drivers/wdm/audio/sysaudio/pin.c | 8 +- reactos/include/ddk/ntddk.h | 10 +- reactos/include/ddk/ntifs.h | 79 +++++-------- reactos/include/ddk/wdm.h | 109 +++++++++++++----- reactos/include/reactos/libs/pseh/pseh3.h | 14 +-- reactos/include/xdk/ccfuncs.h | 2 +- reactos/include/xdk/extypes.h | 2 +- reactos/include/xdk/fsrtlfuncs.h | 21 ++-- reactos/include/xdk/haltypes.h | 10 +- reactos/include/xdk/ia64/ke.h | 2 +- reactos/include/xdk/iotypes.h | 36 ++---- reactos/include/xdk/kdfuncs.h | 27 ++--- reactos/include/xdk/ketypes.h | 1 + reactos/include/xdk/mmtypes.h | 7 +- reactos/include/xdk/ntifs.template.h | 13 ++- reactos/include/xdk/obtypes.h | 25 ++++ reactos/include/xdk/rtltypes.h | 20 +++- reactos/include/xdk/sefuncs.h | 1 + reactos/include/xdk/wdm.template.h | 28 ++++- reactos/lib/rtl/nls.c | 3 +- reactos/ntoskrnl/ex/event.c | 2 +- reactos/ntoskrnl/ex/sem.c | 2 +- reactos/ntoskrnl/fsrtl/fsrtlpc.c | 4 +- reactos/ntoskrnl/include/internal/fsrtl.h | 1 - reactos/ntoskrnl/include/internal/kd.h | 7 -- reactos/ntoskrnl/include/internal/kd64.h | 2 - reactos/ntoskrnl/include/ntoskrnl.h | 23 ---- reactos/ntoskrnl/kd64/kdapi.c | 2 - reactos/ntoskrnl/kd64/kddata.c | 4 +- reactos/ntoskrnl/kd64/kdinit.c | 2 - reactos/ntoskrnl/ntoskrnl.spec | 20 ++-- reactos/tools/spec2def/spec2def.c | 14 +-- reactos/win32ss/gdi/eng/engevent.c | 2 +- reactos/win32ss/user/ntuser/main.c | 2 +- reactos/win32ss/user/ntuser/message.c | 8 +- reactos/win32ss/user/ntuser/misc.c | 10 +- 51 files changed, 318 insertions(+), 293 deletions(-) diff --git a/reactos/drivers/base/kdcom/kdserial.c b/reactos/drivers/base/kdcom/kdserial.c index 2837900a299..bb37a3d9228 100644 --- a/reactos/drivers/base/kdcom/kdserial.c +++ b/reactos/drivers/base/kdcom/kdserial.c @@ -38,7 +38,7 @@ KdpSendBuffer( * \brief Receives data from the KD port and fills a buffer. * \param Buffer Pointer to a buffer that receives the data. * \param Size Size of data to receive in bytes. - * \return KDP_PACKET_RECEIVED if successful. + * \return KDP_PACKET_RECEIVED if successful. * KDP_PACKET_TIMEOUT if the receice timed out. */ KDP_STATUS @@ -69,7 +69,7 @@ KdpReceiveBuffer( * \name KdpReceivePacketLeader * \brief Receives a packet leadr from the KD port. * \param PacketLeader Pointer to an ULONG that receives the packet leader. - * \return KDP_PACKET_RECEIVED if successful. + * \return KDP_PACKET_RECEIVED if successful. * KDP_PACKET_TIMEOUT if the receive timed out. * KDP_PACKET_RESEND if a breakin byte was detected. */ @@ -141,7 +141,7 @@ KdpReceivePacketLeader( while (Index < 4); /* Enable the debugger */ - KdDebuggerNotPresent = FALSE; + KD_DEBUGGER_NOT_PRESENT = FALSE; SharedUserData->KdDebuggerEnabled |= 0x00000002; /* Return the received packet leader */ diff --git a/reactos/drivers/bus/acpi/compbatt/compmisc.c b/reactos/drivers/bus/acpi/compbatt/compmisc.c index f34aa9af0c2..337c521835c 100644 --- a/reactos/drivers/bus/acpi/compbatt/compmisc.c +++ b/reactos/drivers/bus/acpi/compbatt/compmisc.c @@ -14,7 +14,7 @@ NTSTATUS NTAPI -BatteryIoctl(IN ULONG IoControlCode, +BatteryIoctl(IN ULONG IoControlCode, IN PDEVICE_OBJECT DeviceObject, IN PVOID InputBuffer, IN ULONG InputBufferLength, @@ -50,11 +50,11 @@ BatteryIoctl(IN ULONG IoControlCode, KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL); Status = IoStatusBlock.Status; } - + /* Print failure */ if (!(NT_SUCCESS(Status)) && (CompBattDebug & 8)) DbgPrint("BatteryIoctl: Irp failed - %x\n", Status); - + /* Done */ if (CompBattDebug & 0x100) DbgPrint("CompBatt: EXITING BatteryIoctl\n"); } @@ -64,7 +64,7 @@ BatteryIoctl(IN ULONG IoControlCode, if (CompBattDebug & 8) DbgPrint("BatteryIoctl: couldn't create Irp\n"); Status = STATUS_INSUFFICIENT_RESOURCES; } - + /* Return status */ return Status; } @@ -82,7 +82,7 @@ CompBattGetDeviceObjectPointer(IN PUNICODE_STRING DeviceName, PFILE_OBJECT LocalFileObject; HANDLE DeviceHandle; PAGED_CODE(); - + /* Open a file object handle to the device */ InitializeObjectAttributes(&ObjectAttributes, DeviceName, 0, NULL, NULL); Status = ZwCreateFile(&DeviceHandle, @@ -101,7 +101,7 @@ CompBattGetDeviceObjectPointer(IN PUNICODE_STRING DeviceName, /* Reference the file object */ Status = ObReferenceObjectByHandle(DeviceHandle, 0, - IoFileObjectType, + *IoFileObjectType, KernelMode, (PVOID)&LocalFileObject, NULL); @@ -111,11 +111,11 @@ CompBattGetDeviceObjectPointer(IN PUNICODE_STRING DeviceName, *FileObject = LocalFileObject; *DeviceObject = IoGetRelatedDeviceObject(LocalFileObject); } - + /* Close the handle */ ZwClose(DeviceHandle); } - + /* Return status */ return Status; } diff --git a/reactos/drivers/filters/mountmgr/device.c b/reactos/drivers/filters/mountmgr/device.c index c86df7a5426..4ee8096c7e6 100644 --- a/reactos/drivers/filters/mountmgr/device.c +++ b/reactos/drivers/filters/mountmgr/device.c @@ -1552,7 +1552,7 @@ MountMgrVolumeMountPointChanged(IN PDEVICE_EXTENSION DeviceExtension, } /* Reference it */ - Status = ObReferenceObjectByHandle(Handle, 0, IoFileObjectType, KernelMode, (PVOID *)&FileObject, NULL); + Status = ObReferenceObjectByHandle(Handle, 0, *IoFileObjectType, KernelMode, (PVOID *)&FileObject, NULL); if (!NT_SUCCESS(Status)) { goto Cleanup; diff --git a/reactos/drivers/ksfilter/ks/event.c b/reactos/drivers/ksfilter/ks/event.c index 32999b90409..96f01464760 100644 --- a/reactos/drivers/ksfilter/ks/event.c +++ b/reactos/drivers/ksfilter/ks/event.c @@ -99,7 +99,7 @@ KspEnableEvent( KSEVENT Event; PKSEVENT_ITEM EventItem, FoundEventItem; PKSEVENTDATA EventData; - const KSEVENT_SET* FoundEventSet; + const KSEVENT_SET *FoundEventSet; PKSEVENT_ENTRY EventEntry; ULONG Index, SubIndex, Size; PVOID Object; @@ -234,7 +234,7 @@ KspEnableEvent( if (EventData->NotificationType == KSEVENTF_SEMAPHORE_HANDLE) { /* get semaphore object handle */ - Status = ObReferenceObjectByHandle(EventData->SemaphoreHandle.Semaphore, SEMAPHORE_MODIFY_STATE, ExSemaphoreObjectType, Irp->RequestorMode, &Object, NULL); + Status = ObReferenceObjectByHandle(EventData->SemaphoreHandle.Semaphore, SEMAPHORE_MODIFY_STATE, *ExSemaphoreObjectType, Irp->RequestorMode, &Object, NULL); if (!NT_SUCCESS(Status)) { @@ -245,7 +245,7 @@ KspEnableEvent( else if (EventData->NotificationType == KSEVENTF_EVENT_HANDLE) { /* get event object handle */ - Status = ObReferenceObjectByHandle(EventData->EventHandle.Event, EVENT_MODIFY_STATE, ExEventObjectType, Irp->RequestorMode, &Object, NULL); + Status = ObReferenceObjectByHandle(EventData->EventHandle.Event, EVENT_MODIFY_STATE, *ExEventObjectType, Irp->RequestorMode, &Object, NULL); if (!NT_SUCCESS(Status)) { diff --git a/reactos/drivers/ksfilter/ks/pin.c b/reactos/drivers/ksfilter/ks/pin.c index 0865b3b7b8c..2226223c90c 100644 --- a/reactos/drivers/ksfilter/ks/pin.c +++ b/reactos/drivers/ksfilter/ks/pin.c @@ -193,7 +193,7 @@ IKsPin_PinMasterClock( { Mode = ExGetPreviousMode(); - Status = ObReferenceObjectByHandle(*Handle, SYNCHRONIZE | DIRECTORY_QUERY, IoFileObjectType, Mode, (PVOID*)&FileObject, NULL); + Status = ObReferenceObjectByHandle(*Handle, SYNCHRONIZE | DIRECTORY_QUERY, *IoFileObjectType, Mode, (PVOID*)&FileObject, NULL); DPRINT("IKsPin_PinMasterClock ObReferenceObjectByHandle %lx\n", Status); if (NT_SUCCESS(Status)) @@ -2221,7 +2221,7 @@ IKsPin_DispatchCreateClock( pResolution = &Resolution; } - Status = KsAllocateDefaultClockEx(&This->DefaultClock, + Status = KsAllocateDefaultClockEx(&This->DefaultClock, (PVOID)&This->Pin, (PFNKSSETTIMER)This->Pin.Descriptor->Dispatch->Clock->SetTimer, (PFNKSCANCELTIMER)This->Pin.Descriptor->Dispatch->Clock->CancelTimer, @@ -2265,7 +2265,7 @@ IKsPin_DispatchCreateNode( return STATUS_NOT_IMPLEMENTED; } -static KSDISPATCH_TABLE PinDispatchTable = +static KSDISPATCH_TABLE PinDispatchTable = { IKsPin_DispatchDeviceIoControl, KsDispatchInvalidDeviceRequest, @@ -2329,10 +2329,10 @@ KspCreatePin( DPRINT("KspCreatePin Index %lu FileAlignment %lx\n", Index, Descriptor->AllocatorFraming->FramingItem[Index].FileAlignment); DPRINT("KspCreatePin Index %lu MemoryTypeWeight %lx\n", Index, Descriptor->AllocatorFraming->FramingItem[Index].MemoryTypeWeight); DPRINT("KspCreatePin Index %lu PhysicalRange MinFrameSize %lu MaxFrameSize %lu Stepping %lu\n", Index, Descriptor->AllocatorFraming->FramingItem[Index].PhysicalRange.MinFrameSize, - Descriptor->AllocatorFraming->FramingItem[Index].PhysicalRange.MaxFrameSize, + Descriptor->AllocatorFraming->FramingItem[Index].PhysicalRange.MaxFrameSize, Descriptor->AllocatorFraming->FramingItem[Index].PhysicalRange.Stepping); - DPRINT("KspCreatePin Index %lu FramingRange MinFrameSize %lu MaxFrameSize %lu Stepping %lu InPlaceWeight %lu NotInPlaceWeight %lu\n", + DPRINT("KspCreatePin Index %lu FramingRange MinFrameSize %lu MaxFrameSize %lu Stepping %lu InPlaceWeight %lu NotInPlaceWeight %lu\n", Index, Descriptor->AllocatorFraming->FramingItem[Index].FramingRange.Range.MinFrameSize, Descriptor->AllocatorFraming->FramingItem[Index].FramingRange.Range.MaxFrameSize, diff --git a/reactos/drivers/network/afd/afd/bind.c b/reactos/drivers/network/afd/afd/bind.c index 5bc13bf51a9..21a64fe53f1 100644 --- a/reactos/drivers/network/afd/afd/bind.c +++ b/reactos/drivers/network/afd/afd/bind.c @@ -105,7 +105,7 @@ AfdBindSocket(PDEVICE_OBJECT DeviceObject, PIRP Irp, 0, NULL, MAXIMUM_ALLOWED, - IoFileObjectType, + *IoFileObjectType, Irp->RequestorMode, &UserHandle); if (NT_SUCCESS(Status)) diff --git a/reactos/drivers/network/afd/afd/select.c b/reactos/drivers/network/afd/afd/select.c index 66b8ac846ca..2e30ca3ba2b 100644 --- a/reactos/drivers/network/afd/afd/select.c +++ b/reactos/drivers/network/afd/afd/select.c @@ -289,7 +289,7 @@ AfdEventSelect( PDEVICE_OBJECT DeviceObject, PIRP Irp, Status = ObReferenceObjectByHandle( (PVOID)EventSelectInfo-> EventObject, EVENT_ALL_ACCESS, - ExEventObjectType, + *ExEventObjectType, UserMode, (PVOID *)&FCB->EventSelect, NULL ); @@ -346,7 +346,7 @@ AfdEnumEvents( PDEVICE_OBJECT DeviceObject, PIRP Irp, Status = ObReferenceObjectByHandle(EnumReq->Event, EVENT_ALL_ACCESS, - ExEventObjectType, + *ExEventObjectType, UserMode, (PVOID *)&UserEvent, NULL); diff --git a/reactos/drivers/network/afd/afd/tdi.c b/reactos/drivers/network/afd/afd/tdi.c index 60040e16d39..a36a09dc841 100644 --- a/reactos/drivers/network/afd/afd/tdi.c +++ b/reactos/drivers/network/afd/afd/tdi.c @@ -144,7 +144,7 @@ static NTSTATUS TdiOpenDevice( if (NT_SUCCESS(Status)) { Status = ObReferenceObjectByHandle(*Handle, /* Handle to open file */ GENERIC_READ | GENERIC_WRITE | SYNCHRONIZE, /* Access mode */ - IoFileObjectType, /* Object type */ + *IoFileObjectType, /* Object type */ KernelMode, /* Access mode */ (PVOID*)Object, /* Pointer to object */ NULL); /* Handle information */ diff --git a/reactos/drivers/network/tcpip/tcpip/dispatch.c b/reactos/drivers/network/tcpip/tcpip/dispatch.c index 94d127db46b..69ed6bf2bf6 100644 --- a/reactos/drivers/network/tcpip/tcpip/dispatch.c +++ b/reactos/drivers/network/tcpip/tcpip/dispatch.c @@ -173,7 +173,7 @@ VOID NTAPI DispCancelRequest( case TDI_CONNECT: DequeuedIrp = TCPRemoveIRP(TranContext->Handle.ConnectionContext, Irp); break; - + case TDI_DISCONNECT: Connection = (PCONNECTION_ENDPOINT)TranContext->Handle.ConnectionContext; @@ -303,7 +303,7 @@ NTSTATUS DispTdiAssociateAddress( Status = ObReferenceObjectByHandle( Parameters->AddressHandle, 0, - IoFileObjectType, + *IoFileObjectType, KernelMode, (PVOID*)&FileObject, NULL); @@ -511,7 +511,7 @@ NTSTATUS DispTdiDisconnect( Status = STATUS_INVALID_PARAMETER; goto done; } - + Status = DispPrepareIrpForCancel (TranContext->Handle.ConnectionContext, Irp, @@ -716,7 +716,7 @@ NTSTATUS DispTdiQueryInformation( case TDI_CONNECTION_FILE: Endpoint = (PCONNECTION_ENDPOINT)TranContext->Handle.ConnectionContext; - + Address->TAAddressCount = 1; Address->Address[0].AddressLength = TDI_ADDRESS_LENGTH_IP; Address->Address[0].AddressType = TDI_ADDRESS_TYPE_IP; @@ -761,12 +761,12 @@ NTSTATUS DispTdiQueryInformation( case TDI_QUERY_MAX_DATAGRAM_INFO: { PTDI_MAX_DATAGRAM_INFO MaxDatagramInfo; - + if (MmGetMdlByteCount(Irp->MdlAddress) < sizeof(*MaxDatagramInfo)) { TI_DbgPrint(MID_TRACE, ("MDL buffer too small.\n")); return STATUS_BUFFER_TOO_SMALL; } - + MaxDatagramInfo = (PTDI_MAX_DATAGRAM_INFO) MmGetSystemAddressForMdl(Irp->MdlAddress); @@ -1560,7 +1560,7 @@ NTSTATUS DispTdiSetIPAddress( PIRP Irp, PIO_STACK_LOCATION IrpSp ) { IF->Netmask.Type = IP_ADDRESS_V4; IF->Netmask.Address.IPv4Address = IpAddrChange->Netmask; - + IF->Broadcast.Type = IP_ADDRESS_V4; IF->Broadcast.Address.IPv4Address = IF->Unicast.Address.IPv4Address | diff --git a/reactos/drivers/storage/floppy/floppy.c b/reactos/drivers/storage/floppy/floppy.c index 740fd9e18e4..ea4a2be1fa1 100644 --- a/reactos/drivers/storage/floppy/floppy.c +++ b/reactos/drivers/storage/floppy/floppy.c @@ -761,9 +761,9 @@ InitController(PCONTROLLER_INFO ControllerInfo) HeadLoadTime = SPECIFY_HLT_500K; HeadUnloadTime = SPECIFY_HUT_500K; StepRateTime = SPECIFY_SRT_500K; - + INFO_(FLOPPY, "InitController: setting data rate\n"); - + /* Set data rate */ if(HwSetDataRate(ControllerInfo, DRSR_DSEL_500KBPS) != STATUS_SUCCESS) { @@ -1176,7 +1176,7 @@ DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath) return STATUS_INSUFFICIENT_RESOURCES; } - if(ObReferenceObjectByHandle(ThreadHandle, STANDARD_RIGHTS_ALL, PsThreadType, KernelMode, &QueueThreadObject, NULL) != STATUS_SUCCESS) + if(ObReferenceObjectByHandle(ThreadHandle, STANDARD_RIGHTS_ALL, *PsThreadType, KernelMode, &QueueThreadObject, NULL) != STATUS_SUCCESS) { WARN_(FLOPPY, "Unable to reference returned thread handle; failing init\n"); return STATUS_UNSUCCESSFUL; diff --git a/reactos/drivers/wdm/audio/legacy/wdmaud/control.c b/reactos/drivers/wdm/audio/legacy/wdmaud/control.c index 1b6a90d355e..89d85fd1618 100644 --- a/reactos/drivers/wdm/audio/legacy/wdmaud/control.c +++ b/reactos/drivers/wdm/audio/legacy/wdmaud/control.c @@ -97,7 +97,7 @@ WdmAudControlDeviceState( DPRINT("WdmAudControlDeviceState\n"); - Status = ObReferenceObjectByHandle(DeviceInfo->hDevice, GENERIC_READ | GENERIC_WRITE, IoFileObjectType, KernelMode, (PVOID*)&FileObject, NULL); + Status = ObReferenceObjectByHandle(DeviceInfo->hDevice, GENERIC_READ | GENERIC_WRITE, *IoFileObjectType, KernelMode, (PVOID*)&FileObject, NULL); if (!NT_SUCCESS(Status)) { DPRINT1("Error: invalid device handle provided %p Type %x\n", DeviceInfo->hDevice, DeviceInfo->DeviceType); @@ -197,7 +197,7 @@ WdmAudFrameSize( NTSTATUS Status; /* Get sysaudio pin file object */ - Status = ObReferenceObjectByHandle(DeviceInfo->hDevice, GENERIC_WRITE, IoFileObjectType, KernelMode, (PVOID*)&FileObject, NULL); + Status = ObReferenceObjectByHandle(DeviceInfo->hDevice, GENERIC_WRITE, *IoFileObjectType, KernelMode, (PVOID*)&FileObject, NULL); if (!NT_SUCCESS(Status)) { DPRINT1("Invalid buffer handle %p\n", DeviceInfo->hDevice); @@ -290,7 +290,7 @@ WdmAudResetStream( DPRINT("WdmAudResetStream\n"); - Status = ObReferenceObjectByHandle(DeviceInfo->hDevice, GENERIC_READ | GENERIC_WRITE, IoFileObjectType, KernelMode, (PVOID*)&FileObject, NULL); + Status = ObReferenceObjectByHandle(DeviceInfo->hDevice, GENERIC_READ | GENERIC_WRITE, *IoFileObjectType, KernelMode, (PVOID*)&FileObject, NULL); if (!NT_SUCCESS(Status)) { DPRINT1("Error: invalid device handle provided %p Type %x\n", DeviceInfo->hDevice, DeviceInfo->DeviceType); @@ -528,7 +528,7 @@ WdmAudReadWrite( ASSERT(DeviceInfo); /* now get sysaudio file object */ - Status = ObReferenceObjectByHandle(DeviceInfo->hDevice, GENERIC_WRITE, IoFileObjectType, KernelMode, (PVOID*)&FileObject, NULL); + Status = ObReferenceObjectByHandle(DeviceInfo->hDevice, GENERIC_WRITE, *IoFileObjectType, KernelMode, (PVOID*)&FileObject, NULL); if (!NT_SUCCESS(Status)) { DPRINT1("Invalid pin handle %p\n", DeviceInfo->hDevice); diff --git a/reactos/drivers/wdm/audio/legacy/wdmaud/deviface.c b/reactos/drivers/wdm/audio/legacy/wdmaud/deviface.c index 4363a03b1c3..477ac30fc0b 100644 --- a/reactos/drivers/wdm/audio/legacy/wdmaud/deviface.c +++ b/reactos/drivers/wdm/audio/legacy/wdmaud/deviface.c @@ -165,7 +165,7 @@ WdmAudOpenSysAudioDevices( } /* get the file object */ - Status = ObReferenceObjectByHandle(hSysAudio, FILE_READ_DATA | FILE_WRITE_DATA, IoFileObjectType, KernelMode, (PVOID*)&FileObject, NULL); + Status = ObReferenceObjectByHandle(hSysAudio, FILE_READ_DATA | FILE_WRITE_DATA, *IoFileObjectType, KernelMode, (PVOID*)&FileObject, NULL); if (!NT_SUCCESS(Status)) { DPRINT1("Failed to reference FileObject %x\n", Status); @@ -200,7 +200,7 @@ WdmAudRegisterDeviceInterface( } /* failed to register device interface - * create a symbolic link instead + * create a symbolic link instead */ DeviceExtension->DeviceInterfaceSupport = FALSE; diff --git a/reactos/drivers/wdm/audio/legacy/wdmaud/mmixer.c b/reactos/drivers/wdm/audio/legacy/wdmaud/mmixer.c index 6642447d73a..deafa02aa40 100644 --- a/reactos/drivers/wdm/audio/legacy/wdmaud/mmixer.c +++ b/reactos/drivers/wdm/audio/legacy/wdmaud/mmixer.c @@ -202,7 +202,7 @@ Control( PFILE_OBJECT FileObject; /* get file object */ - Status = ObReferenceObjectByHandle(hMixer, GENERIC_READ | GENERIC_WRITE, IoFileObjectType, KernelMode, (PVOID*)&FileObject, NULL); + Status = ObReferenceObjectByHandle(hMixer, GENERIC_READ | GENERIC_WRITE, *IoFileObjectType, KernelMode, (PVOID*)&FileObject, NULL); if (!NT_SUCCESS(Status)) { DPRINT("failed to reference %p with %lx\n", hMixer, Status); @@ -420,7 +420,7 @@ WdmAudControlOpenMixer( if (DeviceInfo->u.hNotifyEvent) { - Status = ObReferenceObjectByHandle(DeviceInfo->u.hNotifyEvent, EVENT_MODIFY_STATE, ExEventObjectType, UserMode, (LPVOID*)&EventObject, NULL); + Status = ObReferenceObjectByHandle(DeviceInfo->u.hNotifyEvent, EVENT_MODIFY_STATE, *ExEventObjectType, UserMode, (LPVOID*)&EventObject, NULL); if (!NT_SUCCESS(Status)) { diff --git a/reactos/drivers/wdm/audio/legacy/wdmaud/sup.c b/reactos/drivers/wdm/audio/legacy/wdmaud/sup.c index c7c33a53005..f19178980d8 100644 --- a/reactos/drivers/wdm/audio/legacy/wdmaud/sup.c +++ b/reactos/drivers/wdm/audio/legacy/wdmaud/sup.c @@ -420,7 +420,7 @@ OpenDevice( if (FileObject) { - Status = ObReferenceObjectByHandle(hDevice, FILE_READ_DATA | FILE_WRITE_DATA, IoFileObjectType, KernelMode, (PVOID*)FileObject, NULL); + Status = ObReferenceObjectByHandle(hDevice, FILE_READ_DATA | FILE_WRITE_DATA, *IoFileObjectType, KernelMode, (PVOID*)FileObject, NULL); if (!NT_SUCCESS(Status)) { diff --git a/reactos/drivers/wdm/audio/sysaudio/deviface.c b/reactos/drivers/wdm/audio/sysaudio/deviface.c index 8db29770753..5e5bb098092 100644 --- a/reactos/drivers/wdm/audio/sysaudio/deviface.c +++ b/reactos/drivers/wdm/audio/sysaudio/deviface.c @@ -50,7 +50,7 @@ OpenDevice( return Status; } - Status = ObReferenceObjectByHandle(NodeHandle, GENERIC_READ | GENERIC_WRITE, IoFileObjectType, KernelMode, (PVOID*)&FileObject, NULL); + Status = ObReferenceObjectByHandle(NodeHandle, GENERIC_READ | GENERIC_WRITE, *IoFileObjectType, KernelMode, (PVOID*)&FileObject, NULL); if (!NT_SUCCESS(Status)) { ZwClose(NodeHandle); diff --git a/reactos/drivers/wdm/audio/sysaudio/pin.c b/reactos/drivers/wdm/audio/sysaudio/pin.c index f0c7f444214..1b688aac936 100644 --- a/reactos/drivers/wdm/audio/sysaudio/pin.c +++ b/reactos/drivers/wdm/audio/sysaudio/pin.c @@ -35,7 +35,7 @@ Pin_fnDeviceIoControl( ASSERT(Context); /* acquire real pin file object */ - Status = ObReferenceObjectByHandle(Context->Handle, GENERIC_WRITE, IoFileObjectType, KernelMode, (PVOID*)&FileObject, NULL); + Status = ObReferenceObjectByHandle(Context->Handle, GENERIC_WRITE, *IoFileObjectType, KernelMode, (PVOID*)&FileObject, NULL); if (!NT_SUCCESS(Status)) { Irp->IoStatus.Information = 0; @@ -94,7 +94,7 @@ Pin_fnWrite( } /* acquire real pin file object */ - Status = ObReferenceObjectByHandle(Context->Handle, GENERIC_WRITE, IoFileObjectType, KernelMode, (PVOID*)&FileObject, NULL); + Status = ObReferenceObjectByHandle(Context->Handle, GENERIC_WRITE, *IoFileObjectType, KernelMode, (PVOID*)&FileObject, NULL); if (!NT_SUCCESS(Status)) { DPRINT1("failed\n"); @@ -235,8 +235,8 @@ CreateMixerPinAndSetFormat( } Status = ObReferenceObjectByHandle(PinHandle, - GENERIC_READ | GENERIC_WRITE, - IoFileObjectType, KernelMode, (PVOID*)&FileObject, NULL); + GENERIC_READ | GENERIC_WRITE, + *IoFileObjectType, KernelMode, (PVOID*)&FileObject, NULL); if (!NT_SUCCESS(Status)) { diff --git a/reactos/include/ddk/ntddk.h b/reactos/include/ddk/ntddk.h index b8e4e03d995..8cf5a48f28a 100644 --- a/reactos/include/ddk/ntddk.h +++ b/reactos/include/ddk/ntddk.h @@ -1666,14 +1666,12 @@ typedef struct { #endif } HAL_DISPATCH, *PHAL_DISPATCH; -/* GCC/MSVC and WDK compatible declaration */ -extern NTKERNELAPI HAL_DISPATCH HalDispatchTable; - -#if defined(_NTOSKRNL_) || defined(_BLDR_) +#ifdef _NTSYSTEM_ +extern HAL_DISPATCH HalDispatchTable; #define HALDISPATCH (&HalDispatchTable) #else -/* This is a WDK compatibility definition */ -#define HalDispatchTable (&HalDispatchTable) +extern PHAL_DISPATCH HalDispatchTable; +__CREATE_NTOS_DATA_IMPORT_ALIAS(HalDispatchTable) #define HALDISPATCH HalDispatchTable #endif diff --git a/reactos/include/ddk/ntifs.h b/reactos/include/ddk/ntifs.h index df190c10d0a..7c4ce754313 100644 --- a/reactos/include/ddk/ntifs.h +++ b/reactos/include/ddk/ntifs.h @@ -870,11 +870,11 @@ typedef VOID (NTAPI *PRTL_FREE_STRING_ROUTINE)( _In_ __drv_freesMem(Mem) _Post_invalid_ PVOID Buffer); -extern const PRTL_ALLOCATE_STRING_ROUTINE RtlAllocateStringRoutine; -extern const PRTL_FREE_STRING_ROUTINE RtlFreeStringRoutine; +extern NTKERNELAPI const PRTL_ALLOCATE_STRING_ROUTINE RtlAllocateStringRoutine; +extern NTKERNELAPI const PRTL_FREE_STRING_ROUTINE RtlFreeStringRoutine; #if _WIN32_WINNT >= 0x0600 -extern const PRTL_REALLOCATE_STRING_ROUTINE RtlReallocateStringRoutine; +extern NTKERNELAPI const PRTL_REALLOCATE_STRING_ROUTINE RtlReallocateStringRoutine; #endif _Function_class_(RTL_HEAP_COMMIT_ROUTINE) @@ -4937,35 +4937,13 @@ FsRtlNotifyStreamFileObject( _In_ BOOLEAN SafeToRecurse); #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */ -#define DO_VERIFY_VOLUME 0x00000002 -#define DO_BUFFERED_IO 0x00000004 -#define DO_EXCLUSIVE 0x00000008 -#define DO_DIRECT_IO 0x00000010 -#define DO_MAP_IO_BUFFER 0x00000020 -#define DO_DEVICE_HAS_NAME 0x00000040 -#define DO_DEVICE_INITIALIZING 0x00000080 -#define DO_SYSTEM_BOOT_PARTITION 0x00000100 -#define DO_LONG_TERM_REQUESTS 0x00000200 -#define DO_NEVER_LAST_DEVICE 0x00000400 -#define DO_SHUTDOWN_REGISTERED 0x00000800 -#define DO_BUS_ENUMERATED_DEVICE 0x00001000 -#define DO_POWER_PAGABLE 0x00002000 -#define DO_POWER_INRUSH 0x00004000 -#define DO_LOW_PRIORITY_FILESYSTEM 0x00010000 -#define DO_SUPPORTS_TRANSACTIONS 0x00040000 -#define DO_FORCE_NEITHER_IO 0x00080000 -#define DO_VOLUME_DEVICE_OBJECT 0x00100000 -#define DO_SYSTEM_SYSTEM_PARTITION 0x00200000 -#define DO_SYSTEM_CRITICAL_PARTITION 0x00400000 -#define DO_DISALLOW_EXECUTE 0x00800000 - -extern KSPIN_LOCK IoStatisticsLock; -extern ULONG IoReadOperationCount; -extern ULONG IoWriteOperationCount; -extern ULONG IoOtherOperationCount; -extern LARGE_INTEGER IoReadTransferCount; -extern LARGE_INTEGER IoWriteTransferCount; -extern LARGE_INTEGER IoOtherTransferCount; +extern NTKERNELAPI KSPIN_LOCK IoStatisticsLock; +extern NTKERNELAPI ULONG IoReadOperationCount; +extern NTKERNELAPI ULONG IoWriteOperationCount; +extern NTKERNELAPI ULONG IoOtherOperationCount; +extern NTKERNELAPI LARGE_INTEGER IoReadTransferCount; +extern NTKERNELAPI LARGE_INTEGER IoWriteTransferCount; +extern NTKERNELAPI LARGE_INTEGER IoOtherTransferCount; #define IO_FILE_OBJECT_NON_PAGED_POOL_CHARGE 64 #define IO_FILE_OBJECT_PAGED_POOL_CHARGE 1024 @@ -5731,6 +5709,7 @@ SeLocateProcessImageName( ((PSECURITY_SUBJECT_CONTEXT) SubjectContext)->PrimaryToken ) extern NTKERNELAPI PSE_EXPORTS SeExports; + /****************************************************************************** * Process Manager Functions * ******************************************************************************/ @@ -8413,26 +8392,31 @@ FsRtlRemovePerFileObjectContext( (InterlockedDecrement((LONG volatile *)&((FL)->LockRequestsInProgress)));\ } -/* GCC compatible definition, MS one is retarded */ -extern NTKERNELAPI const UCHAR * const FsRtlLegalAnsiCharacterArray; -#define LEGAL_ANSI_CHARACTER_ARRAY FsRtlLegalAnsiCharacterArray +#ifdef _NTSYSTEM_ +extern const UCHAR * const FsRtlLegalAnsiCharacterArray; +#define LEGAL_ANSI_CHARACTER_ARRAY FsRtlLegalAnsiCharacterArray +#else +extern const UCHAR * const *FsRtlLegalAnsiCharacterArray; +__CREATE_NTOS_DATA_IMPORT_ALIAS(FsRtlLegalAnsiCharacterArray) +#define LEGAL_ANSI_CHARACTER_ARRAY (*FsRtlLegalAnsiCharacterArray) +#endif #define FsRtlIsAnsiCharacterWild(C) ( \ - FlagOn(FsRtlLegalAnsiCharacterArray[(UCHAR)(C)], FSRTL_WILD_CHARACTER ) \ + FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(UCHAR)(C)], FSRTL_WILD_CHARACTER ) \ ) #define FsRtlIsAnsiCharacterLegalFat(C, WILD) ( \ - FlagOn(FsRtlLegalAnsiCharacterArray[(UCHAR)(C)], (FSRTL_FAT_LEGAL) | \ + FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(UCHAR)(C)], (FSRTL_FAT_LEGAL) | \ ((WILD) ? FSRTL_WILD_CHARACTER : 0 )) \ ) #define FsRtlIsAnsiCharacterLegalHpfs(C, WILD) ( \ - FlagOn(FsRtlLegalAnsiCharacterArray[(UCHAR)(C)], (FSRTL_HPFS_LEGAL) | \ + FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(UCHAR)(C)], (FSRTL_HPFS_LEGAL) | \ ((WILD) ? FSRTL_WILD_CHARACTER : 0 )) \ ) #define FsRtlIsAnsiCharacterLegalNtfs(C, WILD) ( \ - FlagOn(FsRtlLegalAnsiCharacterArray[(UCHAR)(C)], (FSRTL_NTFS_LEGAL) | \ + FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(UCHAR)(C)], (FSRTL_NTFS_LEGAL) | \ ((WILD) ? FSRTL_WILD_CHARACTER : 0 )) \ ) @@ -8460,7 +8444,7 @@ extern NTKERNELAPI const UCHAR * const FsRtlLegalAnsiCharacterArray; #define FsRtlIsUnicodeCharacterWild(C) ( \ (((C) >= 0x40) ? \ FALSE : \ - FlagOn(FsRtlLegalAnsiCharacterArray[(C)], FSRTL_WILD_CHARACTER )) \ + FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(C)], FSRTL_WILD_CHARACTER )) \ ) #define FsRtlInitPerFileContext( _fc, _owner, _inst, _cb) \ @@ -8623,7 +8607,7 @@ typedef VOID (((PSECTION_OBJECT_POINTERS)(FO)->SectionObjectPointer)->SharedCacheMap != NULL) \ ) -extern ULONG CcFastMdlReadWait; +extern NTKERNELAPI ULONG CcFastMdlReadWait; #if (NTDDI_VERSION >= NTDDI_WIN2K) @@ -11005,13 +10989,14 @@ HalGetDmaAlignmentRequirement( #define HalGetDmaAlignmentRequirement() 1L #endif -extern NTKERNELAPI PUSHORT NlsOemLeadByteInfo; -#define NLS_OEM_LEAD_BYTE_INFO NlsOemLeadByteInfo - -#ifdef NLS_MB_CODE_PAGE_TAG -#undef NLS_MB_CODE_PAGE_TAG +#ifdef _NTSYSTEM_ +extern PUSHORT NlsOemLeadByteInfo; +#define NLS_OEM_LEAD_BYTE_INFO NlsOemLeadByteInfo +#else +extern PUSHORT *NlsOemLeadByteInfo; +__CREATE_NTOS_DATA_IMPORT_ALIAS(NlsOemLeadByteInfo) +#define NLS_OEM_LEAD_BYTE_INFO (*NlsOemLeadByteInfo) #endif -#define NLS_MB_CODE_PAGE_TAG NlsMbOemCodePageTag #if (NTDDI_VERSION >= NTDDI_VISTA) diff --git a/reactos/include/ddk/wdm.h b/reactos/include/ddk/wdm.h index 124e45b4012..26ebbf394c9 100644 --- a/reactos/include/ddk/wdm.h +++ b/reactos/include/ddk/wdm.h @@ -25,6 +25,9 @@ #ifndef _WDMDDK_ #define _WDMDDK_ +// TEMP HACK! +#define _PROPER_NT_EXPORTS 1 + #define WDM_MAJORVERSION 0x06 #define WDM_MINORVERSION 0x00 @@ -82,10 +85,13 @@ extern "C" { #endif /* For ReactOS */ -#if !defined(_NTOSKRNL_) && !defined(_BLDR_) +#if !defined(_NTOSKRNL_) && !defined(_BLDR_) && !defined(_NTSYSTEM_) #define NTKERNELAPI DECLSPEC_IMPORT #else #define NTKERNELAPI +#ifndef _NTSYSTEM_ +#define _NTSYSTEM_ +#endif #endif #if defined(_X86_) && !defined(_NTHAL_) @@ -129,6 +135,29 @@ extern "C" { #define ALLOC_DATA_PRAGMA 1 #endif +#endif /* _MSC_VER */ + +/* These macros are used to create aliases for imported data. We need to do + this to have declarations that are compatible with MS DDK */ +#ifdef _M_IX86 +#define __SYMBOL(_Name) "_"#_Name +#define __IMPORTSYMBOL(_Name) "__imp__"#_Name +#define __IMPORTNAME(_Name) _imp__##_Name +#else +#define __SYMBOL(_Name) #_Name +#define __IMPORTSYMBOL(_Name) "__imp_"#_Name +#define __IMPORTNAME(_Name) __imp_##_Name +#endif +#ifdef _MSC_VER +#define __CREATE_NTOS_DATA_IMPORT_ALIAS(_Name) \ + __pragma(comment(linker, "/alternatename:"__SYMBOL(_Name) "=" __IMPORTSYMBOL(_Name))) +#else /* !_MSC_VER */ +#ifndef __STRINGIFY +#define __STRINGIFY(_exp) #_exp +#endif +#define _Pragma_redifine_extname(_Name, _Target) _Pragma(__STRINGIFY(redefine_extname _Name _Target)) +#define __CREATE_NTOS_DATA_IMPORT_ALIAS(_Name) \ + _Pragma_redifine_extname(_Name,__IMPORTNAME(_Name)) #endif #if defined(_WIN64) @@ -599,11 +628,19 @@ typedef struct _EXCEPTION_POINTERS { PCONTEXT ContextRecord; } EXCEPTION_POINTERS, *PEXCEPTION_POINTERS; -/* MS definition is broken! */ -extern BOOLEAN NTSYSAPI NlsMbCodePageTag; -extern BOOLEAN NTSYSAPI NlsMbOemCodePageTag; +#ifdef _NTSYSTEM_ +extern BOOLEAN NlsMbCodePageTag; #define NLS_MB_CODE_PAGE_TAG NlsMbCodePageTag +extern BOOLEAN NlsMbOemCodePageTag; #define NLS_MB_OEM_CODE_PAGE_TAG NlsMbOemCodePageTag +#else +extern BOOLEAN *NlsMbCodePageTag; +__CREATE_NTOS_DATA_IMPORT_ALIAS(NlsMbCodePageTag) +#define NLS_MB_CODE_PAGE_TAG (*NlsMbCodePageTag) +extern BOOLEAN *NlsMbOemCodePageTag; +__CREATE_NTOS_DATA_IMPORT_ALIAS(NlsMbOemCodePageTag) +#define NLS_MB_OEM_CODE_PAGE_TAG (*NlsMbOemCodePageTag) +#endif #define SHORT_LEAST_SIGNIFICANT_BIT 0 #define SHORT_MOST_SIGNIFICANT_BIT 1 @@ -1673,6 +1710,7 @@ extern NTSYSAPI volatile CCHAR KeNumberProcessors; extern NTSYSAPI CCHAR KeNumberProcessors; #else extern PCCHAR KeNumberProcessors; +__CREATE_NTOS_DATA_IMPORT_ALIAS(KeNumberProcessors) #endif @@ -1824,8 +1862,11 @@ typedef enum _MM_SYSTEM_SIZE { MmLargeSystem } MM_SYSTEMSIZE; -extern NTKERNELAPI BOOLEAN Mm64BitPhysicalAddress; -extern PVOID MmBadPointer; +#ifndef _NTSYSTEM_ +extern PBOOLEAN Mm64BitPhysicalAddress; +__CREATE_NTOS_DATA_IMPORT_ALIAS(Mm64BitPhysicalAddress) +#endif +extern NTKERNELAPI PVOID MmBadPointer; /****************************************************************************** @@ -2098,7 +2139,7 @@ typedef struct _RESOURCE_PERFORMANCE_DATA { /* Global debug flag */ #if DEVL -extern ULONG NtGlobalFlag; +extern NTKERNELAPI ULONG NtGlobalFlag; #define IF_NTOS_DEBUG(FlagName) if (NtGlobalFlag & (FLG_##FlagName)) #else #define IF_NTOS_DEBUG(FlagName) if(FALSE) @@ -7857,6 +7898,7 @@ typedef struct _OBJECT_NAME_INFORMATION { } OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION; /* Exported object types */ +#ifdef _NTSYSTEM_ extern POBJECT_TYPE NTSYSAPI CmKeyObjectType; extern POBJECT_TYPE NTSYSAPI ExEventObjectType; extern POBJECT_TYPE NTSYSAPI ExSemaphoreObjectType; @@ -7864,6 +7906,30 @@ extern POBJECT_TYPE NTSYSAPI IoFileObjectType; extern POBJECT_TYPE NTSYSAPI PsThreadType; extern POBJECT_TYPE NTSYSAPI SeTokenObjectType; extern POBJECT_TYPE NTSYSAPI PsProcessType; +#else +extern POBJECT_TYPE *CmKeyObjectType; +extern POBJECT_TYPE *IoFileObjectType; +extern POBJECT_TYPE *ExEventObjectType; +extern POBJECT_TYPE *ExSemaphoreObjectType; +extern POBJECT_TYPE *TmTransactionManagerObjectType; +extern POBJECT_TYPE *TmResourceManagerObjectType; +extern POBJECT_TYPE *TmEnlistmentObjectType; +extern POBJECT_TYPE *TmTransactionObjectType; +extern POBJECT_TYPE *PsProcessType; +extern POBJECT_TYPE *PsThreadType; +extern POBJECT_TYPE *SeTokenObjectType; +__CREATE_NTOS_DATA_IMPORT_ALIAS(CmKeyObjectType) +__CREATE_NTOS_DATA_IMPORT_ALIAS(IoFileObjectType) +__CREATE_NTOS_DATA_IMPORT_ALIAS(ExEventObjectType) +__CREATE_NTOS_DATA_IMPORT_ALIAS(ExSemaphoreObjectType) +__CREATE_NTOS_DATA_IMPORT_ALIAS(TmTransactionManagerObjectType) +__CREATE_NTOS_DATA_IMPORT_ALIAS(TmResourceManagerObjectType) +__CREATE_NTOS_DATA_IMPORT_ALIAS(TmEnlistmentObjectType) +__CREATE_NTOS_DATA_IMPORT_ALIAS(TmTransactionObjectType) +__CREATE_NTOS_DATA_IMPORT_ALIAS(PsProcessType) +__CREATE_NTOS_DATA_IMPORT_ALIAS(PsThreadType) +__CREATE_NTOS_DATA_IMPORT_ALIAS(SeTokenObjectType) +#endif /****************************************************************************** @@ -8339,7 +8405,7 @@ KeRestoreFloatingPointState(PVOID FloatingState) #define HIGH_LEVEL 15 #define KI_USER_SHARED_DATA ((ULONG_PTR)(KADDRESS_BASE + 0xFFFE0000)) -extern volatile LARGE_INTEGER KeTickCount; +extern NTKERNELAPI volatile LARGE_INTEGER KeTickCount; #define PAUSE_PROCESSOR __yield(); @@ -15770,27 +15836,18 @@ DbgSetDebugPrintCallback( #endif /* !DBG */ -#if defined(__GNUC__) - -extern NTKERNELAPI BOOLEAN KdDebuggerNotPresent; -extern NTKERNELAPI BOOLEAN KdDebuggerEnabled; -#define KD_DEBUGGER_ENABLED KdDebuggerEnabled -#define KD_DEBUGGER_NOT_PRESENT KdDebuggerNotPresent - -#elif defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_) || defined(_WDMDDK_) || defined(_NTOSP_) - -extern NTKERNELAPI PBOOLEAN KdDebuggerNotPresent; -extern NTKERNELAPI PBOOLEAN KdDebuggerEnabled; -#define KD_DEBUGGER_ENABLED *KdDebuggerEnabled -#define KD_DEBUGGER_NOT_PRESENT *KdDebuggerNotPresent - -#else - -extern BOOLEAN KdDebuggerNotPresent; +#ifdef _NTSYSTEM_ extern BOOLEAN KdDebuggerEnabled; #define KD_DEBUGGER_ENABLED KdDebuggerEnabled +extern BOOLEAN KdDebuggerNotPresent; #define KD_DEBUGGER_NOT_PRESENT KdDebuggerNotPresent - +#else +extern BOOLEAN *KdDebuggerEnabled; +__CREATE_NTOS_DATA_IMPORT_ALIAS(KdDebuggerEnabled) +#define KD_DEBUGGER_ENABLED (*KdDebuggerEnabled) +extern BOOLEAN *KdDebuggerNotPresent; +__CREATE_NTOS_DATA_IMPORT_ALIAS(KdDebuggerNotPresent) +#define KD_DEBUGGER_NOT_PRESENT (*KdDebuggerNotPresent) #endif #if (NTDDI_VERSION >= NTDDI_WIN2K) diff --git a/reactos/include/reactos/libs/pseh/pseh3.h b/reactos/include/reactos/libs/pseh/pseh3.h index 6aa15dd9c15..8337b41522a 100644 --- a/reactos/include/reactos/libs/pseh/pseh3.h +++ b/reactos/include/reactos/libs/pseh/pseh3.h @@ -120,7 +120,7 @@ void * __cdecl __attribute__((error("Can only be used inside an exception filter #define _SEH3$_EnforceFramePointer() asm volatile ("#\n" : : "m"(*(char*)__builtin_alloca(4)) : "%esp", "memory") /* CLANG doesn't have asm goto! */ -#define _SEH3$_ASM_GOTO(_Label, ...) +#define _SEH3$_ASM_GOTO(...) int __attribute__((regparm(3))) @@ -167,7 +167,7 @@ _SEH3$_RegisterTryLevelWithNonVolatiles( /* This will make GCC use ebp, even if it was disabled by -fomit-frame-pointer */ #define _SEH3$_EnforceFramePointer() asm volatile ("#\n" : : "m"(*(char*)__builtin_alloca(0)) : "%esp", "memory") -#define _SEH3$_ASM_GOTO(_Label, ...) asm goto ("#\n" : : : "memory", ## __VA_ARGS__ : _Label) +#define _SEH3$_ASM_GOTO(...) asm goto ("#\n" : : : "memory" : __VA_ARGS__) #ifdef __cplusplus #define _SEH3$_CALL_WRAPPER(_Function, _TrylevelFrame, _DataTable) \ @@ -177,7 +177,7 @@ _SEH3$_RegisterTryLevelWithNonVolatiles( : \ : "m" (*(_TrylevelFrame)), "m" (*(_DataTable)), "c"(__builtin_alloca(0)) \ : "eax", "edx", "memory" \ - : _SEH3$_l_HandlerTarget, _SEH3$_l_FilterOrFinally) + : _SEH3$_l_BeforeTry, _SEH3$_l_HandlerTarget, _SEH3$_l_OnException, _SEH3$_l_BeforeFilterOrFinally, _SEH3$_l_FilterOrFinally) #else #define _SEH3$_CALL_WRAPPER(_Function, _TrylevelFrame, _DataTable) \ @@ -187,7 +187,7 @@ _SEH3$_RegisterTryLevelWithNonVolatiles( : \ : "m" (*(_TrylevelFrame)), "m" (*(_DataTable)) \ : "eax", "edx", "ecx", "memory" \ - : _SEH3$_l_HandlerTarget) + : _SEH3$_l_BeforeTry, _SEH3$_l_HandlerTarget, _SEH3$_l_OnException, _SEH3$_l_BeforeFilterOrFinally, _SEH3$_l_FilterOrFinally) #endif /* This is an asm wrapper around _SEH3$_RegisterFrame */ @@ -202,10 +202,8 @@ _SEH3$_RegisterTryLevelWithNonVolatiles( around into places that are never executed. */ #define _SEH3$_SCARE_GCC() \ void *plabel; \ - _SEH3$_ASM_GOTO(_SEH3$_l_BeforeTry); \ - _SEH3$_ASM_GOTO(_SEH3$_l_HandlerTarget); \ - _SEH3$_ASM_GOTO(_SEH3$_l_OnException); \ - asm volatile ("#" : "=a"(plabel) : "p"(&&_SEH3$_l_BeforeTry), "p"(&&_SEH3$_l_HandlerTarget), "p"(&&_SEH3$_l_OnException) \ + _SEH3$_ASM_GOTO(_SEH3$_l_BeforeTry, _SEH3$_l_HandlerTarget, _SEH3$_l_OnException, _SEH3$_l_BeforeFilterOrFinally, _SEH3$_l_FilterOrFinally); \ + asm volatile ("#" : "=a"(plabel) : "p"(&&_SEH3$_l_BeforeTry), "p"(&&_SEH3$_l_HandlerTarget), "p"(&&_SEH3$_l_OnException), "p"(&&_SEH3$_l_FilterOrFinally) \ : "ebx", "ecx", "edx", "esi", "edi", "flags", "memory" ); \ goto _SEH3$_l_OnException; diff --git a/reactos/include/xdk/ccfuncs.h b/reactos/include/xdk/ccfuncs.h index 9192381f5f4..5e998d89ed3 100644 --- a/reactos/include/xdk/ccfuncs.h +++ b/reactos/include/xdk/ccfuncs.h @@ -6,7 +6,7 @@ $if (_NTIFS_) (((PSECTION_OBJECT_POINTERS)(FO)->SectionObjectPointer)->SharedCacheMap != NULL) \ ) -extern ULONG CcFastMdlReadWait; +extern NTKERNELAPI ULONG CcFastMdlReadWait; #if (NTDDI_VERSION >= NTDDI_WIN2K) diff --git a/reactos/include/xdk/extypes.h b/reactos/include/xdk/extypes.h index ae252d375ed..548dceee203 100644 --- a/reactos/include/xdk/extypes.h +++ b/reactos/include/xdk/extypes.h @@ -271,7 +271,7 @@ typedef struct _RESOURCE_PERFORMANCE_DATA { /* Global debug flag */ #if DEVL -extern ULONG NtGlobalFlag; +extern NTKERNELAPI ULONG NtGlobalFlag; #define IF_NTOS_DEBUG(FlagName) if (NtGlobalFlag & (FLG_##FlagName)) #else #define IF_NTOS_DEBUG(FlagName) if(FALSE) diff --git a/reactos/include/xdk/fsrtlfuncs.h b/reactos/include/xdk/fsrtlfuncs.h index b98897c0bb8..24465b8e2ea 100644 --- a/reactos/include/xdk/fsrtlfuncs.h +++ b/reactos/include/xdk/fsrtlfuncs.h @@ -1580,26 +1580,31 @@ FsRtlRemovePerFileObjectContext( (InterlockedDecrement((LONG volatile *)&((FL)->LockRequestsInProgress)));\ } -/* GCC compatible definition, MS one is retarded */ -extern NTKERNELAPI const UCHAR * const FsRtlLegalAnsiCharacterArray; -#define LEGAL_ANSI_CHARACTER_ARRAY FsRtlLegalAnsiCharacterArray +#ifdef _NTSYSTEM_ +extern const UCHAR * const FsRtlLegalAnsiCharacterArray; +#define LEGAL_ANSI_CHARACTER_ARRAY FsRtlLegalAnsiCharacterArray +#else +extern const UCHAR * const *FsRtlLegalAnsiCharacterArray; +__CREATE_NTOS_DATA_IMPORT_ALIAS(FsRtlLegalAnsiCharacterArray) +#define LEGAL_ANSI_CHARACTER_ARRAY (*FsRtlLegalAnsiCharacterArray) +#endif #define FsRtlIsAnsiCharacterWild(C) ( \ - FlagOn(FsRtlLegalAnsiCharacterArray[(UCHAR)(C)], FSRTL_WILD_CHARACTER ) \ + FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(UCHAR)(C)], FSRTL_WILD_CHARACTER ) \ ) #define FsRtlIsAnsiCharacterLegalFat(C, WILD) ( \ - FlagOn(FsRtlLegalAnsiCharacterArray[(UCHAR)(C)], (FSRTL_FAT_LEGAL) | \ + FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(UCHAR)(C)], (FSRTL_FAT_LEGAL) | \ ((WILD) ? FSRTL_WILD_CHARACTER : 0 )) \ ) #define FsRtlIsAnsiCharacterLegalHpfs(C, WILD) ( \ - FlagOn(FsRtlLegalAnsiCharacterArray[(UCHAR)(C)], (FSRTL_HPFS_LEGAL) | \ + FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(UCHAR)(C)], (FSRTL_HPFS_LEGAL) | \ ((WILD) ? FSRTL_WILD_CHARACTER : 0 )) \ ) #define FsRtlIsAnsiCharacterLegalNtfs(C, WILD) ( \ - FlagOn(FsRtlLegalAnsiCharacterArray[(UCHAR)(C)], (FSRTL_NTFS_LEGAL) | \ + FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(UCHAR)(C)], (FSRTL_NTFS_LEGAL) | \ ((WILD) ? FSRTL_WILD_CHARACTER : 0 )) \ ) @@ -1627,7 +1632,7 @@ extern NTKERNELAPI const UCHAR * const FsRtlLegalAnsiCharacterArray; #define FsRtlIsUnicodeCharacterWild(C) ( \ (((C) >= 0x40) ? \ FALSE : \ - FlagOn(FsRtlLegalAnsiCharacterArray[(C)], FSRTL_WILD_CHARACTER )) \ + FlagOn(LEGAL_ANSI_CHARACTER_ARRAY[(C)], FSRTL_WILD_CHARACTER )) \ ) #define FsRtlInitPerFileContext( _fc, _owner, _inst, _cb) \ diff --git a/reactos/include/xdk/haltypes.h b/reactos/include/xdk/haltypes.h index 941daef32be..db308060e03 100644 --- a/reactos/include/xdk/haltypes.h +++ b/reactos/include/xdk/haltypes.h @@ -269,14 +269,12 @@ typedef struct { #endif } HAL_DISPATCH, *PHAL_DISPATCH; -/* GCC/MSVC and WDK compatible declaration */ -extern NTKERNELAPI HAL_DISPATCH HalDispatchTable; - -#if defined(_NTOSKRNL_) || defined(_BLDR_) +#ifdef _NTSYSTEM_ +extern HAL_DISPATCH HalDispatchTable; #define HALDISPATCH (&HalDispatchTable) #else -/* This is a WDK compatibility definition */ -#define HalDispatchTable (&HalDispatchTable) +extern PHAL_DISPATCH HalDispatchTable; +__CREATE_NTOS_DATA_IMPORT_ALIAS(HalDispatchTable) #define HALDISPATCH HalDispatchTable #endif diff --git a/reactos/include/xdk/ia64/ke.h b/reactos/include/xdk/ia64/ke.h index 2920636bf54..27ff06ad3f0 100644 --- a/reactos/include/xdk/ia64/ke.h +++ b/reactos/include/xdk/ia64/ke.h @@ -17,7 +17,7 @@ $if (_WDMDDK_) #define HIGH_LEVEL 15 #define KI_USER_SHARED_DATA ((ULONG_PTR)(KADDRESS_BASE + 0xFFFE0000)) -extern volatile LARGE_INTEGER KeTickCount; +extern NTKERNELAPI volatile LARGE_INTEGER KeTickCount; #define PAUSE_PROCESSOR __yield(); diff --git a/reactos/include/xdk/iotypes.h b/reactos/include/xdk/iotypes.h index 4b375154977..41954a5a121 100644 --- a/reactos/include/xdk/iotypes.h +++ b/reactos/include/xdk/iotypes.h @@ -7037,35 +7037,13 @@ FsRtlNotifyStreamFileObject( _In_ BOOLEAN SafeToRecurse); #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */ -#define DO_VERIFY_VOLUME 0x00000002 -#define DO_BUFFERED_IO 0x00000004 -#define DO_EXCLUSIVE 0x00000008 -#define DO_DIRECT_IO 0x00000010 -#define DO_MAP_IO_BUFFER 0x00000020 -#define DO_DEVICE_HAS_NAME 0x00000040 -#define DO_DEVICE_INITIALIZING 0x00000080 -#define DO_SYSTEM_BOOT_PARTITION 0x00000100 -#define DO_LONG_TERM_REQUESTS 0x00000200 -#define DO_NEVER_LAST_DEVICE 0x00000400 -#define DO_SHUTDOWN_REGISTERED 0x00000800 -#define DO_BUS_ENUMERATED_DEVICE 0x00001000 -#define DO_POWER_PAGABLE 0x00002000 -#define DO_POWER_INRUSH 0x00004000 -#define DO_LOW_PRIORITY_FILESYSTEM 0x00010000 -#define DO_SUPPORTS_TRANSACTIONS 0x00040000 -#define DO_FORCE_NEITHER_IO 0x00080000 -#define DO_VOLUME_DEVICE_OBJECT 0x00100000 -#define DO_SYSTEM_SYSTEM_PARTITION 0x00200000 -#define DO_SYSTEM_CRITICAL_PARTITION 0x00400000 -#define DO_DISALLOW_EXECUTE 0x00800000 - -extern KSPIN_LOCK IoStatisticsLock; -extern ULONG IoReadOperationCount; -extern ULONG IoWriteOperationCount; -extern ULONG IoOtherOperationCount; -extern LARGE_INTEGER IoReadTransferCount; -extern LARGE_INTEGER IoWriteTransferCount; -extern LARGE_INTEGER IoOtherTransferCount; +extern NTKERNELAPI KSPIN_LOCK IoStatisticsLock; +extern NTKERNELAPI ULONG IoReadOperationCount; +extern NTKERNELAPI ULONG IoWriteOperationCount; +extern NTKERNELAPI ULONG IoOtherOperationCount; +extern NTKERNELAPI LARGE_INTEGER IoReadTransferCount; +extern NTKERNELAPI LARGE_INTEGER IoWriteTransferCount; +extern NTKERNELAPI LARGE_INTEGER IoOtherTransferCount; #define IO_FILE_OBJECT_NON_PAGED_POOL_CHARGE 64 #define IO_FILE_OBJECT_PAGED_POOL_CHARGE 1024 diff --git a/reactos/include/xdk/kdfuncs.h b/reactos/include/xdk/kdfuncs.h index e05c86500d8..b5e908ba35a 100644 --- a/reactos/include/xdk/kdfuncs.h +++ b/reactos/include/xdk/kdfuncs.h @@ -119,27 +119,18 @@ DbgSetDebugPrintCallback( #endif /* !DBG */ -#if defined(__GNUC__) - -extern NTKERNELAPI BOOLEAN KdDebuggerNotPresent; -extern NTKERNELAPI BOOLEAN KdDebuggerEnabled; -#define KD_DEBUGGER_ENABLED KdDebuggerEnabled -#define KD_DEBUGGER_NOT_PRESENT KdDebuggerNotPresent - -#elif defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_) || defined(_WDMDDK_) || defined(_NTOSP_) - -extern NTKERNELAPI PBOOLEAN KdDebuggerNotPresent; -extern NTKERNELAPI PBOOLEAN KdDebuggerEnabled; -#define KD_DEBUGGER_ENABLED *KdDebuggerEnabled -#define KD_DEBUGGER_NOT_PRESENT *KdDebuggerNotPresent - -#else - -extern BOOLEAN KdDebuggerNotPresent; +#ifdef _NTSYSTEM_ extern BOOLEAN KdDebuggerEnabled; #define KD_DEBUGGER_ENABLED KdDebuggerEnabled +extern BOOLEAN KdDebuggerNotPresent; #define KD_DEBUGGER_NOT_PRESENT KdDebuggerNotPresent - +#else +extern BOOLEAN *KdDebuggerEnabled; +__CREATE_NTOS_DATA_IMPORT_ALIAS(KdDebuggerEnabled) +#define KD_DEBUGGER_ENABLED (*KdDebuggerEnabled) +extern BOOLEAN *KdDebuggerNotPresent; +__CREATE_NTOS_DATA_IMPORT_ALIAS(KdDebuggerNotPresent) +#define KD_DEBUGGER_NOT_PRESENT (*KdDebuggerNotPresent) #endif #if (NTDDI_VERSION >= NTDDI_WIN2K) diff --git a/reactos/include/xdk/ketypes.h b/reactos/include/xdk/ketypes.h index 1ef6473ba2e..7b14d0ae09b 100644 --- a/reactos/include/xdk/ketypes.h +++ b/reactos/include/xdk/ketypes.h @@ -987,6 +987,7 @@ extern NTSYSAPI volatile CCHAR KeNumberProcessors; extern NTSYSAPI CCHAR KeNumberProcessors; #else extern PCCHAR KeNumberProcessors; +__CREATE_NTOS_DATA_IMPORT_ALIAS(KeNumberProcessors) #endif $endif (_WDMDDK_) diff --git a/reactos/include/xdk/mmtypes.h b/reactos/include/xdk/mmtypes.h index 2b98aeef5ae..ae665cca59a 100644 --- a/reactos/include/xdk/mmtypes.h +++ b/reactos/include/xdk/mmtypes.h @@ -147,8 +147,11 @@ typedef enum _MM_SYSTEM_SIZE { MmLargeSystem } MM_SYSTEMSIZE; -extern NTKERNELAPI BOOLEAN Mm64BitPhysicalAddress; -extern PVOID MmBadPointer; +#ifndef _NTSYSTEM_ +extern PBOOLEAN Mm64BitPhysicalAddress; +__CREATE_NTOS_DATA_IMPORT_ALIAS(Mm64BitPhysicalAddress) +#endif +extern NTKERNELAPI PVOID MmBadPointer; $endif (_WDMDDK_) $if (_NTDDK_) diff --git a/reactos/include/xdk/ntifs.template.h b/reactos/include/xdk/ntifs.template.h index dfff253e59e..68957892ec6 100644 --- a/reactos/include/xdk/ntifs.template.h +++ b/reactos/include/xdk/ntifs.template.h @@ -1124,13 +1124,14 @@ HalGetDmaAlignmentRequirement( #define HalGetDmaAlignmentRequirement() 1L #endif -extern NTKERNELAPI PUSHORT NlsOemLeadByteInfo; -#define NLS_OEM_LEAD_BYTE_INFO NlsOemLeadByteInfo - -#ifdef NLS_MB_CODE_PAGE_TAG -#undef NLS_MB_CODE_PAGE_TAG +#ifdef _NTSYSTEM_ +extern PUSHORT NlsOemLeadByteInfo; +#define NLS_OEM_LEAD_BYTE_INFO NlsOemLeadByteInfo +#else +extern PUSHORT *NlsOemLeadByteInfo; +__CREATE_NTOS_DATA_IMPORT_ALIAS(NlsOemLeadByteInfo) +#define NLS_OEM_LEAD_BYTE_INFO (*NlsOemLeadByteInfo) #endif -#define NLS_MB_CODE_PAGE_TAG NlsMbOemCodePageTag #if (NTDDI_VERSION >= NTDDI_VISTA) diff --git a/reactos/include/xdk/obtypes.h b/reactos/include/xdk/obtypes.h index 7063ab1d1e3..482ab193979 100644 --- a/reactos/include/xdk/obtypes.h +++ b/reactos/include/xdk/obtypes.h @@ -125,6 +125,7 @@ typedef struct _OBJECT_NAME_INFORMATION { } OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION; /* Exported object types */ +#ifdef _NTSYSTEM_ extern POBJECT_TYPE NTSYSAPI CmKeyObjectType; extern POBJECT_TYPE NTSYSAPI ExEventObjectType; extern POBJECT_TYPE NTSYSAPI ExSemaphoreObjectType; @@ -132,6 +133,30 @@ extern POBJECT_TYPE NTSYSAPI IoFileObjectType; extern POBJECT_TYPE NTSYSAPI PsThreadType; extern POBJECT_TYPE NTSYSAPI SeTokenObjectType; extern POBJECT_TYPE NTSYSAPI PsProcessType; +#else +extern POBJECT_TYPE *CmKeyObjectType; +extern POBJECT_TYPE *IoFileObjectType; +extern POBJECT_TYPE *ExEventObjectType; +extern POBJECT_TYPE *ExSemaphoreObjectType; +extern POBJECT_TYPE *TmTransactionManagerObjectType; +extern POBJECT_TYPE *TmResourceManagerObjectType; +extern POBJECT_TYPE *TmEnlistmentObjectType; +extern POBJECT_TYPE *TmTransactionObjectType; +extern POBJECT_TYPE *PsProcessType; +extern POBJECT_TYPE *PsThreadType; +extern POBJECT_TYPE *SeTokenObjectType; +__CREATE_NTOS_DATA_IMPORT_ALIAS(CmKeyObjectType) +__CREATE_NTOS_DATA_IMPORT_ALIAS(IoFileObjectType) +__CREATE_NTOS_DATA_IMPORT_ALIAS(ExEventObjectType) +__CREATE_NTOS_DATA_IMPORT_ALIAS(ExSemaphoreObjectType) +__CREATE_NTOS_DATA_IMPORT_ALIAS(TmTransactionManagerObjectType) +__CREATE_NTOS_DATA_IMPORT_ALIAS(TmResourceManagerObjectType) +__CREATE_NTOS_DATA_IMPORT_ALIAS(TmEnlistmentObjectType) +__CREATE_NTOS_DATA_IMPORT_ALIAS(TmTransactionObjectType) +__CREATE_NTOS_DATA_IMPORT_ALIAS(PsProcessType) +__CREATE_NTOS_DATA_IMPORT_ALIAS(PsThreadType) +__CREATE_NTOS_DATA_IMPORT_ALIAS(SeTokenObjectType) +#endif $endif (_WDMDDK_) $if (_NTIFS_) diff --git a/reactos/include/xdk/rtltypes.h b/reactos/include/xdk/rtltypes.h index 0b61c724921..7e56f8c9e1f 100644 --- a/reactos/include/xdk/rtltypes.h +++ b/reactos/include/xdk/rtltypes.h @@ -197,11 +197,19 @@ typedef struct _EXCEPTION_POINTERS { PCONTEXT ContextRecord; } EXCEPTION_POINTERS, *PEXCEPTION_POINTERS; -/* MS definition is broken! */ -extern BOOLEAN NTSYSAPI NlsMbCodePageTag; -extern BOOLEAN NTSYSAPI NlsMbOemCodePageTag; +#ifdef _NTSYSTEM_ +extern BOOLEAN NlsMbCodePageTag; #define NLS_MB_CODE_PAGE_TAG NlsMbCodePageTag +extern BOOLEAN NlsMbOemCodePageTag; #define NLS_MB_OEM_CODE_PAGE_TAG NlsMbOemCodePageTag +#else +extern BOOLEAN *NlsMbCodePageTag; +__CREATE_NTOS_DATA_IMPORT_ALIAS(NlsMbCodePageTag) +#define NLS_MB_CODE_PAGE_TAG (*NlsMbCodePageTag) +extern BOOLEAN *NlsMbOemCodePageTag; +__CREATE_NTOS_DATA_IMPORT_ALIAS(NlsMbOemCodePageTag) +#define NLS_MB_OEM_CODE_PAGE_TAG (*NlsMbOemCodePageTag) +#endif #define SHORT_LEAST_SIGNIFICANT_BIT 0 #define SHORT_MOST_SIGNIFICANT_BIT 1 @@ -551,11 +559,11 @@ typedef VOID (NTAPI *PRTL_FREE_STRING_ROUTINE)( _In_ __drv_freesMem(Mem) _Post_invalid_ PVOID Buffer); -extern const PRTL_ALLOCATE_STRING_ROUTINE RtlAllocateStringRoutine; -extern const PRTL_FREE_STRING_ROUTINE RtlFreeStringRoutine; +extern NTKERNELAPI const PRTL_ALLOCATE_STRING_ROUTINE RtlAllocateStringRoutine; +extern NTKERNELAPI const PRTL_FREE_STRING_ROUTINE RtlFreeStringRoutine; #if _WIN32_WINNT >= 0x0600 -extern const PRTL_REALLOCATE_STRING_ROUTINE RtlReallocateStringRoutine; +extern NTKERNELAPI const PRTL_REALLOCATE_STRING_ROUTINE RtlReallocateStringRoutine; #endif _Function_class_(RTL_HEAP_COMMIT_ROUTINE) diff --git a/reactos/include/xdk/sefuncs.h b/reactos/include/xdk/sefuncs.h index 44e5fedfa9e..c7e27666159 100644 --- a/reactos/include/xdk/sefuncs.h +++ b/reactos/include/xdk/sefuncs.h @@ -588,4 +588,5 @@ SeLocateProcessImageName( ((PSECURITY_SUBJECT_CONTEXT) SubjectContext)->PrimaryToken ) extern NTKERNELAPI PSE_EXPORTS SeExports; + $endif (_NTIFS_) diff --git a/reactos/include/xdk/wdm.template.h b/reactos/include/xdk/wdm.template.h index fa472156785..4d9e8f1d000 100644 --- a/reactos/include/xdk/wdm.template.h +++ b/reactos/include/xdk/wdm.template.h @@ -82,10 +82,13 @@ extern "C" { #endif /* For ReactOS */ -#if !defined(_NTOSKRNL_) && !defined(_BLDR_) +#if !defined(_NTOSKRNL_) && !defined(_BLDR_) && !defined(_NTSYSTEM_) #define NTKERNELAPI DECLSPEC_IMPORT #else #define NTKERNELAPI +#ifndef _NTSYSTEM_ +#define _NTSYSTEM_ +#endif #endif #if defined(_X86_) && !defined(_NTHAL_) @@ -129,6 +132,29 @@ extern "C" { #define ALLOC_DATA_PRAGMA 1 #endif +#endif /* _MSC_VER */ + +/* These macros are used to create aliases for imported data. We need to do + this to have declarations that are compatible with MS DDK */ +#ifdef _M_IX86 +#define __SYMBOL(_Name) "_"#_Name +#define __IMPORTSYMBOL(_Name) "__imp__"#_Name +#define __IMPORTNAME(_Name) _imp__##_Name +#else +#define __SYMBOL(_Name) #_Name +#define __IMPORTSYMBOL(_Name) "__imp_"#_Name +#define __IMPORTNAME(_Name) __imp_##_Name +#endif +#ifdef _MSC_VER +#define __CREATE_NTOS_DATA_IMPORT_ALIAS(_Name) \ + __pragma(comment(linker, "/alternatename:"__SYMBOL(_Name) "=" __IMPORTSYMBOL(_Name))) +#else /* !_MSC_VER */ +#ifndef __STRINGIFY +#define __STRINGIFY(_exp) #_exp +#endif +#define _Pragma_redifine_extname(_Name, _Target) _Pragma(__STRINGIFY(redefine_extname _Name _Target)) +#define __CREATE_NTOS_DATA_IMPORT_ALIAS(_Name) \ + _Pragma_redifine_extname(_Name,__IMPORTNAME(_Name)) #endif #if defined(_WIN64) diff --git a/reactos/lib/rtl/nls.c b/reactos/lib/rtl/nls.c index 49a8fa13f43..ee892a09324 100644 --- a/reactos/lib/rtl/nls.c +++ b/reactos/lib/rtl/nls.c @@ -31,13 +31,12 @@ BOOLEAN NlsMbOemCodePageTag = FALSE; /* exported */ PWCHAR NlsOemToUnicodeTable = NULL; PCHAR NlsUnicodeToOemTable =NULL; PWCHAR NlsDbcsUnicodeToOemTable = NULL; -PUSHORT _NlsOemLeadByteInfo = NULL; /* exported */ +PUSHORT NlsOemLeadByteInfo = NULL; /* exported */ USHORT NlsOemDefaultChar = '\0'; USHORT NlsUnicodeDefaultChar = 0; -#define NlsOemLeadByteInfo _NlsOemLeadByteInfo #define INIT_FUNCTION /* FUNCTIONS *****************************************************************/ diff --git a/reactos/ntoskrnl/ex/event.c b/reactos/ntoskrnl/ex/event.c index 4238a82115f..26cbda90f34 100644 --- a/reactos/ntoskrnl/ex/event.c +++ b/reactos/ntoskrnl/ex/event.c @@ -19,7 +19,7 @@ /* GLOBALS *******************************************************************/ -POBJECT_TYPE _ExEventObjectType = NULL; +POBJECT_TYPE ExEventObjectType = NULL; GENERIC_MAPPING ExpEventMapping = { diff --git a/reactos/ntoskrnl/ex/sem.c b/reactos/ntoskrnl/ex/sem.c index 7b07b906a0d..98464685589 100644 --- a/reactos/ntoskrnl/ex/sem.c +++ b/reactos/ntoskrnl/ex/sem.c @@ -19,7 +19,7 @@ /* GLOBALS ******************************************************************/ -POBJECT_TYPE _ExSemaphoreObjectType; +POBJECT_TYPE ExSemaphoreObjectType; GENERIC_MAPPING ExSemaphoreMapping = { diff --git a/reactos/ntoskrnl/fsrtl/fsrtlpc.c b/reactos/ntoskrnl/fsrtl/fsrtlpc.c index b5a68a4075e..0150a5582ee 100644 --- a/reactos/ntoskrnl/fsrtl/fsrtlpc.c +++ b/reactos/ntoskrnl/fsrtl/fsrtlpc.c @@ -18,7 +18,7 @@ PERESOURCE FsRtlPagingIoResources; ULONG FsRtlPagingIoResourceSelector; NTSTATUS NTAPI INIT_FUNCTION FsRtlInitializeWorkerThread(VOID); -static UCHAR LegalAnsiCharacterArray[] = +static const UCHAR LegalAnsiCharacterArray[] = { 0, /* CTRL+@, 0x00 */ 0, /* CTRL+A, 0x01 */ @@ -150,7 +150,7 @@ static UCHAR LegalAnsiCharacterArray[] = FSRTL_FAT_LEGAL | FSRTL_HPFS_LEGAL | FSRTL_NTFS_LEGAL /* 0x7f */ }; -PUCHAR FsRtlLegalAnsiCharacterArray = LegalAnsiCharacterArray; +const UCHAR * const FsRtlLegalAnsiCharacterArray = LegalAnsiCharacterArray; /* PRIVATE FUNCTIONS *********************************************************/ diff --git a/reactos/ntoskrnl/include/internal/fsrtl.h b/reactos/ntoskrnl/include/internal/fsrtl.h index cca4e8faeb1..86ce04e840a 100644 --- a/reactos/ntoskrnl/include/internal/fsrtl.h +++ b/reactos/ntoskrnl/include/internal/fsrtl.h @@ -133,5 +133,4 @@ FsRtlInitSystem( // Global data inside the File System Runtime Library // extern PERESOURCE FsRtlPagingIoResources; -extern PUCHAR _FsRtlLegalAnsiCharacterArray; extern PAGED_LOOKASIDE_LIST FsRtlFileLockLookasideList; diff --git a/reactos/ntoskrnl/include/internal/kd.h b/reactos/ntoskrnl/include/internal/kd.h index 0943e546962..3bb0dc3e59c 100644 --- a/reactos/ntoskrnl/include/internal/kd.h +++ b/reactos/ntoskrnl/include/internal/kd.h @@ -2,18 +2,11 @@ #include -#ifdef _M_PPC -#define KdDebuggerEnabled _KdDebuggerEnabled -#define KdDebuggerNotPresent _KdDebuggerNotPresent -#endif - // // Kernel Debugger Port Definition // struct _KD_DISPATCH_TABLE; extern CPPORT GdbPortInfo; -extern BOOLEAN _KdDebuggerEnabled; -extern BOOLEAN _KdDebuggerNotPresent; extern BOOLEAN KdBreakAfterSymbolLoad; extern BOOLEAN KdPitchDebugger; extern BOOLEAN KdIgnoreUmExceptions; diff --git a/reactos/ntoskrnl/include/internal/kd64.h b/reactos/ntoskrnl/include/internal/kd64.h index 444afbb51df..9cae4fa60c4 100644 --- a/reactos/ntoskrnl/include/internal/kd64.h +++ b/reactos/ntoskrnl/include/internal/kd64.h @@ -494,8 +494,6 @@ extern PKDEBUG_ROUTINE KiDebugRoutine; extern PKDEBUG_SWITCH_ROUTINE KiDebugSwitchRoutine; extern BOOLEAN KdBreakAfterSymbolLoad; extern BOOLEAN KdPitchDebugger; -extern BOOLEAN _KdDebuggerNotPresent; -extern BOOLEAN _KdDebuggerEnabled; extern BOOLEAN KdAutoEnableOnEvent; extern BOOLEAN KdBlockEnable; extern BOOLEAN KdIgnoreUmExceptions; diff --git a/reactos/ntoskrnl/include/ntoskrnl.h b/reactos/ntoskrnl/include/ntoskrnl.h index 9e7f37dd596..dc5772c66a8 100644 --- a/reactos/ntoskrnl/include/ntoskrnl.h +++ b/reactos/ntoskrnl/include/ntoskrnl.h @@ -90,31 +90,8 @@ // // Define the internal versions of external and public global data // -#define IoFileObjectType _IoFileObjectType -#define PsThreadType _PsThreadType -#define PsProcessType _PsProcessType -#define ExEventObjectType _ExEventObjectType -#define ExSemaphoreObjectType _ExSemaphoreObjectType -#define KdDebuggerEnabled _KdDebuggerEnabled -#define KdDebuggerNotPresent _KdDebuggerNotPresent -#define NlsOemLeadByteInfo _NlsOemLeadByteInfo -extern PUSHORT _NlsOemLeadByteInfo; #define KeNumberProcessors _KeNumberProcessors extern UCHAR _KeNumberProcessors; -#define FsRtlLegalAnsiCharacterArray _FsRtlLegalAnsiCharacterArray -#undef LEGAL_ANSI_CHARACTER_ARRAY -#undef NLS_MB_CODE_PAGE_TAG -#undef NLS_OEM_LEAD_BYTE_INFO -#define LEGAL_ANSI_CHARACTER_ARRAY FsRtlLegalAnsiCharacterArray -#define NLS_MB_CODE_PAGE_TAG NlsMbOemCodePageTag -#define NLS_OEM_LEAD_BYTE_INFO _NlsOemLeadByteInfo -#undef KD_DEBUGGER_ENABLED -#undef KD_DEBUGGER_NOT_PRESENT -#define KD_DEBUGGER_ENABLED KdDebuggerEnabled -#define KD_DEBUGGER_NOT_PRESENT KdDebuggerNotPresent -#define HalDispatchTable _HalDispatchTable -#undef HALDISPATCH -#define HALDISPATCH (&HalDispatchTable) #define ExRaiseStatus RtlRaiseStatus /* Internal Headers */ diff --git a/reactos/ntoskrnl/kd64/kdapi.c b/reactos/ntoskrnl/kd64/kdapi.c index c0a1650faa4..5ea86413fd8 100644 --- a/reactos/ntoskrnl/kd64/kdapi.c +++ b/reactos/ntoskrnl/kd64/kdapi.c @@ -1903,9 +1903,7 @@ KdDisableDebuggerWithLock(IN BOOLEAN NeedLock) /* We are disabled now */ KdDebuggerEnabled = FALSE; -#undef KdDebuggerEnabled SharedUserData->KdDebuggerEnabled = FALSE; -#define KdDebuggerEnabled _KdDebuggerEnabled } } diff --git a/reactos/ntoskrnl/kd64/kddata.c b/reactos/ntoskrnl/kd64/kddata.c index d6b0107fcb9..5a1e10ea065 100644 --- a/reactos/ntoskrnl/kd64/kddata.c +++ b/reactos/ntoskrnl/kd64/kddata.c @@ -79,8 +79,8 @@ PKDEBUG_SWITCH_ROUTINE KiDebugSwitchRoutine; // BOOLEAN KdBreakAfterSymbolLoad; BOOLEAN KdPitchDebugger; -BOOLEAN _KdDebuggerNotPresent; -BOOLEAN _KdDebuggerEnabled; +BOOLEAN KdDebuggerNotPresent; +BOOLEAN KdDebuggerEnabled; BOOLEAN KdAutoEnableOnEvent; BOOLEAN KdBlockEnable; BOOLEAN KdIgnoreUmExceptions; diff --git a/reactos/ntoskrnl/kd64/kdinit.c b/reactos/ntoskrnl/kd64/kdinit.c index 89d57fb089b..723a18ca323 100644 --- a/reactos/ntoskrnl/kd64/kdinit.c +++ b/reactos/ntoskrnl/kd64/kdinit.c @@ -310,9 +310,7 @@ KdInitSystem(IN ULONG BootPhase, KdDebuggerEnabled = TRUE; /* Let user-mode know that it's enabled as well */ -#undef KdDebuggerEnabled SharedUserData->KdDebuggerEnabled = TRUE; -#define KdDebuggerEnabled _KdDebuggerEnabled /* Check if the debugger should be disabled initially */ if (DisableKdAfterInit) diff --git a/reactos/ntoskrnl/ntoskrnl.spec b/reactos/ntoskrnl/ntoskrnl.spec index e5d8eeebdf7..5f7a0725804 100644 --- a/reactos/ntoskrnl/ntoskrnl.spec +++ b/reactos/ntoskrnl/ntoskrnl.spec @@ -82,7 +82,7 @@ @ stdcall ExEnterCriticalRegionAndAcquireResourceShared(ptr) @ stdcall ExEnterCriticalRegionAndAcquireSharedWaitForExclusive(ptr) @ stdcall ExEnumHandleTable(ptr ptr ptr ptr) -@ extern ExEventObjectType _ExEventObjectType +@ extern ExEventObjectType @ stdcall ExExtendZone(ptr ptr long) @ stdcall ExFreeCacheAwareRundownProtection(ptr) @ stdcall ExFreePool(ptr) @@ -144,7 +144,7 @@ @ fastcall ExReleaseRundownProtectionEx(ptr long) ExfReleaseRundownProtectionEx @ fastcall ExRundownCompleted(ptr) ExfRundownCompleted @ fastcall ExRundownCompletedCacheAware(ptr) ExfRundownCompletedCacheAware -@ extern ExSemaphoreObjectType _ExSemaphoreObjectType +@ extern ExSemaphoreObjectType @ stdcall ExSetResourceOwnerPointer(ptr ptr) @ stdcall ExSetTimerResolution(long long) @ stdcall ExSizeOfRundownProtectionCacheAware() @@ -241,7 +241,7 @@ @ stdcall FsRtlIsNtstatusExpected(long) @ stdcall FsRtlIsPagingFile(ptr) @ stdcall FsRtlIsTotalDeviceFailure(ptr) -@ extern FsRtlLegalAnsiCharacterArray _FsRtlLegalAnsiCharacterArray +@ extern FsRtlLegalAnsiCharacterArray @ stdcall FsRtlLookupBaseMcbEntry(ptr long long ptr ptr ptr ptr ptr) @ stdcall FsRtlLookupLargeMcbEntry(ptr long long ptr ptr ptr ptr ptr) @ stdcall FsRtlLookupLastBaseMcbEntry(ptr ptr ptr) @@ -302,7 +302,7 @@ @ stdcall FsRtlUninitializeLargeMcb(ptr) @ stdcall FsRtlUninitializeMcb(ptr) @ stdcall FsRtlUninitializeOplock(ptr) -@ extern HalDispatchTable _HalDispatchTable +@ extern HalDispatchTable @ fastcall HalExamineMBR(ptr long long ptr) @ extern HalPrivateDispatchTable @ stdcall HeadlessDispatch(long ptr long ptr ptr) @@ -393,7 +393,7 @@ @ stdcall IoEnumerateDeviceObjectList(ptr ptr long ptr) @ stdcall IoEnumerateRegisteredFiltersList(ptr long ptr) @ stdcall IoFastQueryNetworkAttributes(ptr long long ptr ptr) -@ extern IoFileObjectType _IoFileObjectType +@ extern IoFileObjectType @ stdcall IoForwardAndCatchIrp(ptr ptr) IoForwardIrpSynchronously @ stdcall IoForwardIrpSynchronously(ptr ptr) @ stdcall IoFreeController(ptr) @@ -533,8 +533,8 @@ @ fastcall IofCallDriver(ptr ptr) @ fastcall IofCompleteRequest(ptr long) @ stdcall KdChangeOption(long long ptr long ptr ptr) -@ extern KdDebuggerEnabled _KdDebuggerEnabled -@ extern KdDebuggerNotPresent _KdDebuggerNotPresent +@ extern KdDebuggerEnabled +@ extern KdDebuggerNotPresent @ stdcall KdDisableDebugger() @ stdcall KdEnableDebugger() @ extern KdEnteredDebugger @@ -830,7 +830,7 @@ @ extern NlsMbCodePageTag @ extern NlsMbOemCodePageTag @ extern NlsOemCodePage -@ extern NlsOemLeadByteInfo _NlsOemLeadByteInfo +@ extern NlsOemLeadByteInfo @ stdcall NtAddAtom(wstr long ptr) @ stdcall NtAdjustPrivilegesToken(ptr long ptr long ptr ptr) @ stdcall -arch=i386,arm NtAlertThread(ptr) @@ -1011,7 +1011,7 @@ @ stdcall PsLookupProcessByProcessId(ptr ptr) @ stdcall PsLookupProcessThreadByCid(ptr ptr ptr) @ stdcall PsLookupThreadByThreadId(ptr ptr) -@ extern PsProcessType _PsProcessType +@ extern PsProcessType @ stdcall PsReferenceImpersonationToken(ptr ptr ptr ptr) @ stdcall PsReferencePrimaryToken(ptr) @ stdcall PsRemoveCreateThreadNotifyRoutine(ptr) @@ -1036,7 +1036,7 @@ @ stdcall PsSetThreadHardErrorsAreDisabled(ptr long) @ stdcall PsSetThreadWin32Thread(ptr ptr ptr) @ stdcall PsTerminateSystemThread(long) -@ extern PsThreadType _PsThreadType +@ extern PsThreadType ;PsWrapApcWow64Thread @ stdcall -arch=i386,arm READ_REGISTER_BUFFER_UCHAR(ptr ptr long) @ stdcall -arch=i386,arm READ_REGISTER_BUFFER_ULONG(ptr ptr long) diff --git a/reactos/tools/spec2def/spec2def.c b/reactos/tools/spec2def/spec2def.c index 5a5b5fc94aa..c197cf5ef43 100644 --- a/reactos/tools/spec2def/spec2def.c +++ b/reactos/tools/spec2def/spec2def.c @@ -52,7 +52,6 @@ enum FL_STUB = 2, FL_NONAME = 4, FL_ORDINAL = 8, - FL_DATA_ALIAS = 16 }; enum @@ -508,9 +507,7 @@ OutputLine_def(FILE *fileDest, EXPORT *pexp) fprintf(fileDest, " PRIVATE"); } - /* Make this a data export, unless this is MSVC and -withalias was given */ - if ((pexp->nCallingConvention == CC_EXTERN) && - !(gbMSComp && (pexp->uFlags & FL_DATA_ALIAS))) + if (pexp->nCallingConvention == CC_EXTERN) { fprintf(fileDest, " DATA"); } @@ -663,15 +660,6 @@ ParseFile(char* pcStart, FILE *fileDest, PFNOUTLINE OutputLine) { exp.uFlags |= FL_STUB; } - else if (CompareToken(pc, "-withalias")) - { - /* This flag is to create a nin _imp_ prefixed alias for a - data export, so that the hacked DDK declarations work */ - if (exp.nCallingConvention != CC_EXTERN) - fprintf(stderr, "error: line %d -withalias on non-data export\n", nLine); - else - exp.uFlags |= FL_DATA_ALIAS; - } else if (CompareToken(pc, "-norelay") || CompareToken(pc, "-register") || CompareToken(pc, "-ret64")) diff --git a/reactos/win32ss/gdi/eng/engevent.c b/reactos/win32ss/gdi/eng/engevent.c index ab6e8acb48d..77b00a4006f 100644 --- a/reactos/win32ss/gdi/eng/engevent.c +++ b/reactos/win32ss/gdi/eng/engevent.c @@ -134,7 +134,7 @@ EngMapEvent( /* Create a handle, and have Ob fill out the pKEvent field */ Status = ObReferenceObjectByHandle(EngEvent, EVENT_ALL_ACCESS, - ExEventObjectType, + *ExEventObjectType, UserMode, &EngEvent->pKEvent, NULL); diff --git a/reactos/win32ss/user/ntuser/main.c b/reactos/win32ss/user/ntuser/main.c index 4485c5d4929..905fa04e503 100644 --- a/reactos/win32ss/user/ntuser/main.c +++ b/reactos/win32ss/user/ntuser/main.c @@ -320,7 +320,7 @@ UserCreateThreadInfo(struct _ETHREAD *Thread) goto error; } Status = ObReferenceObjectByHandle(ptiCurrent->hEventQueueClient, 0, - ExEventObjectType, KernelMode, + *ExEventObjectType, KernelMode, (PVOID*)&ptiCurrent->pEventQueueServer, NULL); if (!NT_SUCCESS(Status)) { diff --git a/reactos/win32ss/user/ntuser/message.c b/reactos/win32ss/user/ntuser/message.c index a9e2256d3eb..c458230a0c9 100644 --- a/reactos/win32ss/user/ntuser/message.c +++ b/reactos/win32ss/user/ntuser/message.c @@ -1548,7 +1548,7 @@ co_IntSendMessageWithCallBack( HWND hWnd, { RETURN(FALSE); } - + ptiSendTo = IntSendTo(Window, Win32Thread, Msg); if (Msg & 0x80000000 && @@ -2755,7 +2755,7 @@ NtUserMessageCall( HWND hWnd, ((ClientInfo->CI_flags & CI_CURTHPRHOOK) ? 1 : 0), (LPARAM)&CWP, Hook->Proc, - Hook->ihmod, + Hook->ihmod, Hook->offPfn, Hook->Ansi, &Hook->ModuleName); @@ -2774,7 +2774,7 @@ NtUserMessageCall( HWND hWnd, ((ClientInfo->CI_flags & CI_CURTHPRHOOK) ? 1 : 0), (LPARAM)&CWPR, Hook->Proc, - Hook->ihmod, + Hook->ihmod, Hook->offPfn, Hook->Ansi, &Hook->ModuleName); @@ -2833,7 +2833,7 @@ NtUserWaitForInputIdle( IN HANDLE hProcess, Status = ObReferenceObjectByHandle(hProcess, PROCESS_QUERY_INFORMATION, - PsProcessType, + *PsProcessType, UserMode, (PVOID*)&Process, NULL); diff --git a/reactos/win32ss/user/ntuser/misc.c b/reactos/win32ss/user/ntuser/misc.c index 52f0abe377c..4b64a13a89c 100644 --- a/reactos/win32ss/user/ntuser/misc.c +++ b/reactos/win32ss/user/ntuser/misc.c @@ -223,7 +223,7 @@ NtUserGetThreadState( break; case THREADSTATE_INSENDMESSAGE: { - PUSER_SENT_MESSAGE Message = + PUSER_SENT_MESSAGE Message = ((PTHREADINFO)PsGetCurrentThreadWin32Thread())->pusmCurrent; ERR("THREADSTATE_INSENDMESSAGE\n"); @@ -243,7 +243,7 @@ NtUserGetThreadState( if (Message->QS_Flags & QS_SMRESULT) ret |= ISMEX_REPLIED; } - break; + break; } case THREADSTATE_GETMESSAGETIME: ret = ((PTHREADINFO)PsGetCurrentThreadWin32Thread())->timeLast; @@ -289,7 +289,7 @@ NtUserSetThreadState( DWORD Ret = 0; // Test the only flags user can change. if (Set & ~(QF_FF10STATUS|QF_DIALOGACTIVE|QF_TABSWITCHING|QF_FMENUSTATUS|QF_FMENUSTATUSBREAK)) return 0; - if (Flags & ~(QF_FF10STATUS|QF_DIALOGACTIVE|QF_TABSWITCHING|QF_FMENUSTATUS|QF_FMENUSTATUSBREAK)) return 0; + if (Flags & ~(QF_FF10STATUS|QF_DIALOGACTIVE|QF_TABSWITCHING|QF_FMENUSTATUS|QF_FMENUSTATUSBREAK)) return 0; UserEnterExclusive(); pti = PsGetCurrentThreadWin32Thread(); if (pti->MessageQueue) @@ -448,7 +448,7 @@ NtUserGetGuiResources( Status = ObReferenceObjectByHandle(hProcess, PROCESS_QUERY_INFORMATION, - PsProcessType, + *PsProcessType, ExGetPreviousMode(), (PVOID*)&Process, NULL); @@ -656,7 +656,7 @@ void UserDbgAssertThreadInfo(BOOL showCaller) ASSERT(pci->ulClientDelta == DesktopHeapGetUserDelta()); if (pti->pcti && pci->pDeskInfo) ASSERT(pci->pClientThreadInfo == (PVOID)((ULONG_PTR)pti->pcti - pci->ulClientDelta)); - if (pti->KeyboardLayout) + if (pti->KeyboardLayout) ASSERT(pci->hKL == pti->KeyboardLayout->hkl); if(pti->rpdesk != NULL) ASSERT(pti->pDeskInfo == pti->rpdesk->pDeskInfo); From 76f9d532f2db8c4fee1e8db52998a0ca61c5ff40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Mon, 12 May 2014 00:26:48 +0000 Subject: [PATCH 60/92] [NTVDM] Improve int32 callback stub (and sync int32.c too). svn path=/trunk/; revision=63248 --- reactos/subsystems/ntvdm/callback.c | 15 ++++++++------- reactos/subsystems/ntvdm/int32.c | 7 ++----- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/reactos/subsystems/ntvdm/callback.c b/reactos/subsystems/ntvdm/callback.c index feed3d80270..0cffdfd105a 100644 --- a/reactos/subsystems/ntvdm/callback.c +++ b/reactos/subsystems/ntvdm/callback.c @@ -75,8 +75,7 @@ BYTE Int16To32[] = 0xEB, 0xF5, // jmp BOP_SEQ (offset -11) // EXIT: - // 0x44, 0x44, // inc sp, inc sp - 0x83, 0xC4, 0x02, // add sp, 2 + 0x44, 0x44, // inc sp, inc sp 0xCF, // iret }; @@ -202,11 +201,13 @@ RegisterInt32(IN ULONG FarPtr, BYTE IntCallback[sizeof(Int16To32)/sizeof(BYTE)]; /* Check whether the 32-bit interrupt was already registered */ - // if (Int32Proc[IntNumber] != NULL) - // { - // DPRINT1("RegisterInt32: Interrupt 0x%X already registered!\n", IntNumber); - // return 0; - // } +#if 0 + if (Int32Proc[IntNumber] != NULL) + { + DPRINT1("RegisterInt32: Interrupt 0x%X already registered!\n", IntNumber); + return 0; + } +#endif /* Register the 32-bit interrupt handler */ Int32Proc[IntNumber] = IntHandler; diff --git a/reactos/subsystems/ntvdm/int32.c b/reactos/subsystems/ntvdm/int32.c index 2e9631df2e1..e139c85d44f 100644 --- a/reactos/subsystems/ntvdm/int32.c +++ b/reactos/subsystems/ntvdm/int32.c @@ -111,11 +111,8 @@ VOID InitializeInt32(WORD BiosSegment) BiosCode[Offset++] = 0xF5; // EXIT: - // BiosCode[Offset++] = 0x44; // inc sp - // BiosCode[Offset++] = 0x44; // inc sp - BiosCode[Offset++] = 0x83; // add sp, 2 - BiosCode[Offset++] = 0xC4; - BiosCode[Offset++] = 0x02; + BiosCode[Offset++] = 0x44; // inc sp + BiosCode[Offset++] = 0x44; // inc sp BiosCode[Offset++] = 0xCF; // iret From dbe30dfb594740e5a3606c82499648b09e9d0423 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Mon, 12 May 2014 06:19:07 +0000 Subject: [PATCH 61/92] [CMD] - Fix mismatched allocation/free. Spotted by Samuel & cppcheck CORE-8207 #resolve svn path=/trunk/; revision=63249 --- reactos/base/shell/cmd/copy.c | 2 +- reactos/base/shell/cmd/replace.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/reactos/base/shell/cmd/copy.c b/reactos/base/shell/cmd/copy.c index a5f896d17dd..c5c127f573b 100644 --- a/reactos/base/shell/cmd/copy.c +++ b/reactos/base/shell/cmd/copy.c @@ -200,7 +200,7 @@ copy(TCHAR source[MAX_PATH], } /* A page-aligned buffer usually give more speed */ - buffer = (LPBYTE)VirtualAlloc(NULL, BUFF_SIZE, MEM_COMMIT, PAGE_READWRITE); + buffer = VirtualAlloc(NULL, BUFF_SIZE, MEM_COMMIT, PAGE_READWRITE); if (buffer == NULL) { CloseHandle (hFileDest); diff --git a/reactos/base/shell/cmd/replace.c b/reactos/base/shell/cmd/replace.c index 4b139c82e5a..864e3fb6e24 100644 --- a/reactos/base/shell/cmd/replace.c +++ b/reactos/base/shell/cmd/replace.c @@ -160,7 +160,7 @@ INT replace(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], DWORD dwFlags, BOOL *d } /* Get buffer for the copy process */ - buffer = (LPBYTE)VirtualAlloc(NULL, BUFF_SIZE, MEM_COMMIT, PAGE_READWRITE); + buffer = VirtualAlloc(NULL, BUFF_SIZE, MEM_COMMIT, PAGE_READWRITE); if (buffer == NULL) { CloseHandle (hFileDest); @@ -188,7 +188,7 @@ INT replace(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], DWORD dwFlags, BOOL *d if (dwWritten != dwRead || CheckCtrlBreak(BREAK_INPUT)) { ConOutResPuts(STRING_COPY_ERROR3); - cmd_free (buffer); + VirtualFree (buffer, 0, MEM_RELEASE); CloseHandle (hFileDest); CloseHandle (hFileSrc); nErrorLevel = 1; From 233ba85cfe54c7149a5c331ae9de8ba34681dcb4 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Mon, 12 May 2014 06:44:01 +0000 Subject: [PATCH 62/92] [ICMP] - Fix socket leak. Spotted by Samuel & cppcheck Note: Wine has this in iphlpapi these days. Should probably sync. CORE-8208 #resolve svn path=/trunk/; revision=63250 --- reactos/dll/win32/icmp/icmp_main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/reactos/dll/win32/icmp/icmp_main.c b/reactos/dll/win32/icmp/icmp_main.c index 8257c1156b1..187b310f0a6 100644 --- a/reactos/dll/win32/icmp/icmp_main.c +++ b/reactos/dll/win32/icmp/icmp_main.c @@ -179,6 +179,7 @@ HANDLE WINAPI IcmpCreateFile(VOID) icp=HeapAlloc(GetProcessHeap(), 0, sizeof(*icp)); if (icp==NULL) { + closesocket(sid); SetLastError(IP_NO_RESOURCES); return INVALID_HANDLE_VALUE; } From e444ff08e2b696b0ab7c645392ceafb27420db94 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Mon, 12 May 2014 12:50:55 +0000 Subject: [PATCH 63/92] [CRT] * Update tmpfile(). CORE-8080 svn path=/trunk/; revision=63251 --- reactos/lib/sdk/crt/stdio/file.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index 70673ba272f..275a1efcb48 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -3346,16 +3346,20 @@ FILE* CDECL tmpfile(void) FILE* file = NULL; LOCK_FILES(); - fd = _open(filename, _O_CREAT | _O_BINARY | _O_RDWR | _O_TEMPORARY); + fd = _open(filename, _O_CREAT | _O_BINARY | _O_RDWR | _O_TEMPORARY, + _S_IREAD | _S_IWRITE); if (fd != -1 && (file = alloc_fp())) { - if (init_fp(file, fd, _O_RDWR) == -1) + if (init_fp(file, fd, _IORW) == -1) { file->_flag = 0; file = NULL; } else file->_tmpfname = _strdup(filename); } + + if(fd != -1 && !file) + _close(fd); UNLOCK_FILES(); return file; } From 83e1917b77fc45e82c5a4d41e60a5b715070dc81 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Mon, 12 May 2014 12:52:40 +0000 Subject: [PATCH 64/92] [CRT] * Reduce difference to Wine. No code changes. CORE-8080 svn path=/trunk/; revision=63252 --- reactos/lib/sdk/crt/stdlib/errno.c | 71 +++++++++++++++--------------- 1 file changed, 35 insertions(+), 36 deletions(-) diff --git a/reactos/lib/sdk/crt/stdlib/errno.c b/reactos/lib/sdk/crt/stdlib/errno.c index a56c0dd6d4e..7841d1949ca 100644 --- a/reactos/lib/sdk/crt/stdlib/errno.c +++ b/reactos/lib/sdk/crt/stdlib/errno.c @@ -13,45 +13,24 @@ static _invalid_parameter_handler invalid_parameter_handler = NULL; -/* - * @implemented - */ -unsigned long* CDECL __doserrno(void) -{ - return &(msvcrt_get_thread_data()->thread_doserrno); -} - -/* - * @implemented +/********************************************************************* + * _errno (MSVCRT.@) */ int CDECL *_errno(void) { return &(msvcrt_get_thread_data()->thread_errno); } -/* - * @implemented +/********************************************************************* + * __doserrno (MSVCRT.@) */ -errno_t CDECL _get_doserrno(unsigned long *pValue) +unsigned long* CDECL __doserrno(void) { - if (!pValue) - return EINVAL; - - *pValue = *__doserrno(); - return 0; + return &(msvcrt_get_thread_data()->thread_doserrno); } -/* - * @implemented - */ -errno_t CDECL _set_doserrno(unsigned long error) -{ - *__doserrno() = error; - return 0; -} - -/* - * @implemented +/********************************************************************* + * _get_errno (MSVCRT.@) */ errno_t CDECL _get_errno(int *pValue) { @@ -62,8 +41,20 @@ errno_t CDECL _get_errno(int *pValue) return 0; } -/* - * @implemented +/********************************************************************* + * _get_doserrno (MSVCRT.@) + */ +errno_t CDECL _get_doserrno(unsigned long *pValue) +{ + if (!pValue) + return EINVAL; + + *pValue = *__doserrno(); + return 0; +} + +/********************************************************************* + * _set_errno (MSVCRT.@) */ int CDECL _set_errno(int error) { @@ -71,6 +62,15 @@ int CDECL _set_errno(int error) return 0; } +/********************************************************************* + * _set_doserrno (MSVCRT.@) + */ +errno_t CDECL _set_doserrno(unsigned long error) +{ + *__doserrno() = error; + return 0; +} + /* * This function sets both doserrno to the passed in OS error code * and also maps this to an appropriate errno code. The mapping @@ -124,8 +124,8 @@ int CDECL _set_error_mode(int mode) } /****************************************************************************** -* _seterrormode (MSVCRT.@) -*/ + * _seterrormode (MSVCRT.@) + */ void CDECL _seterrormode(int mode) { SetErrorMode( mode ); @@ -134,8 +134,8 @@ void CDECL _seterrormode(int mode) /****************************************************************************** * _invalid_parameter (MSVCRT.@) */ -void CDECL _invalid_parameter(const wchar_t *expr, const wchar_t *func, - const wchar_t *file, unsigned int line, uintptr_t arg) +void __cdecl _invalid_parameter(const wchar_t *expr, const wchar_t *func, + const wchar_t *file, unsigned int line, uintptr_t arg) { if (invalid_parameter_handler) invalid_parameter_handler( expr, func, file, line, arg ); else @@ -163,4 +163,3 @@ _invalid_parameter_handler CDECL _set_invalid_parameter_handler( invalid_parameter_handler = handler; return old; } -/* EOF */ From e34ff107cd9f68eb32a7d59a2626e3ddf37a7db7 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Mon, 12 May 2014 13:17:31 +0000 Subject: [PATCH 65/92] [CRT] * Update feof(). CORE-8080 svn path=/trunk/; revision=63253 --- reactos/lib/sdk/crt/stdio/file.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index 275a1efcb48..1dc27d8413c 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -2232,13 +2232,7 @@ int CDECL fclose(FILE* file) */ int CDECL feof(FILE* file) { - int ret; - - _lock_file(file); - ret = file->_flag & _IOEOF; - _unlock_file(file); - - return ret; + return file->_flag & _IOEOF; } /********************************************************************* From a4061f41e7c9313460dab75e470c65158573eac5 Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Mon, 12 May 2014 14:17:37 +0000 Subject: [PATCH 66/92] [FORMATTING] Fix indentation and coding style. No code changes! svn path=/trunk/; revision=63254 --- reactos/base/setup/usetup/bootsup.c | 52 +- reactos/base/setup/usetup/bootsup.h | 82 +- reactos/base/setup/usetup/chkdsk.c | 5 +- reactos/base/setup/usetup/drivesup.c | 94 +- reactos/base/setup/usetup/drivesup.h | 7 +- reactos/base/setup/usetup/filequeue.c | 676 +++++----- reactos/base/setup/usetup/filequeue.h | 81 +- reactos/base/setup/usetup/filesup.c | 547 +++++---- reactos/base/setup/usetup/filesup.h | 20 +- reactos/base/setup/usetup/format.c | 5 +- reactos/base/setup/usetup/fslist.c | 5 + reactos/base/setup/usetup/fslist.h | 34 +- reactos/base/setup/usetup/genlist.c | 96 +- reactos/base/setup/usetup/genlist.h | 76 +- reactos/base/setup/usetup/host.h | 14 +- reactos/base/setup/usetup/inffile.c | 252 ++-- reactos/base/setup/usetup/inffile.h | 54 +- reactos/base/setup/usetup/inicache.c | 1627 ++++++++++++------------- reactos/base/setup/usetup/inicache.h | 96 +- reactos/base/setup/usetup/mui.c | 69 +- reactos/base/setup/usetup/mui.h | 20 +- 21 files changed, 2043 insertions(+), 1869 deletions(-) diff --git a/reactos/base/setup/usetup/bootsup.c b/reactos/base/setup/usetup/bootsup.c index 9865e265ab3..74d5ad3ffff 100644 --- a/reactos/base/setup/usetup/bootsup.c +++ b/reactos/base/setup/usetup/bootsup.c @@ -87,7 +87,8 @@ extern PPARTLIST PartitionList; static VOID -CreateCommonFreeLoaderSections(PINICACHE IniCache) +CreateCommonFreeLoaderSections( + PINICACHE IniCache) { PINICACHESECTION IniSection; @@ -1178,7 +1179,6 @@ InstallMbrBootCodeToDisk( return Status; } - /* Allocate buffer for new bootsector */ NewBootSector = (PPARTITION_SECTOR)RtlAllocateHeap(ProcessHeap, 0, @@ -1275,9 +1275,11 @@ InstallMbrBootCodeToDisk( return Status; } + NTSTATUS -InstallFat12BootCodeToFloppy(PWSTR SrcPath, - PWSTR RootPath) +InstallFat12BootCodeToFloppy( + PWSTR SrcPath, + PWSTR RootPath) { OBJECT_ATTRIBUTES ObjectAttributes; IO_STATUS_BLOCK IoStatusBlock; @@ -1286,21 +1288,21 @@ InstallFat12BootCodeToFloppy(PWSTR SrcPath, NTSTATUS Status; PFAT_BOOTSECTOR OrigBootSector; PFAT_BOOTSECTOR NewBootSector; - + /* Allocate buffer for original bootsector */ OrigBootSector = RtlAllocateHeap(ProcessHeap, 0, SECTORSIZE); if (OrigBootSector == NULL) return STATUS_INSUFFICIENT_RESOURCES; - + /* Read current boot sector into buffer */ RtlInitUnicodeString(&Name, RootPath); - + InitializeObjectAttributes(&ObjectAttributes, &Name, OBJ_CASE_INSENSITIVE, NULL, NULL); - + Status = NtOpenFile(&FileHandle, GENERIC_READ | SYNCHRONIZE, &ObjectAttributes, @@ -1312,7 +1314,7 @@ InstallFat12BootCodeToFloppy(PWSTR SrcPath, RtlFreeHeap(ProcessHeap, 0, OrigBootSector); return Status; } - + Status = NtReadFile(FileHandle, NULL, NULL, @@ -1328,8 +1330,7 @@ InstallFat12BootCodeToFloppy(PWSTR SrcPath, RtlFreeHeap(ProcessHeap, 0, OrigBootSector); return Status; } - - + /* Allocate buffer for new bootsector */ NewBootSector = RtlAllocateHeap(ProcessHeap, 0, @@ -1339,16 +1340,16 @@ InstallFat12BootCodeToFloppy(PWSTR SrcPath, RtlFreeHeap(ProcessHeap, 0, OrigBootSector); return STATUS_INSUFFICIENT_RESOURCES; } - + /* Read new bootsector from SrcPath */ RtlInitUnicodeString(&Name, SrcPath); - + InitializeObjectAttributes(&ObjectAttributes, &Name, OBJ_CASE_INSENSITIVE, NULL, NULL); - + Status = NtOpenFile(&FileHandle, GENERIC_READ | SYNCHRONIZE, &ObjectAttributes, @@ -1361,7 +1362,7 @@ InstallFat12BootCodeToFloppy(PWSTR SrcPath, RtlFreeHeap(ProcessHeap, 0, NewBootSector); return Status; } - + Status = NtReadFile(FileHandle, NULL, NULL, @@ -1378,25 +1379,25 @@ InstallFat12BootCodeToFloppy(PWSTR SrcPath, RtlFreeHeap(ProcessHeap, 0, NewBootSector); return Status; } - + /* Adjust bootsector (copy a part of the FAT16 BPB) */ memcpy(&NewBootSector->OemName, &OrigBootSector->OemName, FIELD_OFFSET(FAT_BOOTSECTOR, BootCodeAndData) - FIELD_OFFSET(FAT_BOOTSECTOR, OemName)); - + /* Free the original boot sector */ RtlFreeHeap(ProcessHeap, 0, OrigBootSector); - + /* Write new bootsector to RootPath */ RtlInitUnicodeString(&Name, RootPath); - + InitializeObjectAttributes(&ObjectAttributes, &Name, 0, NULL, NULL); - + Status = NtOpenFile(&FileHandle, GENERIC_WRITE | SYNCHRONIZE, &ObjectAttributes, @@ -1409,7 +1410,7 @@ InstallFat12BootCodeToFloppy(PWSTR SrcPath, RtlFreeHeap(ProcessHeap, 0, NewBootSector); return Status; } - + #if 0 FilePosition.QuadPart = 0; #endif @@ -1423,10 +1424,10 @@ InstallFat12BootCodeToFloppy(PWSTR SrcPath, NULL, NULL); NtClose(FileHandle); - + /* Free the new boot sector */ RtlFreeHeap(ProcessHeap, 0, NewBootSector); - + return Status; } @@ -1487,7 +1488,6 @@ InstallFat16BootCodeToDisk( return Status; } - /* Allocate buffer for new bootsector */ NewBootSector = RtlAllocateHeap(ProcessHeap, 0, @@ -2001,6 +2001,7 @@ UpdateBootIni( return Status; } + BOOLEAN CheckInstallFatBootcodeToPartition( PUNICODE_STRING SystemRootPath) @@ -2339,6 +2340,7 @@ InstallFatBootcodeToPartition( #endif } + NTSTATUS InstallVBRToPartition( PUNICODE_STRING SystemRootPath, @@ -2373,7 +2375,7 @@ InstallFatBootcodeToFloppy( WCHAR SrcPath[MAX_PATH]; WCHAR DstPath[MAX_PATH]; NTSTATUS Status; - + /* Format the floppy first */ Status = VfatFormat(&FloppyDevice, FMIFS_FLOPPY, diff --git a/reactos/base/setup/usetup/bootsup.h b/reactos/base/setup/usetup/bootsup.h index 33b983a0228..6322bae6405 100644 --- a/reactos/base/setup/usetup/bootsup.h +++ b/reactos/base/setup/usetup/bootsup.h @@ -27,65 +27,79 @@ #pragma once NTSTATUS -CreateFreeLoaderIniForDos(PWCHAR IniPath, - PWCHAR ArcPath); +CreateFreeLoaderIniForDos( + PWCHAR IniPath, + PWCHAR ArcPath); NTSTATUS -CreateFreeLoaderIniForReactos(PWCHAR IniPath, - PWCHAR ArcPath); +CreateFreeLoaderIniForReactos( + PWCHAR IniPath, + PWCHAR ArcPath); NTSTATUS -UpdateFreeLoaderIni(PWCHAR IniPath, - PWCHAR ArcPath); +UpdateFreeLoaderIni( + PWCHAR IniPath, + PWCHAR ArcPath); NTSTATUS -SaveCurrentBootSector(PWSTR RootPath, - PWSTR DstPath); +SaveCurrentBootSector( + PWSTR RootPath, + PWSTR DstPath); NTSTATUS -InstallFat16BootCodeToFile(PWSTR SrcPath, - PWSTR DstPath, - PWSTR RootPath); +InstallFat16BootCodeToFile( + PWSTR SrcPath, + PWSTR DstPath, + PWSTR RootPath); NTSTATUS -InstallFat32BootCodeToFile(PWSTR SrcPath, - PWSTR DstPath, - PWSTR RootPath); +InstallFat32BootCodeToFile( + PWSTR SrcPath, + PWSTR DstPath, + PWSTR RootPath); NTSTATUS -InstallMbrBootCodeToDisk (PWSTR SrcPath, - PWSTR RootPath); +InstallMbrBootCodeToDisk( + PWSTR SrcPath, + PWSTR RootPath); NTSTATUS -InstallFat16BootCodeToDisk(PWSTR SrcPath, - PWSTR RootPath); +InstallFat16BootCodeToDisk( + PWSTR SrcPath, + PWSTR RootPath); NTSTATUS -InstallFat32BootCodeToDisk(PWSTR SrcPath, - PWSTR RootPath); +InstallFat32BootCodeToDisk( + PWSTR SrcPath, + PWSTR RootPath); NTSTATUS -UpdateBootIni(PWSTR BootIniPath, - PWSTR EntryName, - PWSTR EntryValue); +UpdateBootIni( + PWSTR BootIniPath, + PWSTR EntryName, + PWSTR EntryValue); BOOLEAN -CheckInstallFatBootcodeToPartition(PUNICODE_STRING SystemRootPath); +CheckInstallFatBootcodeToPartition( + PUNICODE_STRING SystemRootPath); NTSTATUS -InstallFatBootcodeToPartition(PUNICODE_STRING SystemRootPath, - PUNICODE_STRING SourceRootPath, - PUNICODE_STRING DestinationArcPath, - UCHAR PartitionType); +InstallFatBootcodeToPartition( + PUNICODE_STRING SystemRootPath, + PUNICODE_STRING SourceRootPath, + PUNICODE_STRING DestinationArcPath, + UCHAR PartitionType); NTSTATUS -InstallVBRToPartition(PUNICODE_STRING SystemRootPath, - PUNICODE_STRING SourceRootPath, - PUNICODE_STRING DestinationArcPath, - UCHAR PartitionType); +InstallVBRToPartition( + PUNICODE_STRING SystemRootPath, + PUNICODE_STRING SourceRootPath, + PUNICODE_STRING DestinationArcPath, + UCHAR PartitionType); NTSTATUS -InstallFatBootcodeToFloppy(PUNICODE_STRING SourceRootPath, - PUNICODE_STRING DestinationArcPath); +InstallFatBootcodeToFloppy( + PUNICODE_STRING SourceRootPath, + PUNICODE_STRING DestinationArcPath); /* EOF */ diff --git a/reactos/base/setup/usetup/chkdsk.c b/reactos/base/setup/usetup/chkdsk.c index 03054bcaf7b..2c5522c462e 100644 --- a/reactos/base/setup/usetup/chkdsk.c +++ b/reactos/base/setup/usetup/chkdsk.c @@ -34,7 +34,9 @@ static PPROGRESSBAR ChkdskProgressBar = NULL; /* FUNCTIONS ****************************************************************/ -static BOOLEAN NTAPI +static +BOOLEAN +NTAPI ChkdskCallback( IN CALLBACKCOMMAND Command, IN ULONG Modifier, @@ -50,6 +52,7 @@ ChkdskCallback( return TRUE; } + NTSTATUS ChkdskPartition( IN PUNICODE_STRING DriveRoot, diff --git a/reactos/base/setup/usetup/drivesup.c b/reactos/base/setup/usetup/drivesup.c index a910e9302ef..b5734302885 100644 --- a/reactos/base/setup/usetup/drivesup.c +++ b/reactos/base/setup/usetup/drivesup.c @@ -34,66 +34,66 @@ /* FUNCTIONS ****************************************************************/ NTSTATUS -GetSourcePaths(PUNICODE_STRING SourcePath, - PUNICODE_STRING SourceRootPath, - PUNICODE_STRING SourceRootDir) +GetSourcePaths( + PUNICODE_STRING SourcePath, + PUNICODE_STRING SourceRootPath, + PUNICODE_STRING SourceRootDir) { - OBJECT_ATTRIBUTES ObjectAttributes; - UNICODE_STRING LinkName; - UNICODE_STRING SourceName; - WCHAR SourceBuffer[MAX_PATH] = {L'\0'}; - HANDLE Handle; - NTSTATUS Status; - ULONG Length; - PWCHAR Ptr; + OBJECT_ATTRIBUTES ObjectAttributes; + UNICODE_STRING LinkName; + UNICODE_STRING SourceName; + WCHAR SourceBuffer[MAX_PATH] = {L'\0'}; + HANDLE Handle; + NTSTATUS Status; + ULONG Length; + PWCHAR Ptr; - RtlInitUnicodeString(&LinkName, - L"\\SystemRoot"); + RtlInitUnicodeString(&LinkName, + L"\\SystemRoot"); - InitializeObjectAttributes(&ObjectAttributes, - &LinkName, - OBJ_CASE_INSENSITIVE, - NULL, - NULL); + InitializeObjectAttributes(&ObjectAttributes, + &LinkName, + OBJ_CASE_INSENSITIVE, + NULL, + NULL); - Status = NtOpenSymbolicLinkObject(&Handle, - SYMBOLIC_LINK_ALL_ACCESS, - &ObjectAttributes); - if (!NT_SUCCESS(Status)) - return(Status); + Status = NtOpenSymbolicLinkObject(&Handle, + SYMBOLIC_LINK_ALL_ACCESS, + &ObjectAttributes); + if (!NT_SUCCESS(Status)) + return Status; - SourceName.Length = 0; - SourceName.MaximumLength = MAX_PATH * sizeof(WCHAR); - SourceName.Buffer = SourceBuffer; + SourceName.Length = 0; + SourceName.MaximumLength = MAX_PATH * sizeof(WCHAR); + SourceName.Buffer = SourceBuffer; - Status = NtQuerySymbolicLinkObject(Handle, - &SourceName, - &Length); - NtClose(Handle); + Status = NtQuerySymbolicLinkObject(Handle, + &SourceName, + &Length); + NtClose(Handle); - if (NT_SUCCESS(Status)) + if (NT_SUCCESS(Status)) { - RtlCreateUnicodeString(SourcePath, - SourceName.Buffer); + RtlCreateUnicodeString(SourcePath, + SourceName.Buffer); - /* strip trailing directory */ - Ptr = wcsrchr(SourceName.Buffer, L'\\'); - if (Ptr) - { - RtlCreateUnicodeString(SourceRootDir, Ptr); - *Ptr = 0; - } - else - RtlCreateUnicodeString(SourceRootDir, L""); + /* strip trailing directory */ + Ptr = wcsrchr(SourceName.Buffer, L'\\'); + if (Ptr) + { + RtlCreateUnicodeString(SourceRootDir, Ptr); + *Ptr = 0; + } + else + RtlCreateUnicodeString(SourceRootDir, L""); - RtlCreateUnicodeString(SourceRootPath, - SourceName.Buffer); + RtlCreateUnicodeString(SourceRootPath, + SourceName.Buffer); } - NtClose(Handle); + NtClose(Handle); - return(STATUS_SUCCESS); + return STATUS_SUCCESS; } - /* EOF */ diff --git a/reactos/base/setup/usetup/drivesup.h b/reactos/base/setup/usetup/drivesup.h index 37c918cf964..3d595b9a052 100644 --- a/reactos/base/setup/usetup/drivesup.h +++ b/reactos/base/setup/usetup/drivesup.h @@ -27,8 +27,9 @@ #pragma once NTSTATUS -GetSourcePaths(PUNICODE_STRING SourcePath, - PUNICODE_STRING SourceRootPath, - PUNICODE_STRING SourceRootDir); +GetSourcePaths( + PUNICODE_STRING SourcePath, + PUNICODE_STRING SourceRootPath, + PUNICODE_STRING SourceRootDir); /* EOF */ diff --git a/reactos/base/setup/usetup/filequeue.c b/reactos/base/setup/usetup/filequeue.c index ce0b1449640..4f1bc3b33c6 100644 --- a/reactos/base/setup/usetup/filequeue.c +++ b/reactos/base/setup/usetup/filequeue.c @@ -35,407 +35,425 @@ typedef struct _QUEUEENTRY { - struct _QUEUEENTRY *Prev; - struct _QUEUEENTRY *Next; - - PWSTR SourceCabinet; /* May be NULL if file is not in a cabinet */ - PWSTR SourceRootPath; - PWSTR SourcePath; - PWSTR SourceFilename; - PWSTR TargetDirectory; - PWSTR TargetFilename; + struct _QUEUEENTRY *Prev; + struct _QUEUEENTRY *Next; + PWSTR SourceCabinet; /* May be NULL if file is not in a cabinet */ + PWSTR SourceRootPath; + PWSTR SourcePath; + PWSTR SourceFilename; + PWSTR TargetDirectory; + PWSTR TargetFilename; } QUEUEENTRY, *PQUEUEENTRY; typedef struct _FILEQUEUEHEADER { - PQUEUEENTRY CopyHead; - PQUEUEENTRY CopyTail; - ULONG CopyCount; + PQUEUEENTRY CopyHead; + PQUEUEENTRY CopyTail; + ULONG CopyCount; } FILEQUEUEHEADER, *PFILEQUEUEHEADER; /* FUNCTIONS ****************************************************************/ -HSPFILEQ WINAPI +HSPFILEQ +WINAPI SetupOpenFileQueue(VOID) { - PFILEQUEUEHEADER QueueHeader; + PFILEQUEUEHEADER QueueHeader; - /* Allocate queue header */ - QueueHeader = (PFILEQUEUEHEADER)RtlAllocateHeap(ProcessHeap, - 0, - sizeof(FILEQUEUEHEADER)); - if (QueueHeader == NULL) - return(NULL); + /* Allocate queue header */ + QueueHeader = (PFILEQUEUEHEADER)RtlAllocateHeap(ProcessHeap, + 0, + sizeof(FILEQUEUEHEADER)); + if (QueueHeader == NULL) + return NULL; - /* Initialize queue header */ - RtlZeroMemory(QueueHeader, - sizeof(FILEQUEUEHEADER)); + /* Initialize queue header */ + RtlZeroMemory(QueueHeader, + sizeof(FILEQUEUEHEADER)); - - return((HSPFILEQ)QueueHeader); + return (HSPFILEQ)QueueHeader; } -VOID WINAPI -SetupCloseFileQueue(HSPFILEQ QueueHandle) +VOID +WINAPI +SetupCloseFileQueue( + HSPFILEQ QueueHandle) { - PFILEQUEUEHEADER QueueHeader; - PQUEUEENTRY Entry; + PFILEQUEUEHEADER QueueHeader; + PQUEUEENTRY Entry; - if (QueueHandle == NULL) - return; + if (QueueHandle == NULL) + return; - QueueHeader = (PFILEQUEUEHEADER)QueueHandle; + QueueHeader = (PFILEQUEUEHEADER)QueueHandle; - /* Delete copy queue */ - Entry = QueueHeader->CopyHead; - while (Entry != NULL) + /* Delete copy queue */ + Entry = QueueHeader->CopyHead; + while (Entry != NULL) { - /* Delete all strings */ - if (Entry->SourceCabinet != NULL) - RtlFreeHeap(ProcessHeap, 0, Entry->SourceCabinet); - if (Entry->SourceRootPath != NULL) - RtlFreeHeap(ProcessHeap, 0, Entry->SourceRootPath); - if (Entry->SourcePath != NULL) - RtlFreeHeap(ProcessHeap, 0, Entry->SourcePath); - if (Entry->SourceFilename != NULL) - RtlFreeHeap(ProcessHeap, 0, Entry->SourceFilename); - if (Entry->TargetDirectory != NULL) - RtlFreeHeap(ProcessHeap, 0, Entry->TargetDirectory); - if (Entry->TargetFilename != NULL) - RtlFreeHeap(ProcessHeap, 0, Entry->TargetFilename); + /* Delete all strings */ + if (Entry->SourceCabinet != NULL) + RtlFreeHeap(ProcessHeap, 0, Entry->SourceCabinet); - /* Unlink current queue entry */ - if (Entry->Next != NULL) - { - QueueHeader->CopyHead = Entry->Next; - QueueHeader->CopyHead->Prev = NULL; - } - else - { - QueueHeader->CopyHead = NULL; - QueueHeader->CopyTail = NULL; - } + if (Entry->SourceRootPath != NULL) + RtlFreeHeap(ProcessHeap, 0, Entry->SourceRootPath); - /* Delete queue entry */ - RtlFreeHeap(ProcessHeap, 0, Entry); + if (Entry->SourcePath != NULL) + RtlFreeHeap(ProcessHeap, 0, Entry->SourcePath); - /* Get next queue entry */ - Entry = QueueHeader->CopyHead; + if (Entry->SourceFilename != NULL) + RtlFreeHeap(ProcessHeap, 0, Entry->SourceFilename); + + if (Entry->TargetDirectory != NULL) + RtlFreeHeap(ProcessHeap, 0, Entry->TargetDirectory); + + if (Entry->TargetFilename != NULL) + RtlFreeHeap(ProcessHeap, 0, Entry->TargetFilename); + + /* Unlink current queue entry */ + if (Entry->Next != NULL) + { + QueueHeader->CopyHead = Entry->Next; + QueueHeader->CopyHead->Prev = NULL; + } + else + { + QueueHeader->CopyHead = NULL; + QueueHeader->CopyTail = NULL; + } + + /* Delete queue entry */ + RtlFreeHeap(ProcessHeap, 0, Entry); + + /* Get next queue entry */ + Entry = QueueHeader->CopyHead; } - /* Delete queue header */ - RtlFreeHeap(ProcessHeap, - 0, - QueueHeader); + /* Delete queue header */ + RtlFreeHeap(ProcessHeap, 0, QueueHeader); } BOOL -SetupQueueCopy(HSPFILEQ QueueHandle, - PCWSTR SourceCabinet, - PCWSTR SourceRootPath, - PCWSTR SourcePath, - PCWSTR SourceFilename, - PCWSTR TargetDirectory, - PCWSTR TargetFilename) +SetupQueueCopy( + HSPFILEQ QueueHandle, + PCWSTR SourceCabinet, + PCWSTR SourceRootPath, + PCWSTR SourcePath, + PCWSTR SourceFilename, + PCWSTR TargetDirectory, + PCWSTR TargetFilename) { - PFILEQUEUEHEADER QueueHeader; - PQUEUEENTRY Entry; - ULONG Length; + PFILEQUEUEHEADER QueueHeader; + PQUEUEENTRY Entry; + ULONG Length; - /* SourceCabinet may be NULL */ - if (QueueHandle == NULL || - SourceRootPath == NULL || - SourceFilename == NULL || - TargetDirectory == NULL) - return(FALSE); + /* SourceCabinet may be NULL */ + if (QueueHandle == NULL || + SourceRootPath == NULL || + SourceFilename == NULL || + TargetDirectory == NULL) + return FALSE; - QueueHeader = (PFILEQUEUEHEADER)QueueHandle; + QueueHeader = (PFILEQUEUEHEADER)QueueHandle; - /* Allocate new queue entry */ - Entry = (PQUEUEENTRY)RtlAllocateHeap(ProcessHeap, - 0, - sizeof(QUEUEENTRY)); - if (Entry == NULL) - return(FALSE); + /* Allocate new queue entry */ + Entry = (PQUEUEENTRY)RtlAllocateHeap(ProcessHeap, + 0, + sizeof(QUEUEENTRY)); + if (Entry == NULL) + return FALSE; - RtlZeroMemory(Entry, - sizeof(QUEUEENTRY)); + RtlZeroMemory(Entry, + sizeof(QUEUEENTRY)); - /* Copy source cabinet if available */ - if (SourceCabinet != NULL) + /* Copy source cabinet if available */ + if (SourceCabinet != NULL) { - Length = wcslen(SourceCabinet); - Entry->SourceCabinet = (WCHAR*) RtlAllocateHeap(ProcessHeap, - 0, - (Length + 1) * sizeof(WCHAR)); - if (Entry->SourceCabinet == NULL) - { + Length = wcslen(SourceCabinet); + Entry->SourceCabinet = (WCHAR*)RtlAllocateHeap(ProcessHeap, + 0, + (Length + 1) * sizeof(WCHAR)); + if (Entry->SourceCabinet == NULL) + { + RtlFreeHeap(ProcessHeap, 0, Entry); + return FALSE; + } + + wcsncpy(Entry->SourceCabinet, SourceCabinet, Length); + Entry->SourceCabinet[Length] = (WCHAR)0; + } + else + { + Entry->SourceCabinet = NULL; + } + + /* Copy source root path */ + Length = wcslen(SourceRootPath); + Entry->SourceRootPath = (WCHAR*)RtlAllocateHeap(ProcessHeap, + 0, + (Length + 1) * sizeof(WCHAR)); + if (Entry->SourceRootPath == NULL) + { + if (Entry->SourceCabinet != NULL) + { + RtlFreeHeap(ProcessHeap, 0, Entry->SourceCabinet); + } + RtlFreeHeap(ProcessHeap, 0, Entry); - return(FALSE); - } - wcsncpy(Entry->SourceCabinet, SourceCabinet, Length); - Entry->SourceCabinet[Length] = (WCHAR)0; - } - else - { - Entry->SourceCabinet = NULL; + return FALSE; } - /* Copy source root path */ - Length = wcslen(SourceRootPath); - Entry->SourceRootPath = (WCHAR*) RtlAllocateHeap(ProcessHeap, - 0, - (Length + 1) * sizeof(WCHAR)); - if (Entry->SourceRootPath == NULL) - { - if (Entry->SourceCabinet != NULL) - { - RtlFreeHeap(ProcessHeap, 0, Entry->SourceCabinet); - } - RtlFreeHeap(ProcessHeap, 0, Entry); - return(FALSE); - } - wcsncpy(Entry->SourceRootPath, SourceRootPath, Length); - Entry->SourceRootPath[Length] = (WCHAR)0; + wcsncpy(Entry->SourceRootPath, SourceRootPath, Length); + Entry->SourceRootPath[Length] = (WCHAR)0; - /* Copy source path */ - if (SourcePath != NULL) - { - Length = wcslen(SourcePath); - Entry->SourcePath = (WCHAR*) RtlAllocateHeap(ProcessHeap, - 0, - (Length + 1) * sizeof(WCHAR)); - if (Entry->SourcePath == NULL) + /* Copy source path */ + if (SourcePath != NULL) { - if (Entry->SourceCabinet != NULL) + Length = wcslen(SourcePath); + Entry->SourcePath = (WCHAR*)RtlAllocateHeap(ProcessHeap, + 0, + (Length + 1) * sizeof(WCHAR)); + if (Entry->SourcePath == NULL) { - RtlFreeHeap(ProcessHeap, 0, Entry->SourceCabinet); + if (Entry->SourceCabinet != NULL) + { + RtlFreeHeap(ProcessHeap, 0, Entry->SourceCabinet); + } + + RtlFreeHeap(ProcessHeap, 0, Entry->SourceRootPath); + RtlFreeHeap(ProcessHeap, 0, Entry); + return FALSE; } - RtlFreeHeap(ProcessHeap, 0, Entry->SourceRootPath); - RtlFreeHeap(ProcessHeap, 0, Entry); - return(FALSE); + + wcsncpy(Entry->SourcePath, SourcePath, Length); + Entry->SourcePath[Length] = (WCHAR)0; } - wcsncpy(Entry->SourcePath, SourcePath, Length); - Entry->SourcePath[Length] = (WCHAR)0; - } - /* Copy source file name */ - Length = wcslen(SourceFilename); - Entry->SourceFilename = (WCHAR*) RtlAllocateHeap(ProcessHeap, - 0, - (Length + 1) * sizeof(WCHAR)); - if (Entry->SourceFilename == NULL) - { - if (Entry->SourceCabinet != NULL) - { - RtlFreeHeap(ProcessHeap, 0, Entry->SourceCabinet); - } - RtlFreeHeap(ProcessHeap, 0, Entry->SourceRootPath); - RtlFreeHeap(ProcessHeap, 0, Entry->SourcePath); - RtlFreeHeap(ProcessHeap, 0, Entry); - return(FALSE); - } - wcsncpy(Entry->SourceFilename, SourceFilename, Length); - Entry->SourceFilename[Length] = (WCHAR)0; - - /* Copy target directory */ - Length = wcslen(TargetDirectory); - if (TargetDirectory[Length] == '\\') - Length--; - Entry->TargetDirectory = (WCHAR*) RtlAllocateHeap(ProcessHeap, - 0, - (Length + 1) * sizeof(WCHAR)); - if (Entry->TargetDirectory == NULL) - { - if (Entry->SourceCabinet != NULL) - { - RtlFreeHeap(ProcessHeap, 0, Entry->SourceCabinet); - } - RtlFreeHeap(ProcessHeap, 0, Entry->SourceRootPath); - RtlFreeHeap(ProcessHeap, 0, Entry->SourcePath); - RtlFreeHeap(ProcessHeap, 0, Entry->SourceFilename); - RtlFreeHeap(ProcessHeap, 0, Entry); - return(FALSE); - } - wcsncpy(Entry->TargetDirectory, TargetDirectory, Length); - Entry->TargetDirectory[Length] = (WCHAR)0; - - /* Copy optional target filename */ - if (TargetFilename != NULL) - { - Length = wcslen(TargetFilename); - Entry->TargetFilename = (WCHAR*) RtlAllocateHeap(ProcessHeap, - 0, - (Length + 1) * sizeof(WCHAR)); - if (Entry->TargetFilename == NULL) + /* Copy source file name */ + Length = wcslen(SourceFilename); + Entry->SourceFilename = (WCHAR*)RtlAllocateHeap(ProcessHeap, + 0, + (Length + 1) * sizeof(WCHAR)); + if (Entry->SourceFilename == NULL) { - if (Entry->SourceCabinet != NULL) + if (Entry->SourceCabinet != NULL) { - RtlFreeHeap(ProcessHeap, 0, Entry->SourceCabinet); + RtlFreeHeap(ProcessHeap, 0, Entry->SourceCabinet); } - RtlFreeHeap(ProcessHeap, 0, Entry->SourceRootPath); - RtlFreeHeap(ProcessHeap, 0, Entry->SourcePath); - RtlFreeHeap(ProcessHeap, 0, Entry->SourceFilename); - RtlFreeHeap(ProcessHeap, 0, Entry->TargetDirectory); - RtlFreeHeap(ProcessHeap, 0, Entry); - return(FALSE); + + RtlFreeHeap(ProcessHeap, 0, Entry->SourceRootPath); + RtlFreeHeap(ProcessHeap, 0, Entry->SourcePath); + RtlFreeHeap(ProcessHeap, 0, Entry); + return FALSE; } - wcsncpy(Entry->TargetFilename, TargetFilename, Length); - Entry->TargetFilename[Length] = (WCHAR)0; - } - /* Append queue entry */ - if (QueueHeader->CopyHead == NULL) // && QueueHeader->CopyTail == NULL) - { - Entry->Prev = NULL; - Entry->Next = NULL; - QueueHeader->CopyHead = Entry; - QueueHeader->CopyTail = Entry; - } - else - { - Entry->Prev = QueueHeader->CopyTail; - Entry->Next = NULL; - QueueHeader->CopyTail->Next = Entry; - QueueHeader->CopyTail = Entry; - } - QueueHeader->CopyCount++; + wcsncpy(Entry->SourceFilename, SourceFilename, Length); + Entry->SourceFilename[Length] = (WCHAR)0; - return(TRUE); + /* Copy target directory */ + Length = wcslen(TargetDirectory); + if (TargetDirectory[Length] == '\\') + Length--; + Entry->TargetDirectory = (WCHAR*)RtlAllocateHeap(ProcessHeap, + 0, + (Length + 1) * sizeof(WCHAR)); + if (Entry->TargetDirectory == NULL) + { + if (Entry->SourceCabinet != NULL) + { + RtlFreeHeap(ProcessHeap, 0, Entry->SourceCabinet); + } + + RtlFreeHeap(ProcessHeap, 0, Entry->SourceRootPath); + RtlFreeHeap(ProcessHeap, 0, Entry->SourcePath); + RtlFreeHeap(ProcessHeap, 0, Entry->SourceFilename); + RtlFreeHeap(ProcessHeap, 0, Entry); + return FALSE; + } + + wcsncpy(Entry->TargetDirectory, TargetDirectory, Length); + Entry->TargetDirectory[Length] = (WCHAR)0; + + /* Copy optional target filename */ + if (TargetFilename != NULL) + { + Length = wcslen(TargetFilename); + Entry->TargetFilename = (WCHAR*)RtlAllocateHeap(ProcessHeap, + 0, + (Length + 1) * sizeof(WCHAR)); + if (Entry->TargetFilename == NULL) + { + if (Entry->SourceCabinet != NULL) + { + RtlFreeHeap(ProcessHeap, 0, Entry->SourceCabinet); + } + + RtlFreeHeap(ProcessHeap, 0, Entry->SourceRootPath); + RtlFreeHeap(ProcessHeap, 0, Entry->SourcePath); + RtlFreeHeap(ProcessHeap, 0, Entry->SourceFilename); + RtlFreeHeap(ProcessHeap, 0, Entry->TargetDirectory); + RtlFreeHeap(ProcessHeap, 0, Entry); + return FALSE; + } + + wcsncpy(Entry->TargetFilename, TargetFilename, Length); + Entry->TargetFilename[Length] = (WCHAR)0; + } + + /* Append queue entry */ + if (QueueHeader->CopyHead == NULL) // && QueueHeader->CopyTail == NULL) + { + Entry->Prev = NULL; + Entry->Next = NULL; + QueueHeader->CopyHead = Entry; + QueueHeader->CopyTail = Entry; + } + else + { + Entry->Prev = QueueHeader->CopyTail; + Entry->Next = NULL; + QueueHeader->CopyTail->Next = Entry; + QueueHeader->CopyTail = Entry; + } + + QueueHeader->CopyCount++; + + return TRUE; } -BOOL WINAPI -SetupCommitFileQueueW(HWND Owner, - HSPFILEQ QueueHandle, - PSP_FILE_CALLBACK_W MsgHandler, - PVOID Context) +BOOL +WINAPI +SetupCommitFileQueueW( + HWND Owner, + HSPFILEQ QueueHandle, + PSP_FILE_CALLBACK_W MsgHandler, + PVOID Context) { - WCHAR CabinetName[MAX_PATH]; - PFILEQUEUEHEADER QueueHeader; - PQUEUEENTRY Entry; - NTSTATUS Status; - PCWSTR TargetRootPath, TargetPath; + WCHAR CabinetName[MAX_PATH]; + PFILEQUEUEHEADER QueueHeader; + PQUEUEENTRY Entry; + NTSTATUS Status; + PCWSTR TargetRootPath, TargetPath; - WCHAR FileSrcPath[MAX_PATH]; - WCHAR FileDstPath[MAX_PATH]; + WCHAR FileSrcPath[MAX_PATH]; + WCHAR FileDstPath[MAX_PATH]; - TargetRootPath = ((PCOPYCONTEXT)Context)->DestinationRootPath; - TargetPath = ((PCOPYCONTEXT)Context)->InstallPath; + TargetRootPath = ((PCOPYCONTEXT)Context)->DestinationRootPath; + TargetPath = ((PCOPYCONTEXT)Context)->InstallPath; - if (QueueHandle == NULL) - return(FALSE); + if (QueueHandle == NULL) + return FALSE; - QueueHeader = (PFILEQUEUEHEADER)QueueHandle; - - MsgHandler(Context, - SPFILENOTIFY_STARTQUEUE, - 0, - 0); - - MsgHandler(Context, - SPFILENOTIFY_STARTSUBQUEUE, - FILEOP_COPY, - QueueHeader->CopyCount); - - /* Commit copy queue */ - Entry = QueueHeader->CopyHead; - while (Entry != NULL) - { - wcscpy(FileSrcPath, Entry->SourceRootPath); - if (Entry->SourcePath != NULL) - wcscat(FileSrcPath, Entry->SourcePath); - wcscat(FileSrcPath, L"\\"); - wcscat(FileSrcPath, Entry->SourceFilename); - - /* Build the full target path */ - wcscpy(FileDstPath, TargetRootPath); - if (Entry->TargetDirectory[0] == L'\\') - { - wcscat(FileDstPath, Entry->TargetDirectory); - } - else - { - if (TargetPath != NULL) - { - if (TargetPath[0] != L'\\') - wcscat(FileDstPath, L"\\"); - wcscat(FileDstPath, TargetPath); - } - wcscat(FileDstPath, L"\\"); - wcscat(FileDstPath, Entry->TargetDirectory); - } - - /* Use only the destination path if the file is in a cabinet */ - if (Entry->SourceCabinet == NULL) - { - wcscat(FileDstPath, L"\\"); - if (Entry->TargetFilename != NULL) - wcscat(FileDstPath, Entry->TargetFilename); - else - wcscat(FileDstPath, Entry->SourceFilename); - } - - /* FIXME: Do it! */ - DPRINT("'%S' ==> '%S'\n", - FileSrcPath, - FileDstPath); + QueueHeader = (PFILEQUEUEHEADER)QueueHandle; MsgHandler(Context, - SPFILENOTIFY_STARTCOPY, - (UINT_PTR)Entry->SourceFilename, - FILEOP_COPY); + SPFILENOTIFY_STARTQUEUE, + 0, + 0); - if (Entry->SourceCabinet != NULL) - { - /* Extract the file */ - wcscpy(CabinetName, Entry->SourceRootPath); + MsgHandler(Context, + SPFILENOTIFY_STARTSUBQUEUE, + FILEOP_COPY, + QueueHeader->CopyCount); + + /* Commit copy queue */ + Entry = QueueHeader->CopyHead; + while (Entry != NULL) + { + wcscpy(FileSrcPath, Entry->SourceRootPath); if (Entry->SourcePath != NULL) - wcscat(CabinetName, Entry->SourcePath); - wcscat(CabinetName, L"\\"); - wcscat(CabinetName, Entry->SourceCabinet); - Status = SetupExtractFile(CabinetName, Entry->SourceFilename, FileDstPath); - } - else - { - /* Copy the file */ - Status = SetupCopyFile(FileSrcPath, FileDstPath); - } - if (!NT_SUCCESS(Status)) - { - MsgHandler(Context, - SPFILENOTIFY_COPYERROR, - (UINT_PTR)Entry->SourceFilename, - FILEOP_COPY); + wcscat(FileSrcPath, Entry->SourcePath); + wcscat(FileSrcPath, L"\\"); + wcscat(FileSrcPath, Entry->SourceFilename); - } - else - { - MsgHandler(Context, - SPFILENOTIFY_ENDCOPY, - (UINT_PTR)Entry->SourceFilename, - FILEOP_COPY); + /* Build the full target path */ + wcscpy(FileDstPath, TargetRootPath); + if (Entry->TargetDirectory[0] == L'\\') + { + wcscat(FileDstPath, Entry->TargetDirectory); + } + else + { + if (TargetPath != NULL) + { + if (TargetPath[0] != L'\\') + wcscat(FileDstPath, L"\\"); + wcscat(FileDstPath, TargetPath); + } + + wcscat(FileDstPath, L"\\"); + wcscat(FileDstPath, Entry->TargetDirectory); + } + + /* Use only the destination path if the file is in a cabinet */ + if (Entry->SourceCabinet == NULL) + { + wcscat(FileDstPath, L"\\"); + if (Entry->TargetFilename != NULL) + wcscat(FileDstPath, Entry->TargetFilename); + else + wcscat(FileDstPath, Entry->SourceFilename); + } + + /* FIXME: Do it! */ + DPRINT("'%S' ==> '%S'\n", FileSrcPath, FileDstPath); + + MsgHandler(Context, + SPFILENOTIFY_STARTCOPY, + (UINT_PTR)Entry->SourceFilename, + FILEOP_COPY); + + if (Entry->SourceCabinet != NULL) + { + /* Extract the file */ + wcscpy(CabinetName, Entry->SourceRootPath); + if (Entry->SourcePath != NULL) + wcscat(CabinetName, Entry->SourcePath); + wcscat(CabinetName, L"\\"); + wcscat(CabinetName, Entry->SourceCabinet); + Status = SetupExtractFile(CabinetName, Entry->SourceFilename, FileDstPath); + } + else + { + /* Copy the file */ + Status = SetupCopyFile(FileSrcPath, FileDstPath); + } + + if (!NT_SUCCESS(Status)) + { + MsgHandler(Context, + SPFILENOTIFY_COPYERROR, + (UINT_PTR)Entry->SourceFilename, + FILEOP_COPY); + } + else + { + MsgHandler(Context, + SPFILENOTIFY_ENDCOPY, + (UINT_PTR)Entry->SourceFilename, + FILEOP_COPY); + } + + Entry = Entry->Next; } - Entry = Entry->Next; - } + MsgHandler(Context, + SPFILENOTIFY_ENDSUBQUEUE, + FILEOP_COPY, + 0); - MsgHandler(Context, - SPFILENOTIFY_ENDSUBQUEUE, - FILEOP_COPY, - 0); + MsgHandler(Context, + SPFILENOTIFY_ENDQUEUE, + 0, + 0); - MsgHandler(Context, - SPFILENOTIFY_ENDQUEUE, - 0, - 0); - - return(TRUE); + return TRUE; } /* EOF */ diff --git a/reactos/base/setup/usetup/filequeue.h b/reactos/base/setup/usetup/filequeue.h index 7dc8587d548..17ebe04fe0e 100644 --- a/reactos/base/setup/usetup/filequeue.h +++ b/reactos/base/setup/usetup/filequeue.h @@ -51,55 +51,62 @@ typedef PVOID HSPFILEQ; -typedef UINT (CALLBACK* PSP_FILE_CALLBACK_W)(PVOID Context, - UINT Notification, - UINT_PTR Param1, - UINT_PTR Param2); +typedef UINT (CALLBACK* PSP_FILE_CALLBACK_W)( + PVOID Context, + UINT Notification, + UINT_PTR Param1, + UINT_PTR Param2); typedef struct _COPYCONTEXT { - LPCWSTR DestinationRootPath; /* Not owned by this structure */ - LPCWSTR InstallPath; /* Not owned by this structure */ - ULONG TotalOperations; - ULONG CompletedOperations; - PPROGRESSBAR ProgressBar; - PPROGRESSBAR MemoryBars[4]; + LPCWSTR DestinationRootPath; /* Not owned by this structure */ + LPCWSTR InstallPath; /* Not owned by this structure */ + ULONG TotalOperations; + ULONG CompletedOperations; + PPROGRESSBAR ProgressBar; + PPROGRESSBAR MemoryBars[4]; } COPYCONTEXT, *PCOPYCONTEXT; /* FUNCTIONS ****************************************************************/ -HSPFILEQ WINAPI +HSPFILEQ +WINAPI SetupOpenFileQueue(VOID); -VOID WINAPI +VOID +WINAPI SetupCloseFileQueue( - IN HSPFILEQ QueueHandle); - -BOOL WINAPI -SetupQueueCopyWNew( - IN HSPFILEQ QueueHandle, - IN PCWSTR SourceRootPath, - IN PCWSTR SourcePath, - IN PCWSTR SourceFileName, - IN PCWSTR SourceDescription, - IN PCWSTR SourceTagFile, - IN PCWSTR TargetDirectory, - IN PCWSTR TargetFileName, - IN DWORD CopyStyle); + IN HSPFILEQ QueueHandle); BOOL -SetupQueueCopy(HSPFILEQ QueueHandle, - PCWSTR SourceCabinet, - PCWSTR SourceRootPath, - PCWSTR SourcePath, - PCWSTR SourceFilename, - PCWSTR TargetDirectory, - PCWSTR TargetFilename); +WINAPI +SetupQueueCopyWNew( + IN HSPFILEQ QueueHandle, + IN PCWSTR SourceRootPath, + IN PCWSTR SourcePath, + IN PCWSTR SourceFileName, + IN PCWSTR SourceDescription, + IN PCWSTR SourceTagFile, + IN PCWSTR TargetDirectory, + IN PCWSTR TargetFileName, + IN DWORD CopyStyle); -BOOL WINAPI -SetupCommitFileQueueW(HWND Owner, - HSPFILEQ QueueHandle, - PSP_FILE_CALLBACK_W MsgHandler, - PVOID Context); +BOOL +SetupQueueCopy( + HSPFILEQ QueueHandle, + PCWSTR SourceCabinet, + PCWSTR SourceRootPath, + PCWSTR SourcePath, + PCWSTR SourceFilename, + PCWSTR TargetDirectory, + PCWSTR TargetFilename); + +BOOL +WINAPI +SetupCommitFileQueueW( + HWND Owner, + HSPFILEQ QueueHandle, + PSP_FILE_CALLBACK_W MsgHandler, + PVOID Context); /* EOF */ diff --git a/reactos/base/setup/usetup/filesup.c b/reactos/base/setup/usetup/filesup.c index 290208857a2..eaabc3d479f 100644 --- a/reactos/base/setup/usetup/filesup.c +++ b/reactos/base/setup/usetup/filesup.c @@ -38,358 +38,373 @@ static WCHAR CurrentCabinetName[MAX_PATH]; static CAB_SEARCH Search; NTSTATUS -SetupCreateDirectory(PWCHAR DirectoryName) +SetupCreateDirectory( + PWCHAR DirectoryName) { - OBJECT_ATTRIBUTES ObjectAttributes; - IO_STATUS_BLOCK IoStatusBlock; - UNICODE_STRING PathName; - HANDLE DirectoryHandle; - NTSTATUS Status; + OBJECT_ATTRIBUTES ObjectAttributes; + IO_STATUS_BLOCK IoStatusBlock; + UNICODE_STRING PathName; + HANDLE DirectoryHandle; + NTSTATUS Status; - RtlCreateUnicodeString(&PathName, - DirectoryName); - if (PathName.Length > sizeof(WCHAR) && - PathName.Buffer[PathName.Length / sizeof(WCHAR) - 2] == L'\\' && - PathName.Buffer[PathName.Length / sizeof(WCHAR) - 1] == L'.') + RtlCreateUnicodeString(&PathName, + DirectoryName); + if (PathName.Length > sizeof(WCHAR) && + PathName.Buffer[PathName.Length / sizeof(WCHAR) - 2] == L'\\' && + PathName.Buffer[PathName.Length / sizeof(WCHAR) - 1] == L'.') { - PathName.Length -= sizeof(WCHAR); - PathName.Buffer[PathName.Length / sizeof(WCHAR)] = 0; + PathName.Length -= sizeof(WCHAR); + PathName.Buffer[PathName.Length / sizeof(WCHAR)] = 0; } - if (PathName.Length > sizeof(WCHAR) && - PathName.Buffer[PathName.Length / sizeof(WCHAR) - 1] == L'\\') + if (PathName.Length > sizeof(WCHAR) && + PathName.Buffer[PathName.Length / sizeof(WCHAR) - 1] == L'\\') { - PathName.Length -= sizeof(WCHAR); - PathName.Buffer[PathName.Length / sizeof(WCHAR)] = 0; - } - - InitializeObjectAttributes(&ObjectAttributes, - &PathName, - OBJ_CASE_INSENSITIVE | OBJ_INHERIT, - NULL, - NULL); - - Status = NtCreateFile(&DirectoryHandle, - DIRECTORY_ALL_ACCESS, - &ObjectAttributes, - &IoStatusBlock, - NULL, - FILE_ATTRIBUTE_DIRECTORY, - FILE_SHARE_READ | FILE_SHARE_WRITE, - FILE_OPEN_IF, - FILE_DIRECTORY_FILE, - NULL, - 0); - if (NT_SUCCESS(Status)) - { - NtClose(DirectoryHandle); + PathName.Length -= sizeof(WCHAR); + PathName.Buffer[PathName.Length / sizeof(WCHAR)] = 0; } - RtlFreeUnicodeString(&PathName); + InitializeObjectAttributes(&ObjectAttributes, + &PathName, + OBJ_CASE_INSENSITIVE | OBJ_INHERIT, + NULL, + NULL); - return(Status); + Status = NtCreateFile(&DirectoryHandle, + DIRECTORY_ALL_ACCESS, + &ObjectAttributes, + &IoStatusBlock, + NULL, + FILE_ATTRIBUTE_DIRECTORY, + FILE_SHARE_READ | FILE_SHARE_WRITE, + FILE_OPEN_IF, + FILE_DIRECTORY_FILE, + NULL, + 0); + if (NT_SUCCESS(Status)) + { + NtClose(DirectoryHandle); + } + + RtlFreeUnicodeString(&PathName); + + return Status; } NTSTATUS -SetupCopyFile(PWCHAR SourceFileName, - PWCHAR DestinationFileName) +SetupCopyFile( + PWCHAR SourceFileName, + PWCHAR DestinationFileName) { - OBJECT_ATTRIBUTES ObjectAttributes; - HANDLE FileHandleSource; - HANDLE FileHandleDest; - static IO_STATUS_BLOCK IoStatusBlock; - FILE_STANDARD_INFORMATION FileStandard; - FILE_BASIC_INFORMATION FileBasic; - ULONG RegionSize; - UNICODE_STRING FileName; - NTSTATUS Status; - PVOID SourceFileMap = 0; - HANDLE SourceFileSection; - SIZE_T SourceSectionSize = 0; - LARGE_INTEGER ByteOffset; + OBJECT_ATTRIBUTES ObjectAttributes; + HANDLE FileHandleSource; + HANDLE FileHandleDest; + static IO_STATUS_BLOCK IoStatusBlock; + FILE_STANDARD_INFORMATION FileStandard; + FILE_BASIC_INFORMATION FileBasic; + ULONG RegionSize; + UNICODE_STRING FileName; + NTSTATUS Status; + PVOID SourceFileMap = 0; + HANDLE SourceFileSection; + SIZE_T SourceSectionSize = 0; + LARGE_INTEGER ByteOffset; #ifdef __REACTOS__ - RtlInitUnicodeString(&FileName, - SourceFileName); + RtlInitUnicodeString(&FileName, + SourceFileName); - InitializeObjectAttributes(&ObjectAttributes, - &FileName, - OBJ_CASE_INSENSITIVE, - NULL, - NULL); + InitializeObjectAttributes(&ObjectAttributes, + &FileName, + OBJ_CASE_INSENSITIVE, + NULL, + NULL); - Status = NtOpenFile(&FileHandleSource, - GENERIC_READ, - &ObjectAttributes, - &IoStatusBlock, - FILE_SHARE_READ, - FILE_SEQUENTIAL_ONLY); - if(!NT_SUCCESS(Status)) + Status = NtOpenFile(&FileHandleSource, + GENERIC_READ, + &ObjectAttributes, + &IoStatusBlock, + FILE_SHARE_READ, + FILE_SEQUENTIAL_ONLY); + if (!NT_SUCCESS(Status)) { - DPRINT1("NtOpenFile failed: %x, %wZ\n", Status, &FileName); - goto done; + DPRINT1("NtOpenFile failed: %x, %wZ\n", Status, &FileName); + goto done; } #else - FileHandleSource = CreateFileW(SourceFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); - if (FileHandleSource == INVALID_HANDLE_VALUE) - { - Status = STATUS_UNSUCCESSFUL; - goto done; - } + FileHandleSource = CreateFileW(SourceFileName, + GENERIC_READ, + FILE_SHARE_READ, + NULL, + OPEN_EXISTING, + 0, + NULL); + if (FileHandleSource == INVALID_HANDLE_VALUE) + { + Status = STATUS_UNSUCCESSFUL; + goto done; + } #endif - Status = NtQueryInformationFile(FileHandleSource, - &IoStatusBlock, - &FileStandard, - sizeof(FILE_STANDARD_INFORMATION), - FileStandardInformation); - if(!NT_SUCCESS(Status)) + Status = NtQueryInformationFile(FileHandleSource, + &IoStatusBlock, + &FileStandard, + sizeof(FILE_STANDARD_INFORMATION), + FileStandardInformation); + if (!NT_SUCCESS(Status)) { - DPRINT1("NtQueryInformationFile failed: %x\n", Status); - goto closesrc; - } - Status = NtQueryInformationFile(FileHandleSource, - &IoStatusBlock,&FileBasic, - sizeof(FILE_BASIC_INFORMATION), - FileBasicInformation); - if(!NT_SUCCESS(Status)) - { - DPRINT1("NtQueryInformationFile failed: %x\n", Status); - goto closesrc; + DPRINT1("NtQueryInformationFile failed: %x\n", Status); + goto closesrc; } - Status = NtCreateSection( &SourceFileSection, - SECTION_MAP_READ, - NULL, - NULL, - PAGE_READONLY, - SEC_COMMIT, - FileHandleSource); - if(!NT_SUCCESS(Status)) + Status = NtQueryInformationFile(FileHandleSource, + &IoStatusBlock,&FileBasic, + sizeof(FILE_BASIC_INFORMATION), + FileBasicInformation); + if (!NT_SUCCESS(Status)) + { + DPRINT1("NtQueryInformationFile failed: %x\n", Status); + goto closesrc; + } + + Status = NtCreateSection(&SourceFileSection, + SECTION_MAP_READ, + NULL, + NULL, + PAGE_READONLY, + SEC_COMMIT, + FileHandleSource); + if (!NT_SUCCESS(Status)) { DPRINT1("NtCreateSection failed: %x, %S\n", Status, SourceFileName); goto closesrc; } - Status = NtMapViewOfSection( SourceFileSection, - NtCurrentProcess(), - &SourceFileMap, - 0, - 0, - NULL, - &SourceSectionSize, - ViewUnmap, - 0, - PAGE_READONLY ); - if(!NT_SUCCESS(Status)) + Status = NtMapViewOfSection(SourceFileSection, + NtCurrentProcess(), + &SourceFileMap, + 0, + 0, + NULL, + &SourceSectionSize, + ViewUnmap, + 0, + PAGE_READONLY ); + if (!NT_SUCCESS(Status)) { - DPRINT1("NtMapViewOfSection failed: %x, %S\n", Status, SourceFileName); - goto closesrcsec; + DPRINT1("NtMapViewOfSection failed: %x, %S\n", Status, SourceFileName); + goto closesrcsec; } - RtlInitUnicodeString(&FileName, - DestinationFileName); + RtlInitUnicodeString(&FileName, + DestinationFileName); - InitializeObjectAttributes(&ObjectAttributes, - &FileName, - OBJ_CASE_INSENSITIVE, - NULL, - NULL); + InitializeObjectAttributes(&ObjectAttributes, + &FileName, + OBJ_CASE_INSENSITIVE, + NULL, + NULL); - Status = NtCreateFile(&FileHandleDest, - GENERIC_WRITE | SYNCHRONIZE, - &ObjectAttributes, - &IoStatusBlock, - NULL, - FILE_ATTRIBUTE_NORMAL, - 0, - FILE_OVERWRITE_IF, - FILE_NO_INTERMEDIATE_BUFFERING | - FILE_SEQUENTIAL_ONLY | - FILE_SYNCHRONOUS_IO_NONALERT, - NULL, - 0); - if(!NT_SUCCESS(Status)) + Status = NtCreateFile(&FileHandleDest, + GENERIC_WRITE | SYNCHRONIZE, + &ObjectAttributes, + &IoStatusBlock, + NULL, + FILE_ATTRIBUTE_NORMAL, + 0, + FILE_OVERWRITE_IF, + FILE_NO_INTERMEDIATE_BUFFERING | + FILE_SEQUENTIAL_ONLY | + FILE_SYNCHRONOUS_IO_NONALERT, + NULL, + 0); + if (!NT_SUCCESS(Status)) { - DPRINT1("NtCreateFile failed: %x\n", Status); - goto unmapsrcsec; + DPRINT1("NtCreateFile failed: %x\n", Status); + goto unmapsrcsec; } - RegionSize = (ULONG)PAGE_ROUND_UP(FileStandard.EndOfFile.u.LowPart); - IoStatusBlock.Status = 0; - ByteOffset.QuadPart = 0; - Status = NtWriteFile(FileHandleDest, - NULL, - NULL, - NULL, - &IoStatusBlock, - SourceFileMap, - RegionSize, - &ByteOffset, - NULL); - if(!NT_SUCCESS(Status)) + RegionSize = (ULONG)PAGE_ROUND_UP(FileStandard.EndOfFile.u.LowPart); + IoStatusBlock.Status = 0; + ByteOffset.QuadPart = 0; + Status = NtWriteFile(FileHandleDest, + NULL, + NULL, + NULL, + &IoStatusBlock, + SourceFileMap, + RegionSize, + &ByteOffset, + NULL); + if (!NT_SUCCESS(Status)) { - DPRINT1("NtWriteFile failed: %x:%x, iosb: %p src: %p, size: %x\n", Status, IoStatusBlock.Status, &IoStatusBlock, SourceFileMap, RegionSize); - goto closedest; - } - /* Copy file date/time from source file */ - Status = NtSetInformationFile(FileHandleDest, - &IoStatusBlock, - &FileBasic, - sizeof(FILE_BASIC_INFORMATION), - FileBasicInformation); - if(!NT_SUCCESS(Status)) - { - DPRINT1("NtSetInformationFile failed: %x\n", Status); - goto closedest; + DPRINT1("NtWriteFile failed: %x:%x, iosb: %p src: %p, size: %x\n", Status, IoStatusBlock.Status, &IoStatusBlock, SourceFileMap, RegionSize); + goto closedest; } - /* shorten the file back to it's real size after completing the write */ - Status = NtSetInformationFile(FileHandleDest, - &IoStatusBlock, - &FileStandard.EndOfFile, - sizeof(FILE_END_OF_FILE_INFORMATION), - FileEndOfFileInformation); - - if(!NT_SUCCESS(Status)) + /* Copy file date/time from source file */ + Status = NtSetInformationFile(FileHandleDest, + &IoStatusBlock, + &FileBasic, + sizeof(FILE_BASIC_INFORMATION), + FileBasicInformation); + if (!NT_SUCCESS(Status)) { - DPRINT1("NtSetInformationFile failed: %x\n", Status); + DPRINT1("NtSetInformationFile failed: %x\n", Status); + goto closedest; } - closedest: - NtClose(FileHandleDest); - unmapsrcsec: - NtUnmapViewOfSection( NtCurrentProcess(), SourceFileMap ); - closesrcsec: - NtClose(SourceFileSection); - closesrc: - NtClose(FileHandleSource); - done: - return(Status); + /* shorten the file back to it's real size after completing the write */ + Status = NtSetInformationFile(FileHandleDest, + &IoStatusBlock, + &FileStandard.EndOfFile, + sizeof(FILE_END_OF_FILE_INFORMATION), + FileEndOfFileInformation); + if (!NT_SUCCESS(Status)) + { + DPRINT1("NtSetInformationFile failed: %x\n", Status); + } + +closedest: + NtClose(FileHandleDest); + +unmapsrcsec: + NtUnmapViewOfSection(NtCurrentProcess(), SourceFileMap); + +closesrcsec: + NtClose(SourceFileSection); + +closesrc: + NtClose(FileHandleSource); + +done: + return Status; } #ifdef __REACTOS__ NTSTATUS -SetupExtractFile(PWCHAR CabinetFileName, - PWCHAR SourceFileName, - PWCHAR DestinationPathName) +SetupExtractFile( + PWCHAR CabinetFileName, + PWCHAR SourceFileName, + PWCHAR DestinationPathName) { - ULONG CabStatus; + ULONG CabStatus; - DPRINT("SetupExtractFile(CabinetFileName %S, SourceFileName %S, DestinationPathName %S)\n", - CabinetFileName, SourceFileName, DestinationPathName); + DPRINT("SetupExtractFile(CabinetFileName %S, SourceFileName %S, DestinationPathName %S)\n", + CabinetFileName, SourceFileName, DestinationPathName); - if (HasCurrentCabinet) + if (HasCurrentCabinet) { - DPRINT("CurrentCabinetName: %S\n", CurrentCabinetName); + DPRINT("CurrentCabinetName: %S\n", CurrentCabinetName); } - if ((HasCurrentCabinet) && (wcscmp(CabinetFileName, CurrentCabinetName) == 0)) + if ((HasCurrentCabinet) && (wcscmp(CabinetFileName, CurrentCabinetName) == 0)) { - DPRINT("Using same cabinet as last time\n"); + DPRINT("Using same cabinet as last time\n"); - /* Use our last location because the files should be sequential */ - CabStatus = CabinetFindNextFileSequential(SourceFileName, &Search); - if (CabStatus != CAB_STATUS_SUCCESS) - { - DPRINT("Sequential miss on file: %S\n", SourceFileName); - - /* Looks like we got unlucky */ - CabStatus = CabinetFindFirst(SourceFileName, &Search); - } - } - else - { - DPRINT("Using new cabinet\n"); - - if (HasCurrentCabinet) + /* Use our last location because the files should be sequential */ + CabStatus = CabinetFindNextFileSequential(SourceFileName, &Search); + if (CabStatus != CAB_STATUS_SUCCESS) { - CabinetCleanup(); + DPRINT("Sequential miss on file: %S\n", SourceFileName); + + /* Looks like we got unlucky */ + CabStatus = CabinetFindFirst(SourceFileName, &Search); + } + } + else + { + DPRINT("Using new cabinet\n"); + + if (HasCurrentCabinet) + { + CabinetCleanup(); } - wcscpy(CurrentCabinetName, CabinetFileName); + wcscpy(CurrentCabinetName, CabinetFileName); - CabinetInitialize(); - CabinetSetEventHandlers(NULL, NULL, NULL); - CabinetSetCabinetName(CabinetFileName); + CabinetInitialize(); + CabinetSetEventHandlers(NULL, NULL, NULL); + CabinetSetCabinetName(CabinetFileName); - CabStatus = CabinetOpen(); - if (CabStatus == CAB_STATUS_SUCCESS) + CabStatus = CabinetOpen(); + if (CabStatus == CAB_STATUS_SUCCESS) { - DPRINT("Opened cabinet %S\n", CabinetGetCabinetName()); - HasCurrentCabinet = TRUE; + DPRINT("Opened cabinet %S\n", CabinetGetCabinetName()); + HasCurrentCabinet = TRUE; } - else + else { - DPRINT("Cannot open cabinet (%d)\n", CabStatus); - return STATUS_UNSUCCESSFUL; + DPRINT("Cannot open cabinet (%d)\n", CabStatus); + return STATUS_UNSUCCESSFUL; } - - /* We have to start at the beginning here */ - CabStatus = CabinetFindFirst(SourceFileName, &Search); + + /* We have to start at the beginning here */ + CabStatus = CabinetFindFirst(SourceFileName, &Search); } - - if (CabStatus != CAB_STATUS_SUCCESS) - { - DPRINT1("Unable to find '%S' in cabinet '%S'\n", SourceFileName, CabinetGetCabinetName()); - return STATUS_UNSUCCESSFUL; - } - CabinetSetDestinationPath(DestinationPathName); - CabStatus = CabinetExtractFile(&Search); - if (CabStatus != CAB_STATUS_SUCCESS) + if (CabStatus != CAB_STATUS_SUCCESS) { - DPRINT("Cannot extract file %S (%d)\n", SourceFileName, CabStatus); - return STATUS_UNSUCCESSFUL; + DPRINT1("Unable to find '%S' in cabinet '%S'\n", SourceFileName, CabinetGetCabinetName()); + return STATUS_UNSUCCESSFUL; } - return STATUS_SUCCESS; + CabinetSetDestinationPath(DestinationPathName); + CabStatus = CabinetExtractFile(&Search); + if (CabStatus != CAB_STATUS_SUCCESS) + { + DPRINT("Cannot extract file %S (%d)\n", SourceFileName, CabStatus); + return STATUS_UNSUCCESSFUL; + } + + return STATUS_SUCCESS; } #endif BOOLEAN -DoesFileExist(PWSTR PathName, - PWSTR FileName) +DoesFileExist( + PWSTR PathName, + PWSTR FileName) { - OBJECT_ATTRIBUTES ObjectAttributes; - IO_STATUS_BLOCK IoStatusBlock; - UNICODE_STRING Name; - WCHAR FullName[MAX_PATH]; - HANDLE FileHandle; - NTSTATUS Status; + OBJECT_ATTRIBUTES ObjectAttributes; + IO_STATUS_BLOCK IoStatusBlock; + UNICODE_STRING Name; + WCHAR FullName[MAX_PATH]; + HANDLE FileHandle; + NTSTATUS Status; - wcscpy(FullName, PathName); - if (FileName != NULL) + wcscpy(FullName, PathName); + if (FileName != NULL) { - if (FileName[0] != L'\\') - wcscat(FullName, L"\\"); - wcscat(FullName, FileName); + if (FileName[0] != L'\\') + wcscat(FullName, L"\\"); + wcscat(FullName, FileName); } - RtlInitUnicodeString(&Name, - FullName); + RtlInitUnicodeString(&Name, + FullName); - InitializeObjectAttributes(&ObjectAttributes, - &Name, - OBJ_CASE_INSENSITIVE, - NULL, - NULL); + InitializeObjectAttributes(&ObjectAttributes, + &Name, + OBJ_CASE_INSENSITIVE, + NULL, + NULL); - Status = NtOpenFile(&FileHandle, - GENERIC_READ | SYNCHRONIZE, - &ObjectAttributes, - &IoStatusBlock, - 0, - FILE_SYNCHRONOUS_IO_NONALERT); - if (!NT_SUCCESS(Status)) + Status = NtOpenFile(&FileHandle, + GENERIC_READ | SYNCHRONIZE, + &ObjectAttributes, + &IoStatusBlock, + 0, + FILE_SYNCHRONOUS_IO_NONALERT); + if (!NT_SUCCESS(Status)) { - return(FALSE); + return FALSE; } - NtClose(FileHandle); + NtClose(FileHandle); - return(TRUE); + return TRUE; } /* EOF */ diff --git a/reactos/base/setup/usetup/filesup.h b/reactos/base/setup/usetup/filesup.h index a1d45cb9417..5522321fbd7 100644 --- a/reactos/base/setup/usetup/filesup.h +++ b/reactos/base/setup/usetup/filesup.h @@ -27,19 +27,23 @@ #pragma once NTSTATUS -SetupCreateDirectory(PWCHAR DirectoryName); +SetupCreateDirectory( + PWCHAR DirectoryName); NTSTATUS -SetupCopyFile(PWCHAR SourceFileName, - PWCHAR DestinationFileName); +SetupCopyFile( + PWCHAR SourceFileName, + PWCHAR DestinationFileName); NTSTATUS -SetupExtractFile(PWCHAR CabinetFileName, - PWCHAR SourceFileName, - PWCHAR DestinationFileName); +SetupExtractFile( + PWCHAR CabinetFileName, + PWCHAR SourceFileName, + PWCHAR DestinationFileName); BOOLEAN -DoesFileExist(PWSTR PathName, - PWSTR FileName); +DoesFileExist( + PWSTR PathName, + PWSTR FileName); /* EOF */ diff --git a/reactos/base/setup/usetup/format.c b/reactos/base/setup/usetup/format.c index 00f437420b3..dd2ee166e5e 100644 --- a/reactos/base/setup/usetup/format.c +++ b/reactos/base/setup/usetup/format.c @@ -34,7 +34,9 @@ static PPROGRESSBAR FormatProgressBar = NULL; /* FUNCTIONS ****************************************************************/ -static BOOLEAN NTAPI +static +BOOLEAN +NTAPI FormatCallback( IN CALLBACKCOMMAND Command, IN ULONG Modifier, @@ -82,6 +84,7 @@ FormatCallback( return TRUE; } + NTSTATUS FormatPartition( IN PUNICODE_STRING DriveRoot, diff --git a/reactos/base/setup/usetup/fslist.c b/reactos/base/setup/usetup/fslist.c index 93db77c6da1..85045a83c1e 100644 --- a/reactos/base/setup/usetup/fslist.c +++ b/reactos/base/setup/usetup/fslist.c @@ -65,6 +65,7 @@ FS_AddProvider( InsertTailList(&List->ListHead, &Item->ListEntry); } + PFILE_SYSTEM_LIST CreateFileSystemList( IN SHORT Left, @@ -111,6 +112,7 @@ CreateFileSystemList( return List; } + VOID DestroyFileSystemList( IN PFILE_SYSTEM_LIST List) @@ -131,6 +133,7 @@ DestroyFileSystemList( RtlFreeHeap(ProcessHeap, 0, List); } + VOID DrawFileSystemList( IN PFILE_SYSTEM_LIST List) @@ -183,6 +186,7 @@ DrawFileSystemList( } } + VOID ScrollDownFileSystemList( IN PFILE_SYSTEM_LIST List) @@ -194,6 +198,7 @@ ScrollDownFileSystemList( } } + VOID ScrollUpFileSystemList( IN PFILE_SYSTEM_LIST List) diff --git a/reactos/base/setup/usetup/fslist.h b/reactos/base/setup/usetup/fslist.h index 1c84024eeec..6b28e29073e 100644 --- a/reactos/base/setup/usetup/fslist.h +++ b/reactos/base/setup/usetup/fslist.h @@ -30,34 +30,34 @@ typedef struct _FILE_SYSTEM_ITEM { - LIST_ENTRY ListEntry; - LPCWSTR FileSystem; /* Not owned by the item */ - FORMATEX FormatFunc; - CHKDSKEX ChkdskFunc; - BOOLEAN QuickFormat; + LIST_ENTRY ListEntry; + LPCWSTR FileSystem; /* Not owned by the item */ + FORMATEX FormatFunc; + CHKDSKEX ChkdskFunc; + BOOLEAN QuickFormat; } FILE_SYSTEM_ITEM, *PFILE_SYSTEM_ITEM; typedef struct _FILE_SYSTEM_LIST { - SHORT Left; - SHORT Top; - PFILE_SYSTEM_ITEM Selected; - LIST_ENTRY ListHead; /* List of FILE_SYSTEM_ITEM */ + SHORT Left; + SHORT Top; + PFILE_SYSTEM_ITEM Selected; + LIST_ENTRY ListHead; /* List of FILE_SYSTEM_ITEM */ } FILE_SYSTEM_LIST, *PFILE_SYSTEM_LIST; VOID FS_AddProvider( - IN OUT PFILE_SYSTEM_LIST List, - IN LPCWSTR FileSystem, - IN FORMATEX FormatFunc, - IN CHKDSKEX ChkdskFunc); + IN OUT PFILE_SYSTEM_LIST List, + IN LPCWSTR FileSystem, + IN FORMATEX FormatFunc, + IN CHKDSKEX ChkdskFunc); PFILE_SYSTEM_LIST CreateFileSystemList( - IN SHORT Left, - IN SHORT Top, - IN BOOLEAN ForceFormat, - IN LPCWSTR ForceFileSystem); + IN SHORT Left, + IN SHORT Top, + IN BOOLEAN ForceFormat, + IN LPCWSTR ForceFileSystem); VOID DestroyFileSystemList( diff --git a/reactos/base/setup/usetup/genlist.c b/reactos/base/setup/usetup/genlist.c index 9073ca3880c..6e5a736b4a8 100644 --- a/reactos/base/setup/usetup/genlist.c +++ b/reactos/base/setup/usetup/genlist.c @@ -84,8 +84,9 @@ CreateGenericList(VOID) VOID -DestroyGenericList(PGENERIC_LIST List, - BOOLEAN FreeUserData) +DestroyGenericList( + PGENERIC_LIST List, + BOOLEAN FreeUserData) { PGENERIC_LIST_ENTRY ListEntry; PLIST_ENTRY Entry; @@ -110,10 +111,11 @@ DestroyGenericList(PGENERIC_LIST List, BOOLEAN -AppendGenericListEntry(PGENERIC_LIST List, - PCHAR Text, - PVOID UserData, - BOOLEAN Current) +AppendGenericListEntry( + PGENERIC_LIST List, + PCHAR Text, + PVOID UserData, + BOOLEAN Current) { PGENERIC_LIST_ENTRY Entry; @@ -139,8 +141,10 @@ AppendGenericListEntry(PGENERIC_LIST List, } -static VOID -DrawListFrame(PGENERIC_LIST GenericList) +static +VOID +DrawListFrame( + PGENERIC_LIST GenericList) { COORD coPos; DWORD Written; @@ -221,8 +225,10 @@ DrawListFrame(PGENERIC_LIST GenericList) } -static VOID -DrawListEntries(PGENERIC_LIST GenericList) +static +VOID +DrawListEntries( + PGENERIC_LIST GenericList) { PGENERIC_LIST_ENTRY ListEntry; PLIST_ENTRY Entry; @@ -286,8 +292,11 @@ DrawListEntries(PGENERIC_LIST GenericList) } } -static VOID -DrawScrollBarGenericList(PGENERIC_LIST GenericList) + +static +VOID +DrawScrollBarGenericList( + PGENERIC_LIST GenericList) { COORD coPos; DWORD Written; @@ -331,12 +340,14 @@ DrawScrollBarGenericList(PGENERIC_LIST GenericList) } } + VOID -DrawGenericList(PGENERIC_LIST List, - SHORT Left, - SHORT Top, - SHORT Right, - SHORT Bottom) +DrawGenericList( + PGENERIC_LIST List, + SHORT Left, + SHORT Top, + SHORT Right, + SHORT Bottom) { List->FirstShown = List->ListHead.Flink; List->Left = Left; @@ -353,8 +364,10 @@ DrawGenericList(PGENERIC_LIST List, DrawScrollBarGenericList(List); } + VOID -ScrollPageDownGenericList (PGENERIC_LIST List) +ScrollPageDownGenericList( + PGENERIC_LIST List) { SHORT i; @@ -374,8 +387,10 @@ ScrollPageDownGenericList (PGENERIC_LIST List) List->Redraw = TRUE; } + VOID -ScrollPageUpGenericList (PGENERIC_LIST List) +ScrollPageUpGenericList( + PGENERIC_LIST List) { SHORT i; @@ -395,8 +410,10 @@ ScrollPageUpGenericList (PGENERIC_LIST List) List->Redraw = TRUE; } + VOID -ScrollDownGenericList (PGENERIC_LIST List) +ScrollDownGenericList( + PGENERIC_LIST List) { PLIST_ENTRY Entry; @@ -423,7 +440,9 @@ ScrollDownGenericList (PGENERIC_LIST List) VOID -ScrollToPositionGenericList (PGENERIC_LIST List, ULONG uIndex) +ScrollToPositionGenericList( + PGENERIC_LIST List, + ULONG uIndex) { PLIST_ENTRY Entry; ULONG uCount = 0; @@ -456,7 +475,8 @@ ScrollToPositionGenericList (PGENERIC_LIST List, ULONG uIndex) VOID -ScrollUpGenericList (PGENERIC_LIST List) +ScrollUpGenericList( + PGENERIC_LIST List) { PLIST_ENTRY Entry; @@ -483,7 +503,8 @@ ScrollUpGenericList (PGENERIC_LIST List) VOID -RedrawGenericList(PGENERIC_LIST List) +RedrawGenericList( + PGENERIC_LIST List) { if (List->CurrentEntry == NULL) return; @@ -497,7 +518,9 @@ RedrawGenericList(PGENERIC_LIST List) VOID -SetCurrentListEntry(PGENERIC_LIST List, PGENERIC_LIST_ENTRY Entry) +SetCurrentListEntry( + PGENERIC_LIST List, + PGENERIC_LIST_ENTRY Entry) { if (Entry->List != List) return; @@ -506,14 +529,16 @@ SetCurrentListEntry(PGENERIC_LIST List, PGENERIC_LIST_ENTRY Entry) PGENERIC_LIST_ENTRY -GetCurrentListEntry(PGENERIC_LIST List) +GetCurrentListEntry( + PGENERIC_LIST List) { return List->CurrentEntry; } PGENERIC_LIST_ENTRY -GetFirstListEntry(PGENERIC_LIST List) +GetFirstListEntry( + PGENERIC_LIST List) { PLIST_ENTRY Entry = List->ListHead.Flink; @@ -524,7 +549,8 @@ GetFirstListEntry(PGENERIC_LIST List) PGENERIC_LIST_ENTRY -GetNextListEntry(PGENERIC_LIST_ENTRY Entry) +GetNextListEntry( + PGENERIC_LIST_ENTRY Entry) { PLIST_ENTRY Next = Entry->Entry.Flink; @@ -535,21 +561,25 @@ GetNextListEntry(PGENERIC_LIST_ENTRY Entry) PVOID -GetListEntryUserData(PGENERIC_LIST_ENTRY List) +GetListEntryUserData( + PGENERIC_LIST_ENTRY List) { return List->UserData; } LPCSTR -GetListEntryText(PGENERIC_LIST_ENTRY List) +GetListEntryText( + PGENERIC_LIST_ENTRY List) { return List->Text; } VOID -GenericListKeyPress (PGENERIC_LIST GenericList, CHAR AsciChar) +GenericListKeyPress( + PGENERIC_LIST GenericList, + CHAR AsciChar) { PGENERIC_LIST_ENTRY ListEntry; PGENERIC_LIST_ENTRY OldListEntry; @@ -609,14 +639,16 @@ End: VOID -SaveGenericListState(PGENERIC_LIST List) +SaveGenericListState( + PGENERIC_LIST List) { List->BackupEntry = List->CurrentEntry; } VOID -RestoreGenericListState(PGENERIC_LIST List) +RestoreGenericListState( + PGENERIC_LIST List) { List->CurrentEntry = List->BackupEntry; } diff --git a/reactos/base/setup/usetup/genlist.h b/reactos/base/setup/usetup/genlist.h index 8b09a5eaf58..bfe9020e877 100644 --- a/reactos/base/setup/usetup/genlist.h +++ b/reactos/base/setup/usetup/genlist.h @@ -35,68 +35,90 @@ PGENERIC_LIST CreateGenericList(VOID); VOID -DestroyGenericList(PGENERIC_LIST List, - BOOLEAN FreeUserData); +DestroyGenericList( + PGENERIC_LIST List, + BOOLEAN FreeUserData); BOOLEAN -AppendGenericListEntry(PGENERIC_LIST List, - PCHAR Text, - PVOID UserData, - BOOLEAN Current); +AppendGenericListEntry( + PGENERIC_LIST List, + PCHAR Text, + PVOID UserData, + BOOLEAN Current); VOID -DrawGenericList(PGENERIC_LIST List, - SHORT Left, - SHORT Top, - SHORT Right, - SHORT Bottom); +DrawGenericList( + PGENERIC_LIST List, + SHORT Left, + SHORT Top, + SHORT Right, + SHORT Bottom); VOID -DrawScrollBarGenericLis(PGENERIC_LIST List); +DrawScrollBarGenericLis( + PGENERIC_LIST List); VOID -ScrollDownGenericList(PGENERIC_LIST List); +ScrollDownGenericList( + PGENERIC_LIST List); VOID -ScrollUpGenericList(PGENERIC_LIST List); +ScrollUpGenericList( + PGENERIC_LIST List); VOID -ScrollPageDownGenericList(PGENERIC_LIST List); +ScrollPageDownGenericList( + PGENERIC_LIST List); VOID -ScrollPageUpGenericList(PGENERIC_LIST List); +ScrollPageUpGenericList( + PGENERIC_LIST List); VOID -ScrollToPositionGenericList (PGENERIC_LIST List, ULONG uIndex); +ScrollToPositionGenericList( + PGENERIC_LIST List, + ULONG uIndex); VOID -RedrawGenericList(PGENERIC_LIST List); +RedrawGenericList( + PGENERIC_LIST List); VOID -SetCurrentListEntry(PGENERIC_LIST List, PGENERIC_LIST_ENTRY Entry); +SetCurrentListEntry( + PGENERIC_LIST List, + PGENERIC_LIST_ENTRY Entry); PGENERIC_LIST_ENTRY -GetCurrentListEntry(PGENERIC_LIST List); +GetCurrentListEntry( + PGENERIC_LIST List); PGENERIC_LIST_ENTRY -GetFirstListEntry(PGENERIC_LIST List); +GetFirstListEntry( + PGENERIC_LIST List); PGENERIC_LIST_ENTRY -GetNextListEntry(PGENERIC_LIST_ENTRY Entry); +GetNextListEntry( + PGENERIC_LIST_ENTRY Entry); PVOID -GetListEntryUserData(PGENERIC_LIST_ENTRY List); +GetListEntryUserData( + PGENERIC_LIST_ENTRY List); LPCSTR -GetListEntryText(PGENERIC_LIST_ENTRY List); +GetListEntryText( + PGENERIC_LIST_ENTRY List); VOID -SaveGenericListState(PGENERIC_LIST List); +SaveGenericListState( + PGENERIC_LIST List); VOID -RestoreGenericListState(PGENERIC_LIST List); +RestoreGenericListState( + PGENERIC_LIST List); VOID -GenericListKeyPress (PGENERIC_LIST List, CHAR AsciChar); +GenericListKeyPress( + PGENERIC_LIST List, + CHAR AsciChar); /* EOF */ diff --git a/reactos/base/setup/usetup/host.h b/reactos/base/setup/usetup/host.h index 14a3a51fb48..6d8a84bfdb3 100644 --- a/reactos/base/setup/usetup/host.h +++ b/reactos/base/setup/usetup/host.h @@ -15,19 +15,17 @@ #endif BOOLEAN -HOST_InitConsole( - VOID); +HOST_InitConsole(VOID); BOOLEAN -HOST_InitMemory( - VOID); +HOST_InitMemory(VOID); BOOLEAN HOST_CreateFileSystemList( - IN PFILE_SYSTEM_LIST List); + IN PFILE_SYSTEM_LIST List); BOOLEAN HOST_FormatPartition( - IN PFILE_SYSTEM_ITEM FileSystem, - IN PCUNICODE_STRING DriveRoot, - IN PFMIFSCALLBACK Callback); + IN PFILE_SYSTEM_ITEM FileSystem, + IN PCUNICODE_STRING DriveRoot, + IN PFMIFSCALLBACK Callback); diff --git a/reactos/base/setup/usetup/inffile.c b/reactos/base/setup/usetup/inffile.c index e2ea1b4f0c1..1eb6d66f1f5 100644 --- a/reactos/base/setup/usetup/inffile.c +++ b/reactos/base/setup/usetup/inffile.c @@ -35,173 +35,179 @@ #ifdef __REACTOS__ -BOOL WINAPI +BOOL +WINAPI InfpFindFirstLineW( - IN HINF InfHandle, - IN PCWSTR Section, - IN PCWSTR Key, - IN OUT PINFCONTEXT Context) + IN HINF InfHandle, + IN PCWSTR Section, + IN PCWSTR Key, + IN OUT PINFCONTEXT Context) { - PINFCONTEXT pContext; - BOOL ret; + PINFCONTEXT pContext; + BOOL ret; - ret = InfFindFirstLine(InfHandle, Section, Key, &pContext); - if (!ret) - return FALSE; + ret = InfFindFirstLine(InfHandle, Section, Key, &pContext); + if (!ret) + return FALSE; - memcpy(Context, pContext, sizeof(INFCONTEXT)); - InfFreeContext(pContext); - return TRUE; + memcpy(Context, pContext, sizeof(INFCONTEXT)); + InfFreeContext(pContext); + return TRUE; } -HINF WINAPI + +HINF +WINAPI InfpOpenInfFileW( - IN PCWSTR FileName, - IN PCWSTR InfClass, - IN DWORD InfStyle, - IN LCID LocaleId, - OUT PUINT ErrorLine) + IN PCWSTR FileName, + IN PCWSTR InfClass, + IN DWORD InfStyle, + IN LCID LocaleId, + OUT PUINT ErrorLine) { - HINF hInf = NULL; - UNICODE_STRING FileNameU; - ULONG ErrorLineUL; - NTSTATUS Status; + HINF hInf = NULL; + UNICODE_STRING FileNameU; + ULONG ErrorLineUL; + NTSTATUS Status; - RtlInitUnicodeString(&FileNameU, FileName); - Status = InfOpenFile( - &hInf, - &FileNameU, - LANGIDFROMLCID(LocaleId), - &ErrorLineUL); - *ErrorLine = (UINT)ErrorLineUL; - if (!NT_SUCCESS(Status)) - return INVALID_HANDLE_VALUE; + RtlInitUnicodeString(&FileNameU, FileName); + Status = InfOpenFile(&hInf, + &FileNameU, + LANGIDFROMLCID(LocaleId), + &ErrorLineUL); + *ErrorLine = (UINT)ErrorLineUL; + if (!NT_SUCCESS(Status)) + return INVALID_HANDLE_VALUE; - return hInf; + return hInf; } - #endif /* __REACTOS__ */ + BOOLEAN INF_GetData( - IN PINFCONTEXT Context, - OUT PWCHAR *Key, - OUT PWCHAR *Data) + IN PINFCONTEXT Context, + OUT PWCHAR *Key, + OUT PWCHAR *Data) { #ifdef __REACTOS__ - return InfGetData(Context, Key, Data); + return InfGetData(Context, Key, Data); #else - static PWCHAR pLastCallData[4] = { NULL, NULL, NULL, NULL }; - static DWORD currentIndex = 0; - DWORD dwSize, i; - BOOL ret; + static PWCHAR pLastCallData[4] = { NULL, NULL, NULL, NULL }; + static DWORD currentIndex = 0; + DWORD dwSize, i; + BOOL ret; - currentIndex ^= 2; + currentIndex ^= 2; - if (Key) *Key = NULL; - if (Data) *Data = NULL; + if (Key) + *Key = NULL; - if (SetupGetFieldCount(Context) != 1) - return FALSE; + if (Data) + *Data = NULL; - for (i = 0; i <= 1; i++) - { - ret = SetupGetStringFieldW( - Context, - i, - NULL, - 0, - &dwSize); - if (!ret) - return FALSE; - HeapFree(GetProcessHeap(), 0, pLastCallData[i + currentIndex]); - pLastCallData[i + currentIndex] = HeapAlloc(GetProcessHeap(), 0, dwSize * sizeof(WCHAR)); - ret = SetupGetStringFieldW( - Context, - i, - pLastCallData[i + currentIndex], - dwSize, - NULL); - if (!ret) - return FALSE; - } + if (SetupGetFieldCount(Context) != 1) + return FALSE; - if (Key) - *Key = pLastCallData[0 + currentIndex]; - if (Data) - *Data = pLastCallData[1 + currentIndex]; - return TRUE; + for (i = 0; i <= 1; i++) + { + ret = SetupGetStringFieldW(Context, + i, + NULL, + 0, + &dwSize); + if (!ret) + return FALSE; + + HeapFree(GetProcessHeap(), 0, pLastCallData[i + currentIndex]); + pLastCallData[i + currentIndex] = HeapAlloc(GetProcessHeap(), 0, dwSize * sizeof(WCHAR)); + ret = SetupGetStringFieldW(Context, + i, + pLastCallData[i + currentIndex], + dwSize, + NULL); + if (!ret) + return FALSE; + } + + if (Key) + *Key = pLastCallData[0 + currentIndex]; + + if (Data) + *Data = pLastCallData[1 + currentIndex]; + + return TRUE; #endif /* !__REACTOS__ */ } + BOOLEAN INF_GetDataField( - IN PINFCONTEXT Context, - IN ULONG FieldIndex, - OUT PWCHAR *Data) + IN PINFCONTEXT Context, + IN ULONG FieldIndex, + OUT PWCHAR *Data) { #ifdef __REACTOS__ - return InfGetDataField(Context, FieldIndex, Data); + return InfGetDataField(Context, FieldIndex, Data); #else - static PWCHAR pLastCallsData[] = { NULL, NULL, NULL }; - static DWORD NextIndex = 0; - DWORD dwSize; - BOOL ret; + static PWCHAR pLastCallsData[] = { NULL, NULL, NULL }; + static DWORD NextIndex = 0; + DWORD dwSize; + BOOL ret; - *Data = NULL; + *Data = NULL; - ret = SetupGetStringFieldW( - Context, - FieldIndex, - NULL, - 0, - &dwSize); - if (!ret) - return FALSE; - HeapFree(GetProcessHeap(), 0, pLastCallsData[NextIndex]); - pLastCallsData[NextIndex] = HeapAlloc(GetProcessHeap(), 0, dwSize * sizeof(WCHAR)); - ret = SetupGetStringFieldW( - Context, - FieldIndex, - pLastCallsData[NextIndex], - dwSize, - NULL); - if (!ret) - return FALSE; + ret = SetupGetStringFieldW(Context, + FieldIndex, + NULL, + 0, + &dwSize); + if (!ret) + return FALSE; - *Data = pLastCallsData[NextIndex]; - NextIndex = (NextIndex + 1) % (sizeof(pLastCallsData) / sizeof(pLastCallsData[0])); - return TRUE; + HeapFree(GetProcessHeap(), 0, pLastCallsData[NextIndex]); + pLastCallsData[NextIndex] = HeapAlloc(GetProcessHeap(), 0, dwSize * sizeof(WCHAR)); + ret = SetupGetStringFieldW(Context, + FieldIndex, + pLastCallsData[NextIndex], + dwSize, + NULL); + if (!ret) + return FALSE; + + *Data = pLastCallsData[NextIndex]; + NextIndex = (NextIndex + 1) % (sizeof(pLastCallsData) / sizeof(pLastCallsData[0])); + return TRUE; #endif /* !__REACTOS__ */ } + HINF WINAPI INF_OpenBufferedFileA( - IN PSTR FileBuffer, - IN ULONG FileSize, - IN PCSTR InfClass, - IN DWORD InfStyle, - IN LCID LocaleId, - OUT PUINT ErrorLine) + IN PSTR FileBuffer, + IN ULONG FileSize, + IN PCSTR InfClass, + IN DWORD InfStyle, + IN LCID LocaleId, + OUT PUINT ErrorLine) { #ifdef __REACTOS__ - HINF hInf = NULL; - ULONG ErrorLineUL; - NTSTATUS Status; + HINF hInf = NULL; + ULONG ErrorLineUL; + NTSTATUS Status; - Status = InfOpenBufferedFile( - &hInf, - FileBuffer, - FileSize, - LANGIDFROMLCID(LocaleId), - &ErrorLineUL); - *ErrorLine = (UINT)ErrorLineUL; - if (!NT_SUCCESS(Status)) - return INVALID_HANDLE_VALUE; + Status = InfOpenBufferedFile(&hInf, + FileBuffer, + FileSize, + LANGIDFROMLCID(LocaleId), + &ErrorLineUL); + *ErrorLine = (UINT)ErrorLineUL; + if (!NT_SUCCESS(Status)) + return INVALID_HANDLE_VALUE; - return hInf; + return hInf; #else - return INVALID_HANDLE_VALUE; + return INVALID_HANDLE_VALUE; #endif /* !__REACTOS__ */ } diff --git a/reactos/base/setup/usetup/inffile.h b/reactos/base/setup/usetup/inffile.h index ba0e45a0fd1..83133f99b00 100644 --- a/reactos/base/setup/usetup/inffile.h +++ b/reactos/base/setup/usetup/inffile.h @@ -45,47 +45,49 @@ * Delete it once we don't use inflib anymore */ typedef struct _INFCONTEXT { - PVOID Inf; - PVOID Section; - PVOID Line; + PVOID Inf; + PVOID Section; + PVOID Line; } INFCONTEXT; -BOOL WINAPI +BOOL +WINAPI InfpFindFirstLineW( - IN HINF InfHandle, - IN PCWSTR Section, - IN PCWSTR Key, - IN OUT PINFCONTEXT Context); + IN HINF InfHandle, + IN PCWSTR Section, + IN PCWSTR Key, + IN OUT PINFCONTEXT Context); -HINF WINAPI +HINF +WINAPI InfpOpenInfFileW( - IN PCWSTR FileName, - IN PCWSTR InfClass, - IN DWORD InfStyle, - IN LCID LocaleId, - OUT PUINT ErrorLine); + IN PCWSTR FileName, + IN PCWSTR InfClass, + IN DWORD InfStyle, + IN LCID LocaleId, + OUT PUINT ErrorLine); #endif /* __REACTOS__ */ BOOLEAN INF_GetData( - IN PINFCONTEXT Context, - OUT PWCHAR *Key, - OUT PWCHAR *Data); + IN PINFCONTEXT Context, + OUT PWCHAR *Key, + OUT PWCHAR *Data); BOOLEAN INF_GetDataField( - IN PINFCONTEXT Context, - IN ULONG FieldIndex, - OUT PWCHAR *Data); + IN PINFCONTEXT Context, + IN ULONG FieldIndex, + OUT PWCHAR *Data); HINF WINAPI INF_OpenBufferedFileA( - IN PSTR FileBuffer, - IN ULONG FileSize, - IN PCSTR InfClass, - IN DWORD InfStyle, - IN LCID LocaleId, - OUT PUINT ErrorLine); + IN PSTR FileBuffer, + IN ULONG FileSize, + IN PCSTR InfClass, + IN DWORD InfStyle, + IN LCID LocaleId, + OUT PUINT ErrorLine); /* EOF */ diff --git a/reactos/base/setup/usetup/inicache.c b/reactos/base/setup/usetup/inicache.c index fa40dc1c165..0b8dff594d3 100644 --- a/reactos/base/setup/usetup/inicache.c +++ b/reactos/base/setup/usetup/inicache.c @@ -34,1154 +34,1143 @@ /* PRIVATE FUNCTIONS ********************************************************/ -static PINICACHEKEY -IniCacheFreeKey(PINICACHEKEY Key) +static +PINICACHEKEY +IniCacheFreeKey( + PINICACHEKEY Key) { - PINICACHEKEY Next; + PINICACHEKEY Next; - if (Key == NULL) + if (Key == NULL) { - return(NULL); + return NULL; } - Next = Key->Next; - if (Key->Name != NULL) + Next = Key->Next; + if (Key->Name != NULL) { - RtlFreeHeap(ProcessHeap, - 0, - Key->Name); - Key->Name = NULL; + RtlFreeHeap(ProcessHeap, 0, Key->Name); + Key->Name = NULL; } - if (Key->Data != NULL) + if (Key->Data != NULL) { - RtlFreeHeap(ProcessHeap, - 0, - Key->Data); - Key->Data = NULL; + RtlFreeHeap(ProcessHeap, 0, Key->Data); + Key->Data = NULL; } - RtlFreeHeap(ProcessHeap, - 0, - Key); + RtlFreeHeap(ProcessHeap, 0, Key); - return(Next); + return Next; } -static PINICACHESECTION -IniCacheFreeSection(PINICACHESECTION Section) +static +PINICACHESECTION +IniCacheFreeSection( + PINICACHESECTION Section) { - PINICACHESECTION Next; + PINICACHESECTION Next; - if (Section == NULL) + if (Section == NULL) { - return(NULL); + return NULL; } - Next = Section->Next; - while (Section->FirstKey != NULL) + Next = Section->Next; + while (Section->FirstKey != NULL) { - Section->FirstKey = IniCacheFreeKey(Section->FirstKey); + Section->FirstKey = IniCacheFreeKey(Section->FirstKey); } - Section->LastKey = NULL; + Section->LastKey = NULL; - if (Section->Name != NULL) + if (Section->Name != NULL) { - RtlFreeHeap(ProcessHeap, - 0, - Section->Name); - Section->Name = NULL; + RtlFreeHeap(ProcessHeap, 0, Section->Name); + Section->Name = NULL; } - RtlFreeHeap(ProcessHeap, - 0, - Section); + RtlFreeHeap(ProcessHeap, 0, Section); - return(Next); + return Next; } -static PINICACHEKEY -IniCacheFindKey(PINICACHESECTION Section, - PWCHAR Name, - ULONG NameLength) +static +PINICACHEKEY +IniCacheFindKey( + PINICACHESECTION Section, + PWCHAR Name, + ULONG NameLength) { - PINICACHEKEY Key; + PINICACHEKEY Key; - Key = Section->FirstKey; - while (Key != NULL) + Key = Section->FirstKey; + while (Key != NULL) { - if (NameLength == wcslen(Key->Name)) - { - if (_wcsnicmp(Key->Name, Name, NameLength) == 0) - break; - } + if (NameLength == wcslen(Key->Name)) + { + if (_wcsnicmp(Key->Name, Name, NameLength) == 0) + break; + } - Key = Key->Next; + Key = Key->Next; } - return(Key); + return Key; } -static PINICACHEKEY -IniCacheAddKey(PINICACHESECTION Section, - PCHAR Name, - ULONG NameLength, - PCHAR Data, - ULONG DataLength) +static +PINICACHEKEY +IniCacheAddKey( + PINICACHESECTION Section, + PCHAR Name, + ULONG NameLength, + PCHAR Data, + ULONG DataLength) { - PINICACHEKEY Key; - ULONG i; + PINICACHEKEY Key; + ULONG i; - Key = NULL; + Key = NULL; - if (Section == NULL || - Name == NULL || - NameLength == 0 || - Data == NULL || - DataLength == 0) + if (Section == NULL || + Name == NULL || + NameLength == 0 || + Data == NULL || + DataLength == 0) { - DPRINT("Invalid parameter\n"); - return(NULL); + DPRINT("Invalid parameter\n"); + return NULL; } - Key = (PINICACHEKEY)RtlAllocateHeap(ProcessHeap, - 0, - sizeof(INICACHEKEY)); - if (Key == NULL) + Key = (PINICACHEKEY)RtlAllocateHeap(ProcessHeap, + 0, + sizeof(INICACHEKEY)); + if (Key == NULL) { - DPRINT("RtlAllocateHeap() failed\n"); - return(NULL); + DPRINT("RtlAllocateHeap() failed\n"); + return NULL; } - RtlZeroMemory(Key, - sizeof(INICACHEKEY)); + RtlZeroMemory(Key, + sizeof(INICACHEKEY)); - - Key->Name = (WCHAR*) RtlAllocateHeap(ProcessHeap, - 0, - (NameLength + 1) * sizeof(WCHAR)); - if (Key->Name == NULL) + Key->Name = (WCHAR*)RtlAllocateHeap(ProcessHeap, + 0, + (NameLength + 1) * sizeof(WCHAR)); + if (Key->Name == NULL) { - DPRINT("RtlAllocateHeap() failed\n"); - RtlFreeHeap(ProcessHeap, - 0, - Key); - return(NULL); + DPRINT("RtlAllocateHeap() failed\n"); + RtlFreeHeap(ProcessHeap, 0, Key); + return NULL; } - /* Copy value name */ - for (i = 0; i < NameLength; i++) + /* Copy value name */ + for (i = 0; i < NameLength; i++) { - Key->Name[i] = (WCHAR)Name[i]; + Key->Name[i] = (WCHAR)Name[i]; } - Key->Name[NameLength] = 0; + Key->Name[NameLength] = 0; - - Key->Data = (WCHAR*) RtlAllocateHeap(ProcessHeap, - 0, - (DataLength + 1) * sizeof(WCHAR)); - if (Key->Data == NULL) + Key->Data = (WCHAR*)RtlAllocateHeap(ProcessHeap, + 0, + (DataLength + 1) * sizeof(WCHAR)); + if (Key->Data == NULL) { - DPRINT("RtlAllocateHeap() failed\n"); - RtlFreeHeap(ProcessHeap, - 0, - Key->Name); - RtlFreeHeap(ProcessHeap, - 0, - Key); - return(NULL); + DPRINT("RtlAllocateHeap() failed\n"); + RtlFreeHeap(ProcessHeap, 0, Key->Name); + RtlFreeHeap(ProcessHeap, 0, Key); + return NULL; } - /* Copy value data */ - for (i = 0; i < DataLength; i++) + /* Copy value data */ + for (i = 0; i < DataLength; i++) { - Key->Data[i] = (WCHAR)Data[i]; + Key->Data[i] = (WCHAR)Data[i]; } - Key->Data[DataLength] = 0; + Key->Data[DataLength] = 0; - if (Section->FirstKey == NULL) + if (Section->FirstKey == NULL) { - Section->FirstKey = Key; - Section->LastKey = Key; + Section->FirstKey = Key; + Section->LastKey = Key; } - else + else { - Section->LastKey->Next = Key; - Key->Prev = Section->LastKey; - Section->LastKey = Key; + Section->LastKey->Next = Key; + Key->Prev = Section->LastKey; + Section->LastKey = Key; } - return(Key); + return Key; } + #if 0 -static PINICACHESECTION -IniCacheFindSection(PINICACHE Cache, - PWCHAR Name, - ULONG NameLength) +static +PINICACHESECTION +IniCacheFindSection( + PINICACHE Cache, + PWCHAR Name, + ULONG NameLength) { - PINICACHESECTION Section = NULL; + PINICACHESECTION Section = NULL; - if (Cache == NULL || Name == NULL || NameLength == 0) + if (Cache == NULL || Name == NULL || NameLength == 0) { - return(NULL); + return NULL; } - Section = Cache->FirstSection; + Section = Cache->FirstSection; - /* iterate through list of sections */ - while (Section != NULL) + /* iterate through list of sections */ + while (Section != NULL) { - if (NameLength == wcslen(Section->Name)) - { - /* are the contents the same too? */ - if (_wcsnicmp(Section->Name, Name, NameLength) == 0) - break; - } + if (NameLength == wcslen(Section->Name)) + { + /* are the contents the same too? */ + if (_wcsnicmp(Section->Name, Name, NameLength) == 0) + break; + } - /* get the next section*/ - Section = Section->Next; + /* get the next section*/ + Section = Section->Next; } - return(Section); + return Section; } #endif -static PINICACHESECTION -IniCacheAddSection(PINICACHE Cache, - PCHAR Name, - ULONG NameLength) + +static +PINICACHESECTION +IniCacheAddSection( + PINICACHE Cache, + PCHAR Name, + ULONG NameLength) { - PINICACHESECTION Section = NULL; - ULONG i; + PINICACHESECTION Section = NULL; + ULONG i; - if (Cache == NULL || Name == NULL || NameLength == 0) + if (Cache == NULL || Name == NULL || NameLength == 0) { - DPRINT("Invalid parameter\n"); - return(NULL); + DPRINT("Invalid parameter\n"); + return NULL; } - Section = (PINICACHESECTION)RtlAllocateHeap(ProcessHeap, - 0, - sizeof(INICACHESECTION)); - if (Section == NULL) + Section = (PINICACHESECTION)RtlAllocateHeap(ProcessHeap, + 0, + sizeof(INICACHESECTION)); + if (Section == NULL) { - DPRINT("RtlAllocateHeap() failed\n"); - return(NULL); - } - RtlZeroMemory(Section, - sizeof(INICACHESECTION)); - - /* Allocate and initialize section name */ - Section->Name = (WCHAR*) RtlAllocateHeap(ProcessHeap, - 0, - (NameLength + 1) * sizeof(WCHAR)); - if (Section->Name == NULL) - { - DPRINT("RtlAllocateHeap() failed\n"); - RtlFreeHeap(ProcessHeap, - 0, - Section); - return(NULL); + DPRINT("RtlAllocateHeap() failed\n"); + return NULL; } - /* Copy section name */ - for (i = 0; i < NameLength; i++) - { - Section->Name[i] = (WCHAR)Name[i]; - } - Section->Name[NameLength] = 0; + RtlZeroMemory(Section, sizeof(INICACHESECTION)); - /* Append section */ - if (Cache->FirstSection == NULL) + /* Allocate and initialize section name */ + Section->Name = (WCHAR*)RtlAllocateHeap(ProcessHeap, + 0, + (NameLength + 1) * sizeof(WCHAR)); + if (Section->Name == NULL) { - Cache->FirstSection = Section; - Cache->LastSection = Section; - } - else - { - Cache->LastSection->Next = Section; - Section->Prev = Cache->LastSection; - Cache->LastSection = Section; + DPRINT("RtlAllocateHeap() failed\n"); + RtlFreeHeap(ProcessHeap, 0, Section); + return NULL; } - return(Section); + /* Copy section name */ + for (i = 0; i < NameLength; i++) + { + Section->Name[i] = (WCHAR)Name[i]; + } + Section->Name[NameLength] = 0; + + /* Append section */ + if (Cache->FirstSection == NULL) + { + Cache->FirstSection = Section; + Cache->LastSection = Section; + } + else + { + Cache->LastSection->Next = Section; + Section->Prev = Cache->LastSection; + Cache->LastSection = Section; + } + + return Section; } -static PCHAR -IniCacheSkipWhitespace(PCHAR Ptr) +static +PCHAR +IniCacheSkipWhitespace( + PCHAR Ptr) { - while (*Ptr != 0 && isspace(*Ptr)) - Ptr++; + while (*Ptr != 0 && isspace(*Ptr)) + Ptr++; - return((*Ptr == 0) ? NULL : Ptr); + return (*Ptr == 0) ? NULL : Ptr; } -static PCHAR -IniCacheSkipToNextSection(PCHAR Ptr) +static +PCHAR +IniCacheSkipToNextSection( + PCHAR Ptr) { - while (*Ptr != 0 && *Ptr != '[') + while (*Ptr != 0 && *Ptr != '[') { - while (*Ptr != 0 && *Ptr != L'\n') - { - Ptr++; - } - Ptr++; + while (*Ptr != 0 && *Ptr != L'\n') + { + Ptr++; + } + + Ptr++; } - return((*Ptr == 0) ? NULL : Ptr); + return (*Ptr == 0) ? NULL : Ptr; } -static PCHAR -IniCacheGetSectionName(PCHAR Ptr, - PCHAR *NamePtr, - PULONG NameSize) +static +PCHAR +IniCacheGetSectionName( + PCHAR Ptr, + PCHAR *NamePtr, + PULONG NameSize) { - ULONG Size = 0; - CHAR Name[256]; + ULONG Size = 0; + CHAR Name[256]; - *NamePtr = NULL; - *NameSize = 0; - - /* skip whitespace */ - while (*Ptr != 0 && isspace(*Ptr)) - { - Ptr++; - } - - *NamePtr = Ptr; - - while (*Ptr != 0 && *Ptr != ']') - { - Size++; - Ptr++; - } - - Ptr++; - - while (*Ptr != 0 && *Ptr != L'\n') - { - Ptr++; - } - Ptr++; - - *NameSize = Size; - - strncpy(Name, *NamePtr, Size); - Name[Size] = 0; - - DPRINT("SectionName: '%s'\n", Name); - - return(Ptr); -} - - -static PCHAR -IniCacheGetKeyName(PCHAR Ptr, - PCHAR *NamePtr, - PULONG NameSize) -{ - ULONG Size = 0; - - *NamePtr = NULL; - *NameSize = 0; - - while(Ptr && *Ptr) - { *NamePtr = NULL; *NameSize = 0; - Size = 0; - /* skip whitespace and empty lines */ - while (isspace(*Ptr) || *Ptr == '\n' || *Ptr == '\r') + /* skip whitespace */ + while (*Ptr != 0 && isspace(*Ptr)) { - Ptr++; - } - if (*Ptr == 0) - { - continue; + Ptr++; } *NamePtr = Ptr; - while (*Ptr != 0 && !isspace(*Ptr) && *Ptr != '=' && *Ptr != ';') + while (*Ptr != 0 && *Ptr != ']') { - Size++; - Ptr++; + Size++; + Ptr++; } - if (*Ptr == ';') + Ptr++; + + while (*Ptr != 0 && *Ptr != L'\n') { - while (*Ptr != 0 && *Ptr != '\r' && *Ptr != '\n') - { - Ptr++; - } + Ptr++; + } + Ptr++; + + *NameSize = Size; + + strncpy(Name, *NamePtr, Size); + Name[Size] = 0; + + DPRINT("SectionName: '%s'\n", Name); + + return Ptr; +} + + +static +PCHAR +IniCacheGetKeyName( + PCHAR Ptr, + PCHAR *NamePtr, + PULONG NameSize) +{ + ULONG Size = 0; + + *NamePtr = NULL; + *NameSize = 0; + + while(Ptr && *Ptr) + { + *NamePtr = NULL; + *NameSize = 0; + Size = 0; + + /* skip whitespace and empty lines */ + while (isspace(*Ptr) || *Ptr == '\n' || *Ptr == '\r') + { + Ptr++; + } + if (*Ptr == 0) + { + continue; + } + + *NamePtr = Ptr; + + while (*Ptr != 0 && !isspace(*Ptr) && *Ptr != '=' && *Ptr != ';') + { + Size++; + Ptr++; + } + if (*Ptr == ';') + { + while (*Ptr != 0 && *Ptr != '\r' && *Ptr != '\n') + { + Ptr++; + } + } + else + { + *NameSize = Size; + break; + } + } + + return Ptr; +} + + +static +PCHAR +IniCacheGetKeyValue( + PCHAR Ptr, + PCHAR *DataPtr, + PULONG DataSize, + BOOLEAN String) +{ + ULONG Size = 0; + + *DataPtr = NULL; + *DataSize = 0; + + /* Skip whitespace */ + while (*Ptr != 0 && isspace(*Ptr)) + { + Ptr++; + } + + /* Check and skip '=' */ + if (*Ptr != '=') + { + return NULL; + } + Ptr++; + + /* Skip whitespace */ + while (*Ptr != 0 && isspace(*Ptr)) + { + Ptr++; + } + + if (*Ptr == '"' && String) + { + Ptr++; + + /* Get data */ + *DataPtr = Ptr; + while (*Ptr != '"') + { + Ptr++; + Size++; + } + Ptr++; + + while (*Ptr && *Ptr != '\r' && *Ptr != '\n') + { + Ptr++; + } } else { - *NameSize = Size; - break; + /* Get data */ + *DataPtr = Ptr; + while (*Ptr != 0 && *Ptr != '\r' && *Ptr != ';') + { + Ptr++; + Size++; + } } - } - return(Ptr); + /* Skip to next line */ + if (*Ptr == '\r') + Ptr++; + if (*Ptr == '\n') + Ptr++; + + *DataSize = Size; + + return Ptr; } -static PCHAR -IniCacheGetKeyValue(PCHAR Ptr, - PCHAR *DataPtr, - PULONG DataSize, - BOOLEAN String) -{ - ULONG Size = 0; - - *DataPtr = NULL; - *DataSize = 0; - - /* Skip whitespace */ - while (*Ptr != 0 && isspace(*Ptr)) - { - Ptr++; - } - - /* Check and skip '=' */ - if (*Ptr != '=') - { - return(NULL); - } - Ptr++; - - /* Skip whitespace */ - while (*Ptr != 0 && isspace(*Ptr)) - { - Ptr++; - } - - if (*Ptr == '"' && String) - { - Ptr++; - - /* Get data */ - *DataPtr = Ptr; - while (*Ptr != '"') - { - Ptr++; - Size++; - } - Ptr++; - while (*Ptr && *Ptr != '\r' && *Ptr != '\n') - { - Ptr++; - } - } - else - { - /* Get data */ - *DataPtr = Ptr; - while (*Ptr != 0 && *Ptr != '\r' && *Ptr != ';') - { - Ptr++; - Size++; - } - } - - /* Skip to next line */ - if (*Ptr == '\r') - Ptr++; - if (*Ptr == '\n') - Ptr++; - - *DataSize = Size; - - return(Ptr); -} - - - - /* PUBLIC FUNCTIONS *********************************************************/ NTSTATUS -IniCacheLoad(PINICACHE *Cache, - PUNICODE_STRING FileName, - BOOLEAN String) +IniCacheLoad( + PINICACHE *Cache, + PUNICODE_STRING FileName, + BOOLEAN String) { - OBJECT_ATTRIBUTES ObjectAttributes; - FILE_STANDARD_INFORMATION FileInfo; - IO_STATUS_BLOCK IoStatusBlock; - HANDLE FileHandle; - NTSTATUS Status; - PCHAR FileBuffer; - ULONG FileLength; - PCHAR Ptr; - LARGE_INTEGER FileOffset; + OBJECT_ATTRIBUTES ObjectAttributes; + FILE_STANDARD_INFORMATION FileInfo; + IO_STATUS_BLOCK IoStatusBlock; + HANDLE FileHandle; + NTSTATUS Status; + PCHAR FileBuffer; + ULONG FileLength; + PCHAR Ptr; + LARGE_INTEGER FileOffset; - PINICACHESECTION Section; - PINICACHEKEY Key; + PINICACHESECTION Section; + PINICACHEKEY Key; - PCHAR SectionName; - ULONG SectionNameSize; + PCHAR SectionName; + ULONG SectionNameSize; - PCHAR KeyName; - ULONG KeyNameSize; + PCHAR KeyName; + ULONG KeyNameSize; - PCHAR KeyValue; - ULONG KeyValueSize; + PCHAR KeyValue; + ULONG KeyValueSize; - *Cache = NULL; + *Cache = NULL; - /* Open ini file */ - InitializeObjectAttributes(&ObjectAttributes, - FileName, - 0, - NULL, - NULL); + /* Open ini file */ + InitializeObjectAttributes(&ObjectAttributes, + FileName, + 0, + NULL, + NULL); - Status = NtOpenFile(&FileHandle, - GENERIC_READ | SYNCHRONIZE, - &ObjectAttributes, - &IoStatusBlock, - FILE_SHARE_READ, - FILE_SYNCHRONOUS_IO_NONALERT | FILE_NON_DIRECTORY_FILE); - if (!NT_SUCCESS(Status)) + Status = NtOpenFile(&FileHandle, + GENERIC_READ | SYNCHRONIZE, + &ObjectAttributes, + &IoStatusBlock, + FILE_SHARE_READ, + FILE_SYNCHRONOUS_IO_NONALERT | FILE_NON_DIRECTORY_FILE); + if (!NT_SUCCESS(Status)) { - DPRINT("NtOpenFile() failed (Status %lx)\n", Status); - return(Status); + DPRINT("NtOpenFile() failed (Status %lx)\n", Status); + return Status; } - DPRINT("NtOpenFile() successful\n"); + DPRINT("NtOpenFile() successful\n"); - /* Query file size */ - Status = NtQueryInformationFile(FileHandle, - &IoStatusBlock, - &FileInfo, - sizeof(FILE_STANDARD_INFORMATION), - FileStandardInformation); - if (!NT_SUCCESS(Status)) + /* Query file size */ + Status = NtQueryInformationFile(FileHandle, + &IoStatusBlock, + &FileInfo, + sizeof(FILE_STANDARD_INFORMATION), + FileStandardInformation); + if (!NT_SUCCESS(Status)) { - DPRINT("NtQueryInformationFile() failed (Status %lx)\n", Status); - NtClose(FileHandle); - return(Status); + DPRINT("NtQueryInformationFile() failed (Status %lx)\n", Status); + NtClose(FileHandle); + return Status; } - FileLength = FileInfo.EndOfFile.u.LowPart; + FileLength = FileInfo.EndOfFile.u.LowPart; - DPRINT("File size: %lu\n", FileLength); + DPRINT("File size: %lu\n", FileLength); - /* Allocate file buffer */ - FileBuffer = (CHAR*) RtlAllocateHeap(ProcessHeap, - 0, - FileLength + 1); - if (FileBuffer == NULL) + /* Allocate file buffer */ + FileBuffer = (CHAR*)RtlAllocateHeap(ProcessHeap, + 0, + FileLength + 1); + if (FileBuffer == NULL) { - DPRINT1("RtlAllocateHeap() failed\n"); - NtClose(FileHandle); - return(STATUS_INSUFFICIENT_RESOURCES); + DPRINT1("RtlAllocateHeap() failed\n"); + NtClose(FileHandle); + return STATUS_INSUFFICIENT_RESOURCES; } - /* Read file */ - FileOffset.QuadPart = 0ULL; - Status = NtReadFile(FileHandle, - NULL, - NULL, - NULL, - &IoStatusBlock, - FileBuffer, - FileLength, - &FileOffset, - NULL); + /* Read file */ + FileOffset.QuadPart = 0ULL; + Status = NtReadFile(FileHandle, + NULL, + NULL, + NULL, + &IoStatusBlock, + FileBuffer, + FileLength, + &FileOffset, + NULL); - /* Append string terminator */ - FileBuffer[FileLength] = 0; + /* Append string terminator */ + FileBuffer[FileLength] = 0; - NtClose(FileHandle); + NtClose(FileHandle); - if (!NT_SUCCESS(Status)) + if (!NT_SUCCESS(Status)) { - DPRINT("NtReadFile() failed (Status %lx)\n", Status); - RtlFreeHeap(ProcessHeap, - 0, - FileBuffer); - return(Status); + DPRINT("NtReadFile() failed (Status %lx)\n", Status); + RtlFreeHeap(ProcessHeap, 0, FileBuffer); + return Status; } - - /* Allocate inicache header */ - *Cache = (PINICACHE)RtlAllocateHeap(ProcessHeap, - 0, - sizeof(INICACHE)); - if (*Cache == NULL) + /* Allocate inicache header */ + *Cache = (PINICACHE)RtlAllocateHeap(ProcessHeap, + 0, + sizeof(INICACHE)); + if (*Cache == NULL) { - DPRINT("RtlAllocateHeap() failed\n"); - return(STATUS_INSUFFICIENT_RESOURCES); + DPRINT("RtlAllocateHeap() failed\n"); + return STATUS_INSUFFICIENT_RESOURCES; } - /* Initialize inicache header */ - RtlZeroMemory(*Cache, - sizeof(INICACHE)); + /* Initialize inicache header */ + RtlZeroMemory(*Cache, sizeof(INICACHE)); - /* Parse ini file */ - Section = NULL; - Ptr = FileBuffer; - while (Ptr != NULL && *Ptr != 0) + /* Parse ini file */ + Section = NULL; + Ptr = FileBuffer; + while (Ptr != NULL && *Ptr != 0) { - Ptr = IniCacheSkipWhitespace(Ptr); - if (Ptr == NULL) - continue; + Ptr = IniCacheSkipWhitespace(Ptr); + if (Ptr == NULL) + continue; - if (*Ptr == '[') - { - Section = NULL; - Ptr++; + if (*Ptr == '[') + { + Section = NULL; + Ptr++; - Ptr = IniCacheGetSectionName(Ptr, - &SectionName, - &SectionNameSize); + Ptr = IniCacheGetSectionName(Ptr, + &SectionName, + &SectionNameSize); - DPRINT1("[%.*s]\n", SectionNameSize, SectionName); + DPRINT1("[%.*s]\n", SectionNameSize, SectionName); - Section = IniCacheAddSection(*Cache, - SectionName, - SectionNameSize); - if (Section == NULL) - { - DPRINT("IniCacheAddSection() failed\n"); - Ptr = IniCacheSkipToNextSection(Ptr); - continue; - } - } - else - { - if (Section == NULL) - { - Ptr = IniCacheSkipToNextSection(Ptr); - continue; - } + Section = IniCacheAddSection(*Cache, + SectionName, + SectionNameSize); + if (Section == NULL) + { + DPRINT("IniCacheAddSection() failed\n"); + Ptr = IniCacheSkipToNextSection(Ptr); + continue; + } + } + else + { + if (Section == NULL) + { + Ptr = IniCacheSkipToNextSection(Ptr); + continue; + } - Ptr = IniCacheGetKeyName(Ptr, - &KeyName, - &KeyNameSize); + Ptr = IniCacheGetKeyName(Ptr, + &KeyName, + &KeyNameSize); - Ptr = IniCacheGetKeyValue(Ptr, - &KeyValue, - &KeyValueSize, - String); + Ptr = IniCacheGetKeyValue(Ptr, + &KeyValue, + &KeyValueSize, + String); - DPRINT1("'%.*s' = '%.*s'\n", KeyNameSize, KeyName, KeyValueSize, KeyValue); + DPRINT1("'%.*s' = '%.*s'\n", KeyNameSize, KeyName, KeyValueSize, KeyValue); - Key = IniCacheAddKey(Section, - KeyName, - KeyNameSize, - KeyValue, - KeyValueSize); - if (Key == NULL) - { - DPRINT("IniCacheAddKey() failed\n"); - } - } + Key = IniCacheAddKey(Section, + KeyName, + KeyNameSize, + KeyValue, + KeyValueSize); + if (Key == NULL) + { + DPRINT("IniCacheAddKey() failed\n"); + } + } } - /* Free file buffer */ - RtlFreeHeap(ProcessHeap, - 0, - FileBuffer); + /* Free file buffer */ + RtlFreeHeap(ProcessHeap, 0, FileBuffer); - return(Status); + return Status; } VOID -IniCacheDestroy(PINICACHE Cache) +IniCacheDestroy( + PINICACHE Cache) { - if (Cache == NULL) + if (Cache == NULL) { - return; + return; } - while (Cache->FirstSection != NULL) + while (Cache->FirstSection != NULL) { - Cache->FirstSection = IniCacheFreeSection(Cache->FirstSection); + Cache->FirstSection = IniCacheFreeSection(Cache->FirstSection); } - Cache->LastSection = NULL; + Cache->LastSection = NULL; - RtlFreeHeap(ProcessHeap, - 0, - Cache); + RtlFreeHeap(ProcessHeap, 0, Cache); } PINICACHESECTION -IniCacheGetSection(PINICACHE Cache, - PWCHAR Name) +IniCacheGetSection( + PINICACHE Cache, + PWCHAR Name) { - PINICACHESECTION Section = NULL; + PINICACHESECTION Section = NULL; - if (Cache == NULL || Name == NULL) + if (Cache == NULL || Name == NULL) { - DPRINT("Invalid parameter\n"); - return(NULL); + DPRINT("Invalid parameter\n"); + return NULL; } - /* Iterate through list of sections */ - Section = Cache->FirstSection; - while (Section != NULL) + /* Iterate through list of sections */ + Section = Cache->FirstSection; + while (Section != NULL) { - DPRINT("Comparing '%S' and '%S'\n", Section->Name, Name); + DPRINT("Comparing '%S' and '%S'\n", Section->Name, Name); - /* Are the section names the same? */ - if (_wcsicmp(Section->Name, Name) == 0) - return(Section); + /* Are the section names the same? */ + if (_wcsicmp(Section->Name, Name) == 0) + return Section; - /* Get the next section */ - Section = Section->Next; + /* Get the next section */ + Section = Section->Next; } - DPRINT("Section not found\n"); + DPRINT("Section not found\n"); - return(NULL); + return NULL; } NTSTATUS -IniCacheGetKey(PINICACHESECTION Section, - PWCHAR KeyName, - PWCHAR *KeyData) +IniCacheGetKey( + PINICACHESECTION Section, + PWCHAR KeyName, + PWCHAR *KeyData) { - PINICACHEKEY Key; + PINICACHEKEY Key; - if (Section == NULL || KeyName == NULL || KeyData == NULL) + if (Section == NULL || KeyName == NULL || KeyData == NULL) { - DPRINT("Invalid parameter\n"); - return(STATUS_INVALID_PARAMETER); + DPRINT("Invalid parameter\n"); + return STATUS_INVALID_PARAMETER; } - *KeyData = NULL; + *KeyData = NULL; - Key = IniCacheFindKey(Section, KeyName, wcslen(KeyName)); - if (Key == NULL) + Key = IniCacheFindKey(Section, KeyName, wcslen(KeyName)); + if (Key == NULL) { - return(STATUS_INVALID_PARAMETER); + return STATUS_INVALID_PARAMETER; } - *KeyData = Key->Data; + *KeyData = Key->Data; - return(STATUS_SUCCESS); + return STATUS_SUCCESS; } PINICACHEITERATOR -IniCacheFindFirstValue(PINICACHESECTION Section, - PWCHAR *KeyName, - PWCHAR *KeyData) +IniCacheFindFirstValue( + PINICACHESECTION Section, + PWCHAR *KeyName, + PWCHAR *KeyData) { - PINICACHEITERATOR Iterator; - PINICACHEKEY Key; + PINICACHEITERATOR Iterator; + PINICACHEKEY Key; - if (Section == NULL || KeyName == NULL || KeyData == NULL) + if (Section == NULL || KeyName == NULL || KeyData == NULL) { - DPRINT("Invalid parameter\n"); - return(NULL); + DPRINT("Invalid parameter\n"); + return NULL; } - Key = Section->FirstKey; - if (Key == NULL) + Key = Section->FirstKey; + if (Key == NULL) { - DPRINT("Invalid parameter\n"); - return(NULL); + DPRINT("Invalid parameter\n"); + return NULL; } - *KeyName = Key->Name; - *KeyData = Key->Data; + *KeyName = Key->Name; + *KeyData = Key->Data; - Iterator = (PINICACHEITERATOR)RtlAllocateHeap(ProcessHeap, - 0, - sizeof(INICACHEITERATOR)); - if (Iterator == NULL) + Iterator = (PINICACHEITERATOR)RtlAllocateHeap(ProcessHeap, + 0, + sizeof(INICACHEITERATOR)); + if (Iterator == NULL) { - DPRINT("RtlAllocateHeap() failed\n"); - return(NULL); + DPRINT("RtlAllocateHeap() failed\n"); + return NULL; } - Iterator->Section = Section; - Iterator->Key = Key; + Iterator->Section = Section; + Iterator->Key = Key; - return(Iterator); + return Iterator; } BOOLEAN -IniCacheFindNextValue(PINICACHEITERATOR Iterator, - PWCHAR *KeyName, - PWCHAR *KeyData) +IniCacheFindNextValue( + PINICACHEITERATOR Iterator, + PWCHAR *KeyName, + PWCHAR *KeyData) { - PINICACHEKEY Key; + PINICACHEKEY Key; - if (Iterator == NULL || KeyName == NULL || KeyData == NULL) + if (Iterator == NULL || KeyName == NULL || KeyData == NULL) { - DPRINT("Invalid parameter\n"); - return(FALSE); + DPRINT("Invalid parameter\n"); + return FALSE; } - Key = Iterator->Key->Next; - if (Key == NULL) + Key = Iterator->Key->Next; + if (Key == NULL) { - DPRINT("No more entries\n"); - return(FALSE); + DPRINT("No more entries\n"); + return FALSE; } - *KeyName = Key->Name; - *KeyData = Key->Data; + *KeyName = Key->Name; + *KeyData = Key->Data; - Iterator->Key = Key; + Iterator->Key = Key; - return(TRUE); + return TRUE; } VOID -IniCacheFindClose(PINICACHEITERATOR Iterator) +IniCacheFindClose( + PINICACHEITERATOR Iterator) { - if (Iterator == NULL) - return; + if (Iterator == NULL) + return; - RtlFreeHeap(ProcessHeap, - 0, - Iterator); + RtlFreeHeap(ProcessHeap, 0, Iterator); } PINICACHEKEY -IniCacheInsertKey(PINICACHESECTION Section, - PINICACHEKEY AnchorKey, - INSERTATION_TYPE InsertationType, - PWCHAR Name, - PWCHAR Data) +IniCacheInsertKey( + PINICACHESECTION Section, + PINICACHEKEY AnchorKey, + INSERTATION_TYPE InsertationType, + PWCHAR Name, + PWCHAR Data) { - PINICACHEKEY Key; + PINICACHEKEY Key; - Key = NULL; + Key = NULL; - if (Section == NULL || - Name == NULL || - *Name == 0 || - Data == NULL || - *Data == 0) + if (Section == NULL || + Name == NULL || + *Name == 0 || + Data == NULL || + *Data == 0) { - DPRINT("Invalid parameter\n"); - return(NULL); + DPRINT("Invalid parameter\n"); + return NULL; } - /* Allocate key buffer */ - Key = (PINICACHEKEY)RtlAllocateHeap(ProcessHeap, - 0, - sizeof(INICACHEKEY)); - if (Key == NULL) + /* Allocate key buffer */ + Key = (PINICACHEKEY)RtlAllocateHeap(ProcessHeap, + 0, + sizeof(INICACHEKEY)); + if (Key == NULL) { - DPRINT("RtlAllocateHeap() failed\n"); - return(NULL); - } - RtlZeroMemory(Key, - sizeof(INICACHEKEY)); - - /* Allocate name buffer */ - Key->Name = (WCHAR*) RtlAllocateHeap(ProcessHeap, - 0, - (wcslen(Name) + 1) * sizeof(WCHAR)); - if (Key->Name == NULL) - { - DPRINT("RtlAllocateHeap() failed\n"); - RtlFreeHeap(ProcessHeap, - 0, - Key); - return(NULL); + DPRINT("RtlAllocateHeap() failed\n"); + return NULL; } - /* Copy value name */ - wcscpy(Key->Name, Name); + RtlZeroMemory(Key, sizeof(INICACHEKEY)); - /* Allocate data buffer */ - Key->Data = (WCHAR*) RtlAllocateHeap(ProcessHeap, - 0, - (wcslen(Data) + 1) * sizeof(WCHAR)); - if (Key->Data == NULL) + /* Allocate name buffer */ + Key->Name = (WCHAR*)RtlAllocateHeap(ProcessHeap, + 0, + (wcslen(Name) + 1) * sizeof(WCHAR)); + if (Key->Name == NULL) { - DPRINT("RtlAllocateHeap() failed\n"); - RtlFreeHeap(ProcessHeap, - 0, - Key->Name); - RtlFreeHeap(ProcessHeap, - 0, - Key); - return(NULL); + DPRINT("RtlAllocateHeap() failed\n"); + RtlFreeHeap(ProcessHeap, 0, Key); + return NULL; } - /* Copy value data */ - wcscpy(Key->Data, Data); + /* Copy value name */ + wcscpy(Key->Name, Name); - /* Insert key into section */ - if (Section->FirstKey == NULL) + /* Allocate data buffer */ + Key->Data = (WCHAR*)RtlAllocateHeap(ProcessHeap, + 0, + (wcslen(Data) + 1) * sizeof(WCHAR)); + if (Key->Data == NULL) { - Section->FirstKey = Key; - Section->LastKey = Key; - } - else if ((InsertationType == INSERT_FIRST) || - ((InsertationType == INSERT_BEFORE) && ((AnchorKey == NULL) || (AnchorKey == Section->FirstKey)))) - { - /* Insert at the head of the list */ - Section->FirstKey->Prev = Key; - Key->Next = Section->FirstKey; - Section->FirstKey = Key; - } - else if ((InsertationType == INSERT_BEFORE) && (AnchorKey != NULL)) - { - /* Insert before the anchor key */ - Key->Next = AnchorKey; - Key->Prev = AnchorKey->Prev; - AnchorKey->Prev->Next = Key; - AnchorKey->Prev = Key; - } - else if ((InsertationType == INSERT_LAST) || - ((InsertationType == INSERT_AFTER) && ((AnchorKey == NULL) || (AnchorKey == Section->LastKey)))) - { - Section->LastKey->Next = Key; - Key->Prev = Section->LastKey; - Section->LastKey = Key; - } - else if ((InsertationType == INSERT_AFTER) && (AnchorKey != NULL)) - { - /* Insert before the anchor key */ - Key->Next = AnchorKey->Next; - Key->Prev = AnchorKey; - AnchorKey->Next->Prev = Key; - AnchorKey->Next = Key; + DPRINT("RtlAllocateHeap() failed\n"); + RtlFreeHeap(ProcessHeap, 0, Key->Name); + RtlFreeHeap(ProcessHeap, 0, Key); + return NULL; } - return(Key); + /* Copy value data */ + wcscpy(Key->Data, Data); + + /* Insert key into section */ + if (Section->FirstKey == NULL) + { + Section->FirstKey = Key; + Section->LastKey = Key; + } + else if ((InsertationType == INSERT_FIRST) || + ((InsertationType == INSERT_BEFORE) && ((AnchorKey == NULL) || (AnchorKey == Section->FirstKey)))) + { + /* Insert at the head of the list */ + Section->FirstKey->Prev = Key; + Key->Next = Section->FirstKey; + Section->FirstKey = Key; + } + else if ((InsertationType == INSERT_BEFORE) && (AnchorKey != NULL)) + { + /* Insert before the anchor key */ + Key->Next = AnchorKey; + Key->Prev = AnchorKey->Prev; + AnchorKey->Prev->Next = Key; + AnchorKey->Prev = Key; + } + else if ((InsertationType == INSERT_LAST) || + ((InsertationType == INSERT_AFTER) && ((AnchorKey == NULL) || (AnchorKey == Section->LastKey)))) + { + Section->LastKey->Next = Key; + Key->Prev = Section->LastKey; + Section->LastKey = Key; + } + else if ((InsertationType == INSERT_AFTER) && (AnchorKey != NULL)) + { + /* Insert after the anchor key */ + Key->Next = AnchorKey->Next; + Key->Prev = AnchorKey; + AnchorKey->Next->Prev = Key; + AnchorKey->Next = Key; + } + + return Key; } PINICACHE IniCacheCreate(VOID) { - PINICACHE Cache; + PINICACHE Cache; - /* Allocate inicache header */ - Cache = (PINICACHE)RtlAllocateHeap(ProcessHeap, - 0, - sizeof(INICACHE)); - if (Cache == NULL) + /* Allocate inicache header */ + Cache = (PINICACHE)RtlAllocateHeap(ProcessHeap, + 0, + sizeof(INICACHE)); + if (Cache == NULL) { - DPRINT("RtlAllocateHeap() failed\n"); - return(NULL); + DPRINT("RtlAllocateHeap() failed\n"); + return NULL; } - /* Initialize inicache header */ - RtlZeroMemory(Cache, - sizeof(INICACHE)); + /* Initialize inicache header */ + RtlZeroMemory(Cache, sizeof(INICACHE)); - return(Cache); + return Cache; } NTSTATUS -IniCacheSave(PINICACHE Cache, - PWCHAR FileName) +IniCacheSave( + PINICACHE Cache, + PWCHAR FileName) { - UNICODE_STRING Name; - PINICACHESECTION Section; - PINICACHEKEY Key; - ULONG BufferSize; - PCHAR Buffer; - PCHAR Ptr; - ULONG Len; - NTSTATUS Status; + UNICODE_STRING Name; + PINICACHESECTION Section; + PINICACHEKEY Key; + ULONG BufferSize; + PCHAR Buffer; + PCHAR Ptr; + ULONG Len; + NTSTATUS Status; - OBJECT_ATTRIBUTES ObjectAttributes; - IO_STATUS_BLOCK IoStatusBlock; - LARGE_INTEGER Offset; - HANDLE FileHandle; + OBJECT_ATTRIBUTES ObjectAttributes; + IO_STATUS_BLOCK IoStatusBlock; + LARGE_INTEGER Offset; + HANDLE FileHandle; - /* Calculate required buffer size */ - BufferSize = 0; - Section = Cache->FirstSection; - while (Section != NULL) + /* Calculate required buffer size */ + BufferSize = 0; + Section = Cache->FirstSection; + while (Section != NULL) { - BufferSize += (Section->Name ? wcslen(Section->Name) : 0) - + 4; /* "[]\r\n" */ + BufferSize += (Section->Name ? wcslen(Section->Name) : 0) + + 4; /* "[]\r\n" */ - Key = Section->FirstKey; - while (Key != NULL) - { - BufferSize += wcslen(Key->Name) - + (Key->Data ? wcslen(Key->Data) : 0) - + 3; /* "=\r\n" */ - Key = Key->Next; - } + Key = Section->FirstKey; + while (Key != NULL) + { + BufferSize += wcslen(Key->Name) + + (Key->Data ? wcslen(Key->Data) : 0) + + 3; /* "=\r\n" */ + Key = Key->Next; + } - Section = Section->Next; - if (Section != NULL) - BufferSize += 2; /* extra "\r\n" at end of each section */ + Section = Section->Next; + if (Section != NULL) + BufferSize += 2; /* extra "\r\n" at end of each section */ } - BufferSize++; /* Null-terminator */ + BufferSize++; /* Null-terminator */ - DPRINT("BufferSize: %lu\n", BufferSize); + DPRINT("BufferSize: %lu\n", BufferSize); - /* Allocate file buffer */ - Buffer = (CHAR*) RtlAllocateHeap(ProcessHeap, - 0, - BufferSize); - if (Buffer == NULL) + /* Allocate file buffer */ + Buffer = (CHAR*)RtlAllocateHeap(ProcessHeap, + 0, + BufferSize); + if (Buffer == NULL) { - DPRINT1("RtlAllocateHeap() failed\n"); - return(STATUS_INSUFFICIENT_RESOURCES); - } - RtlZeroMemory(Buffer, BufferSize); - - /* Fill file buffer */ - Ptr = Buffer; - Section = Cache->FirstSection; - while (Section != NULL) - { - Len = sprintf(Ptr, "[%S]\r\n", Section->Name); - Ptr += Len; - - Key = Section->FirstKey; - while (Key != NULL) - { - Len = sprintf(Ptr, "%S=%S\r\n", Key->Name, Key->Data); - Ptr += Len; - Key = Key->Next; - } - - Section = Section->Next; - if (Section != NULL) - { - Len = sprintf(Ptr, "\r\n"); - Ptr += Len; - } + DPRINT1("RtlAllocateHeap() failed\n"); + return STATUS_INSUFFICIENT_RESOURCES; } - /* Create ini file */ - RtlInitUnicodeString(&Name, - FileName); + RtlZeroMemory(Buffer, BufferSize); - InitializeObjectAttributes(&ObjectAttributes, - &Name, - 0, - NULL, - NULL); - - Status = NtCreateFile(&FileHandle, - GENERIC_WRITE | SYNCHRONIZE, - &ObjectAttributes, - &IoStatusBlock, - NULL, - FILE_ATTRIBUTE_NORMAL, - 0, - FILE_SUPERSEDE, - FILE_SYNCHRONOUS_IO_NONALERT | FILE_SEQUENTIAL_ONLY, - NULL, - 0); - if (!NT_SUCCESS(Status)) + /* Fill file buffer */ + Ptr = Buffer; + Section = Cache->FirstSection; + while (Section != NULL) { - DPRINT("NtCreateFile() failed (Status %lx)\n", Status); - RtlFreeHeap(ProcessHeap, - 0, - Buffer); - return(Status); + Len = sprintf(Ptr, "[%S]\r\n", Section->Name); + Ptr += Len; + + Key = Section->FirstKey; + while (Key != NULL) + { + Len = sprintf(Ptr, "%S=%S\r\n", Key->Name, Key->Data); + Ptr += Len; + Key = Key->Next; + } + + Section = Section->Next; + if (Section != NULL) + { + Len = sprintf(Ptr, "\r\n"); + Ptr += Len; + } } - Offset.QuadPart = 0LL; - Status = NtWriteFile(FileHandle, - NULL, - NULL, - NULL, - &IoStatusBlock, - Buffer, - BufferSize, - &Offset, - NULL); - if (!NT_SUCCESS(Status)) + /* Create ini file */ + RtlInitUnicodeString(&Name, + FileName); + + InitializeObjectAttributes(&ObjectAttributes, + &Name, + 0, + NULL, + NULL); + + Status = NtCreateFile(&FileHandle, + GENERIC_WRITE | SYNCHRONIZE, + &ObjectAttributes, + &IoStatusBlock, + NULL, + FILE_ATTRIBUTE_NORMAL, + 0, + FILE_SUPERSEDE, + FILE_SYNCHRONOUS_IO_NONALERT | FILE_SEQUENTIAL_ONLY, + NULL, + 0); + if (!NT_SUCCESS(Status)) + { + DPRINT("NtCreateFile() failed (Status %lx)\n", Status); + RtlFreeHeap(ProcessHeap, 0, Buffer); + return Status; + } + + Offset.QuadPart = 0LL; + Status = NtWriteFile(FileHandle, + NULL, + NULL, + NULL, + &IoStatusBlock, + Buffer, + BufferSize, + &Offset, + NULL); + if (!NT_SUCCESS(Status)) { DPRINT("NtWriteFile() failed (Status %lx)\n", Status); NtClose(FileHandle); - RtlFreeHeap(ProcessHeap, - 0, - Buffer); - return(Status); + RtlFreeHeap(ProcessHeap, 0, Buffer); + return Status; } - NtClose(FileHandle); + NtClose(FileHandle); - RtlFreeHeap(ProcessHeap, - 0, - Buffer); + RtlFreeHeap(ProcessHeap, 0, Buffer); - return(STATUS_SUCCESS); + return STATUS_SUCCESS; } PINICACHESECTION -IniCacheAppendSection(PINICACHE Cache, - PWCHAR Name) +IniCacheAppendSection( + PINICACHE Cache, + PWCHAR Name) { - PINICACHESECTION Section = NULL; + PINICACHESECTION Section = NULL; - if (Cache == NULL || Name == NULL || *Name == 0) + if (Cache == NULL || Name == NULL || *Name == 0) { - DPRINT("Invalid parameter\n"); - return(NULL); + DPRINT("Invalid parameter\n"); + return NULL; } - Section = (PINICACHESECTION)RtlAllocateHeap(ProcessHeap, - 0, - sizeof(INICACHESECTION)); - if (Section == NULL) + Section = (PINICACHESECTION)RtlAllocateHeap(ProcessHeap, + 0, + sizeof(INICACHESECTION)); + if (Section == NULL) { - DPRINT("RtlAllocateHeap() failed\n"); - return(NULL); - } - RtlZeroMemory(Section, - sizeof(INICACHESECTION)); - - /* Allocate and initialize section name */ - Section->Name = (WCHAR*) RtlAllocateHeap(ProcessHeap, - 0, - (wcslen(Name) + 1) * sizeof(WCHAR)); - if (Section->Name == NULL) - { - DPRINT("RtlAllocateHeap() failed\n"); - RtlFreeHeap(ProcessHeap, - 0, - Section); - return(NULL); + DPRINT("RtlAllocateHeap() failed\n"); + return NULL; } - /* Copy section name */ - wcscpy(Section->Name, Name); + RtlZeroMemory(Section, sizeof(INICACHESECTION)); - /* Append section */ - if (Cache->FirstSection == NULL) + /* Allocate and initialize section name */ + Section->Name = (WCHAR*)RtlAllocateHeap(ProcessHeap, + 0, + (wcslen(Name) + 1) * sizeof(WCHAR)); + if (Section->Name == NULL) { - Cache->FirstSection = Section; - Cache->LastSection = Section; - } - else - { - Cache->LastSection->Next = Section; - Section->Prev = Cache->LastSection; - Cache->LastSection = Section; + DPRINT("RtlAllocateHeap() failed\n"); + RtlFreeHeap(ProcessHeap, 0, Section); + return NULL; } - return(Section); + /* Copy section name */ + wcscpy(Section->Name, Name); + + /* Append section */ + if (Cache->FirstSection == NULL) + { + Cache->FirstSection = Section; + Cache->LastSection = Section; + } + else + { + Cache->LastSection->Next = Section; + Section->Prev = Cache->LastSection; + Cache->LastSection = Section; + } + + return Section; } /* EOF */ diff --git a/reactos/base/setup/usetup/inicache.h b/reactos/base/setup/usetup/inicache.h index bd7dd33510c..4da4c117f36 100644 --- a/reactos/base/setup/usetup/inicache.h +++ b/reactos/base/setup/usetup/inicache.h @@ -29,99 +29,107 @@ typedef struct _INICACHEKEY { - PWCHAR Name; - PWCHAR Data; + PWCHAR Name; + PWCHAR Data; - struct _INICACHEKEY *Next; - struct _INICACHEKEY *Prev; + struct _INICACHEKEY *Next; + struct _INICACHEKEY *Prev; } INICACHEKEY, *PINICACHEKEY; typedef struct _INICACHESECTION { - PWCHAR Name; + PWCHAR Name; - PINICACHEKEY FirstKey; - PINICACHEKEY LastKey; + PINICACHEKEY FirstKey; + PINICACHEKEY LastKey; - struct _INICACHESECTION *Next; - struct _INICACHESECTION *Prev; + struct _INICACHESECTION *Next; + struct _INICACHESECTION *Prev; } INICACHESECTION, *PINICACHESECTION; typedef struct _INICACHE { - PINICACHESECTION FirstSection; - PINICACHESECTION LastSection; + PINICACHESECTION FirstSection; + PINICACHESECTION LastSection; } INICACHE, *PINICACHE; typedef struct _PINICACHEITERATOR { - PINICACHESECTION Section; - PINICACHEKEY Key; + PINICACHESECTION Section; + PINICACHEKEY Key; } INICACHEITERATOR, *PINICACHEITERATOR; typedef enum { - INSERT_FIRST, - INSERT_BEFORE, - INSERT_AFTER, - INSERT_LAST + INSERT_FIRST, + INSERT_BEFORE, + INSERT_AFTER, + INSERT_LAST } INSERTATION_TYPE; /* FUNCTIONS ****************************************************************/ NTSTATUS -IniCacheLoad(PINICACHE *Cache, - PUNICODE_STRING FileName, - BOOLEAN String); +IniCacheLoad( + PINICACHE *Cache, + PUNICODE_STRING FileName, + BOOLEAN String); VOID -IniCacheDestroy(PINICACHE Cache); +IniCacheDestroy( + PINICACHE Cache); PINICACHESECTION -IniCacheGetSection(PINICACHE Cache, - PWCHAR Name); +IniCacheGetSection( + PINICACHE Cache, + PWCHAR Name); NTSTATUS -IniCacheGetKey(PINICACHESECTION Section, - PWCHAR KeyName, - PWCHAR *KeyData); - - +IniCacheGetKey( + PINICACHESECTION Section, + PWCHAR KeyName, + PWCHAR *KeyData); PINICACHEITERATOR -IniCacheFindFirstValue(PINICACHESECTION Section, - PWCHAR *KeyName, - PWCHAR *KeyData); +IniCacheFindFirstValue( + PINICACHESECTION Section, + PWCHAR *KeyName, + PWCHAR *KeyData); BOOLEAN -IniCacheFindNextValue(PINICACHEITERATOR Iterator, - PWCHAR *KeyName, - PWCHAR *KeyData); +IniCacheFindNextValue( + PINICACHEITERATOR Iterator, + PWCHAR *KeyName, + PWCHAR *KeyData); VOID -IniCacheFindClose(PINICACHEITERATOR Iterator); +IniCacheFindClose( + PINICACHEITERATOR Iterator); PINICACHEKEY -IniCacheInsertKey(PINICACHESECTION Section, - PINICACHEKEY AnchorKey, - INSERTATION_TYPE InsertationType, - PWCHAR Name, - PWCHAR Data); +IniCacheInsertKey( + PINICACHESECTION Section, + PINICACHEKEY AnchorKey, + INSERTATION_TYPE InsertationType, + PWCHAR Name, + PWCHAR Data); PINICACHE IniCacheCreate(VOID); NTSTATUS -IniCacheSave(PINICACHE Cache, - PWCHAR FileName); +IniCacheSave( + PINICACHE Cache, + PWCHAR FileName); PINICACHESECTION -IniCacheAppendSection(PINICACHE Cache, - PWCHAR Name); +IniCacheAppendSection( + PINICACHE Cache, + PWCHAR Name); /* EOF */ diff --git a/reactos/base/setup/usetup/mui.c b/reactos/base/setup/usetup/mui.c index 71a6250feb9..1ebcf4a31b4 100644 --- a/reactos/base/setup/usetup/mui.c +++ b/reactos/base/setup/usetup/mui.c @@ -63,8 +63,10 @@ FindLanguageIndex(VOID) return 0; } + BOOLEAN -IsLanguageAvailable(PWCHAR LanguageId) +IsLanguageAvailable( + PWCHAR LanguageId) { ULONG lngIndex = 0; @@ -82,7 +84,8 @@ IsLanguageAvailable(PWCHAR LanguageId) static const MUI_ENTRY * -FindMUIEntriesOfPage(IN ULONG PageNumber) +FindMUIEntriesOfPage( + IN ULONG PageNumber) { ULONG muiIndex = 0; ULONG lngIndex; @@ -102,6 +105,7 @@ FindMUIEntriesOfPage(IN ULONG PageNumber) return NULL; } + static const MUI_ERROR * FindMUIErrorEntries(VOID) @@ -110,6 +114,7 @@ FindMUIErrorEntries(VOID) return LanguageList[lngIndex].MuiErrors; } + static const MUI_STRING * FindMUIStringEntries(VOID) @@ -118,6 +123,7 @@ FindMUIStringEntries(VOID) return LanguageList[lngIndex].MuiStrings; } + LPCWSTR MUIDefaultKeyboardLayout(VOID) { @@ -125,6 +131,7 @@ MUIDefaultKeyboardLayout(VOID) return LanguageList[lngIndex].MuiLayouts[0].LayoutID; } + PWCHAR MUIGetGeoID(VOID) { @@ -132,6 +139,7 @@ MUIGetGeoID(VOID) return LanguageList[lngIndex].GeoID; } + const MUI_LAYOUTS * MUIGetLayoutsList(VOID) { @@ -139,8 +147,10 @@ MUIGetLayoutsList(VOID) return LanguageList[lngIndex].MuiLayouts; } + VOID -MUIClearPage(IN ULONG page) +MUIClearPage( + IN ULONG page) { const MUI_ENTRY * entry; int index; @@ -167,8 +177,10 @@ MUIClearPage(IN ULONG page) while (entry[index].Buffer != NULL); } + VOID -MUIDisplayPage(IN ULONG page) +MUIDisplayPage( + IN ULONG page) { const MUI_ENTRY * entry; int index; @@ -196,8 +208,12 @@ MUIDisplayPage(IN ULONG page) while (entry[index].Buffer != NULL); } + VOID -MUIDisplayError(IN ULONG ErrorNum, OUT PINPUT_RECORD Ir, IN ULONG WaitEvent) +MUIDisplayError( + IN ULONG ErrorNum, + OUT PINPUT_RECORD Ir, + IN ULONG WaitEvent) { const MUI_ERROR * entry; @@ -227,8 +243,10 @@ MUIDisplayError(IN ULONG ErrorNum, OUT PINPUT_RECORD Ir, IN ULONG WaitEvent) WaitEvent); } + LPSTR -MUIGetString(ULONG Number) +MUIGetString( + ULONG Number) { ULONG i; const MUI_STRING * entry; @@ -249,15 +267,20 @@ MUIGetString(ULONG Number) sprintf(szErr, "Error: failed find string id %lu for language index %lu\n", Number, FindLanguageIndex()); PopupError(szErr, - NULL, - NULL, - POPUP_WAIT_NONE); + NULL, + NULL, + POPUP_WAIT_NONE); return ""; } -static BOOLEAN -AddHotkeySettings(IN LPCWSTR Hotkey, IN LPCWSTR LangHotkey, IN LPCWSTR LayoutHotkey) + +static +BOOLEAN +AddHotkeySettings( + IN LPCWSTR Hotkey, + IN LPCWSTR LangHotkey, + IN LPCWSTR LayoutHotkey) { OBJECT_ATTRIBUTES ObjectAttributes; UNICODE_STRING KeyName; @@ -340,8 +363,10 @@ AddHotkeySettings(IN LPCWSTR Hotkey, IN LPCWSTR LangHotkey, IN LPCWSTR LayoutHot return TRUE; } + BOOLEAN -AddKbLayoutsToRegistry(IN const MUI_LAYOUTS * MuiLayouts) +AddKbLayoutsToRegistry( + IN const MUI_LAYOUTS *MuiLayouts) { OBJECT_ATTRIBUTES ObjectAttributes; UNICODE_STRING KeyName; @@ -509,10 +534,12 @@ AddKbLayoutsToRegistry(IN const MUI_LAYOUTS * MuiLayouts) return TRUE; } + BOOLEAN AddKeyboardLayouts(VOID) { ULONG lngIndex = 0; + do { if (_wcsicmp(LanguageList[lngIndex].LanguageID , SelectedLanguageId) == 0) @@ -527,8 +554,13 @@ AddKeyboardLayouts(VOID) return FALSE; } -static BOOLEAN -AddCodepageToRegistry(IN LPCWSTR ACPage, IN LPCWSTR OEMCPage, IN LPCWSTR MACCPage) + +static +BOOLEAN +AddCodepageToRegistry( + IN LPCWSTR ACPage, + IN LPCWSTR OEMCPage, + IN LPCWSTR MACCPage) { OBJECT_ATTRIBUTES ObjectAttributes; UNICODE_STRING KeyName; @@ -603,8 +635,11 @@ AddCodepageToRegistry(IN LPCWSTR ACPage, IN LPCWSTR OEMCPage, IN LPCWSTR MACCPag return TRUE; } -static BOOLEAN -AddFontsSettingsToRegistry(IN const MUI_SUBFONT * MuiSubFonts) + +static +BOOLEAN +AddFontsSettingsToRegistry( + IN const MUI_SUBFONT * MuiSubFonts) { OBJECT_ATTRIBUTES ObjectAttributes; UNICODE_STRING KeyName; @@ -654,6 +689,7 @@ AddFontsSettingsToRegistry(IN const MUI_SUBFONT * MuiSubFonts) return TRUE; } + BOOLEAN AddCodePage(VOID) { @@ -682,6 +718,7 @@ AddCodePage(VOID) return FALSE; } + VOID SetConsoleCodePage(VOID) { diff --git a/reactos/base/setup/usetup/mui.h b/reactos/base/setup/usetup/mui.h index f8074efd312..bf35835f792 100644 --- a/reactos/base/setup/usetup/mui.h +++ b/reactos/base/setup/usetup/mui.h @@ -54,16 +54,22 @@ typedef struct } MUI_LANGUAGE; BOOLEAN -IsLanguageAvailable(PWCHAR LanguageId); +IsLanguageAvailable( + PWCHAR LanguageId); VOID -MUIDisplayPage (ULONG PageNumber); +MUIDisplayPage( + ULONG PageNumber); VOID -MUIClearPage (ULONG PageNumber); +MUIClearPage( + ULONG PageNumber); VOID -MUIDisplayError (ULONG ErrorNum, PINPUT_RECORD Ir, ULONG WaitEvent); +MUIDisplayError( + ULONG ErrorNum, + PINPUT_RECORD Ir, + ULONG WaitEvent); LPCWSTR MUIDefaultKeyboardLayout(VOID); @@ -75,7 +81,8 @@ const MUI_LAYOUTS * MUIGetLayoutsList(VOID); BOOLEAN -AddKbLayoutsToRegistry(IN const MUI_LAYOUTS * MuiLayouts); +AddKbLayoutsToRegistry( + IN const MUI_LAYOUTS *MuiLayouts); BOOLEAN AddCodePage(VOID); @@ -87,7 +94,8 @@ VOID SetConsoleCodePage(VOID); LPSTR -MUIGetString(ULONG Number); +MUIGetString( + ULONG Number); #define STRING_PLEASEWAIT 1 #define STRING_INSTALLCREATEPARTITION 2 From ca543abe1e5cd23ae2846ce20f8f136eea6ae7c5 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Mon, 12 May 2014 14:25:53 +0000 Subject: [PATCH 67/92] [CRT] * Update ferror(). CORE-8080 svn path=/trunk/; revision=63255 --- reactos/lib/sdk/crt/stdio/file.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index 1dc27d8413c..b7dbbb72ec2 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -2240,13 +2240,7 @@ int CDECL feof(FILE* file) */ int CDECL ferror(FILE* file) { - int ret; - - _lock_file(file); - ret = file->_flag & _IOERR; - _unlock_file(file); - - return ret; + return file->_flag & _IOERR; } /********************************************************************* From c36bab312ae0497daae6c56e0293e663764f6b9b Mon Sep 17 00:00:00 2001 From: Kamil Hornicek Date: Mon, 12 May 2014 14:35:30 +0000 Subject: [PATCH 68/92] [SERVMAN][EVENTVWR] - add czech translations svn path=/trunk/; revision=63256 --- .../mscutils/eventvwr/eventvwr.rc | 3 + .../mscutils/eventvwr/lang/cs-CZ.rc | 117 ++++++++ .../mscutils/servman/lang/cs-CZ.rc | 281 ++++++++++++++++++ .../applications/mscutils/servman/servman.rc | 3 + 4 files changed, 404 insertions(+) create mode 100644 reactos/base/applications/mscutils/eventvwr/lang/cs-CZ.rc create mode 100644 reactos/base/applications/mscutils/servman/lang/cs-CZ.rc diff --git a/reactos/base/applications/mscutils/eventvwr/eventvwr.rc b/reactos/base/applications/mscutils/eventvwr/eventvwr.rc index 29058175908..d2c9a69cac5 100644 --- a/reactos/base/applications/mscutils/eventvwr/eventvwr.rc +++ b/reactos/base/applications/mscutils/eventvwr/eventvwr.rc @@ -24,6 +24,9 @@ IDI_ERRORICON ICON "res/error.ico" #ifdef LANGUAGE_BG_BG #include "lang/bg-BG.rc" #endif +#ifdef LANGUAGE_CS_CZ + #include "lang/cs-CZ.rc" +#endif #ifdef LANGUAGE_DE_DE #include "lang/de-DE.rc" #endif diff --git a/reactos/base/applications/mscutils/eventvwr/lang/cs-CZ.rc b/reactos/base/applications/mscutils/eventvwr/lang/cs-CZ.rc new file mode 100644 index 00000000000..873bb14f6e1 --- /dev/null +++ b/reactos/base/applications/mscutils/eventvwr/lang/cs-CZ.rc @@ -0,0 +1,117 @@ +LANGUAGE LANG_CZECH, SUBLANG_DEFAULT + +IDC_EVENTVWR MENU +BEGIN + POPUP "&Protokol" + BEGIN + MENUITEM "&Aplikace", ID_LOG_APPLICATION + MENUITEM "&Zabezpečení", ID_LOG_SECURITY + MENUITEM "&Systém", ID_LOG_SYSTEM + MENUITEM SEPARATOR + MENUITEM "&Konec", IDM_EXIT + END + POPUP "&Zobrazit" + BEGIN + MENUITEM "&Obnovit", IDM_REFRESH + END + MENUITEM "&Možnosti", ID_OPTIONS + POPUP "&Nápověda" + BEGIN + MENUITEM "Ná&pověda", IDM_HELP + MENUITEM SEPARATOR + MENUITEM "&O programu...", IDM_ABOUT + END +END + +IDC_EVENTVWR ACCELERATORS +BEGIN + "?", IDM_ABOUT, ASCII, ALT + "/", IDM_ABOUT, ASCII, ALT +END + +IDD_ABOUTBOX DIALOGEX 0, 0, 230, 75 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_CAPTION | WS_SYSMENU +CAPTION "O programu" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + ICON IDI_EVENTVWR, IDC_MYICON, 14, 9, 21, 20 + LTEXT "ReactOS Prohlížeč událostí 1.0", IDC_STATIC, 49, 10, 119, 8, SS_NOPREFIX + LTEXT "Copyright (C) 2007 Marc Piulachs (marc.piulachs@codexchange.net)", IDC_STATIC, 49, 20, 119, 22 + DEFPUSHBUTTON "OK", IDOK, 90, 48, 42, 16, WS_GROUP +END + +IDD_PROGRESSBOX DIALOGEX 0, 0, 230, 40 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER +CAPTION "Čekejte.." +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + CTEXT "Načítám protokol událostí. Prosím čekejte ...", IDC_STATIC, 0, 15, 230, 8, SS_NOPREFIX +END + +IDD_EVENTDETAILDIALOG DIALOGEX 0, 0, 276, 282 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +EXSTYLE WS_EX_CONTEXTHELP +CAPTION "Podrobnosti události" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "&Zavřít", IDOK, 12, 258, 50, 14 + PUSHBUTTON "&Předchozí", IDPREVIOUS, 78, 258, 50, 14 + PUSHBUTTON "&Další", IDNEXT, 144, 258, 50, 14 + PUSHBUTTON "&Nápověda", IDHELP, 210, 258, 50, 14 + EDITTEXT IDC_EVENTTEXTEDIT, 14, 81, 247, 108, ES_MULTILINE | ES_READONLY + LTEXT "&Popis:", IDC_STATIC, 15, 70, 39, 8 + LTEXT "Datum:", IDC_STATIC, 14, 14, 36, 8 + EDITTEXT IDC_EVENTDATESTATIC, 56, 14, 72, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + LTEXT "Čas:", IDC_STATIC, 14, 27, 36, 8 + EDITTEXT IDC_EVENTTIMESTATIC, 56, 27, 72, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + LTEXT "&Uživatel:", IDC_STATIC, 14, 41, 36, 8 + EDITTEXT IDC_EVENTUSERSTATIC, 56, 41, 72, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + LTEXT "P&očítač:", IDC_STATIC, 14, 54, 36, 8 + EDITTEXT IDC_EVENTCOMPUTERSTATIC, 56, 54, 72, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + LTEXT "ID události:", IDC_STATIC, 133, 15, 36, 8 + EDITTEXT IDC_EVENTIDSTATIC, 175, 15, 87, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + LTEXT "Zdroj:", IDC_STATIC, 133, 28, 36, 8 + EDITTEXT IDC_EVENTSOURCESTATIC, 175, 28, 87, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + LTEXT "Typ:", IDC_STATIC, 133, 42, 36, 8 + EDITTEXT IDC_EVENTTYPESTATIC, 175, 42, 87, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + LTEXT "Kategorie:", IDC_STATIC, 133, 55, 36, 8 + EDITTEXT IDC_EVENTCATEGORYSTATIC, 175, 55, 87, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL + EDITTEXT IDC_EVENTDATAEDIT, 14, 204, 247, 44, ES_MULTILINE | ES_READONLY + LTEXT "D&ata", IDC_STATIC, 14, 194, 20, 8 + CONTROL "&Byty", IDC_BYTESRADIO, "Button", BS_AUTORADIOBUTTON, 39, 194, 34, 8 + CONTROL "&Word", IDC_WORDRADIO, "Button", BS_AUTORADIOBUTTON, 77, 194, 33, 8 +END + +STRINGTABLE +BEGIN + IDS_APP_TITLE "Prohlížeč událostí" + IDS_APP_TITLE_EX "%s - Protkol %s na \\\\" + IDS_STATUS_MSG "Počet událostí v protokolu %s: %lu" + IDS_EVENTSTRINGIDNOTFOUND "Popis ID události ( %lu ) zdroj ( %s ) nebyl nalezen. Místní počítač neobsahuje potřebné informace v registru nebo chybí DLL soubory pro zobrazení zpráv ze vzdáleného počítače." + IDS_EVENTLOG_ERROR_TYPE "Chyba" + IDS_EVENTLOG_WARNING_TYPE "Upozornění" + IDS_EVENTLOG_INFORMATION_TYPE "Informace" + IDS_EVENTLOG_AUDIT_SUCCESS "Úspěšný audit" + IDS_EVENTLOG_AUDIT_FAILURE "Audit selhal" + IDS_EVENTLOG_SUCCESS "Úspěch" + IDS_EVENTLOG_UNKNOWN_TYPE "Neznámá událost" +END + +STRINGTABLE +BEGIN + IDS_COLUMNTYPE "Typ" + IDS_COLUMNDATE "Datum" + IDS_COLUMNTIME "Čas" + IDS_COLUMNSOURCE "Zdroj" + IDS_COLUMNCATEGORY "Kategorie" + IDS_COLUMNEVENT "Událost" + IDS_COLUMNUSER "Uživatel" + IDS_COLUMNCOMPUTER "Počítač" + IDS_COLUMNEVENTDATA "Data události" +END + +STRINGTABLE +BEGIN + IDS_NONE "Žádný" + IDS_NOT_AVAILABLE "Není k dispozici" +END diff --git a/reactos/base/applications/mscutils/servman/lang/cs-CZ.rc b/reactos/base/applications/mscutils/servman/lang/cs-CZ.rc new file mode 100644 index 00000000000..d05c65d1a3e --- /dev/null +++ b/reactos/base/applications/mscutils/servman/lang/cs-CZ.rc @@ -0,0 +1,281 @@ +LANGUAGE LANG_CZECH, SUBLANG_DEFAULT + +IDR_MAINMENU MENU +BEGIN + POPUP "&Soubor" + BEGIN + MENUITEM "Exportovat...", ID_EXPORT + MENUITEM SEPARATOR + MENUITEM "&Konec", ID_EXIT + END + POPUP "Akce" + BEGIN + MENUITEM "Připojit k...", ID_CONNECT, GRAYED + MENUITEM SEPARATOR + MENUITEM "Spustit", ID_START, GRAYED + MENUITEM "Zastavit", ID_STOP, GRAYED + MENUITEM "Pozastavit", ID_PAUSE, GRAYED + MENUITEM "Pokračovat", ID_RESUME, GRAYED + MENUITEM "Restartovat", ID_RESTART, GRAYED + MENUITEM SEPARATOR + MENUITEM "Obnovit", ID_REFRESH + MENUITEM SEPARATOR + MENUITEM "Upravit...", ID_EDIT, GRAYED + MENUITEM "Vytvořit...", ID_CREATE, GRAYED + MENUITEM "Odstranit...", ID_DELETE, GRAYED + MENUITEM SEPARATOR + MENUITEM "Vlastnosti...", ID_PROP, GRAYED + END + POPUP "Zobrazit" + BEGIN + MENUITEM "Velké ikony", ID_VIEW_LARGE + MENUITEM "Malé ikony", ID_VIEW_SMALL + MENUITEM "Seznam", ID_VIEW_LIST + MENUITEM "Detaily", ID_VIEW_DETAILS + MENUITEM SEPARATOR + MENUITEM "Upravit...", ID_VIEW_CUST, GRAYED + END + POPUP "Nápověda" + BEGIN + MENUITEM "Nápověda", ID_HELP + MENUITEM "O programu", ID_ABOUT + END +END + +IDR_POPUP MENU +BEGIN + POPUP "popup" + BEGIN + MENUITEM "Spustit", ID_START, GRAYED + MENUITEM "Zastavit", ID_STOP, GRAYED + MENUITEM "Pozastavit", ID_PAUSE, GRAYED + MENUITEM "pokračovat", ID_RESUME, GRAYED + MENUITEM "Restartovat", ID_RESTART, GRAYED + MENUITEM SEPARATOR + MENUITEM "Obnovit", ID_REFRESH + MENUITEM SEPARATOR + MENUITEM "Upravit...", ID_EDIT, GRAYED + MENUITEM "Odstranit...", ID_DELETE, GRAYED + MENUITEM SEPARATOR + MENUITEM "Vlastnosti...", ID_PROP, GRAYED + MENUITEM SEPARATOR + MENUITEM "Nápověda...", ID_HELP + END +END + +IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 +CAPTION "O správci služeb" +FONT 8, "MS Shell Dlg", 0, 0 +STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME +BEGIN + LTEXT "Správce služeb v0.8\nCopyright (C) 2005-2007\nGed Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 135, 30 + PUSHBUTTON "Zavřít", IDOK, 75, 162, 44, 15 + ICON IDI_SM_ICON, IDC_STATIC, 10, 10, 7, 30 + EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE +END + +IDD_DLG_GENERAL DIALOGEX 6, 6, 253, 232 +CAPTION "General" +FONT 8, "MS Shell Dlg", 0, 0 +STYLE DS_SHELLFONT | WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_GROUP | WS_TABSTOP +BEGIN + LTEXT "", IDC_SERV_NAME, 70, 11, 176, 11, WS_CHILD | WS_VISIBLE + EDITTEXT IDC_DISP_NAME, 70, 29, 176, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_READONLY + EDITTEXT IDC_DESCRIPTION, 70, 46, 176, 24, WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_MULTILINE | ES_READONLY + EDITTEXT IDC_EXEPATH, 6, 86, 240, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_READONLY + COMBOBOX IDC_START_TYPE, 70, 107, 176, 40, WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST + PUSHBUTTON "Spustit", IDC_START, 6, 155, 54, 15, WS_DISABLED + PUSHBUTTON "Zastavit", IDC_STOP, 68, 155, 54, 15, WS_DISABLED + PUSHBUTTON "Pozastavit", IDC_PAUSE, 130, 155, 54, 15, WS_DISABLED + PUSHBUTTON "Pokračovat", IDC_RESUME, 192, 155, 54, 15, WS_DISABLED + LTEXT "Název služby:", IDC_STATIC, 4, 11, 53, 11 + LTEXT "Jméno:", IDC_STATIC, 4, 29, 53, 11 + LTEXT "Popis:", IDC_STATIC, 4, 51, 53, 11 + LTEXT "Cesta:", IDC_STATIC, 6, 73, 82, 9 + LTEXT "Typ spuštění:", IDC_STATIC, 6, 108, 53, 11 + LTEXT "Stav služby:", IDC_STATIC, 4, 138, 53, 11 + LTEXT "", IDC_SERV_STATUS, 70, 138, 176, 11, WS_CHILD | WS_VISIBLE + LTEXT "Zde můžete upřesnit parametry, které budou použity při spuštění.", IDC_STATIC, 6, 177, 240, 15 + LTEXT "Parametry:", IDC_STATIC, 6, 200, 58, 11 + EDITTEXT IDC_START_PARAM, 68, 199, 178, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "Upravit", IDC_EDIT, 192, 215, 54, 15, WS_DISABLED +END + +IDD_DLG_DEPEND DIALOGEX 6, 6, 253, 225 +CAPTION "Závislosti" +FONT 8, "MS Shell Dlg", 0, 0 +STYLE DS_SHELLFONT | WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_GROUP | WS_TABSTOP +BEGIN + CONTROL "", IDC_DEPEND_TREE1, "SysTreeView32" , WS_BORDER | WS_CHILDWINDOW | + WS_VISIBLE | WS_TABSTOP | TVS_HASBUTTONS | TVS_HASLINES | + TVS_LINESATROOT | TVS_DISABLEDRAGDROP, 8, 70, 236, 68 + CONTROL "", IDC_DEPEND_TREE2, "SysTreeView32", WS_BORDER | WS_CHILDWINDOW | + WS_VISIBLE | WS_TABSTOP | TVS_HASBUTTONS | TVS_HASLINES | + TVS_LINESATROOT | TVS_DISABLEDRAGDROP, 8, 151, 234, 67 + LTEXT "Některé služby závisí na jiných službách, systémových ovladačích nebo načítají jiné skupiny služeb. Zastavené nebo nesprávně fungující součásti systému mohou ovlivnit závislé služby.", IDC_STATIC, 8, 7, 238, 26 + LTEXT "Tato služba závisí na následujících součástech:", IDC_STATIC, 8, 57, 236, 9 + LTEXT "", IDC_DEPEND_SERVICE, 8, 38, 236, 13 +END + +IDD_DLG_CREATE DIALOGEX 6, 6, 225, 209 +CAPTION "Vytvořit službu" +FONT 8, "MS Shell Dlg", 0, 0 +STYLE DS_SHELLFONT | WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_GROUP | WS_TABSTOP +BEGIN + EDITTEXT IDC_CREATE_SERVNAME, 72, 12, 150, 11, WS_CHILD | WS_VISIBLE | WS_EX_CLIENTEDGE + EDITTEXT IDC_CREATE_DISPNAME, 72, 31, 150, 11, WS_CHILD | WS_VISIBLE + EDITTEXT IDC_CREATE_PATH, 10, 62, 210, 13, WS_CHILD | WS_VISIBLE + EDITTEXT IDC_CREATE_DESC, 10, 97, 210, 48, WS_CHILD | WS_VISIBLE + EDITTEXT IDC_CREATE_OPTIONS, 10, 162, 210, 13, WS_CHILD | WS_VISIBLE + LTEXT "*Název služby :", IDC_STATIC, 12, 12, 54, 9 + LTEXT "*Jméno :", IDC_STATIC, 12, 33, 54, 9 + LTEXT "*Cesta :", IDC_STATIC, 10, 51, 68, 9 + LTEXT "Popis :", IDC_STATIC, 12, 86, 44, 9 + PUSHBUTTON "OK", IDOK, 126, 192, 44, 13 + PUSHBUTTON "Storno", IDCANCEL, 176, 192, 46, 13 + LTEXT "Další možnosti (viz Nápovědu)", IDC_STATIC, 10, 151, 134, 9 + PUSHBUTTON "Nápověda", ID_CREATE_HELP, 10, 192, 44, 13 +END + +IDD_DLG_DELETE DIALOGEX 6, 6, 185, 148 +CAPTION "Odstranit službu" +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 "Opravdu chcete tuto službu odstranit? Tuto akci nelze vrátit!", IDC_STATIC, 50, 6, 125, 25 + LTEXT "Název služby:", IDC_STATIC, 6, 40, 80, 9 + LTEXT "", IDC_DEL_NAME, 15, 53, 160, 15 + EDITTEXT IDC_DEL_DESC, 6, 73, 174, 48, WS_CHILD | WS_VISIBLE | WS_VSCROLL | + WS_EX_STATICEDGE | ES_MULTILINE | ES_READONLY + PUSHBUTTON "Ano", IDOK, 26, 129, 54, 13 + DEFPUSHBUTTON "Ne", IDCANCEL, 102, 129, 54, 13 +END + +IDD_DLG_DEPEND_STOP DIALOGEX 6, 6, 240, 148 +CAPTION "Zastavit jiné služby" +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 "Chcete zastavit tyto služby?", IDC_STATIC, 15, 110, 150, 10 + DEFPUSHBUTTON "Ano", IDOK, 60, 129, 54, 14 + PUSHBUTTON "Ne", IDCANCEL, 120, 129, 54, 14 +END + +IDD_DLG_HELP_OPTIONS DIALOGEX 6, 6, 200, 150 +CAPTION "Možnosti" +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 +END + +IDD_DLG_PROGRESS DIALOGEX 6, 6, 255, 89 +CAPTION "Ovldání služeb" +FONT 8, "MS Shell Dlg", 0, 0 +STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | WS_VISIBLE | DS_MODALFRAME +EXSTYLE WS_EX_TOOLWINDOW +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 "&Zavřít", IDOK, 100, 70, 54, 13 +END + +STRINGTABLE +BEGIN + IDS_FIRSTCOLUMN "Název" + IDS_SECONDCOLUMN "Popis" + IDS_THIRDCOLUMN "Stav" + IDS_FOURTHCOLUMN "Typ spuštění" + IDS_FITHCOLUMN "Přihlásit jako" +END + +STRINGTABLE +BEGIN + IDS_SERVICES_STARTED "Spuštěno" + IDS_SERVICES_STOPPED "Zastaveno" + IDS_SERVICES_AUTO "Automaticky" + IDS_SERVICES_MAN "Ručně" + IDS_SERVICES_DIS "Zakázáno" +END + +STRINGTABLE +BEGIN + IDS_NUM_SERVICES "Počet služeb: %d" + IDS_STOP_DEPENDS "Zastavením %s dojde také k zastavení" + IDS_NO_DEPENDS "<Žádné závislosti>" + 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 +BEGIN + IDS_TOOLTIP_PROP "Vlastnosti" + IDS_TOOLTIP_REFRESH "Obnovit" + IDS_TOOLTIP_EXPORT "Export seznamu" + IDS_TOOLTIP_CREATE "Vytvořit novou službu" + IDS_TOOLTIP_DELETE "Odstraní danou službu" + IDS_TOOLTIP_START "Spustit službu" + IDS_TOOLTIP_STOP "Zastavit službu" + IDS_TOOLTIP_PAUSE "Pozastavit službu" + IDS_TOOLTIP_RESTART "Restartovat službu" +END + +STRINGTABLE +BEGIN + IDS_PROGRESS_INFO_START "ReactOS se pokouší spustit následující službu" + IDS_PROGRESS_INFO_STOP "ReactOS se pokouší zastavit následující službu" + IDS_PROGRESS_INFO_PAUSE "ReactOS se pokouší pozastavit následující službu" + IDS_PROGRESS_INFO_RESUME "ReactOS se pokouší pokračovat s následující službou" + IDS_CREATE_SUCCESS "Služba úspěšně vytvořena" + IDS_DELETE_SUCCESS "Služba úspěšně odstraněna" + IDS_CREATE_REQ "Položky označené hvězdičkou\njsou povinné" + IDS_DELETE_STOP "Před odstraněním musí být služba ručně zastavena!" +END + +STRINGTABLE +BEGIN + IDS_HELP_OPTIONS "MOŽNOSTI VYTVOŘENÍ:\r\nPOZNÁMKA: Jméno parametru zahrnuje i znak rovnítko.\r\n type= \r\n (výchozí = own)\r\n start= \r\n (výchozí = demand) \r\n error= \r\n (výchozí = normal)\r\n group= \r\n tag= \r\n depend= \r\n obj= \r\n (výchozí = LocalSystem)\r\n password= \r\n" +END + +/* Hints */ +STRINGTABLE +BEGIN + IDS_HINT_BLANK " " + IDS_HINT_EXPORT " Vyexportuje daný seznam do souboru." + IDS_HINT_EXIT " Ukončí program." + IDS_HINT_CONNECT " Spravovat jiný počítač." + IDS_HINT_START " Spustit vybranou službu." + IDS_HINT_STOP " Zastavit vybranou službu." + IDS_HINT_PAUSE " Pozastavit vybranou službu." + IDS_HINT_RESUME " Pokračovat s vybranou službou." + IDS_HINT_RESTART " Zastavit a spustit vybranou službu." + IDS_HINT_REFRESH " Obnovit seznam služeb." + IDS_HINT_EDIT " Upravit vlastnosti vybrané služby." + IDS_HINT_CREATE " Vytvořit novou službu." + IDS_HINT_DELETE " Odstranit vybranou službu." + IDS_HINT_PROP " Zobrazit panel vlastností pro vybranou službu." + IDS_HINT_LARGE " Zobrazit služby jako velké ikony." + IDS_HINT_SMALL " Zobrazit služby jako malé ikony." + IDS_HINT_LIST " Zobrazit služby jako seznam." + IDS_HINT_DETAILS " Zobrazit služby jako podrobný seznam." + IDS_HINT_CUST " Upravit zobrazení." + IDS_HINT_HELP " Zobrazit nápovědu." + IDS_HINT_ABOUT " O ReactOS Správci služeb." + IDS_HINT_SYS_RESTORE " Obnovit normální velikost tohoto okna." + IDS_HINT_SYS_MOVE " Přesunout okno." + IDS_HINT_SYS_SIZE " Změnit velikost okna." + IDS_HINT_SYS_MINIMIZE " Minimalizovat na panel start." + IDS_HINT_SYS_MAXIMIZE " Maximalizovat na celou obrazovku." + IDS_HINT_SYS_CLOSE " Zavřít toto okno." +END + +/* Application title */ +STRINGTABLE +BEGIN + IDS_APPNAME "ReactOS Správce služeb" +END diff --git a/reactos/base/applications/mscutils/servman/servman.rc b/reactos/base/applications/mscutils/servman/servman.rc index 0959200ec13..9c52761b7c9 100644 --- a/reactos/base/applications/mscutils/servman/servman.rc +++ b/reactos/base/applications/mscutils/servman/servman.rc @@ -36,6 +36,9 @@ IDI_DRIVER ICON "res/driver.ico" #ifdef LANGUAGE_BG_BG #include "lang/bg-BG.rc" #endif +#ifdef LANGUAGE_CS_CZ + #include "lang/cs-CZ.rc" +#endif #ifdef LANGUAGE_DE_DE #include "lang/de-DE.rc" #endif From e68148f878c9e66cedaaaabe78a64fb2fa640c73 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Mon, 12 May 2014 15:32:43 +0000 Subject: [PATCH 69/92] [CRT] * Update fwrite(). CORE-8080 svn path=/trunk/; revision=63257 --- reactos/lib/sdk/crt/stdio/file.c | 55 +++++++++++++++++--------------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index b7dbbb72ec2..2a13337a9f5 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -2506,33 +2506,36 @@ size_t CDECL fwrite(const void *ptr, size_t size, size_t nmemb, FILE* file) return 0; _lock_file(file); - if(file->_cnt) { - int pcnt=((unsigned)file->_cnt>wrcnt)? wrcnt: file->_cnt; - memcpy(file->_ptr, ptr, pcnt); - file->_cnt -= pcnt; - file->_ptr += pcnt; - written = pcnt; - wrcnt -= pcnt; - ptr = (const char*)ptr + pcnt; - } else if(!(file->_flag & _IOWRT)) { - if(file->_flag & _IORW) { - file->_flag |= _IOWRT; - } else { - _unlock_file(file); - return 0; - } - } - if(wrcnt) { - /* Flush buffer */ - int res=flush_buffer(file); - if(!res) { - int pwritten = _write(file->_file, ptr, wrcnt); - if (pwritten <= 0) - { - file->_flag |= _IOERR; - pwritten=0; + + while(wrcnt) { + if(file->_cnt) { + int pcnt=((unsigned)file->_cnt>wrcnt)? wrcnt: file->_cnt; + memcpy(file->_ptr, ptr, pcnt); + file->_cnt -= pcnt; + file->_ptr += pcnt; + written += pcnt; + wrcnt -= pcnt; + ptr = (const char*)ptr + pcnt; + } else if(!file->_bufsiz && (file->_flag & _IONBF)) { + if(!(file->_flag & _IOWRT)) { + if(file->_flag & _IORW) + file->_flag |= _IOWRT; + else + break; } - written += pwritten; + + if(_write(file->_file, ptr, wrcnt) <= 0) { + file->_flag |= _IOERR; + break; + } + written += wrcnt; + wrcnt = 0; + } else { + if(_flsbuf(*(const char*)ptr, file) == EOF) + break; + written++; + wrcnt--; + ptr = (const char*)ptr + 1; } } From 5da1f1a63b6c28e0e0e3fcbf92813afff3b4dcbc Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Mon, 12 May 2014 16:01:49 +0000 Subject: [PATCH 70/92] [CRT] * Update ioinfo structure. CORE-8080 svn path=/trunk/; revision=63258 --- reactos/lib/sdk/crt/stdio/file.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index 2a13337a9f5..308ba8f4b91 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -96,11 +96,12 @@ int *__p___mb_cur_max(void); #define MAX_FILES 2048 #define FD_BLOCK_SIZE 64 +/* ioinfo structure size is different in msvcrXX.dll's */ typedef struct { HANDLE handle; unsigned char wxflag; - char unk1; - BOOL crit_init; + char lookahead[3]; + int exflag; CRITICAL_SECTION crit; } ioinfo; From 3def58e0ff17688be30cdf1a7349b02839a5c08c Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Mon, 12 May 2014 16:14:19 +0000 Subject: [PATCH 71/92] [FORMATTING] Fix indentation and coding style. No code changes! svn path=/trunk/; revision=63259 --- reactos/base/setup/usetup/muilanguages.h | 280 +++++------ reactos/base/setup/usetup/progress.c | 570 ++++++++++++----------- reactos/base/setup/usetup/progress.h | 59 +-- reactos/base/setup/usetup/registry.c | 266 ++++++----- reactos/base/setup/usetup/registry.h | 20 +- reactos/base/setup/usetup/settings.c | 200 ++++---- reactos/base/setup/usetup/settings.h | 43 +- reactos/base/setup/usetup/usetup.h | 60 +-- 8 files changed, 786 insertions(+), 712 deletions(-) diff --git a/reactos/base/setup/usetup/muilanguages.h b/reactos/base/setup/usetup/muilanguages.h index a27f9ba7924..c2c4ea04895 100644 --- a/reactos/base/setup/usetup/muilanguages.h +++ b/reactos/base/setup/usetup/muilanguages.h @@ -409,424 +409,424 @@ const MUI_LANGUAGE LanguageList[] = { /* Lang ID, ANSI CP, OEM CP, MAC CP, Language Name, GeoID page strgs,error strings, other strings, fonts, kb layouts */ #ifdef LANGUAGE_AF_ZA - {L"00000436", L"1252", L"850", L"10000", L"Afrikaans", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, afZALayouts }, + {L"00000436", L"1252", L"850", L"10000", L"Afrikaans", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, afZALayouts }, #endif #ifdef LANGUAGE_SQ_AL {L"0000041C", L"1250", L"852", L"10029", L"Albanian (Albania)", L"355", sqALPages, sqALErrorEntries, sqALStrings, LatinFonts, sqALLayouts }, #endif #ifdef LANGUAGE_AR_SA - {L"00000401", L"1256", L"720", L"10004", L"Arabic (Saudi Arabia)", L"966", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arSALayouts }, + {L"00000401", L"1256", L"720", L"10004", L"Arabic (Saudi Arabia)", L"966", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arSALayouts }, #endif #ifdef LANGUAGE_AR_IQ - {L"00000801", L"1256", L"720", L"10004", L"Arabic (Iraq)", L"964", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arIQLayouts }, + {L"00000801", L"1256", L"720", L"10004", L"Arabic (Iraq)", L"964", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arIQLayouts }, #endif #ifdef LANGUAGE_AR_EG - {L"00000C01", L"1256", L"720", L"10004", L"Arabic (Egypt)", L"20", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arEGLayouts }, + {L"00000C01", L"1256", L"720", L"10004", L"Arabic (Egypt)", L"20", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arEGLayouts }, #endif #ifdef LANGUAGE_AR_LY - {L"00001001", L"1256", L"720", L"10004", L"Arabic (Libya)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arLYLayouts }, + {L"00001001", L"1256", L"720", L"10004", L"Arabic (Libya)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arLYLayouts }, #endif #ifdef LANGUAGE_AR_DZ - {L"00001401", L"1256", L"720", L"10004", L"Arabic (Algeria)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arDZLayouts }, + {L"00001401", L"1256", L"720", L"10004", L"Arabic (Algeria)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arDZLayouts }, #endif #ifdef LANGUAGE_AR_MA - {L"00001801", L"1256", L"720", L"10004", L"Arabic (Morocco)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arMALayouts }, + {L"00001801", L"1256", L"720", L"10004", L"Arabic (Morocco)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arMALayouts }, #endif #ifdef LANGUAGE_AR_TN - {L"00001C01", L"1256", L"720", L"10004", L"Arabic (Tunisia)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arTNLayouts }, + {L"00001C01", L"1256", L"720", L"10004", L"Arabic (Tunisia)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arTNLayouts }, #endif #ifdef LANGUAGE_AR_OM - {L"00002001", L"1256", L"720", L"10004", L"Arabic (Oman)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arOMLayouts }, + {L"00002001", L"1256", L"720", L"10004", L"Arabic (Oman)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arOMLayouts }, #endif #ifdef LANGUAGE_AR_YE - {L"00002401", L"1256", L"720", L"10004", L"Arabic (Yemen)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arYELayouts }, + {L"00002401", L"1256", L"720", L"10004", L"Arabic (Yemen)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arYELayouts }, #endif #ifdef LANGUAGE_AR_SY - {L"00002801", L"1256", L"720", L"10004", L"Arabic (Syria)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arSYLayouts }, + {L"00002801", L"1256", L"720", L"10004", L"Arabic (Syria)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arSYLayouts }, #endif #ifdef LANGUAGE_AR_JO - {L"00002C01", L"1256", L"720", L"10004", L"Arabic (Jordan)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arJOLayouts }, + {L"00002C01", L"1256", L"720", L"10004", L"Arabic (Jordan)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arJOLayouts }, #endif #ifdef LANGUAGE_AR_LB - {L"00003001", L"1256", L"720", L"10004", L"Arabic (Lebanon)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arLBLayouts }, + {L"00003001", L"1256", L"720", L"10004", L"Arabic (Lebanon)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arLBLayouts }, #endif #ifdef LANGUAGE_AR_KW - {L"00003401", L"1256", L"720", L"10004", L"Arabic (Kuwait)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arKWLayouts }, + {L"00003401", L"1256", L"720", L"10004", L"Arabic (Kuwait)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arKWLayouts }, #endif #ifdef LANGUAGE_AR_AE - {L"00003801", L"1256", L"720", L"10004", L"Arabic (U.A.E.)", L"971", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arAELayouts }, + {L"00003801", L"1256", L"720", L"10004", L"Arabic (U.A.E.)", L"971", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arAELayouts }, #endif #ifdef LANGUAGE_AR_BH - {L"00003C01", L"1256", L"720", L"10004", L"Arabic (Bahrain)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arBHLayouts }, + {L"00003C01", L"1256", L"720", L"10004", L"Arabic (Bahrain)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arBHLayouts }, #endif #ifdef LANGUAGE_AR_QA - {L"00004001", L"1256", L"720", L"10004", L"Arabic (Qatar)", L"974", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arQALayouts }, + {L"00004001", L"1256", L"720", L"10004", L"Arabic (Qatar)", L"974", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, arQALayouts }, #endif #ifdef LANGUAGE_HY_AM - {L"0000042B", L"0", L"1", L"2", L"Armenian", L"374", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, hyAMLayouts }, + {L"0000042B", L"0", L"1", L"2", L"Armenian", L"374", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, hyAMLayouts }, #endif #ifdef LANGUAGE_AZ_AZ - {L"0000082C", L"1251", L"866", L"10007", L"Azeri (Cyrillic)", L"1", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, azAZLayouts }, + {L"0000082C", L"1251", L"866", L"10007", L"Azeri (Cyrillic)", L"1", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, azAZLayouts }, #endif #ifdef LANGUAGE_AZ_AZ - {L"0000042C", L"1254", L"857", L"10081", L"Azeri (Latin)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, azAZLayouts }, + {L"0000042C", L"1254", L"857", L"10081", L"Azeri (Latin)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, azAZLayouts }, #endif #ifdef LANGUAGE_EU_ES - {L"0000042D", L"1252", L"850", L"10000", L"Basque", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, euESLayouts }, + {L"0000042D", L"1252", L"850", L"10000", L"Basque", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, euESLayouts }, #endif #ifdef LANGUAGE_BE_BY - {L"00000423", L"1251", L"866", L"10007", L"Belarusian", L"1", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, beBYLayouts }, + {L"00000423", L"1251", L"866", L"10007", L"Belarusian", L"1", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, beBYLayouts }, #endif #ifdef LANGUAGE_BG_BG - {L"00000402", L"1251", L"866", L"10007", L"Bulgarian", L"359", bgBGPages, bgBGErrorEntries, bgBGStrings, CyrillicFonts, bgBGLayouts }, + {L"00000402", L"1251", L"866", L"10007", L"Bulgarian", L"359", bgBGPages, bgBGErrorEntries, bgBGStrings, CyrillicFonts, bgBGLayouts }, #endif #ifdef LANGUAGE_MY_MM - {L"00000455", L"0", L"1", L"2", L"Burmese", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, myMMLayouts }, + {L"00000455", L"0", L"1", L"2", L"Burmese", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, myMMLayouts }, #endif #ifdef LANGUAGE_CA_ES - {L"00000403", L"1252", L"850", L"10000", L"Catalan", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, caESLayouts }, + {L"00000403", L"1252", L"850", L"10000", L"Catalan", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, caESLayouts }, #endif #ifdef LANGUAGE_ZH_TW - {L"00000404", L"950", L"950", L"10008", L"Chinese (Taiwan)", L"886", enUSPages, enUSErrorEntries, enUSStrings, CJKFonts, zhTWLayouts }, + {L"00000404", L"950", L"950", L"10008", L"Chinese (Taiwan)", L"886", enUSPages, enUSErrorEntries, enUSStrings, CJKFonts, zhTWLayouts }, #endif #ifdef LANGUAGE_ZH_CN - {L"00000804", L"936", L"936", L"10008", L"Chinese (PRC)", L"86", enUSPages, enUSErrorEntries, enUSStrings, CJKFonts, zhCNLayouts }, + {L"00000804", L"936", L"936", L"10008", L"Chinese (PRC)", L"86", enUSPages, enUSErrorEntries, enUSStrings, CJKFonts, zhCNLayouts }, #endif #ifdef LANGUAGE_ZH_HK - {L"00000C04", L"950", L"950", L"10008", L"Chinese (Hong Kong S.A.R.)", L"1", enUSPages, enUSErrorEntries, enUSStrings, CJKFonts, zhHKLayouts }, + {L"00000C04", L"950", L"950", L"10008", L"Chinese (Hong Kong S.A.R.)", L"1", enUSPages, enUSErrorEntries, enUSStrings, CJKFonts, zhHKLayouts }, #endif #ifdef LANGUAGE_ZH_SG - {L"00001004", L"936", L"936", L"10008", L"Chinese (Singapore)", L"1", enUSPages, enUSErrorEntries, enUSStrings, CJKFonts, zhSGLayouts }, + {L"00001004", L"936", L"936", L"10008", L"Chinese (Singapore)", L"1", enUSPages, enUSErrorEntries, enUSStrings, CJKFonts, zhSGLayouts }, #endif #ifdef LANGUAGE_ZH_MO - {L"00001404", L"950", L"950", L"10002", L"Chinese (Macau S.A.R.)", L"1", enUSPages, enUSErrorEntries, enUSStrings, CJKFonts, zhMOLayouts }, + {L"00001404", L"950", L"950", L"10002", L"Chinese (Macau S.A.R.)", L"1", enUSPages, enUSErrorEntries, enUSStrings, CJKFonts, zhMOLayouts }, #endif #ifdef LANGUAGE_HR_HR - {L"0000041A", L"1250", L"852", L"10029", L"Croatian", L"385", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, hrHRLayouts }, + {L"0000041A", L"1250", L"852", L"10029", L"Croatian", L"385", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, hrHRLayouts }, #endif #ifdef LANGUAGE_CS_CZ - {L"00000405", L"1250", L"852", L"10029", L"Czech", L"420", csCZPages, csCZErrorEntries, csCZStrings, LatinFonts, csCZLayouts }, + {L"00000405", L"1250", L"852", L"10029", L"Czech", L"420", csCZPages, csCZErrorEntries, csCZStrings, LatinFonts, csCZLayouts }, #endif #ifdef LANGUAGE_DA_DK - {L"00000406", L"1252", L"850", L"10000", L"Danish", L"45", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, daDKLayouts }, + {L"00000406", L"1252", L"850", L"10000", L"Danish", L"45", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, daDKLayouts }, #endif #ifdef LANGUAGE_DV_MV - {L"00000465", L"0", L"1", L"2", L"Dhivehi (Maldives)", L"960", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, dvMVLayouts }, + {L"00000465", L"0", L"1", L"2", L"Dhivehi (Maldives)", L"960", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, dvMVLayouts }, #endif #ifdef LANGUAGE_NL_NL - {L"00000413", L"1252", L"850", L"10000", L"Dutch (Netherlands)", L"31", nlNLPages, nlNLErrorEntries, nlNLStrings, LatinFonts, nlNLLayouts }, + {L"00000413", L"1252", L"850", L"10000", L"Dutch (Netherlands)", L"31", nlNLPages, nlNLErrorEntries, nlNLStrings, LatinFonts, nlNLLayouts }, #endif #ifdef LANGUAGE_NL_BE - {L"00000813", L"1252", L"850", L"10000", L"Dutch (Belgium)", L"32", nlNLPages, nlNLErrorEntries, nlNLStrings, LatinFonts, nlBELayouts }, + {L"00000813", L"1252", L"850", L"10000", L"Dutch (Belgium)", L"32", nlNLPages, nlNLErrorEntries, nlNLStrings, LatinFonts, nlBELayouts }, #endif #ifdef LANGUAGE_EN_US - {L"00000409", L"1252", L"437", L"10000", L"English (United States)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enUSLayouts }, + {L"00000409", L"1252", L"437", L"10000", L"English (United States)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enUSLayouts }, #endif #ifdef LANGUAGE_EN_GB - {L"00000809", L"1252", L"850", L"10000", L"English (United Kingdom)", L"44", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enGBLayouts }, + {L"00000809", L"1252", L"850", L"10000", L"English (United Kingdom)", L"44", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enGBLayouts }, #endif #ifdef LANGUAGE_EN_AU - {L"00000C09", L"1252", L"850", L"10000", L"English (Australia)", L"61", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enAULayouts }, + {L"00000C09", L"1252", L"850", L"10000", L"English (Australia)", L"61", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enAULayouts }, #endif #ifdef LANGUAGE_EN_CA - {L"00001009", L"1252", L"850", L"10000", L"English (Canada)", L"107", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enCALayouts }, + {L"00001009", L"1252", L"850", L"10000", L"English (Canada)", L"107", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enCALayouts }, #endif #ifdef LANGUAGE_EN_NZ - {L"00001409", L"1252", L"850", L"10000", L"English (New Zealand)", L"64", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enNZLayouts }, + {L"00001409", L"1252", L"850", L"10000", L"English (New Zealand)", L"64", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enNZLayouts }, #endif #ifdef LANGUAGE_EN_IE - {L"00001809", L"1252", L"850", L"10000", L"English (Ireland)", L"353", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enIELayouts }, + {L"00001809", L"1252", L"850", L"10000", L"English (Ireland)", L"353", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enIELayouts }, #endif #ifdef LANGUAGE_EN_ZA - {L"00001C09", L"1252", L"437", L"10000", L"English (South Africa)", L"27", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enZALayouts }, + {L"00001C09", L"1252", L"437", L"10000", L"English (South Africa)", L"27", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enZALayouts }, #endif #ifdef LANGUAGE_EN_JM - {L"00002009", L"1252", L"850", L"10000", L"English (Jamaica)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enJMLayouts }, + {L"00002009", L"1252", L"850", L"10000", L"English (Jamaica)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enJMLayouts }, #endif #ifdef LANGUAGE_EN_CB - {L"00002409", L"1252", L"850", L"10000", L"English (Caribbean)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enCBLayouts }, + {L"00002409", L"1252", L"850", L"10000", L"English (Caribbean)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enCBLayouts }, #endif #ifdef LANGUAGE_EN_BZ - {L"00002809", L"1252", L"850", L"10000", L"English (Belize)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enBZLayouts }, + {L"00002809", L"1252", L"850", L"10000", L"English (Belize)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enBZLayouts }, #endif #ifdef LANGUAGE_EN_TT - {L"00002C09", L"1252", L"850", L"10000", L"English (Trinidad)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enTTLayouts }, + {L"00002C09", L"1252", L"850", L"10000", L"English (Trinidad)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enTTLayouts }, #endif #ifdef LANGUAGE_EN_ZW - {L"00003009", L"1252", L"437", L"10000", L"English (Zimbabwe)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enZWLayouts }, + {L"00003009", L"1252", L"437", L"10000", L"English (Zimbabwe)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enZWLayouts }, #endif #ifdef LANGUAGE_EN_PH - {L"00003409", L"1252", L"437", L"10000", L"English (Philippines)", L"63", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enPHLayouts }, + {L"00003409", L"1252", L"437", L"10000", L"English (Philippines)", L"63", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, enPHLayouts }, #endif #ifdef LANGUAGE_EO_AA - {L"0000048F", L"1252", L"437", L"10000", L"Esperanto", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, eoAALayouts }, + {L"0000048F", L"1252", L"437", L"10000", L"Esperanto", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, eoAALayouts }, #endif #ifdef LANGUAGE_ET_EE - {L"00000425", L"1252", L"775", L"10029", L"Estonian", L"372", etEEPages, etEEErrorEntries, etEEStrings, LatinFonts, etEELayouts }, + {L"00000425", L"1252", L"775", L"10029", L"Estonian", L"372", etEEPages, etEEErrorEntries, etEEStrings, LatinFonts, etEELayouts }, #endif #ifdef LANGUAGE_FO_FO - {L"00000438", L"1252", L"850", L"10079", L"Faeroese", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, foFOLayouts }, + {L"00000438", L"1252", L"850", L"10079", L"Faeroese", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, foFOLayouts }, #endif #ifdef LANGUAGE_FA_IR - {L"00000429", L"1256", L"720", L"10004", L"Farsi", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, faIRLayouts }, + {L"00000429", L"1256", L"720", L"10004", L"Farsi", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, faIRLayouts }, #endif #ifdef LANGUAGE_FI_FI - {L"0000040B", L"1252", L"850", L"10000", L"Finnish", L"358", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, fiFILayouts }, + {L"0000040B", L"1252", L"850", L"10000", L"Finnish", L"358", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, fiFILayouts }, #endif #ifdef LANGUAGE_FR_CA - {L"00000C0C", L"1252", L"850", L"10000", L"French (Canada)", L"107", frFRPages, frFRErrorEntries, frFRStrings, LatinFonts, frCALayouts }, + {L"00000C0C", L"1252", L"850", L"10000", L"French (Canada)", L"107", frFRPages, frFRErrorEntries, frFRStrings, LatinFonts, frCALayouts }, #endif #ifdef LANGUAGE_FR_FR - {L"0000040C", L"1252", L"850", L"10000", L"French (France)", L"33", frFRPages, frFRErrorEntries, frFRStrings, LatinFonts, frFRLayouts }, + {L"0000040C", L"1252", L"850", L"10000", L"French (France)", L"33", frFRPages, frFRErrorEntries, frFRStrings, LatinFonts, frFRLayouts }, #endif #ifdef LANGUAGE_FR_BE - {L"0000080C", L"1252", L"850", L"10000", L"French (Belgium)", L"32", frFRPages, frFRErrorEntries, frFRStrings, LatinFonts, frBELayouts }, + {L"0000080C", L"1252", L"850", L"10000", L"French (Belgium)", L"32", frFRPages, frFRErrorEntries, frFRStrings, LatinFonts, frBELayouts }, #endif #ifdef LANGUAGE_FR_CH - {L"0000100C", L"1252", L"850", L"10000", L"French (Switzerland)", L"41", frFRPages, frFRErrorEntries, frFRStrings, LatinFonts, frCHLayouts }, + {L"0000100C", L"1252", L"850", L"10000", L"French (Switzerland)", L"41", frFRPages, frFRErrorEntries, frFRStrings, LatinFonts, frCHLayouts }, #endif #ifdef LANGUAGE_FR_LU - {L"0000140C", L"1252", L"850", L"10000", L"French (Luxembourg)", L"352", frFRPages, frFRErrorEntries, frFRStrings, LatinFonts, frLULayouts }, + {L"0000140C", L"1252", L"850", L"10000", L"French (Luxembourg)", L"352", frFRPages, frFRErrorEntries, frFRStrings, LatinFonts, frLULayouts }, #endif #ifdef LANGUAGE_FR_MC - {L"0000180C", L"1252", L"850", L"10000", L"French (Monaco)", L"1", frFRPages, frFRErrorEntries, frFRStrings, LatinFonts, frMCLayouts }, + {L"0000180C", L"1252", L"850", L"10000", L"French (Monaco)", L"1", frFRPages, frFRErrorEntries, frFRStrings, LatinFonts, frMCLayouts }, #endif #ifdef LANGUAGE_GL_ES - {L"00000456", L"1252", L"850", L"10000", L"Galician (Spain)", L"34", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, glESLayouts }, + {L"00000456", L"1252", L"850", L"10000", L"Galician (Spain)", L"34", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, glESLayouts }, #endif #ifdef LANGUAGE_KA_GE - {L"00000437", L"0", L"1", L"2", L"Georgian", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, kaGELayouts }, + {L"00000437", L"0", L"1", L"2", L"Georgian", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, kaGELayouts }, #endif #ifdef LANGUAGE_DE_DE - {L"00000407", L"1252", L"850", L"10000", L"German (Germany)", L"49", deDEPages, deDEErrorEntries, deDEStrings, LatinFonts, deDELayouts }, + {L"00000407", L"1252", L"850", L"10000", L"German (Germany)", L"49", deDEPages, deDEErrorEntries, deDEStrings, LatinFonts, deDELayouts }, #endif #ifdef LANGUAGE_DE_CH - {L"00000807", L"1252", L"850", L"10000", L"German (Switzerland)", L"41", deDEPages, deDEErrorEntries, deDEStrings, LatinFonts, deCHLayouts }, + {L"00000807", L"1252", L"850", L"10000", L"German (Switzerland)", L"41", deDEPages, deDEErrorEntries, deDEStrings, LatinFonts, deCHLayouts }, #endif #ifdef LANGUAGE_DE_AT - {L"00000C07", L"1252", L"850", L"10000", L"German (Austria)", L"43", deDEPages, deDEErrorEntries, deDEStrings, LatinFonts, deATLayouts }, + {L"00000C07", L"1252", L"850", L"10000", L"German (Austria)", L"43", deDEPages, deDEErrorEntries, deDEStrings, LatinFonts, deATLayouts }, #endif #ifdef LANGUAGE_DE_LU - {L"00001007", L"1252", L"850", L"10000", L"German (Luxembourg)", L"352", deDEPages, deDEErrorEntries, deDEStrings, LatinFonts, deLULayouts }, + {L"00001007", L"1252", L"850", L"10000", L"German (Luxembourg)", L"352", deDEPages, deDEErrorEntries, deDEStrings, LatinFonts, deLULayouts }, #endif #ifdef LANGUAGE_DE_LI - {L"00001407", L"1252", L"850", L"10000", L"German (Liechtenstein)", L"423", deDEPages, deDEErrorEntries, deDEStrings, LatinFonts, deLILayouts }, + {L"00001407", L"1252", L"850", L"10000", L"German (Liechtenstein)", L"423", deDEPages, deDEErrorEntries, deDEStrings, LatinFonts, deLILayouts }, #endif #ifdef LANGUAGE_EL_GR - {L"00000408", L"1253", L"737", L"10006", L"Greek", L"30", elGRPages, elGRErrorEntries, elGRStrings, GreekFonts, elGRLayouts }, + {L"00000408", L"1253", L"737", L"10006", L"Greek", L"30", elGRPages, elGRErrorEntries, elGRStrings, GreekFonts, elGRLayouts }, #endif #ifdef LANGUAGE_GU_IN - {L"00000447", L"0", L"1", L"2", L"Gujarati (India)", L"91", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, guINLayouts }, + {L"00000447", L"0", L"1", L"2", L"Gujarati (India)", L"91", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, guINLayouts }, #endif #ifdef LANGUAGE_HE_IL - {L"0000040D", L"1255", L"862", L"10005", L"Hebrew", L"1", heILPages, heILErrorEntries, heILStrings, HebrewFonts, heILLayouts }, + {L"0000040D", L"1255", L"862", L"10005", L"Hebrew", L"1", heILPages, heILErrorEntries, heILStrings, HebrewFonts, heILLayouts }, #endif #ifdef LANGUAGE_HI_IN - {L"00000439", L"1252", L"437", L"10000", L"Hindi", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, hiINLayouts }, + {L"00000439", L"1252", L"437", L"10000", L"Hindi", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, hiINLayouts }, #endif #ifdef LANGUAGE_HU_HU - {L"0000040E", L"1250", L"852", L"10029", L"Hungarian", L"36", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, huHULayouts }, + {L"0000040E", L"1250", L"852", L"10029", L"Hungarian", L"36", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, huHULayouts }, #endif #ifdef LANGUAGE_IS_IS - {L"0000040F", L"1252", L"850", L"10079", L"Icelandic", L"354", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, isISLayouts }, + {L"0000040F", L"1252", L"850", L"10079", L"Icelandic", L"354", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, isISLayouts }, #endif #ifdef LANGUAGE_ID_ID - {L"00000421", L"1252", L"850", L"10079", L"Indonesian", L"62", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, idIDLayouts }, + {L"00000421", L"1252", L"850", L"10079", L"Indonesian", L"62", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, idIDLayouts }, #endif #ifdef LANGUAGE_IT_IT - {L"00000410", L"1252", L"850", L"10000", L"Italian (Italy)", L"39", itITPages, itITErrorEntries, itITStrings, LatinFonts, itITLayouts }, + {L"00000410", L"1252", L"850", L"10000", L"Italian (Italy)", L"39", itITPages, itITErrorEntries, itITStrings, LatinFonts, itITLayouts }, #endif #ifdef LANGUAGE_IT_CH - {L"00000810", L"1252", L"850", L"10000", L"Italian (Switzerland)", L"41", itITPages, itITErrorEntries, itITStrings, LatinFonts, itCHLayouts }, + {L"00000810", L"1252", L"850", L"10000", L"Italian (Switzerland)", L"41", itITPages, itITErrorEntries, itITStrings, LatinFonts, itCHLayouts }, #endif #ifdef LANGUAGE_JA_JP - {L"00000411", L"932", L"932", L"10001", L"Japanese", L"81", jaJPPages, jaJPErrorEntries, jaJPStrings, CJKFonts, jaJPLayouts }, + {L"00000411", L"932", L"932", L"10001", L"Japanese", L"81", jaJPPages, jaJPErrorEntries, jaJPStrings, CJKFonts, jaJPLayouts }, #endif #ifdef LANGUAGE_KN_IN - {L"0000044B", L"1252", L"437", L"10079", L"Kannada (India)", L"91", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, knINLayouts }, + {L"0000044B", L"1252", L"437", L"10079", L"Kannada (India)", L"91", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, knINLayouts }, #endif #ifdef LANGUAGE_KK_KZ - {L"0000043F", L"1251", L"866", L"10007", L"Kazakh", L"705", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, kkKZLayouts }, + {L"0000043F", L"1251", L"866", L"10007", L"Kazakh", L"705", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, kkKZLayouts }, #endif #ifdef LANGUAGE_KOK_IN - {L"00000457", L"0", L"437", L"2", L"Konkani", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, kokINLayouts}, + {L"00000457", L"0", L"437", L"2", L"Konkani", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, kokINLayouts}, #endif #ifdef LANGUAGE_KO_KR - {L"00000412", L"949", L"949", L"10003", L"Korean", L"1", enUSPages, enUSErrorEntries, enUSStrings, CJKFonts, koKRLayouts }, + {L"00000412", L"949", L"949", L"10003", L"Korean", L"1", enUSPages, enUSErrorEntries, enUSStrings, CJKFonts, koKRLayouts }, #endif #ifdef LANGUAGE_KY_KG - {L"00000440", L"1251", L"866", L"10007", L"Kyrgyz (Kyrgyzstan)", L"1", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, kyKGLayouts }, + {L"00000440", L"1251", L"866", L"10007", L"Kyrgyz (Kyrgyzstan)", L"1", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, kyKGLayouts }, #endif #ifdef LANGUAGE_LV_LV - {L"00000426", L"1257", L"775", L"10029", L"Latvian", L"371", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, lvLVLayouts }, + {L"00000426", L"1257", L"775", L"10029", L"Latvian", L"371", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, lvLVLayouts }, #endif #ifdef LANGUAGE_LT_LT - {L"00000427", L"1257", L"775", L"10029", L"Lithuanian", L"370", ltLTPages, ltLTErrorEntries, ltLTStrings, LatinFonts, ltLTLayouts }, + {L"00000427", L"1257", L"775", L"10029", L"Lithuanian", L"370", ltLTPages, ltLTErrorEntries, ltLTStrings, LatinFonts, ltLTLayouts }, #endif #ifdef LANGUAGE_MK_MK - {L"0000042F", L"1251", L"866", L"10007", L"FYRO Macedonian", L"1", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, mkMKLayouts }, + {L"0000042F", L"1251", L"866", L"10007", L"FYRO Macedonian", L"1", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, mkMKLayouts }, #endif #ifdef LANGUAGE_MS_BN - {L"0000083E", L"1252", L"850", L"10000", L"Malay (Brunei Darussalam)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, msBNLayouts }, + {L"0000083E", L"1252", L"850", L"10000", L"Malay (Brunei Darussalam)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, msBNLayouts }, #endif #ifdef LANGUAGE_MS_MY - {L"0000043E", L"1252", L"850", L"10000", L"Malay (Malaysia)", L"60", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, msMYLayouts }, + {L"0000043E", L"1252", L"850", L"10000", L"Malay (Malaysia)", L"60", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, msMYLayouts }, #endif #ifdef LANGUAGE_MR_IN - {L"0000044E", L"0", L"1", L"2", L"Marathi", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, mrINLayouts }, + {L"0000044E", L"0", L"1", L"2", L"Marathi", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, mrINLayouts }, #endif #ifdef LANGUAGE_MN_MN - {L"00000450", L"1251", L"866", L"10007", L"Mongolian (Mongolia)", L"976", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, mnMNLayouts }, + {L"00000450", L"1251", L"866", L"10007", L"Mongolian (Mongolia)", L"976", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, mnMNLayouts }, #endif #ifdef LANGUAGE_NB_NO - {L"00000414", L"1252", L"850", L"10000", L"Norwegian (Bokmal)", L"47", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, nbNOLayouts }, + {L"00000414", L"1252", L"850", L"10000", L"Norwegian (Bokmal)", L"47", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, nbNOLayouts }, #endif #ifdef LANGUAGE_NN_NO - {L"00000814", L"1252", L"850", L"10000", L"Norwegian (Nynorsk)", L"47", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, nnNOLayouts }, + {L"00000814", L"1252", L"850", L"10000", L"Norwegian (Nynorsk)", L"47", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, nnNOLayouts }, #endif #ifdef LANGUAGE_PL_PL - {L"00000415", L"1250", L"852", L"10029", L"Polish", L"48", plPLPages, plPLErrorEntries, plPLStrings, LatinFonts, plPLLayouts }, + {L"00000415", L"1250", L"852", L"10029", L"Polish", L"48", plPLPages, plPLErrorEntries, plPLStrings, LatinFonts, plPLLayouts }, #endif #ifdef LANGUAGE_PT_PT - {L"00000816", L"1252", L"850", L"10000", L"Portuguese (Portugal)", L"351", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, ptPTLayouts }, + {L"00000816", L"1252", L"850", L"10000", L"Portuguese (Portugal)", L"351", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, ptPTLayouts }, #endif #ifdef LANGUAGE_PT_BR - {L"00000416", L"1252", L"850", L"10000", L"Portuguese (Brazil)", L"55", ptBRPages, ptBRErrorEntries, ptBRStrings, LatinFonts, ptBRLayouts }, + {L"00000416", L"1252", L"850", L"10000", L"Portuguese (Brazil)", L"55", ptBRPages, ptBRErrorEntries, ptBRStrings, LatinFonts, ptBRLayouts }, #endif #ifdef LANGUAGE_PA_IN - {L"00000446", L"0", L"1", L"2", L"Punjabi (India)", L"91", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, paINLayouts }, + {L"00000446", L"0", L"1", L"2", L"Punjabi (India)", L"91", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, paINLayouts }, #endif #ifdef LANGUAGE_RO_RO - {L"00000418", L"1250", L"852", L"10029", L"Romanian", L"40", roROPages, roROErrorEntries, roROStrings, LatinFonts, roROLayouts }, + {L"00000418", L"1250", L"852", L"10029", L"Romanian", L"40", roROPages, roROErrorEntries, roROStrings, LatinFonts, roROLayouts }, #endif #ifdef LANGUAGE_RM_CH - {L"00000417", L"1252", L"850", L"10000", L"Romansh", L"41", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, rmCHLayouts }, + {L"00000417", L"1252", L"850", L"10000", L"Romansh", L"41", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, rmCHLayouts }, #endif #ifdef LANGUAGE_RU_RU - {L"00000419", L"1251", L"866", L"10007", L"Russian", L"7", ruRUPages, ruRUErrorEntries, ruRUStrings, CyrillicFonts, ruRULayouts }, + {L"00000419", L"1251", L"866", L"10007", L"Russian", L"7", ruRUPages, ruRUErrorEntries, ruRUStrings, CyrillicFonts, ruRULayouts }, #endif #ifdef LANGUAGE_SA_IN - {L"0000044F", L"0", L"1", L"2", L"Sanskrit", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, saINLayouts }, + {L"0000044F", L"0", L"1", L"2", L"Sanskrit", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, saINLayouts }, #endif #ifdef LANGUAGE_SR_SP - {L"00000C1A", L"1251", L"855", L"10007", L"Serbian (Cyrillic)", L"1", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, srSPLayouts }, + {L"00000C1A", L"1251", L"855", L"10007", L"Serbian (Cyrillic)", L"1", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, srSPLayouts }, #endif #ifdef LANGUAGE_SR_SP - {L"0000081A", L"1250", L"852", L"10029", L"Serbian (Latin)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, srSPLayouts }, + {L"0000081A", L"1250", L"852", L"10029", L"Serbian (Latin)", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, srSPLayouts }, #endif #ifdef LANGUAGE_SK_SK - {L"0000041B", L"1250", L"852", L"10029", L"Slovak", L"421", skSKPages, skSKErrorEntries, skSKStrings, LatinFonts, skSKLayouts }, + {L"0000041B", L"1250", L"852", L"10029", L"Slovak", L"421", skSKPages, skSKErrorEntries, skSKStrings, LatinFonts, skSKLayouts }, #endif #ifdef LANGUAGE_SL_SI - {L"00000424", L"1250", L"852", L"10029", L"Slovenian", L"386", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, slSILayouts }, + {L"00000424", L"1250", L"852", L"10029", L"Slovenian", L"386", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, slSILayouts }, #endif #ifdef LANGUAGE_ES_ES - {L"0000040A", L"1252", L"850", L"10000", L"Spanish (Traditional Sort)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esESLayouts }, + {L"0000040A", L"1252", L"850", L"10000", L"Spanish (Traditional Sort)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esESLayouts }, #endif #ifdef LANGUAGE_ES_MX - {L"0000080A", L"1252", L"850", L"10000", L"Spanish (Mexico)", L"52", esESPages, esESErrorEntries, esESStrings, LatinFonts, esMXLayouts }, + {L"0000080A", L"1252", L"850", L"10000", L"Spanish (Mexico)", L"52", esESPages, esESErrorEntries, esESStrings, LatinFonts, esMXLayouts }, #endif #ifdef LANGUAGE_ES_ES - {L"00000C0A", L"1252", L"850", L"10000", L"Spanish (International Sort)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esESLayouts }, + {L"00000C0A", L"1252", L"850", L"10000", L"Spanish (International Sort)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esESLayouts }, #endif #ifdef LANGUAGE_ES_GT - {L"0000100A", L"1252", L"850", L"10000", L"Spanish (Guatemala)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esGTLayouts }, + {L"0000100A", L"1252", L"850", L"10000", L"Spanish (Guatemala)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esGTLayouts }, #endif #ifdef LANGUAGE_ES_CR - {L"0000140A", L"1252", L"850", L"10000", L"Spanish (Costa Rica)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esCRLayouts }, + {L"0000140A", L"1252", L"850", L"10000", L"Spanish (Costa Rica)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esCRLayouts }, #endif #ifdef LANGUAGE_ES_PA - {L"0000180A", L"1252", L"850", L"10000", L"Spanish (Panama)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esPALayouts }, + {L"0000180A", L"1252", L"850", L"10000", L"Spanish (Panama)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esPALayouts }, #endif #ifdef LANGUAGE_ES_DO - {L"00001C0A", L"1252", L"850", L"10000", L"Spanish (Dominican Republic)", L"110", esESPages, esESErrorEntries, esESStrings, LatinFonts, esDOLayouts }, + {L"00001C0A", L"1252", L"850", L"10000", L"Spanish (Dominican Republic)", L"110", esESPages, esESErrorEntries, esESStrings, LatinFonts, esDOLayouts }, #endif #ifdef LANGUAGE_ES_VE - {L"0000200A", L"1252", L"850", L"10000", L"Spanish (Venezuela)", L"58", esESPages, esESErrorEntries, esESStrings, LatinFonts, esVELayouts }, + {L"0000200A", L"1252", L"850", L"10000", L"Spanish (Venezuela)", L"58", esESPages, esESErrorEntries, esESStrings, LatinFonts, esVELayouts }, #endif #ifdef LANGUAGE_ES_CO - {L"0000240A", L"1252", L"850", L"10000", L"Spanish (Colombia)", L"57", esESPages, esESErrorEntries, esESStrings, LatinFonts, esCOLayouts }, + {L"0000240A", L"1252", L"850", L"10000", L"Spanish (Colombia)", L"57", esESPages, esESErrorEntries, esESStrings, LatinFonts, esCOLayouts }, #endif #ifdef LANGUAGE_ES_PE - {L"0000280A", L"1252", L"850", L"10000", L"Spanish (Peru)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esPELayouts }, + {L"0000280A", L"1252", L"850", L"10000", L"Spanish (Peru)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esPELayouts }, #endif #ifdef LANGUAGE_ES_AR - {L"00002C0A", L"1252", L"850", L"10000", L"Spanish (Argentina)", L"54", esESPages, esESErrorEntries, esESStrings, LatinFonts, esARLayouts }, + {L"00002C0A", L"1252", L"850", L"10000", L"Spanish (Argentina)", L"54", esESPages, esESErrorEntries, esESStrings, LatinFonts, esARLayouts }, #endif #ifdef LANGUAGE_ES_EC - {L"0000300A", L"1252", L"850", L"10000", L"Spanish (Ecuador)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esECLayouts }, + {L"0000300A", L"1252", L"850", L"10000", L"Spanish (Ecuador)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esECLayouts }, #endif #ifdef LANGUAGE_ES_CL - {L"0000340A", L"1252", L"850", L"10000", L"Spanish (Chile)", L"56", esESPages, esESErrorEntries, esESStrings, LatinFonts, esCLLayouts }, + {L"0000340A", L"1252", L"850", L"10000", L"Spanish (Chile)", L"56", esESPages, esESErrorEntries, esESStrings, LatinFonts, esCLLayouts }, #endif #ifdef LANGUAGE_ES_UY - {L"0000380A", L"1252", L"850", L"10000", L"Spanish (Uruguay)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esUYLayouts }, + {L"0000380A", L"1252", L"850", L"10000", L"Spanish (Uruguay)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esUYLayouts }, #endif #ifdef LANGUAGE_ES_PY - {L"00003C0A", L"1252", L"850", L"10000", L"Spanish (Paraguay)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esPYLayouts }, + {L"00003C0A", L"1252", L"850", L"10000", L"Spanish (Paraguay)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esPYLayouts }, #endif #ifdef LANGUAGE_ES_BO - {L"0000400A", L"1252", L"850", L"10000", L"Spanish (Bolivia)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esBOLayouts }, + {L"0000400A", L"1252", L"850", L"10000", L"Spanish (Bolivia)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esBOLayouts }, #endif #ifdef LANGUAGE_ES_SV - {L"0000440A", L"1252", L"850", L"10000", L"Spanish (El Salvador)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esSVLayouts }, + {L"0000440A", L"1252", L"850", L"10000", L"Spanish (El Salvador)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esSVLayouts }, #endif #ifdef LANGUAGE_ES_HN - {L"0000480A", L"1252", L"850", L"10000", L"Spanish (Honduras)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esHNLayouts }, + {L"0000480A", L"1252", L"850", L"10000", L"Spanish (Honduras)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esHNLayouts }, #endif #ifdef LANGUAGE_ES_NI - {L"00004C0A", L"1252", L"850", L"10000", L"Spanish (Nicaragua)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esNILayouts }, + {L"00004C0A", L"1252", L"850", L"10000", L"Spanish (Nicaragua)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esNILayouts }, #endif #ifdef LANGUAGE_ES_PR - {L"0000500A", L"1252", L"850", L"10000", L"Spanish (Puerto Rico)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esPRLayouts }, + {L"0000500A", L"1252", L"850", L"10000", L"Spanish (Puerto Rico)", L"1", esESPages, esESErrorEntries, esESStrings, LatinFonts, esPRLayouts }, #endif #ifdef LANGUAGE_SW_KE - {L"00000441", L"1252", L"437", L"10000", L"Swahili", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, swKELayouts }, + {L"00000441", L"1252", L"437", L"10000", L"Swahili", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, swKELayouts }, #endif #ifdef LANGUAGE_SV_SE - {L"0000041D", L"1252", L"850", L"10000", L"Swedish", L"46", svSEPages, svSEErrorEntries, svSEStrings, LatinFonts, svSELayouts }, + {L"0000041D", L"1252", L"850", L"10000", L"Swedish", L"46", svSEPages, svSEErrorEntries, svSEStrings, LatinFonts, svSELayouts }, #endif #ifdef LANGUAGE_SV_FI - {L"0000081D", L"1252", L"850", L"10000", L"Swedish (Finland)", L"358", svSEPages, svSEErrorEntries, svSEStrings, LatinFonts, svFILayouts }, + {L"0000081D", L"1252", L"850", L"10000", L"Swedish (Finland)", L"358", svSEPages, svSEErrorEntries, svSEStrings, LatinFonts, svFILayouts }, #endif #ifdef LANGUAGE_SYR_SY - {L"0000045A", L"0", L"1", L"2", L"Syriac (Syria)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, syrSYLayouts}, + {L"0000045A", L"0", L"1", L"2", L"Syriac (Syria)", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, syrSYLayouts}, #endif #ifdef LANGUAGE_TA_IN - {L"00000449", L"0", L"1", L"2", L"Tamil", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, taINLayouts }, + {L"00000449", L"0", L"1", L"2", L"Tamil", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, taINLayouts }, #endif #ifdef LANGUAGE_TT_TA - {L"00000444", L"1251", L"866", L"10007", L"Tatar", L"1", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, ttTALayouts }, + {L"00000444", L"1251", L"866", L"10007", L"Tatar", L"1", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, ttTALayouts }, #endif #ifdef LANGUAGE_TE_IN - {L"0000044A", L"0", L"1", L"2", L"Telugu (India)", L"91", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, teINLayouts }, + {L"0000044A", L"0", L"1", L"2", L"Telugu (India)", L"91", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, teINLayouts }, #endif #ifdef LANGUAGE_TH_TH - {L"0000041E", L"874", L"874", L"10021", L"Thai", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, thTHLayouts }, + {L"0000041E", L"874", L"874", L"10021", L"Thai", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, thTHLayouts }, #endif #ifdef LANGUAGE_TR_TR - {L"0000041F", L"1254", L"857", L"10081", L"Turkish", L"90", trTRPages, trTRErrorEntries, trTRStrings, LatinFonts, trTRLayouts }, + {L"0000041F", L"1254", L"857", L"10081", L"Turkish", L"90", trTRPages, trTRErrorEntries, trTRStrings, LatinFonts, trTRLayouts }, #endif #ifdef LANGUAGE_UK_UA - {L"00000422", L"1251", L"866", L"10017", L"Ukrainian", L"380", ukUAPages, ukUAErrorEntries, ukUAStrings, CyrillicFonts, ukUALayouts }, + {L"00000422", L"1251", L"866", L"10017", L"Ukrainian", L"380", ukUAPages, ukUAErrorEntries, ukUAStrings, CyrillicFonts, ukUALayouts }, #endif #ifdef LANGUAGE_UR_PK - {L"00000420", L"1256", L"720", L"10004", L"Urdu", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, urPKLayouts }, + {L"00000420", L"1256", L"720", L"10004", L"Urdu", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, urPKLayouts }, #endif #ifdef LANGUAGE_UZ_UZ - {L"00000443", L"1254", L"857", L"10029", L"Uzbek (Latin)", L"998", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, uzUZLayouts }, + {L"00000443", L"1254", L"857", L"10029", L"Uzbek (Latin)", L"998", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, uzUZLayouts }, #endif #ifdef LANGUAGE_UZ_UZ - {L"00000843", L"1251", L"866", L"10007", L"Uzbek (Cyrillic)", L"998", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, uzUZLayouts }, + {L"00000843", L"1251", L"866", L"10007", L"Uzbek (Cyrillic)", L"998", enUSPages, enUSErrorEntries, enUSStrings, CyrillicFonts, uzUZLayouts }, #endif #ifdef LANGUAGE_VI_VN - {L"0000042A", L"1258", L"1258",L"10000", L"Vietnamese", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, viVNLayouts }, + {L"0000042A", L"1258", L"1258",L"10000", L"Vietnamese", L"1", enUSPages, enUSErrorEntries, enUSStrings, UnicodeFonts, viVNLayouts }, #endif #ifdef LANGUAGE_WA_BE - {L"00000490", L"1252", L"850", L"10000", L"Walon", L"32", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, waBELayouts }, + {L"00000490", L"1252", L"850", L"10000", L"Walon", L"32", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, waBELayouts }, #endif #ifdef LANGUAGE_ZU_ZU - {L"00000435", L"1252", L"850", L"10000", L"Zulu", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, zuZULayouts }, + {L"00000435", L"1252", L"850", L"10000", L"Zulu", L"1", enUSPages, enUSErrorEntries, enUSStrings, LatinFonts, zuZULayouts }, #endif - {NULL, NULL, NULL, NULL, NULL, NULL} + {NULL, NULL, NULL, NULL, NULL, NULL} }; diff --git a/reactos/base/setup/usetup/progress.c b/reactos/base/setup/usetup/progress.c index 55433819877..d41c9f07a2b 100644 --- a/reactos/base/setup/usetup/progress.c +++ b/reactos/base/setup/usetup/progress.c @@ -9,362 +9,372 @@ /* FUNCTIONS ****************************************************************/ -static VOID -DrawBorder(PPROGRESSBAR Bar) +static +VOID +DrawBorder( + PPROGRESSBAR Bar) { - COORD coPos; - DWORD Written; - SHORT i; + COORD coPos; + DWORD Written; + SHORT i; - /* draw upper left corner */ - coPos.X = Bar->Left; - coPos.Y = Bar->Top + 1; - FillConsoleOutputCharacterA(StdOutput, - 0xDA, // '+', - 1, - coPos, - &Written); + /* draw upper left corner */ + coPos.X = Bar->Left; + coPos.Y = Bar->Top + 1; + FillConsoleOutputCharacterA(StdOutput, + 0xDA, // '+', + 1, + coPos, + &Written); - /* draw upper edge */ - coPos.X = Bar->Left + 1; - coPos.Y = Bar->Top + 1; - FillConsoleOutputCharacterA(StdOutput, - 0xC4, // '-', - Bar->Right - Bar->Left - 1, - coPos, - &Written); + /* draw upper edge */ + coPos.X = Bar->Left + 1; + coPos.Y = Bar->Top + 1; + FillConsoleOutputCharacterA(StdOutput, + 0xC4, // '-', + Bar->Right - Bar->Left - 1, + coPos, + &Written); - /* draw upper right corner */ - coPos.X = Bar->Right; - coPos.Y = Bar->Top + 1; - FillConsoleOutputCharacterA(StdOutput, - 0xBF, // '+', - 1, - coPos, - &Written); + /* draw upper right corner */ + coPos.X = Bar->Right; + coPos.Y = Bar->Top + 1; + FillConsoleOutputCharacterA(StdOutput, + 0xBF, // '+', + 1, + coPos, + &Written); - /* draw left and right edge */ - for (i = Bar->Top + 2; i < Bar->Bottom; i++) + /* draw left and right edge */ + for (i = Bar->Top + 2; i < Bar->Bottom; i++) { - coPos.X = Bar->Left; - coPos.Y = i; - FillConsoleOutputCharacterA(StdOutput, - 0xB3, // '|', - 1, - coPos, - &Written); + coPos.X = Bar->Left; + coPos.Y = i; + FillConsoleOutputCharacterA(StdOutput, + 0xB3, // '|', + 1, + coPos, + &Written); - coPos.X = Bar->Right; - FillConsoleOutputCharacterA(StdOutput, - 0xB3, //'|', - 1, - coPos, - &Written); + coPos.X = Bar->Right; + FillConsoleOutputCharacterA(StdOutput, + 0xB3, //'|', + 1, + coPos, + &Written); } - /* draw lower left corner */ - coPos.X = Bar->Left; - coPos.Y = Bar->Bottom; - FillConsoleOutputCharacterA(StdOutput, - 0xC0, // '+', - 1, - coPos, - &Written); + /* draw lower left corner */ + coPos.X = Bar->Left; + coPos.Y = Bar->Bottom; + FillConsoleOutputCharacterA(StdOutput, + 0xC0, // '+', + 1, + coPos, + &Written); - /* draw lower edge */ - coPos.X = Bar->Left + 1; - coPos.Y = Bar->Bottom; - FillConsoleOutputCharacterA(StdOutput, - 0xC4, // '-', - Bar->Right - Bar->Left - 1, - coPos, - &Written); + /* draw lower edge */ + coPos.X = Bar->Left + 1; + coPos.Y = Bar->Bottom; + FillConsoleOutputCharacterA(StdOutput, + 0xC4, // '-', + Bar->Right - Bar->Left - 1, + coPos, + &Written); - /* draw lower right corner */ - coPos.X = Bar->Right; - coPos.Y = Bar->Bottom; - FillConsoleOutputCharacterA(StdOutput, - 0xD9, // '+', - 1, - coPos, - &Written); + /* draw lower right corner */ + coPos.X = Bar->Right; + coPos.Y = Bar->Bottom; + FillConsoleOutputCharacterA(StdOutput, + 0xD9, // '+', + 1, + coPos, + &Written); } -static VOID -DrawThickBorder(PPROGRESSBAR Bar) + +static +VOID +DrawThickBorder( + PPROGRESSBAR Bar) { - COORD coPos; - DWORD Written; - SHORT i; + COORD coPos; + DWORD Written; + SHORT i; - /* draw upper left corner */ - coPos.X = Bar->Left; - coPos.Y = Bar->Top + 1; - FillConsoleOutputCharacterA(StdOutput, - 0xC9, // '+', - 1, - coPos, - &Written); + /* draw upper left corner */ + coPos.X = Bar->Left; + coPos.Y = Bar->Top + 1; + FillConsoleOutputCharacterA(StdOutput, + 0xC9, // '+', + 1, + coPos, + &Written); - /* draw upper edge */ - coPos.X = Bar->Left + 1; - coPos.Y = Bar->Top + 1; - FillConsoleOutputCharacterA(StdOutput, - 0xCD, // '-', - Bar->Right - Bar->Left - 1, - coPos, - &Written); + /* draw upper edge */ + coPos.X = Bar->Left + 1; + coPos.Y = Bar->Top + 1; + FillConsoleOutputCharacterA(StdOutput, + 0xCD, // '-', + Bar->Right - Bar->Left - 1, + coPos, + &Written); - /* draw upper right corner */ - coPos.X = Bar->Right; - coPos.Y = Bar->Top + 1; - FillConsoleOutputCharacterA(StdOutput, - 0xBB, // '+', - 1, - coPos, - &Written); + /* draw upper right corner */ + coPos.X = Bar->Right; + coPos.Y = Bar->Top + 1; + FillConsoleOutputCharacterA(StdOutput, + 0xBB, // '+', + 1, + coPos, + &Written); - /* draw left and right edge */ - for (i = Bar->Top + 2; i < Bar->Bottom; i++) + /* draw left and right edge */ + for (i = Bar->Top + 2; i < Bar->Bottom; i++) { - coPos.X = Bar->Left; - coPos.Y = i; - FillConsoleOutputCharacterA(StdOutput, - 0xBA, // '|', - 1, - coPos, - &Written); + coPos.X = Bar->Left; + coPos.Y = i; + FillConsoleOutputCharacterA(StdOutput, + 0xBA, // '|', + 1, + coPos, + &Written); - coPos.X = Bar->Right; - FillConsoleOutputCharacterA(StdOutput, - 0xBA, //'|', - 1, - coPos, - &Written); + coPos.X = Bar->Right; + FillConsoleOutputCharacterA(StdOutput, + 0xBA, //'|', + 1, + coPos, + &Written); } - /* draw lower left corner */ - coPos.X = Bar->Left; - coPos.Y = Bar->Bottom; - FillConsoleOutputCharacterA(StdOutput, - 0xC8, // '+', - 1, - coPos, - &Written); + /* draw lower left corner */ + coPos.X = Bar->Left; + coPos.Y = Bar->Bottom; + FillConsoleOutputCharacterA(StdOutput, + 0xC8, // '+', + 1, + coPos, + &Written); - /* draw lower edge */ - coPos.X = Bar->Left + 1; - coPos.Y = Bar->Bottom; - FillConsoleOutputCharacterA(StdOutput, - 0xCD, // '-', - Bar->Right - Bar->Left - 1, - coPos, - &Written); + /* draw lower edge */ + coPos.X = Bar->Left + 1; + coPos.Y = Bar->Bottom; + FillConsoleOutputCharacterA(StdOutput, + 0xCD, // '-', + Bar->Right - Bar->Left - 1, + coPos, + &Written); - /* draw lower right corner */ - coPos.X = Bar->Right; - coPos.Y = Bar->Bottom; - FillConsoleOutputCharacterA(StdOutput, - 0xBC, // '+', - 1, - coPos, - &Written); + /* draw lower right corner */ + coPos.X = Bar->Right; + coPos.Y = Bar->Bottom; + FillConsoleOutputCharacterA(StdOutput, + 0xBC, // '+', + 1, + coPos, + &Written); } -static VOID -DrawProgressBar(PPROGRESSBAR Bar) + +static +VOID +DrawProgressBar( + PPROGRESSBAR Bar) { - CHAR TextBuffer[8]; - COORD coPos; - DWORD Written; - PROGRESSBAR BarBorder = *Bar; + CHAR TextBuffer[8]; + COORD coPos; + DWORD Written; + PROGRESSBAR BarBorder = *Bar; - /* Print percentage */ - sprintf(TextBuffer, "%-3lu%%", Bar->Percent); + /* Print percentage */ + sprintf(TextBuffer, "%-3lu%%", Bar->Percent); - coPos.X = Bar->Left + (Bar->Width - 2) / 2; - coPos.Y = Bar->Top; - WriteConsoleOutputCharacterA(StdOutput, - TextBuffer, - 4, - coPos, - &Written); + coPos.X = Bar->Left + (Bar->Width - 2) / 2; + coPos.Y = Bar->Top; + WriteConsoleOutputCharacterA(StdOutput, + TextBuffer, + 4, + coPos, + &Written); - /* Draw the progress bar border */ - DrawBorder(Bar); + /* Draw the progress bar border */ + DrawBorder(Bar); - /* Write Text Associated with Bar */ - CONSOLE_SetTextXY(Bar->TextTop, Bar->TextRight, Bar->Text); + /* Write Text Associated with Bar */ + CONSOLE_SetTextXY(Bar->TextTop, Bar->TextRight, Bar->Text); - /* Draw the progress bar "border" border */ - if (Bar->Double) - { - BarBorder.Top -= 5; - BarBorder.Bottom += 2; - BarBorder.Right += 5; - BarBorder.Left -= 5; - DrawThickBorder(&BarBorder); - } - - /* Draw the bar */ - coPos.X = Bar->Left + 1; - for (coPos.Y = Bar->Top + 2; coPos.Y <= Bar->Bottom - 1; coPos.Y++) + /* Draw the progress bar "border" border */ + if (Bar->Double) { - FillConsoleOutputAttribute(StdOutput, - FOREGROUND_YELLOW | BACKGROUND_BLUE, - Bar->Width - 2, - coPos, - &Written); - - FillConsoleOutputCharacterA(StdOutput, - ' ', - Bar->Width - 2, - coPos, - &Written); + BarBorder.Top -= 5; + BarBorder.Bottom += 2; + BarBorder.Right += 5; + BarBorder.Left -= 5; + DrawThickBorder(&BarBorder); } -} + /* Draw the bar */ + coPos.X = Bar->Left + 1; + for (coPos.Y = Bar->Top + 2; coPos.Y <= Bar->Bottom - 1; coPos.Y++) + { + FillConsoleOutputAttribute(StdOutput, + FOREGROUND_YELLOW | BACKGROUND_BLUE, + Bar->Width - 2, + coPos, + &Written); + FillConsoleOutputCharacterA(StdOutput, + ' ', + Bar->Width - 2, + coPos, + &Written); + } +} PPROGRESSBAR -CreateProgressBar(SHORT Left, - SHORT Top, - SHORT Right, - SHORT Bottom, - SHORT TextTop, - SHORT TextRight, - IN BOOLEAN DoubleEdge, - char* Text) +CreateProgressBar( + SHORT Left, + SHORT Top, + SHORT Right, + SHORT Bottom, + SHORT TextTop, + SHORT TextRight, + IN BOOLEAN DoubleEdge, + CHAR *Text) { - PPROGRESSBAR Bar; + PPROGRESSBAR Bar; - Bar = (PPROGRESSBAR)RtlAllocateHeap(ProcessHeap, - 0, - sizeof(PROGRESSBAR)); - if (Bar == NULL) - return(NULL); + Bar = (PPROGRESSBAR)RtlAllocateHeap(ProcessHeap, + 0, + sizeof(PROGRESSBAR)); + if (Bar == NULL) + return NULL; - Bar->Left = Left; - Bar->Top = Top; - Bar->Right = Right; - Bar->Bottom = Bottom; - Bar->TextTop = TextTop; - Bar->TextRight = TextRight; - Bar->Double = DoubleEdge; - Bar->Text = Text; + Bar->Left = Left; + Bar->Top = Top; + Bar->Right = Right; + Bar->Bottom = Bottom; + Bar->TextTop = TextTop; + Bar->TextRight = TextRight; + Bar->Double = DoubleEdge; + Bar->Text = Text; - Bar->Width = Bar->Right - Bar->Left + 1; + Bar->Width = Bar->Right - Bar->Left + 1; - Bar->Percent = 0; - Bar->Pos = 0; + Bar->Percent = 0; + Bar->Pos = 0; - Bar->StepCount = 0; - Bar->CurrentStep = 0; + Bar->StepCount = 0; + Bar->CurrentStep = 0; - DrawProgressBar(Bar); + DrawProgressBar(Bar); - return(Bar); + return Bar; } VOID -DestroyProgressBar(PPROGRESSBAR Bar) +DestroyProgressBar( + PPROGRESSBAR Bar) { - RtlFreeHeap(ProcessHeap, - 0, - Bar); -} - -VOID -ProgressSetStepCount(PPROGRESSBAR Bar, - ULONG StepCount) -{ - Bar->CurrentStep = 0; - Bar->StepCount = StepCount; - - DrawProgressBar(Bar); + RtlFreeHeap(ProcessHeap, 0, Bar); } VOID -ProgressNextStep(PPROGRESSBAR Bar) +ProgressSetStepCount( + PPROGRESSBAR Bar, + ULONG StepCount) { - ProgressSetStep(Bar, Bar->CurrentStep + 1); + Bar->CurrentStep = 0; + Bar->StepCount = StepCount; + + DrawProgressBar(Bar); } VOID -ProgressSetStep (PPROGRESSBAR Bar, - ULONG Step) +ProgressNextStep( + PPROGRESSBAR Bar) { - CHAR TextBuffer[8]; - COORD coPos; - DWORD Written; - ULONG NewPercent; - ULONG NewPos; + ProgressSetStep(Bar, Bar->CurrentStep + 1); +} - if (Step > Bar->StepCount) - return; - Bar->CurrentStep = Step; +VOID +ProgressSetStep( + PPROGRESSBAR Bar, + ULONG Step) +{ + CHAR TextBuffer[8]; + COORD coPos; + DWORD Written; + ULONG NewPercent; + ULONG NewPos; - /* Calculate new percentage */ - NewPercent = (ULONG)(((100.0 * (float)Bar->CurrentStep) / (float)Bar->StepCount) + 0.5); + if (Step > Bar->StepCount) + return; - /* Redraw precentage if changed */ - if (Bar->Percent != NewPercent) + Bar->CurrentStep = Step; + + /* Calculate new percentage */ + NewPercent = (ULONG)(((100.0 * (float)Bar->CurrentStep) / (float)Bar->StepCount) + 0.5); + + /* Redraw precentage if changed */ + if (Bar->Percent != NewPercent) { - Bar->Percent = NewPercent; + Bar->Percent = NewPercent; - sprintf(TextBuffer, "%-3lu%%", Bar->Percent); + sprintf(TextBuffer, "%-3lu%%", Bar->Percent); - coPos.X = Bar->Left + (Bar->Width - 2) / 2; - coPos.Y = Bar->Top; - WriteConsoleOutputCharacterA(StdOutput, - TextBuffer, - 4, - coPos, - &Written); + coPos.X = Bar->Left + (Bar->Width - 2) / 2; + coPos.Y = Bar->Top; + WriteConsoleOutputCharacterA(StdOutput, + TextBuffer, + 4, + coPos, + &Written); } - /* Calculate bar position */ - NewPos = (ULONG)((((float)(Bar->Width - 2) * 2.0 * (float)Bar->CurrentStep) / (float)Bar->StepCount) + 0.5); + /* Calculate bar position */ + NewPos = (ULONG)((((float)(Bar->Width - 2) * 2.0 * (float)Bar->CurrentStep) / (float)Bar->StepCount) + 0.5); - /* Redraw bar if changed */ - if (Bar->Pos != NewPos) + /* Redraw bar if changed */ + if (Bar->Pos != NewPos) { - Bar->Pos = NewPos; + Bar->Pos = NewPos; - for (coPos.Y = Bar->Top + 2; coPos.Y <= Bar->Bottom - 1; coPos.Y++) - { - coPos.X = Bar->Left + 1; - FillConsoleOutputCharacterA(StdOutput, - 0xDB, - Bar->Pos / 2, - coPos, - &Written); - coPos.X += Bar->Pos/2; + for (coPos.Y = Bar->Top + 2; coPos.Y <= Bar->Bottom - 1; coPos.Y++) + { + coPos.X = Bar->Left + 1; + FillConsoleOutputCharacterA(StdOutput, + 0xDB, + Bar->Pos / 2, + coPos, + &Written); + coPos.X += Bar->Pos/2; - if (NewPos & 1) - { - FillConsoleOutputCharacterA(StdOutput, - 0xDD, - 1, - coPos, - &Written); - coPos.X++; - } + if (NewPos & 1) + { + FillConsoleOutputCharacterA(StdOutput, + 0xDD, + 1, + coPos, + &Written); + coPos.X++; + } - if (coPos.X <= Bar->Right - 1) - { - FillConsoleOutputCharacterA(StdOutput, - ' ', - Bar->Right - coPos.X, - coPos, - &Written); - } - } + if (coPos.X <= Bar->Right - 1) + { + FillConsoleOutputCharacterA(StdOutput, + ' ', + Bar->Right - coPos.X, + coPos, + &Written); + } + } } } diff --git a/reactos/base/setup/usetup/progress.h b/reactos/base/setup/usetup/progress.h index 948501c3d62..4e486048400 100644 --- a/reactos/base/setup/usetup/progress.h +++ b/reactos/base/setup/usetup/progress.h @@ -28,49 +28,54 @@ typedef struct _PROGRESS { - SHORT Left; - SHORT Top; - SHORT Right; - SHORT Bottom; - SHORT TextTop; - SHORT TextRight; + SHORT Left; + SHORT Top; + SHORT Right; + SHORT Bottom; + SHORT TextTop; + SHORT TextRight; - SHORT Width; + SHORT Width; - ULONG Percent; - SHORT Pos; + ULONG Percent; + SHORT Pos; - ULONG StepCount; - ULONG CurrentStep; + ULONG StepCount; + ULONG CurrentStep; - BOOLEAN Double; - CHAR *Text; + BOOLEAN Double; + CHAR *Text; } PROGRESSBAR, *PPROGRESSBAR; /* FUNCTIONS ****************************************************************/ PPROGRESSBAR -CreateProgressBar(SHORT Left, - SHORT Top, - SHORT Right, - SHORT Bottom, - SHORT TextTop, - SHORT TextRight, - BOOLEAN DoubleEdge, - char* Text); +CreateProgressBar( + SHORT Left, + SHORT Top, + SHORT Right, + SHORT Bottom, + SHORT TextTop, + SHORT TextRight, + BOOLEAN DoubleEdge, + CHAR *Text); VOID -DestroyProgressBar(PPROGRESSBAR Bar); +DestroyProgressBar( + PPROGRESSBAR Bar); VOID -ProgressSetStepCount(PPROGRESSBAR Bar, - ULONG StepCount); +ProgressSetStepCount( + PPROGRESSBAR Bar, + ULONG StepCount); VOID -ProgressNextStep(PPROGRESSBAR Bar); +ProgressNextStep( + PPROGRESSBAR Bar); VOID -ProgressSetStep (PPROGRESSBAR Bar, - ULONG Step); +ProgressSetStep( + PPROGRESSBAR Bar, + ULONG Step); /* EOF */ diff --git a/reactos/base/setup/usetup/registry.c b/reactos/base/setup/usetup/registry.c index 493a17a4a83..032c5d961b9 100644 --- a/reactos/base/setup/usetup/registry.c +++ b/reactos/base/setup/usetup/registry.c @@ -63,47 +63,49 @@ typedef struct _REG_DISK_MOUNT_INFO { - ULONG Signature; - LARGE_INTEGER StartingOffset; + ULONG Signature; + LARGE_INTEGER StartingOffset; } REG_DISK_MOUNT_INFO, *PREG_DISK_MOUNT_INFO; #include /* FUNCTIONS ****************************************************************/ -static BOOLEAN -GetRootKey (PWCHAR Name) +static +BOOLEAN +GetRootKey( + PWCHAR Name) { - if (!_wcsicmp (Name, L"HKCR")) + if (!_wcsicmp (Name, L"HKCR")) { - wcscpy (Name, L"\\Registry\\Machine\\SOFTWARE\\Classes\\"); - return TRUE; + wcscpy (Name, L"\\Registry\\Machine\\SOFTWARE\\Classes\\"); + return TRUE; } - if (!_wcsicmp (Name, L"HKCU")) + if (!_wcsicmp (Name, L"HKCU")) { - wcscpy (Name, L"\\Registry\\User\\.DEFAULT\\"); - return TRUE; + wcscpy (Name, L"\\Registry\\User\\.DEFAULT\\"); + return TRUE; } - if (!_wcsicmp (Name, L"HKLM")) + if (!_wcsicmp (Name, L"HKLM")) { - wcscpy (Name, L"\\Registry\\Machine\\"); - return TRUE; + wcscpy (Name, L"\\Registry\\Machine\\"); + return TRUE; } - if (!_wcsicmp (Name, L"HKU")) + if (!_wcsicmp (Name, L"HKU")) { - wcscpy (Name, L"\\Registry\\User\\"); - return TRUE; + wcscpy (Name, L"\\Registry\\User\\"); + return TRUE; } #if 0 - if (!_wcsicmp (Name, L"HKR")) - return FALSE; + if (!_wcsicmp (Name, L"HKR")) + return FALSE; #endif - return FALSE; + return FALSE; } @@ -500,7 +502,7 @@ CreateNestedKey (PHANDLE KeyHandle, * Called once for each AddReg and DelReg entry in a given section. */ static BOOLEAN -registry_callback (HINF hInf, PCWSTR Section, BOOLEAN Delete) +registry_callback(HINF hInf, PCWSTR Section, BOOLEAN Delete) { OBJECT_ATTRIBUTES ObjectAttributes; WCHAR Buffer[MAX_INF_STRING_LENGTH]; @@ -624,148 +626,154 @@ registry_callback (HINF hInf, PCWSTR Section, BOOLEAN Delete) BOOLEAN -ImportRegistryFile(PWSTR Filename, - PWSTR Section, - LCID LocaleId, - BOOLEAN Delete) +ImportRegistryFile( + PWSTR Filename, + PWSTR Section, + LCID LocaleId, + BOOLEAN Delete) { - WCHAR FileNameBuffer[MAX_PATH]; - HINF hInf; - UINT ErrorLine; + WCHAR FileNameBuffer[MAX_PATH]; + HINF hInf; + UINT ErrorLine; - /* Load inf file from install media. */ - wcscpy(FileNameBuffer, SourcePath.Buffer); - wcscat(FileNameBuffer, L"\\"); - wcscat(FileNameBuffer, Filename); + /* Load inf file from install media. */ + wcscpy(FileNameBuffer, SourcePath.Buffer); + wcscat(FileNameBuffer, L"\\"); + wcscat(FileNameBuffer, Filename); - hInf = SetupOpenInfFileW( - FileNameBuffer, - NULL, - INF_STYLE_WIN4, - LocaleId, - &ErrorLine); - if (hInf == INVALID_HANDLE_VALUE) + hInf = SetupOpenInfFileW(FileNameBuffer, + NULL, + INF_STYLE_WIN4, + LocaleId, + &ErrorLine); + if (hInf == INVALID_HANDLE_VALUE) { - DPRINT1("SetupOpenInfFile() failed\n"); - return FALSE; + DPRINT1("SetupOpenInfFile() failed\n"); + return FALSE; } - if (!registry_callback (hInf, L"AddReg", FALSE)) + if (!registry_callback(hInf, L"AddReg", FALSE)) { - DPRINT1("registry_callback() failed\n"); + DPRINT1("registry_callback() failed\n"); } - if (!registry_callback (hInf, L"AddReg.NT" Architecture, FALSE)) + if (!registry_callback(hInf, L"AddReg.NT" Architecture, FALSE)) { - DPRINT1("registry_callback() failed\n"); + DPRINT1("registry_callback() failed\n"); } - InfCloseFile (hInf); + InfCloseFile(hInf); - return TRUE; + return TRUE; } BOOLEAN -SetInstallPathValue(PUNICODE_STRING InstallPath) +SetInstallPathValue( + PUNICODE_STRING InstallPath) { - OBJECT_ATTRIBUTES ObjectAttributes; - UNICODE_STRING KeyName = RTL_CONSTANT_STRING(L"\\Registry\\Machine\\HARDWARE"); - UNICODE_STRING ValueName = RTL_CONSTANT_STRING(L"InstallPath"); - HANDLE KeyHandle; - NTSTATUS Status; + OBJECT_ATTRIBUTES ObjectAttributes; + UNICODE_STRING KeyName = RTL_CONSTANT_STRING(L"\\Registry\\Machine\\HARDWARE"); + UNICODE_STRING ValueName = RTL_CONSTANT_STRING(L"InstallPath"); + HANDLE KeyHandle; + NTSTATUS Status; - /* Create the 'secret' InstallPath key */ - InitializeObjectAttributes (&ObjectAttributes, - &KeyName, - OBJ_CASE_INSENSITIVE, - NULL, - NULL); - Status = NtOpenKey (&KeyHandle, - KEY_ALL_ACCESS, - &ObjectAttributes); - if (!NT_SUCCESS(Status)) + /* Create the 'secret' InstallPath key */ + InitializeObjectAttributes(&ObjectAttributes, + &KeyName, + OBJ_CASE_INSENSITIVE, + NULL, + NULL); + Status = NtOpenKey(&KeyHandle, + KEY_ALL_ACCESS, + &ObjectAttributes); + if (!NT_SUCCESS(Status)) { - DPRINT1("NtOpenKey() failed (Status %lx)\n", Status); - return FALSE; + DPRINT1("NtOpenKey() failed (Status %lx)\n", Status); + return FALSE; } - Status = NtSetValueKey (KeyHandle, - &ValueName, - 0, - REG_SZ, - (PVOID)InstallPath->Buffer, - InstallPath->Length + sizeof(WCHAR)); - NtClose(KeyHandle); - if (!NT_SUCCESS(Status)) - { - DPRINT1("NtSetValueKey() failed (Status %lx)\n", Status); - return FALSE; - } - - return TRUE; -} - -BOOLEAN -SetMountedDeviceValue(CHAR Letter, ULONG Signature, LARGE_INTEGER StartingOffset) -{ - OBJECT_ATTRIBUTES ObjectAttributes; - WCHAR ValueNameBuffer[16]; - UNICODE_STRING KeyName = RTL_CONSTANT_STRING(L"\\Registry\\Machine\\SYSTEM\\MountedDevices"); - UNICODE_STRING ValueName; - REG_DISK_MOUNT_INFO MountInfo; - NTSTATUS Status; - HANDLE KeyHandle; - - swprintf(ValueNameBuffer, L"\\DosDevices\\%C:", Letter); - RtlInitUnicodeString(&ValueName, ValueNameBuffer); - - InitializeObjectAttributes (&ObjectAttributes, - &KeyName, - OBJ_CASE_INSENSITIVE, - NULL, - NULL); - Status = NtOpenKey (&KeyHandle, - KEY_ALL_ACCESS, - &ObjectAttributes); - if (!NT_SUCCESS(Status)) - { - Status = NtCreateKey(&KeyHandle, - KEY_ALL_ACCESS, - &ObjectAttributes, + Status = NtSetValueKey(KeyHandle, + &ValueName, 0, - NULL, - REG_OPTION_NON_VOLATILE, - NULL); - } - - if (!NT_SUCCESS(Status)) + REG_SZ, + (PVOID)InstallPath->Buffer, + InstallPath->Length + sizeof(WCHAR)); + NtClose(KeyHandle); + if (!NT_SUCCESS(Status)) { - DPRINT1("NtCreateKey() failed (Status %lx)\n", Status); - return FALSE; + DPRINT1("NtSetValueKey() failed (Status %lx)\n", Status); + return FALSE; } - MountInfo.Signature = Signature; - MountInfo.StartingOffset = StartingOffset; - Status = NtSetValueKey (KeyHandle, - &ValueName, - 0, - REG_BINARY, - (PVOID)&MountInfo, - sizeof(MountInfo)); - NtClose(KeyHandle); - if (!NT_SUCCESS(Status)) + return TRUE; +} + + +BOOLEAN +SetMountedDeviceValue( + CHAR Letter, + ULONG Signature, + LARGE_INTEGER StartingOffset) +{ + OBJECT_ATTRIBUTES ObjectAttributes; + WCHAR ValueNameBuffer[16]; + UNICODE_STRING KeyName = RTL_CONSTANT_STRING(L"\\Registry\\Machine\\SYSTEM\\MountedDevices"); + UNICODE_STRING ValueName; + REG_DISK_MOUNT_INFO MountInfo; + NTSTATUS Status; + HANDLE KeyHandle; + + swprintf(ValueNameBuffer, L"\\DosDevices\\%C:", Letter); + RtlInitUnicodeString(&ValueName, ValueNameBuffer); + + InitializeObjectAttributes(&ObjectAttributes, + &KeyName, + OBJ_CASE_INSENSITIVE, + NULL, + NULL); + Status = NtOpenKey(&KeyHandle, + KEY_ALL_ACCESS, + &ObjectAttributes); + if (!NT_SUCCESS(Status)) { - DPRINT1("NtSetValueKey() failed (Status %lx)\n", Status); - return FALSE; + Status = NtCreateKey(&KeyHandle, + KEY_ALL_ACCESS, + &ObjectAttributes, + 0, + NULL, + REG_OPTION_NON_VOLATILE, + NULL); } - return TRUE; + if (!NT_SUCCESS(Status)) + { + DPRINT1("NtCreateKey() failed (Status %lx)\n", Status); + return FALSE; + } + + MountInfo.Signature = Signature; + MountInfo.StartingOffset = StartingOffset; + Status = NtSetValueKey(KeyHandle, + &ValueName, + 0, + REG_BINARY, + (PVOID)&MountInfo, + sizeof(MountInfo)); + NtClose(KeyHandle); + if (!NT_SUCCESS(Status)) + { + DPRINT1("NtSetValueKey() failed (Status %lx)\n", Status); + return FALSE; + } + + return TRUE; } VOID -SetDefaultPagefile(WCHAR Drive) +SetDefaultPagefile( + WCHAR Drive) { OBJECT_ATTRIBUTES ObjectAttributes; UNICODE_STRING KeyName = RTL_CONSTANT_STRING(L"\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Memory Management"); diff --git a/reactos/base/setup/usetup/registry.h b/reactos/base/setup/usetup/registry.h index 2b23cd8d33d..de02b0eb5d8 100644 --- a/reactos/base/setup/usetup/registry.h +++ b/reactos/base/setup/usetup/registry.h @@ -27,18 +27,24 @@ #pragma once BOOLEAN -ImportRegistryFile(PWSTR Filename, - PWSTR Section, - LCID LocaleId, - BOOLEAN Delete); +ImportRegistryFile( + PWSTR Filename, + PWSTR Section, + LCID LocaleId, + BOOLEAN Delete); BOOLEAN -SetInstallPathValue(PUNICODE_STRING InstallPath); +SetInstallPathValue( + PUNICODE_STRING InstallPath); BOOLEAN -SetMountedDeviceValue(CHAR Letter, ULONG Signature, LARGE_INTEGER StartingOffset); +SetMountedDeviceValue( + CHAR Letter, + ULONG Signature, + LARGE_INTEGER StartingOffset); VOID -SetDefaultPagefile(WCHAR Drive); +SetDefaultPagefile( + WCHAR Drive); /* EOF */ diff --git a/reactos/base/setup/usetup/settings.c b/reactos/base/setup/usetup/settings.c index 7dcb3291da1..03461671742 100644 --- a/reactos/base/setup/usetup/settings.c +++ b/reactos/base/setup/usetup/settings.c @@ -31,34 +31,45 @@ #define NDEBUG #include +/* GLOBALS ******************************************************************/ + +ULONG DefaultLanguageIndex = 0; + /* FUNCTIONS ****************************************************************/ -static BOOLEAN +static +BOOLEAN IsAcpiComputer(VOID) { - UNICODE_STRING MultiKeyPathU = RTL_CONSTANT_STRING(L"\\Registry\\Machine\\HARDWARE\\DESCRIPTION\\System\\MultifunctionAdapter"); - UNICODE_STRING IdentifierU = RTL_CONSTANT_STRING(L"Identifier"); - UNICODE_STRING AcpiBiosIdentifier = RTL_CONSTANT_STRING(L"ACPI BIOS"); - OBJECT_ATTRIBUTES ObjectAttributes; - PKEY_BASIC_INFORMATION pDeviceInformation = NULL; - ULONG DeviceInfoLength = sizeof(KEY_BASIC_INFORMATION) + 50 * sizeof(WCHAR); - PKEY_VALUE_PARTIAL_INFORMATION pValueInformation = NULL; - ULONG ValueInfoLength = sizeof(KEY_VALUE_PARTIAL_INFORMATION) + 50 * sizeof(WCHAR); - ULONG RequiredSize; - ULONG IndexDevice = 0; - UNICODE_STRING DeviceName, ValueName; - HANDLE hDevicesKey = NULL; - HANDLE hDeviceKey = NULL; - NTSTATUS Status; - BOOLEAN ret = FALSE; + UNICODE_STRING MultiKeyPathU = RTL_CONSTANT_STRING(L"\\Registry\\Machine\\HARDWARE\\DESCRIPTION\\System\\MultifunctionAdapter"); + UNICODE_STRING IdentifierU = RTL_CONSTANT_STRING(L"Identifier"); + UNICODE_STRING AcpiBiosIdentifier = RTL_CONSTANT_STRING(L"ACPI BIOS"); + OBJECT_ATTRIBUTES ObjectAttributes; + PKEY_BASIC_INFORMATION pDeviceInformation = NULL; + ULONG DeviceInfoLength = sizeof(KEY_BASIC_INFORMATION) + 50 * sizeof(WCHAR); + PKEY_VALUE_PARTIAL_INFORMATION pValueInformation = NULL; + ULONG ValueInfoLength = sizeof(KEY_VALUE_PARTIAL_INFORMATION) + 50 * sizeof(WCHAR); + ULONG RequiredSize; + ULONG IndexDevice = 0; + UNICODE_STRING DeviceName, ValueName; + HANDLE hDevicesKey = NULL; + HANDLE hDeviceKey = NULL; + NTSTATUS Status; + BOOLEAN ret = FALSE; - InitializeObjectAttributes(&ObjectAttributes, &MultiKeyPathU, OBJ_CASE_INSENSITIVE, NULL, NULL); - Status = NtOpenKey(&hDevicesKey, KEY_ENUMERATE_SUB_KEYS, &ObjectAttributes); - if (!NT_SUCCESS(Status)) - { - DPRINT("NtOpenKey() failed with status 0x%08lx\n", Status); - goto cleanup; - } + InitializeObjectAttributes(&ObjectAttributes, + &MultiKeyPathU, + OBJ_CASE_INSENSITIVE, + NULL, + NULL); + Status = NtOpenKey(&hDevicesKey, + KEY_ENUMERATE_SUB_KEYS, + &ObjectAttributes); + if (!NT_SUCCESS(Status)) + { + DPRINT("NtOpenKey() failed with status 0x%08lx\n", Status); + goto cleanup; + } pDeviceInformation = RtlAllocateHeap(RtlGetProcessHeap(), 0, DeviceInfoLength); if (!pDeviceInformation) @@ -170,9 +181,11 @@ cleanup: } -static BOOLEAN -GetComputerIdentifier(PWSTR Identifier, - ULONG IdentifierLength) +static +BOOLEAN +GetComputerIdentifier( + PWSTR Identifier, + ULONG IdentifierLength) { OBJECT_ATTRIBUTES ObjectAttributes; UNICODE_STRING KeyName; @@ -212,14 +225,12 @@ GetComputerIdentifier(PWSTR Identifier, } /* Get number of subkeys */ - Status = NtQueryKey( - ProcessorsKey, - KeyFullInformation, - pFullInfo, - Size, - &Size); + Status = NtQueryKey(ProcessorsKey, + KeyFullInformation, + pFullInfo, + Size, + &Size); NtClose(ProcessorsKey); - if (!NT_SUCCESS(Status) && Status != STATUS_BUFFER_OVERFLOW) { DPRINT("NtQueryKey() failed (Status 0x%lx)\n", Status); @@ -276,7 +287,8 @@ GetComputerIdentifier(PWSTR Identifier, PGENERIC_LIST -CreateComputerTypeList(HINF InfFile) +CreateComputerTypeList( + HINF InfFile) { CHAR Buffer[128]; PGENERIC_LIST List; @@ -364,8 +376,10 @@ CreateComputerTypeList(HINF InfFile) } -static BOOLEAN -GetDisplayIdentifier(PWSTR Identifier, +static +BOOLEAN +GetDisplayIdentifier( + PWSTR Identifier, ULONG IdentifierLength) { OBJECT_ATTRIBUTES ObjectAttributes; @@ -530,7 +544,8 @@ GetDisplayIdentifier(PWSTR Identifier, PGENERIC_LIST -CreateDisplayDriverList(HINF InfFile) +CreateDisplayDriverList( + HINF InfFile) { CHAR Buffer[128]; PGENERIC_LIST List; @@ -630,8 +645,12 @@ CreateDisplayDriverList(HINF InfFile) return List; } + BOOLEAN -ProcessComputerFiles(HINF InfFile, PGENERIC_LIST List, PWCHAR* AdditionalSectionName) +ProcessComputerFiles( + HINF InfFile, + PGENERIC_LIST List, + PWCHAR *AdditionalSectionName) { PGENERIC_LIST_ENTRY Entry; static WCHAR SectionName[128]; @@ -654,7 +673,9 @@ ProcessComputerFiles(HINF InfFile, PGENERIC_LIST List, PWCHAR* AdditionalSection BOOLEAN -ProcessDisplayRegistry(HINF InfFile, PGENERIC_LIST List) +ProcessDisplayRegistry( + HINF InfFile, + PGENERIC_LIST List) { PGENERIC_LIST_ENTRY Entry; INFCONTEXT Context; @@ -692,12 +713,11 @@ ProcessDisplayRegistry(HINF InfFile, PGENERIC_LIST List) StartValue = 1; Status = RtlWriteRegistryValue(RTL_REGISTRY_SERVICES, - ServiceName, - L"Start", - REG_DWORD, - &StartValue, - sizeof(ULONG)); - + ServiceName, + L"Start", + REG_DWORD, + &StartValue, + sizeof(ULONG)); if (!NT_SUCCESS(Status)) { DPRINT("RtlWriteRegistryValue() failed (Status %lx)\n", Status); @@ -715,11 +735,11 @@ ProcessDisplayRegistry(HINF InfFile, PGENERIC_LIST List) Width = wcstoul(Buffer, NULL, 10); Status = RtlWriteRegistryValue(RTL_REGISTRY_ABSOLUTE, - RegPath, - L"DefaultSettings.XResolution", - REG_DWORD, - &Width, - sizeof(ULONG)); + RegPath, + L"DefaultSettings.XResolution", + REG_DWORD, + &Width, + sizeof(ULONG)); if (!NT_SUCCESS(Status)) { DPRINT("RtlWriteRegistryValue() failed (Status %lx)\n", Status); @@ -734,11 +754,11 @@ ProcessDisplayRegistry(HINF InfFile, PGENERIC_LIST List) Height = wcstoul(Buffer, 0, 0); Status = RtlWriteRegistryValue(RTL_REGISTRY_ABSOLUTE, - RegPath, - L"DefaultSettings.YResolution", - REG_DWORD, - &Height, - sizeof(ULONG)); + RegPath, + L"DefaultSettings.YResolution", + REG_DWORD, + &Height, + sizeof(ULONG)); if (!NT_SUCCESS(Status)) { DPRINT("RtlWriteRegistryValue() failed (Status %lx)\n", Status); @@ -753,11 +773,11 @@ ProcessDisplayRegistry(HINF InfFile, PGENERIC_LIST List) Bpp = wcstoul(Buffer, 0, 0); Status = RtlWriteRegistryValue(RTL_REGISTRY_ABSOLUTE, - RegPath, - L"DefaultSettings.BitsPerPel", - REG_DWORD, - &Bpp, - sizeof(ULONG)); + RegPath, + L"DefaultSettings.BitsPerPel", + REG_DWORD, + &Bpp, + sizeof(ULONG)); if (!NT_SUCCESS(Status)) { DPRINT("RtlWriteRegistryValue() failed (Status %lx)\n", Status); @@ -771,7 +791,8 @@ ProcessDisplayRegistry(HINF InfFile, PGENERIC_LIST List) BOOLEAN -ProcessLocaleRegistry(PGENERIC_LIST List) +ProcessLocaleRegistry( + PGENERIC_LIST List) { PGENERIC_LIST_ENTRY Entry; PWCHAR LanguageId; @@ -807,7 +828,6 @@ ProcessLocaleRegistry(PGENERIC_LIST List) Status = NtOpenKey(&KeyHandle, KEY_SET_VALUE, &ObjectAttributes); - if (!NT_SUCCESS(Status)) { DPRINT1("NtOpenKey() failed (Status %lx)\n", Status); @@ -851,7 +871,8 @@ ProcessLocaleRegistry(PGENERIC_LIST List) PGENERIC_LIST -CreateKeyboardDriverList(HINF InfFile) +CreateKeyboardDriverList( + HINF InfFile) { CHAR Buffer[128]; PGENERIC_LIST List; @@ -879,9 +900,9 @@ CreateKeyboardDriverList(HINF InfFile) break; } - UserData = (WCHAR*) RtlAllocateHeap(ProcessHeap, - 0, - (wcslen(KeyName) + 1) * sizeof(WCHAR)); + UserData = (WCHAR*)RtlAllocateHeap(ProcessHeap, + 0, + (wcslen(KeyName) + 1) * sizeof(WCHAR)); if (UserData == NULL) { /* FIXME: Handle error! */ @@ -896,7 +917,6 @@ CreateKeyboardDriverList(HINF InfFile) return List; } -ULONG DefaultLanguageIndex = 0; ULONG GetDefaultLanguageIndex(VOID) @@ -904,8 +924,11 @@ GetDefaultLanguageIndex(VOID) return DefaultLanguageIndex; } + PGENERIC_LIST -CreateLanguageList(HINF InfFile, WCHAR * DefaultLanguage) +CreateLanguageList( + HINF InfFile, + WCHAR *DefaultLanguage) { CHAR Buffer[128]; PGENERIC_LIST List; @@ -980,8 +1003,11 @@ CreateLanguageList(HINF InfFile, WCHAR * DefaultLanguage) return List; } + PGENERIC_LIST -CreateKeyboardLayoutList(HINF InfFile, WCHAR * DefaultKBLayout) +CreateKeyboardLayoutList( + HINF InfFile, + WCHAR *DefaultKBLayout) { CHAR Buffer[128]; PGENERIC_LIST List; @@ -1028,10 +1054,9 @@ CreateKeyboardLayoutList(HINF InfFile, WCHAR * DefaultKBLayout) if (_wcsicmp(LayoutsList[uIndex].LayoutID, KeyName) == 0) { - UserData = (WCHAR*) RtlAllocateHeap(ProcessHeap, - 0, - (wcslen(KeyName) + 1) * sizeof(WCHAR)); - + UserData = (WCHAR*)RtlAllocateHeap(ProcessHeap, + 0, + (wcslen(KeyName) + 1) * sizeof(WCHAR)); if (UserData == NULL) { /* FIXME: Handle error! */ @@ -1067,8 +1092,10 @@ CreateKeyboardLayoutList(HINF InfFile, WCHAR * DefaultKBLayout) return List; } + BOOLEAN -ProcessKeyboardLayoutRegistry(PGENERIC_LIST List) +ProcessKeyboardLayoutRegistry( + PGENERIC_LIST List) { PGENERIC_LIST_ENTRY Entry; PWCHAR LayoutId; @@ -1117,14 +1144,17 @@ ProcessKeyboardLayoutRegistry(PGENERIC_LIST List) #if 0 BOOLEAN -ProcessKeyboardLayoutFiles(PGENERIC_LIST List) +ProcessKeyboardLayoutFiles( + PGENERIC_LIST List) { return TRUE; } #endif + BOOLEAN -SetGeoID(PWCHAR Id) +SetGeoID( + PWCHAR Id) { OBJECT_ATTRIBUTES ObjectAttributes; UNICODE_STRING KeyName; @@ -1133,6 +1163,7 @@ SetGeoID(PWCHAR Id) WCHAR szKeyName[] = L"\\Registry\\User\\.DEFAULT\\Control Panel\\International\\Geo"; WCHAR szValueName[] = L"Nation"; NTSTATUS Status; + RtlInitUnicodeString(&KeyName, szKeyName); InitializeObjectAttributes(&ObjectAttributes, @@ -1143,24 +1174,25 @@ SetGeoID(PWCHAR Id) Status = NtOpenKey(&KeyHandle, KEY_SET_VALUE, - &ObjectAttributes); + &ObjectAttributes); if(!NT_SUCCESS(Status)) { DPRINT1("NtOpenKey() failed (Status %lx)\n", Status); return FALSE; } + RtlInitUnicodeString(&ValueName, szValueName); Status = NtSetValueKey(KeyHandle, - &ValueName, - 0, - REG_SZ, - (PVOID)Id, - (wcslen(Id) + 1) * sizeof(WCHAR)); + &ValueName, + 0, + REG_SZ, + (PVOID)Id, + (wcslen(Id) + 1) * sizeof(WCHAR)); NtClose(KeyHandle); if (!NT_SUCCESS(Status)) { - DPRINT1("NtSetValueKey() failed (Status = %lx)\n", Status); - return FALSE; + DPRINT1("NtSetValueKey() failed (Status = %lx)\n", Status); + return FALSE; } return TRUE; diff --git a/reactos/base/setup/usetup/settings.h b/reactos/base/setup/usetup/settings.h index fb8cd3cdd1e..528247419b6 100644 --- a/reactos/base/setup/usetup/settings.h +++ b/reactos/base/setup/usetup/settings.h @@ -27,42 +27,55 @@ #pragma once PGENERIC_LIST -CreateComputerTypeList(HINF InfFile); +CreateComputerTypeList( + HINF InfFile); PGENERIC_LIST -CreateDisplayDriverList(HINF InfFile); +CreateDisplayDriverList( + HINF InfFile); BOOLEAN -ProcessComputerFiles(HINF InfFile, - PGENERIC_LIST List, - PWCHAR* AdditionalSectionName); +ProcessComputerFiles( + HINF InfFile, + PGENERIC_LIST List, + PWCHAR *AdditionalSectionName); BOOLEAN -ProcessDisplayRegistry(HINF InfFile, - PGENERIC_LIST List); +ProcessDisplayRegistry( + HINF InfFile, + PGENERIC_LIST List); PGENERIC_LIST -CreateKeyboardDriverList(HINF InfFile); +CreateKeyboardDriverList( + HINF InfFile); PGENERIC_LIST -CreateKeyboardLayoutList(HINF InfFile, WCHAR *DefaultKBLayout); +CreateKeyboardLayoutList( + HINF InfFile, + WCHAR *DefaultKBLayout); -PGENERIC_LIST -CreateLanguageList(HINF InfFile, WCHAR * DefaultLanguage); +PGENERIC_LIST +CreateLanguageList( + HINF InfFile, + WCHAR *DefaultLanguage); ULONG GetDefaultLanguageIndex(VOID); BOOLEAN -ProcessLocaleRegistry(PGENERIC_LIST List); +ProcessLocaleRegistry( + PGENERIC_LIST List); BOOLEAN -ProcessKeyboardLayoutRegistry(PGENERIC_LIST List); +ProcessKeyboardLayoutRegistry( + PGENERIC_LIST List); BOOLEAN -ProcessKeyboardLayoutFiles(PGENERIC_LIST List); +ProcessKeyboardLayoutFiles( + PGENERIC_LIST List); BOOLEAN -SetGeoID(PWCHAR Id); +SetGeoID( + PWCHAR Id); /* EOF */ diff --git a/reactos/base/setup/usetup/usetup.h b/reactos/base/setup/usetup/usetup.h index 2dfb99ba469..dd88ca8103b 100644 --- a/reactos/base/setup/usetup/usetup.h +++ b/reactos/base/setup/usetup/usetup.h @@ -113,43 +113,43 @@ extern BOOLEAN InfGetStringField(PINFCONTEXT Context, #define _PAGE_NUMBER_DEFINED typedef enum _PAGE_NUMBER { - START_PAGE, - LANGUAGE_PAGE, - INTRO_PAGE, - LICENSE_PAGE, - INSTALL_INTRO_PAGE, + START_PAGE, + LANGUAGE_PAGE, + INTRO_PAGE, + LICENSE_PAGE, + INSTALL_INTRO_PAGE, -// SCSI_CONTROLLER_PAGE, +// SCSI_CONTROLLER_PAGE, - DEVICE_SETTINGS_PAGE, - COMPUTER_SETTINGS_PAGE, - DISPLAY_SETTINGS_PAGE, - KEYBOARD_SETTINGS_PAGE, - LAYOUT_SETTINGS_PAGE, + DEVICE_SETTINGS_PAGE, + COMPUTER_SETTINGS_PAGE, + DISPLAY_SETTINGS_PAGE, + KEYBOARD_SETTINGS_PAGE, + LAYOUT_SETTINGS_PAGE, - SELECT_PARTITION_PAGE, - CREATE_PARTITION_PAGE, - DELETE_PARTITION_PAGE, + SELECT_PARTITION_PAGE, + CREATE_PARTITION_PAGE, + DELETE_PARTITION_PAGE, - SELECT_FILE_SYSTEM_PAGE, - FORMAT_PARTITION_PAGE, - CHECK_FILE_SYSTEM_PAGE, + SELECT_FILE_SYSTEM_PAGE, + FORMAT_PARTITION_PAGE, + CHECK_FILE_SYSTEM_PAGE, - PREPARE_COPY_PAGE, - INSTALL_DIRECTORY_PAGE, - FILE_COPY_PAGE, - REGISTRY_PAGE, - BOOT_LOADER_PAGE, - BOOT_LOADER_FLOPPY_PAGE, - BOOT_LOADER_HARDDISK_MBR_PAGE, - BOOT_LOADER_HARDDISK_VBR_PAGE, + PREPARE_COPY_PAGE, + INSTALL_DIRECTORY_PAGE, + FILE_COPY_PAGE, + REGISTRY_PAGE, + BOOT_LOADER_PAGE, + BOOT_LOADER_FLOPPY_PAGE, + BOOT_LOADER_HARDDISK_MBR_PAGE, + BOOT_LOADER_HARDDISK_VBR_PAGE, - REPAIR_INTRO_PAGE, + REPAIR_INTRO_PAGE, - SUCCESS_PAGE, - QUIT_PAGE, - FLUSH_PAGE, - REBOOT_PAGE, /* virtual page */ + SUCCESS_PAGE, + QUIT_PAGE, + FLUSH_PAGE, + REBOOT_PAGE, /* virtual page */ } PAGE_NUMBER, *PPAGE_NUMBER; #endif From d8d54df1f6d2d7ebca6b57007f75fded22047b1b Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Mon, 12 May 2014 16:51:40 +0000 Subject: [PATCH 72/92] [CRT] * Update _setmode(). * Fixes some msvcrt tests. CORE-8080 svn path=/trunk/; revision=63260 --- reactos/lib/sdk/crt/stdio/file.c | 36 +++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index 308ba8f4b91..35445e418cc 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -92,6 +92,10 @@ int *__p___mb_cur_max(void); #define WX_NOSEEK 0x40 #define WX_TEXT 0x80 +/* values for exflag - it's used differently in msvcr90.dll*/ +#define EF_UTF8 0x01 +#define EF_UTF16 0x02 + /* FIXME: this should be allocated dynamically */ #define MAX_FILES 2048 #define FD_BLOCK_SIZE 64 @@ -2009,14 +2013,32 @@ int CDECL _read(int fd, void *buf, unsigned int count) */ int CDECL _setmode(int fd,int mode) { - int ret = get_ioinfo(fd)->wxflag & WX_TEXT ? _O_TEXT : _O_BINARY; - if (mode & (~(_O_TEXT|_O_BINARY))) - FIXME("fd (%d) mode (0x%08x) unknown\n",fd,mode); - if ((mode & _O_TEXT) == _O_TEXT) + int ret = get_ioinfo(fd)->wxflag & WX_TEXT ? _O_TEXT : _O_BINARY; + if(ret==_O_TEXT && (get_ioinfo(fd)->exflag & (EF_UTF8|EF_UTF16))) + ret = _O_WTEXT; + + if(mode!=_O_TEXT && mode!=_O_BINARY && mode!=_O_WTEXT + && mode!=_O_U16TEXT && mode!=_O_U8TEXT) { + *_errno() = EINVAL; + return -1; + } + + if(mode == _O_BINARY) { + get_ioinfo(fd)->wxflag &= ~WX_TEXT; + get_ioinfo(fd)->exflag &= ~(EF_UTF8|EF_UTF16); + return ret; + } + get_ioinfo(fd)->wxflag |= WX_TEXT; - else - get_ioinfo(fd)->wxflag &= ~WX_TEXT; - return ret; + if(mode == _O_TEXT) + get_ioinfo(fd)->exflag &= ~(EF_UTF8|EF_UTF16); + else if(mode == _O_U8TEXT) + get_ioinfo(fd)->exflag = (get_ioinfo(fd)->exflag & ~EF_UTF16) | EF_UTF8; + else + get_ioinfo(fd)->exflag = (get_ioinfo(fd)->exflag & ~EF_UTF8) | EF_UTF16; + + return ret; + } /********************************************************************* From 5d0809917f8818abfcf38b6b1a9b3321f16664ab Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Mon, 12 May 2014 18:12:07 +0000 Subject: [PATCH 73/92] [CRT] * Rename alloc_fd_from() to set_fd() and update it. * Fixes some msvcrt tests. CORE-8080 svn path=/trunk/; revision=63261 --- reactos/lib/sdk/crt/stdio/file.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index 35445e418cc..94f36680006 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -253,7 +253,7 @@ static void free_fd(int fd) /* INTERNAL: Allocate an fd slot from a Win32 HANDLE, starting from fd */ /* caller must hold the files lock */ -static int alloc_fd_from(HANDLE hand, int flag, int fd) +static int set_fd(HANDLE hand, int flag, int fd) { ioinfo *fdinfo; @@ -282,7 +282,11 @@ static int alloc_fd_from(HANDLE hand, int flag, int fd) } fdinfo->handle = hand; - fdinfo->wxflag = WX_OPEN | (flag & (WX_DONTINHERIT | WX_APPEND | WX_TEXT)); + fdinfo->wxflag = WX_OPEN | (flag & (WX_DONTINHERIT | WX_APPEND | WX_TEXT | WX_PIPE | WX_NOSEEK)); + fdinfo->lookahead[0] = '\n'; + fdinfo->lookahead[1] = '\n'; + fdinfo->lookahead[2] = '\n'; + fdinfo->exflag = 0; /* locate next free slot */ if (fd == fdstart && fd == fdend) @@ -313,7 +317,7 @@ static int alloc_fd_from(HANDLE hand, int flag, int fd) LOCK_FILES(); TRACE(":handle (%p) allocating fd (%d)\n",hand,fdstart); - ret = alloc_fd_from(hand, flag, fdstart); + ret = set_fd(hand, flag, fdstart); UNLOCK_FILES(); return ret; } @@ -433,7 +437,7 @@ void msvcrt_init_io(void) for (i = 0; i < count; i++) { if ((*wxflag_ptr & WX_OPEN) && *handle_ptr != INVALID_HANDLE_VALUE) - alloc_fd_from(*handle_ptr, *wxflag_ptr, i); + set_fd(*handle_ptr, *wxflag_ptr, i); wxflag_ptr++; handle_ptr++; } @@ -443,7 +447,7 @@ void msvcrt_init_io(void) } if(!__pioinfo[0]) - alloc_fd_from(INVALID_HANDLE_VALUE, 0, 3); + set_fd(INVALID_HANDLE_VALUE, 0, 3); fdinfo = get_ioinfo(0); if (!(fdinfo->wxflag & WX_OPEN) || fdinfo->handle == INVALID_HANDLE_VALUE) @@ -885,7 +889,7 @@ int CDECL _dup2(int od, int nd) if (is_valid_fd(nd)) _close(nd); - ret = alloc_fd_from(handle, wxflag, nd); + ret = set_fd(handle, wxflag, nd); if (ret == -1) { CloseHandle(handle); From a30699ae01586d4a6db5afecf61fd47747791b3e Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Mon, 12 May 2014 19:42:29 +0000 Subject: [PATCH 74/92] [CRT] * Update get_flags(). CORE-8080 svn path=/trunk/; revision=63262 --- reactos/lib/sdk/crt/stdio/file.c | 86 ++++++++++++++++++++++++++++++-- 1 file changed, 82 insertions(+), 4 deletions(-) diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index 94f36680006..64a4cc04b10 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -52,6 +52,12 @@ int *__p__fmode(void); int *__p___mb_cur_max(void); +extern int _commode; + +#ifndef _IOCOMMIT +#define _IOCOMMIT 0x4000 +#endif + #ifdef feof #undef feof #endif @@ -1250,6 +1256,10 @@ static int get_flags(const wchar_t* mode, int *open_flags, int* stream_flags) { int plus = strchrW(mode, '+') != NULL; + TRACE("%s\n", debugstr_w(mode)); + + while(*mode == ' ') mode++; + switch(*mode++) { case 'R': case 'r': @@ -1265,12 +1275,13 @@ static int get_flags(const wchar_t* mode, int *open_flags, int* stream_flags) *stream_flags = plus ? _IORW : _IOWRT; break; default: - _invalid_parameter(NULL, NULL, NULL, 0, 0); - *_errno() = EINVAL; + MSVCRT_INVALID_PMT(0, EINVAL); return -1; } - while (*mode) + *stream_flags |= _commode; + + while (*mode && *mode!=',') switch (*mode++) { case 'B': case 'b': @@ -1281,12 +1292,79 @@ static int get_flags(const wchar_t* mode, int *open_flags, int* stream_flags) *open_flags |= _O_TEXT; *open_flags &= ~_O_BINARY; break; + case 'D': + *open_flags |= _O_TEMPORARY; + break; + case 'T': + *open_flags |= _O_SHORT_LIVED; + break; + case 'c': + *stream_flags |= _IOCOMMIT; + break; + case 'n': + *stream_flags &= ~_IOCOMMIT; + break; + case 'N': + *open_flags |= _O_NOINHERIT; + break; case '+': case ' ': + case 'a': + case 'w': + break; + case 'S': + case 'R': + FIXME("ignoring cache optimization flag: %c\n", mode[-1]); break; default: - FIXME(":unknown flag %c not supported\n",mode[-1]); + ERR("incorrect mode flag: %c\n", mode[-1]); + break; } + + if(*mode == ',') + { + static const WCHAR ccs[] = {'c','c','s'}; + static const WCHAR utf8[] = {'u','t','f','-','8'}; + static const WCHAR utf16le[] = {'u','t','f','-','1','6','l','e'}; + static const WCHAR unicode[] = {'u','n','i','c','o','d','e'}; + + mode++; + while(*mode == ' ') mode++; + if(!MSVCRT_CHECK_PMT(!strncmpW(ccs, mode, sizeof(ccs)/sizeof(ccs[0])))) + return -1; + mode += sizeof(ccs)/sizeof(ccs[0]); + while(*mode == ' ') mode++; + if(!MSVCRT_CHECK_PMT(*mode == '=')) + return -1; + mode++; + while(*mode == ' ') mode++; + + if(!strncmpiW(utf8, mode, sizeof(utf8)/sizeof(utf8[0]))) + { + *open_flags |= _O_U8TEXT; + mode += sizeof(utf8)/sizeof(utf8[0]); + } + else if(!strncmpiW(utf16le, mode, sizeof(utf16le)/sizeof(utf16le[0]))) + { + *open_flags |= _O_U16TEXT; + mode += sizeof(utf16le)/sizeof(utf16le[0]); + } + else if(!strncmpiW(unicode, mode, sizeof(unicode)/sizeof(unicode[0]))) + { + *open_flags |= _O_WTEXT; + mode += sizeof(unicode)/sizeof(unicode[0]); + } + else + { + MSVCRT_INVALID_PMT(0, EINVAL); + return -1; + } + + while(*mode == ' ') mode++; + } + + if(!MSVCRT_CHECK_PMT(*mode == 0)) + return -1; return 0; } From 19d92fec003d32e577c8c89c2e8c09d29887f2d6 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Mon, 12 May 2014 19:44:41 +0000 Subject: [PATCH 75/92] [CRT] * _set_errno() returns an errno_t. * error => value CORE-8080 svn path=/trunk/; revision=63263 --- reactos/lib/sdk/crt/stdlib/errno.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/reactos/lib/sdk/crt/stdlib/errno.c b/reactos/lib/sdk/crt/stdlib/errno.c index 7841d1949ca..049ad2c1fb8 100644 --- a/reactos/lib/sdk/crt/stdlib/errno.c +++ b/reactos/lib/sdk/crt/stdlib/errno.c @@ -56,18 +56,18 @@ errno_t CDECL _get_doserrno(unsigned long *pValue) /********************************************************************* * _set_errno (MSVCRT.@) */ -int CDECL _set_errno(int error) +errno_t CDECL _set_errno(int value) { - *_errno() = error; + *_errno() = value; return 0; } /********************************************************************* * _set_doserrno (MSVCRT.@) */ -errno_t CDECL _set_doserrno(unsigned long error) +errno_t CDECL _set_doserrno(unsigned long value) { - *__doserrno() = error; + *__doserrno() = value; return 0; } From b8780863c039a3ff8f1201c73126272f9e302ed2 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Mon, 12 May 2014 19:54:29 +0000 Subject: [PATCH 76/92] [CRT] * Update _write(). CORE-8080 svn path=/trunk/; revision=63264 --- reactos/lib/sdk/crt/stdio/file.c | 229 +++++++++++++++++++++---------- 1 file changed, 155 insertions(+), 74 deletions(-) diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index 64a4cc04b10..2274b92b96a 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -2194,89 +2194,170 @@ int CDECL _umask(int umask) */ int CDECL _write(int fd, const void* buf, unsigned int count) { - DWORD num_written; - HANDLE hand = fdtoh(fd); + DWORD num_written; + ioinfo *info = get_ioinfo(fd); + HANDLE hand = info->handle; - /* Don't trace small writes, it gets *very* annoying */ + /* Don't trace small writes, it gets *very* annoying */ #if 0 - if (count > 32) - TRACE(":fd (%d) handle (%d) buf (%p) len (%d)\n",fd,hand,buf,count); + if (count > 32) + TRACE(":fd (%d) handle (%d) buf (%p) len (%d)\n",fd,hand,buf,count); #endif - if (hand == INVALID_HANDLE_VALUE) + if (hand == INVALID_HANDLE_VALUE) { - *_errno() = EBADF; - return -1; + *_errno() = EBADF; + return -1; } - /* If appending, go to EOF */ - if (get_ioinfo(fd)->wxflag & WX_APPEND) - _lseek(fd, 0, FILE_END); - - if (!(get_ioinfo(fd)->wxflag & WX_TEXT)) + if (((info->exflag&EF_UTF8) || (info->exflag&EF_UTF16)) && count&1) { - if (WriteFile(hand, buf, count, &num_written, NULL) - && (num_written == count)) - return num_written; - TRACE("WriteFile (fd %d, hand %p) failed-last error (%d)\n", fd, - hand, GetLastError()); - *_errno() = ENOSPC; + *_errno() = EINVAL; + return -1; } - else - { - unsigned int i, j, nr_lf; - char *p = NULL; - const char *q; - const char *s = buf, *buf_start = buf; - /* find number of \n ( without preceding \r ) */ - for ( nr_lf=0,i = 0; i 1) && (s[i-1] == '\r')) nr_lf--; */ - } - } - if (nr_lf) - { - if ((q = p = malloc(count + nr_lf))) - { - for (s = buf, i = 0, j = 0; i < count; i++) - { - if (s[i]== '\n') - { - p[j++] = '\r'; - /*if ((i >1) && (s[i-1] == '\r'))j--;*/ - } - p[j++] = s[i]; - } - } - else - { - FIXME("Malloc failed\n"); - nr_lf =0; - q = buf; - } - } - else - q = buf; - if ((WriteFile(hand, q, count+nr_lf, &num_written, NULL) == 0 ) || (num_written != count+nr_lf)) - { - TRACE("WriteFile (fd %d, hand %p) failed-last error (%d), num_written %d\n", - fd, hand, GetLastError(), num_written); - *_errno() = ENOSPC; - if(nr_lf) - free(p); - return s - buf_start; - } - else - { - if(nr_lf) - free(p); - return count; - } - } - return -1; + /* If appending, go to EOF */ + if (info->wxflag & WX_APPEND) + _lseek(fd, 0, FILE_END); + + if (!(info->wxflag & WX_TEXT)) + { + if (WriteFile(hand, buf, count, &num_written, NULL) + && (num_written == count)) + return num_written; + TRACE("WriteFile (fd %d, hand %p) failed-last error (%d)\n", fd, + hand, GetLastError()); + *_errno() = ENOSPC; + } + else + { + unsigned int i, j, nr_lf, size; + char *p = NULL; + const char *q; + const char *s = buf, *buf_start = buf; + + if (!(info->exflag & (EF_UTF8|EF_UTF16))) + { + /* find number of \n */ + for (nr_lf=0, i=0; iexflag & EF_UTF16) + { + for (nr_lf=0, i=0; i Date: Mon, 12 May 2014 19:55:25 +0000 Subject: [PATCH 77/92] [shell32] partial SHELL_FindExecutable sync to wine svn path=/trunk/; revision=63265 --- reactos/dll/win32/shell32/shlexec.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/reactos/dll/win32/shell32/shlexec.cpp b/reactos/dll/win32/shell32/shlexec.cpp index a2707112b1e..7adbd0d0e03 100644 --- a/reactos/dll/win32/shell32/shlexec.cpp +++ b/reactos/dll/win32/shell32/shlexec.cpp @@ -450,16 +450,14 @@ static UINT_PTR SHELL_ExecuteW(const WCHAR *lpCmd, WCHAR *env, BOOL shWait, startup.cb = sizeof(STARTUPINFOW); startup.dwFlags = STARTF_USESHOWWINDOW; startup.wShowWindow = psei->nShow; + dwCreationFlags = CREATE_UNICODE_ENVIRONMENT; + if (psei->fMask & SEE_MASK_NO_CONSOLE) + dwCreationFlags |= CREATE_NEW_CONSOLE; startup.lpTitle = (LPWSTR)(psei->fMask & (SEE_MASK_HASLINKNAME | SEE_MASK_HASTITLE) ? psei->lpClass : NULL); if (psei->fMask & SEE_MASK_HASLINKNAME) startup.dwFlags |= STARTF_TITLEISLINKNAME; - dwCreationFlags = CREATE_UNICODE_ENVIRONMENT; - - if (psei->fMask & SEE_MASK_NO_CONSOLE) - dwCreationFlags |= CREATE_NEW_CONSOLE; - if (CreateProcessW(NULL, (LPWSTR)lpCmd, NULL, NULL, FALSE, dwCreationFlags, env, lpDirectory, &startup, &info)) { @@ -703,7 +701,13 @@ static UINT SHELL_FindExecutable(LPCWSTR lpPath, LPCWSTR lpFile, LPCWSTR lpOpera lpFile = xlpFile; /* Hey, isn't this value ignored? Why make this call? Shouldn't we return here? --dank*/ } - + else if (lpPath && SearchPathW(NULL, lpFile, wszExe, sizeof(xlpFile)/sizeof(WCHAR), xlpFile, NULL)) + { + TRACE("SearchPathW returned non-zero\n"); + lpFile = xlpFile; + /* The file was found in one of the directories in the system-wide search path */ + } + attribs = GetFileAttributesW(lpFile); if (attribs != INVALID_FILE_ATTRIBUTES && (attribs & FILE_ATTRIBUTE_DIRECTORY)) { From be0a8904eacbe09d2a0347864f8cb858799b6b0a Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Mon, 12 May 2014 20:02:52 +0000 Subject: [PATCH 78/92] [CRT] * Update _wsopen_s(). * Fixes some msvcrt tests. CORE-8080 svn path=/trunk/; revision=63266 --- reactos/lib/sdk/crt/stdio/file.c | 100 ++++++++++++++++++++++++++++--- 1 file changed, 93 insertions(+), 7 deletions(-) diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index 2274b92b96a..401979cd086 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -101,6 +101,10 @@ extern int _commode; /* values for exflag - it's used differently in msvcr90.dll*/ #define EF_UTF8 0x01 #define EF_UTF16 0x02 +#define EF_UNK_UNICODE 0x08 + +static char utf8_bom[3] = { 0xef, 0xbb, 0xbf }; +static char utf16_bom[2] = { 0xff, 0xfe }; /* FIXME: this should be allocated dynamically */ #define MAX_FILES 2048 @@ -1629,6 +1633,29 @@ int CDECL _pipe(int *pfds, unsigned int psize, int textmode) return ret; } +static int check_bom(HANDLE h, int oflags, BOOL seek) +{ + char bom[sizeof(utf8_bom)]; + DWORD r; + + oflags &= ~(_O_WTEXT|_O_U16TEXT|_O_U8TEXT); + + if (!ReadFile(h, bom, sizeof(utf8_bom), &r, NULL)) + return oflags; + + if (r==sizeof(utf8_bom) && !memcmp(bom, utf8_bom, sizeof(utf8_bom))) { + oflags |= _O_U8TEXT; + }else if (r>=sizeof(utf16_bom) && !memcmp(bom, utf16_bom, sizeof(utf16_bom))) { + if (seek && r>2) + SetFilePointer(h, 2, NULL, FILE_BEGIN); + oflags |= _O_U16TEXT; + }else if (seek) { + SetFilePointer(h, 0, NULL, FILE_BEGIN); + } + + return oflags; +} + /********************************************************************* * _sopen_s (MSVCRT.@) */ @@ -1761,11 +1788,7 @@ int CDECL _wsopen_s( int *fd, const wchar_t* path, int oflags, int shflags, int TRACE("fd*: %p :file (%s) oflags: 0x%04x shflags: 0x%04x pmode: 0x%04x\n", fd, debugstr_w(path), oflags, shflags, pmode); - if (!fd) - { - MSVCRT_INVALID_PMT("null out fd pointer", EINVAL); - return EINVAL; - } + if (!MSVCRT_CHECK_PMT( fd != NULL )) return EINVAL; *fd = -1; wxflag = split_oflags(oflags); @@ -1827,17 +1850,80 @@ int CDECL _wsopen_s( int *fd, const wchar_t* path, int oflags, int shflags, int sa.nLength = sizeof( SECURITY_ATTRIBUTES ); sa.lpSecurityDescriptor = NULL; - sa.bInheritHandle = (oflags & _O_NOINHERIT) ? FALSE : TRUE; + sa.bInheritHandle = !(oflags & _O_NOINHERIT); + + if ((oflags&(_O_WTEXT|_O_U16TEXT|_O_U8TEXT)) + && (creation==OPEN_ALWAYS || creation==OPEN_EXISTING) + && !(access&GENERIC_READ)) + { + hand = CreateFileW(path, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, + &sa, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); + if (hand != INVALID_HANDLE_VALUE) + { + oflags = check_bom(hand, oflags, FALSE); + CloseHandle(hand); + } + else + oflags &= ~(_O_WTEXT|_O_U16TEXT|_O_U8TEXT); + } hand = CreateFileW(path, access, sharing, &sa, creation, attrib, 0); - if (hand == INVALID_HANDLE_VALUE) { WARN(":failed-last error (%d)\n",GetLastError()); _dosmaperr(GetLastError()); return *_errno(); } + if (oflags & (_O_WTEXT|_O_U16TEXT|_O_U8TEXT)) + { + if ((access & GENERIC_WRITE) && (creation==CREATE_NEW + || creation==CREATE_ALWAYS || creation==TRUNCATE_EXISTING + || (creation==OPEN_ALWAYS && GetLastError()==ERROR_ALREADY_EXISTS))) + { + if (oflags & _O_U8TEXT) + { + DWORD written = 0, tmp; + + while(written!=sizeof(utf8_bom) && WriteFile(hand, (char*)utf8_bom+written, + sizeof(utf8_bom)-written, &tmp, NULL)) + written += tmp; + if (written != sizeof(utf8_bom)) { + WARN("error writing BOM\n"); + CloseHandle(hand); + _dosmaperr(GetLastError()); + return *_errno(); + } + } + else + { + DWORD written = 0, tmp; + + while(written!=sizeof(utf16_bom) && WriteFile(hand, (char*)utf16_bom+written, + sizeof(utf16_bom)-written, &tmp, NULL)) + written += tmp; + if (written != sizeof(utf16_bom)) + { + WARN("error writing BOM\n"); + CloseHandle(hand); + _dosmaperr(GetLastError()); + return *_errno(); + } + } + } + else if (access & GENERIC_READ) + oflags = check_bom(hand, oflags, TRUE); + } + *fd = alloc_fd(hand, wxflag); + if (*fd == -1) + return *_errno(); + + if (oflags & _O_WTEXT) + get_ioinfo(*fd)->exflag |= EF_UTF16|EF_UNK_UNICODE; + else if (oflags & _O_U16TEXT) + get_ioinfo(*fd)->exflag |= EF_UTF16; + else if (oflags & _O_U8TEXT) + get_ioinfo(*fd)->exflag |= EF_UTF8; TRACE(":fd (%d) handle (%p)\n", *fd, hand); return 0; From cc990618b3e4a77fef345ecdfac5a797d4a4162b Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Mon, 12 May 2014 20:10:38 +0000 Subject: [PATCH 79/92] [CRT] * Reorder some functions. No code changes! CORE-8080 svn path=/trunk/; revision=63267 --- reactos/lib/sdk/crt/stdio/file.c | 236 +++++++++++++++---------------- 1 file changed, 118 insertions(+), 118 deletions(-) diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index 401979cd086..0c7533ef5c2 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -1656,124 +1656,6 @@ static int check_bom(HANDLE h, int oflags, BOOL seek) return oflags; } -/********************************************************************* - * _sopen_s (MSVCRT.@) - */ -int CDECL _sopen_s( int *fd, const char *path, int oflags, int shflags, int pmode ) -{ - DWORD access = 0, creation = 0, attrib; - DWORD sharing; - int wxflag; - HANDLE hand; - SECURITY_ATTRIBUTES sa; - - TRACE("fd*: %p file: (%s) oflags: 0x%04x shflags: 0x%04x pmode: 0x%04x\n", - fd, path, oflags, shflags, pmode); - - if (!fd) - { - MSVCRT_INVALID_PMT("null out fd pointer", EINVAL); - return EINVAL; - } - - *fd = -1; - wxflag = split_oflags(oflags); - switch (oflags & (_O_RDONLY | _O_WRONLY | _O_RDWR)) - { - case _O_RDONLY: access |= GENERIC_READ; break; - case _O_WRONLY: access |= GENERIC_WRITE; break; - case _O_RDWR: access |= GENERIC_WRITE | GENERIC_READ; break; - } - - if (oflags & _O_CREAT) - { - if(pmode & ~(_S_IREAD | _S_IWRITE)) - FIXME(": pmode 0x%04x ignored\n", pmode); - else - WARN(": pmode 0x%04x ignored\n", pmode); - - if (oflags & _O_EXCL) - creation = CREATE_NEW; - else if (oflags & _O_TRUNC) - creation = CREATE_ALWAYS; - else - creation = OPEN_ALWAYS; - } - else /* no _O_CREAT */ - { - if (oflags & _O_TRUNC) - creation = TRUNCATE_EXISTING; - else - creation = OPEN_EXISTING; - } - - switch( shflags ) - { - case _SH_DENYRW: - sharing = 0L; - break; - case _SH_DENYWR: - sharing = FILE_SHARE_READ; - break; - case _SH_DENYRD: - sharing = FILE_SHARE_WRITE; - break; - case _SH_DENYNO: - sharing = FILE_SHARE_READ | FILE_SHARE_WRITE; - break; - default: - ERR( "Unhandled shflags 0x%x\n", shflags ); - return EINVAL; - } - attrib = FILE_ATTRIBUTE_NORMAL; - - if (oflags & _O_TEMPORARY) - { - attrib |= FILE_FLAG_DELETE_ON_CLOSE; - access |= DELETE; - sharing |= FILE_SHARE_DELETE; - } - - sa.nLength = sizeof( SECURITY_ATTRIBUTES ); - sa.lpSecurityDescriptor = NULL; - sa.bInheritHandle = (oflags & _O_NOINHERIT) ? FALSE : TRUE; - - hand = CreateFileA(path, access, sharing, &sa, creation, attrib, 0); - if (hand == INVALID_HANDLE_VALUE) { - WARN(":failed-last error (%d)\n", GetLastError()); - _dosmaperr(GetLastError()); - return *_errno(); - } - - *fd = alloc_fd(hand, wxflag); - - TRACE(":fd (%d) handle (%p)\n", *fd, hand); - return 0; -} - -/********************************************************************* - * _sopen (MSVCRT.@) - */ -int CDECL _sopen( const char *path, int oflags, int shflags, ... ) -{ - int pmode; - int fd; - - if (oflags & _O_CREAT) - { - va_list ap; - - va_start(ap, shflags); - pmode = va_arg(ap, int); - va_end(ap); - } - else - pmode = 0; - - _sopen_s(&fd, path, oflags, shflags, pmode); - return fd; -} - /********************************************************************* * _wsopen_s (MSVCRT.@) */ @@ -1952,6 +1834,124 @@ int CDECL _wsopen( const wchar_t *path, int oflags, int shflags, ... ) return fd; } +/********************************************************************* + * _sopen_s (MSVCRT.@) + */ +int CDECL _sopen_s( int *fd, const char *path, int oflags, int shflags, int pmode ) +{ + DWORD access = 0, creation = 0, attrib; + DWORD sharing; + int wxflag; + HANDLE hand; + SECURITY_ATTRIBUTES sa; + + TRACE("fd*: %p file: (%s) oflags: 0x%04x shflags: 0x%04x pmode: 0x%04x\n", + fd, path, oflags, shflags, pmode); + + if (!fd) + { + MSVCRT_INVALID_PMT("null out fd pointer", EINVAL); + return EINVAL; + } + + *fd = -1; + wxflag = split_oflags(oflags); + switch (oflags & (_O_RDONLY | _O_WRONLY | _O_RDWR)) + { + case _O_RDONLY: access |= GENERIC_READ; break; + case _O_WRONLY: access |= GENERIC_WRITE; break; + case _O_RDWR: access |= GENERIC_WRITE | GENERIC_READ; break; + } + + if (oflags & _O_CREAT) + { + if(pmode & ~(_S_IREAD | _S_IWRITE)) + FIXME(": pmode 0x%04x ignored\n", pmode); + else + WARN(": pmode 0x%04x ignored\n", pmode); + + if (oflags & _O_EXCL) + creation = CREATE_NEW; + else if (oflags & _O_TRUNC) + creation = CREATE_ALWAYS; + else + creation = OPEN_ALWAYS; + } + else /* no _O_CREAT */ + { + if (oflags & _O_TRUNC) + creation = TRUNCATE_EXISTING; + else + creation = OPEN_EXISTING; + } + + switch( shflags ) + { + case _SH_DENYRW: + sharing = 0L; + break; + case _SH_DENYWR: + sharing = FILE_SHARE_READ; + break; + case _SH_DENYRD: + sharing = FILE_SHARE_WRITE; + break; + case _SH_DENYNO: + sharing = FILE_SHARE_READ | FILE_SHARE_WRITE; + break; + default: + ERR( "Unhandled shflags 0x%x\n", shflags ); + return EINVAL; + } + attrib = FILE_ATTRIBUTE_NORMAL; + + if (oflags & _O_TEMPORARY) + { + attrib |= FILE_FLAG_DELETE_ON_CLOSE; + access |= DELETE; + sharing |= FILE_SHARE_DELETE; + } + + sa.nLength = sizeof( SECURITY_ATTRIBUTES ); + sa.lpSecurityDescriptor = NULL; + sa.bInheritHandle = (oflags & _O_NOINHERIT) ? FALSE : TRUE; + + hand = CreateFileA(path, access, sharing, &sa, creation, attrib, 0); + if (hand == INVALID_HANDLE_VALUE) { + WARN(":failed-last error (%d)\n", GetLastError()); + _dosmaperr(GetLastError()); + return *_errno(); + } + + *fd = alloc_fd(hand, wxflag); + + TRACE(":fd (%d) handle (%p)\n", *fd, hand); + return 0; +} + +/********************************************************************* + * _sopen (MSVCRT.@) + */ +int CDECL _sopen( const char *path, int oflags, int shflags, ... ) +{ + int pmode; + int fd; + + if (oflags & _O_CREAT) + { + va_list ap; + + va_start(ap, shflags); + pmode = va_arg(ap, int); + va_end(ap); + } + else + pmode = 0; + + _sopen_s(&fd, path, oflags, shflags, pmode); + return fd; +} + /********************************************************************* * _open (MSVCRT.@) */ From bccd8b7aea85188a6d65921a07fc8f057bd8c1ec Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Mon, 12 May 2014 23:36:05 +0000 Subject: [PATCH 80/92] [KMTEST] Revert the DDK compatibility hack and apply a real fix. I kept the hack for NDK exports, we should consider changing them as well for consistency reasons. svn path=/trunk/; revision=63268 --- rostests/kmtests/npfs/NpfsHelpers.c | 4 --- rostests/kmtests/ntos_ex/ExFastMutex.c | 8 +---- rostests/kmtests/ntos_ex/ExResource.c | 9 +---- rostests/kmtests/ntos_io/IoCreateFile.c | 35 ------------------- rostests/kmtests/ntos_ke/KeEvent.c | 8 +---- rostests/kmtests/ntos_ke/KeGuardedMutex.c | 8 +---- rostests/kmtests/ntos_mm/MmSection.c | 16 ++------- .../kmtests/ntos_mm/ZwAllocateVirtualMemory.c | 16 ++------- rostests/kmtests/ntos_mm/ZwCreateSection.c | 8 +---- rostests/kmtests/ntos_mm/ZwMapViewOfSection.c | 16 ++------- rostests/kmtests/ntos_ob/ObTypes.c | 20 ++++------- 11 files changed, 17 insertions(+), 131 deletions(-) diff --git a/rostests/kmtests/npfs/NpfsHelpers.c b/rostests/kmtests/npfs/NpfsHelpers.c index a06aec7f527..f4cd46e945a 100644 --- a/rostests/kmtests/npfs/NpfsHelpers.c +++ b/rostests/kmtests/npfs/NpfsHelpers.c @@ -742,11 +742,7 @@ KmtStartThread( { Status = ObReferenceObjectByHandle(ThreadHandle, SYNCHRONIZE, -#ifdef _PROPER_NT_EXPORTS *PsThreadType, -#else - PsThreadType, -#endif KernelMode, &ThreadObject, NULL); diff --git a/rostests/kmtests/ntos_ex/ExFastMutex.c b/rostests/kmtests/ntos_ex/ExFastMutex.c index 6ac87b68cc8..db5cf14d0e8 100644 --- a/rostests/kmtests/ntos_ex/ExFastMutex.c +++ b/rostests/kmtests/ntos_ex/ExFastMutex.c @@ -196,13 +196,7 @@ StartThread( InitializeObjectAttributes(&Attributes, NULL, OBJ_KERNEL_HANDLE, NULL, NULL); Status = PsCreateSystemThread(&ThreadData->Handle, GENERIC_ALL, &Attributes, NULL, NULL, AcquireMutexThread, ThreadData); ok_eq_hex(Status, STATUS_SUCCESS); - Status = ObReferenceObjectByHandle(ThreadData->Handle, SYNCHRONIZE, -#ifdef _PROPER_NT_EXPORTS - *PsThreadType, -#else - PsThreadType, -#endif - KernelMode, (PVOID *)&ThreadData->Thread, NULL); + Status = ObReferenceObjectByHandle(ThreadData->Handle, SYNCHRONIZE, *PsThreadType, KernelMode, (PVOID *)&ThreadData->Thread, NULL); ok_eq_hex(Status, STATUS_SUCCESS); return KeWaitForSingleObject(&ThreadData->OutEvent, Executive, KernelMode, FALSE, Timeout); diff --git a/rostests/kmtests/ntos_ex/ExResource.c b/rostests/kmtests/ntos_ex/ExResource.c index 2463c3c9ee5..5ace01a0b0d 100644 --- a/rostests/kmtests/ntos_ex/ExResource.c +++ b/rostests/kmtests/ntos_ex/ExResource.c @@ -268,14 +268,7 @@ StartThread( InitializeObjectAttributes(&Attributes, NULL, OBJ_KERNEL_HANDLE, NULL, NULL); Status = PsCreateSystemThread(&ThreadData->Handle, GENERIC_ALL, &Attributes, NULL, NULL, AcquireResourceThread, ThreadData); ok_eq_hex(Status, STATUS_SUCCESS); - Status = ObReferenceObjectByHandle(ThreadData->Handle, SYNCHRONIZE, -#ifdef _PROPER_NT_EXPORTS - *PsThreadType, -#else - PsThreadType, -#endif - - KernelMode, (PVOID *)&ThreadData->Thread, NULL); + Status = ObReferenceObjectByHandle(ThreadData->Handle, SYNCHRONIZE, *PsThreadType, KernelMode, (PVOID *)&ThreadData->Thread, NULL); ok_eq_hex(Status, STATUS_SUCCESS); return KeWaitForSingleObject(&ThreadData->OutEvent, Executive, KernelMode, FALSE, Timeout); diff --git a/rostests/kmtests/ntos_io/IoCreateFile.c b/rostests/kmtests/ntos_io/IoCreateFile.c index f970e4d7738..836274535d9 100644 --- a/rostests/kmtests/ntos_io/IoCreateFile.c +++ b/rostests/kmtests/ntos_io/IoCreateFile.c @@ -57,11 +57,7 @@ KernelModeTest(IN PVOID Context) { Status = ObReferenceObjectByHandle(TargetHandle, FILE_READ_DATA, -#ifdef _PROPER_NT_EXPORTS *IoFileObjectType, -#else - IoFileObjectType, -#endif KernelMode, (PVOID *)&TargetFileObject, NULL); @@ -107,11 +103,7 @@ KernelModeTest(IN PVOID Context) { Status = ObReferenceObjectByHandle(ParentHandle, FILE_READ_DATA, -#ifdef _PROPER_NT_EXPORTS *IoFileObjectType, -#else - IoFileObjectType, -#endif KernelMode, (PVOID *)&ParentFileObject, NULL); @@ -181,11 +173,7 @@ KernelModeTest(IN PVOID Context) { Status = ObReferenceObjectByHandle(ParentHandle, FILE_READ_DATA, -#ifdef _PROPER_NT_EXPORTS *IoFileObjectType, -#else - IoFileObjectType, -#endif KernelMode, (PVOID *)&ParentFileObject, NULL); @@ -199,11 +187,7 @@ KernelModeTest(IN PVOID Context) ok_eq_long(RtlCompareUnicodeString(&ParentFileObject->FileName, &TargetFileObject->FileName, FALSE), 0); Status = ObReferenceObjectByHandle(SystemRootHandle, FILE_READ_DATA, -#ifdef _PROPER_NT_EXPORTS *IoFileObjectType, -#else - IoFileObjectType, -#endif KernelMode, (PVOID *)&SystemRootFileObject, NULL); @@ -256,12 +240,7 @@ KernelModeTest(IN PVOID Context) { Status = ObReferenceObjectByHandle(ParentHandle, FILE_READ_DATA, -#ifdef _PROPER_NT_EXPORTS *IoFileObjectType, -#else - IoFileObjectType, -#endif - KernelMode, (PVOID *)&ParentFileObject, NULL); @@ -323,12 +302,7 @@ KernelModeTest(IN PVOID Context) { Status = ObReferenceObjectByHandle(ParentHandle, FILE_READ_DATA, -#ifdef _PROPER_NT_EXPORTS *IoFileObjectType, -#else - IoFileObjectType, -#endif - KernelMode, (PVOID *)&ParentFileObject, NULL); @@ -342,12 +316,7 @@ KernelModeTest(IN PVOID Context) ok_eq_long(RtlCompareUnicodeString(&ParentFileObject->FileName, &TargetFileObject->FileName, FALSE), 0); Status = ObReferenceObjectByHandle(SystemRootHandle, FILE_READ_DATA, -#ifdef _PROPER_NT_EXPORTS *IoFileObjectType, -#else - IoFileObjectType, -#endif - KernelMode, (PVOID *)&SystemRootFileObject, NULL); @@ -565,11 +534,7 @@ START_TEST(IoCreateFile) /* Then, just wait on our thread to finish */ Status = ObReferenceObjectByHandle(ThreadHandle, SYNCHRONIZE, -#ifdef _PROPER_NT_EXPORTS *PsThreadType, -#else - PsThreadType, -#endif KernelMode, &ThreadObject, NULL); diff --git a/rostests/kmtests/ntos_ke/KeEvent.c b/rostests/kmtests/ntos_ke/KeEvent.c index 95feb125ace..e6d45db1a99 100644 --- a/rostests/kmtests/ntos_ke/KeEvent.c +++ b/rostests/kmtests/ntos_ke/KeEvent.c @@ -169,13 +169,7 @@ TestEventConcurrent( Threads[i].Signal = FALSE; Status = PsCreateSystemThread(&Threads[i].Handle, GENERIC_ALL, NULL, NULL, NULL, WaitForEventThread, &Threads[i]); ok_eq_hex(Status, STATUS_SUCCESS); - Status = ObReferenceObjectByHandle(Threads[i].Handle, SYNCHRONIZE, -#ifdef _PROPER_NT_EXPORTS - *PsThreadType, -#else - PsThreadType, -#endif - KernelMode, (PVOID *)&Threads[i].Thread, NULL); + Status = ObReferenceObjectByHandle(Threads[i].Handle, SYNCHRONIZE, *PsThreadType, KernelMode, (PVOID *)&Threads[i].Thread, NULL); ok_eq_hex(Status, STATUS_SUCCESS); ThreadObjects[i] = Threads[i].Thread; Priority = KeQueryPriorityThread(Threads[i].Thread); diff --git a/rostests/kmtests/ntos_ke/KeGuardedMutex.c b/rostests/kmtests/ntos_ke/KeGuardedMutex.c index 3acbec1a312..317ca1174fb 100644 --- a/rostests/kmtests/ntos_ke/KeGuardedMutex.c +++ b/rostests/kmtests/ntos_ke/KeGuardedMutex.c @@ -204,13 +204,7 @@ StartThread( InitializeObjectAttributes(&Attributes, NULL, OBJ_KERNEL_HANDLE, NULL, NULL); Status = PsCreateSystemThread(&ThreadData->Handle, GENERIC_ALL, &Attributes, NULL, NULL, AcquireMutexThread, ThreadData); ok_eq_hex(Status, STATUS_SUCCESS); - Status = ObReferenceObjectByHandle(ThreadData->Handle, SYNCHRONIZE, -#ifdef _PROPER_NT_EXPORTS - *PsThreadType, -#else - PsThreadType, -#endif - KernelMode, (PVOID *)&ThreadData->Thread, NULL); + Status = ObReferenceObjectByHandle(ThreadData->Handle, SYNCHRONIZE, *PsThreadType, KernelMode, (PVOID *)&ThreadData->Thread, NULL); ok_eq_hex(Status, STATUS_SUCCESS); return KeWaitForSingleObject(&ThreadData->OutEvent, Executive, KernelMode, FALSE, Timeout); diff --git a/rostests/kmtests/ntos_mm/MmSection.c b/rostests/kmtests/ntos_mm/MmSection.c index e465721d0b7..393dba9866d 100644 --- a/rostests/kmtests/ntos_mm/MmSection.c +++ b/rostests/kmtests/ntos_mm/MmSection.c @@ -428,13 +428,7 @@ START_TEST(MmSection) if (!skip(Status == STATUS_SUCCESS && FileHandle1 != NULL, "Failed to open file 1\n")) { - Status = ObReferenceObjectByHandle(FileHandle1, FILE_READ_DATA | FILE_WRITE_DATA, -#ifdef _PROPER_NT_EXPORTS - *IoFileObjectType, -#else - IoFileObjectType, -#endif - KernelMode, (PVOID *)&FileObject1, NULL); + Status = ObReferenceObjectByHandle(FileHandle1, FILE_READ_DATA | FILE_WRITE_DATA, *IoFileObjectType, KernelMode, (PVOID *)&FileObject1, NULL); ok_eq_hex(Status, STATUS_SUCCESS); ok(FileObject1 != NULL, "FileObject1 is NULL\n"); CheckObject(FileHandle1, 3L, 1L); @@ -442,13 +436,7 @@ START_TEST(MmSection) if (!skip(Status == STATUS_SUCCESS && FileHandle2 != NULL, "Failed to open file 2\n")) { - Status = ObReferenceObjectByHandle(FileHandle2, FILE_READ_DATA | FILE_WRITE_DATA, -#ifdef _PROPER_NT_EXPORTS - *IoFileObjectType, -#else - IoFileObjectType, -#endif - KernelMode, (PVOID *)&FileObject2, NULL); + Status = ObReferenceObjectByHandle(FileHandle2, FILE_READ_DATA | FILE_WRITE_DATA, *IoFileObjectType, KernelMode, (PVOID *)&FileObject2, NULL); ok_eq_hex(Status, STATUS_SUCCESS); ok(FileObject2 != NULL, "FileObject2 is NULL\n"); } diff --git a/rostests/kmtests/ntos_mm/ZwAllocateVirtualMemory.c b/rostests/kmtests/ntos_mm/ZwAllocateVirtualMemory.c index 2d7b7b74824..785cb51030e 100644 --- a/rostests/kmtests/ntos_mm/ZwAllocateVirtualMemory.c +++ b/rostests/kmtests/ntos_mm/ZwAllocateVirtualMemory.c @@ -437,13 +437,7 @@ SystemProcessTest(VOID) goto cleanup; } - Status = ObReferenceObjectByHandle(Thread1, THREAD_ALL_ACCESS, -#ifdef _PROPER_NT_EXPORTS - *PsThreadType, -#else - PsThreadType, -#endif - KernelMode, &ThreadObjects[0], NULL); + Status = ObReferenceObjectByHandle(Thread1, THREAD_ALL_ACCESS, *PsThreadType, KernelMode, &ThreadObjects[0], NULL); if (!NT_SUCCESS(Status)) { trace("error referencing thread1\n"); @@ -457,13 +451,7 @@ SystemProcessTest(VOID) goto cleanup; } - Status = ObReferenceObjectByHandle(Thread2, THREAD_ALL_ACCESS, -#ifdef _PROPER_NT_EXPORTS - *PsThreadType, -#else - PsThreadType, -#endif - KernelMode, &ThreadObjects[1], NULL); + Status = ObReferenceObjectByHandle(Thread2, THREAD_ALL_ACCESS, *PsThreadType, KernelMode, &ThreadObjects[1], NULL); if (!NT_SUCCESS(Status)) { trace("error referencing thread2\n"); diff --git a/rostests/kmtests/ntos_mm/ZwCreateSection.c b/rostests/kmtests/ntos_mm/ZwCreateSection.c index 55720dab999..1e9ccdb2f66 100644 --- a/rostests/kmtests/ntos_mm/ZwCreateSection.c +++ b/rostests/kmtests/ntos_mm/ZwCreateSection.c @@ -464,13 +464,7 @@ BasicBehaviorChecks(HANDLE FileHandle) /* FIXME: Null pointer dereference. See ROSTESTS-108 */ #ifdef ROSTESTS_108_FIXED //mimic lack of section support for a particular file as well. - Status = ObReferenceObjectByHandle(FileHandle, STANDARD_RIGHTS_ALL, -#ifdef _PROPER_NT_EXPORTS - *IoFileObjectType, -#else - IoFileObjectType, -#endif - KernelMode, (PVOID *)&FileObject, NULL); + Status = ObReferenceObjectByHandle(FileHandle, STANDARD_RIGHTS_ALL, *IoFileObjectType, KernelMode, (PVOID *)&FileObject, NULL); if (!skip(NT_SUCCESS(Status), "Cannot reference object by handle\n")) { PSECTION_OBJECT_POINTERS Pointers = FileObject->SectionObjectPointer; diff --git a/rostests/kmtests/ntos_mm/ZwMapViewOfSection.c b/rostests/kmtests/ntos_mm/ZwMapViewOfSection.c index 3a4bcad2336..09083edfa2a 100644 --- a/rostests/kmtests/ntos_mm/ZwMapViewOfSection.c +++ b/rostests/kmtests/ntos_mm/ZwMapViewOfSection.c @@ -390,13 +390,7 @@ BehaviorChecks(HANDLE FileHandleReadOnly, HANDLE FileHandleWriteOnly) Status = PsCreateSystemThread(&SysThreadHandle, STANDARD_RIGHTS_ALL, &ObjectAttributes, NULL, NULL, SystemProcessWorker, NULL); if (!skip(NT_SUCCESS(Status), "Error creating System thread. Error = %p\n", Status)) { - Status = ObReferenceObjectByHandle(SysThreadHandle, THREAD_ALL_ACCESS, -#ifdef _PROPER_NT_EXPORTS - *PsThreadType, -#else - PsThreadType, -#endif - KernelMode, &ThreadObject, NULL); + Status = ObReferenceObjectByHandle(SysThreadHandle, THREAD_ALL_ACCESS, *PsThreadType, KernelMode, &ThreadObject, NULL); if (!skip(NT_SUCCESS(Status), "Error getting reference to System thread when testing file-backed section\n")) { //wait until the system thread actually terminates @@ -521,13 +515,7 @@ PageFileBehaviorChecks() if (!skip(NT_SUCCESS(Status), "Error creating System thread. Error = %p\n", Status)) { - Status = ObReferenceObjectByHandle(SysThreadHandle, THREAD_ALL_ACCESS, -#ifdef _PROPER_NT_EXPORTS - *PsThreadType, -#else - PsThreadType, -#endif - KernelMode, &ThreadObject, NULL); + Status = ObReferenceObjectByHandle(SysThreadHandle, THREAD_ALL_ACCESS, *PsThreadType, KernelMode, &ThreadObject, NULL); if (!skip(NT_SUCCESS(Status), "Error getting reference to System thread when testing pagefile-backed section\n")) { //wait until the system thread actually terminates diff --git a/rostests/kmtests/ntos_ob/ObTypes.c b/rostests/kmtests/ntos_ob/ObTypes.c index 5f2e14fc3b1..70d6e8e7e20 100644 --- a/rostests/kmtests/ntos_ob/ObTypes.c +++ b/rostests/kmtests/ntos_ob/ObTypes.c @@ -164,14 +164,6 @@ TestObjectTypes(VOID) SeDefaultObjectMethod = ObpTypeObjectType->TypeInfo.SecurityProcedure; ok(SeDefaultObjectMethod != NULL, "No SeDefaultObjectMethod\n"); -#ifdef _PROPER_NT_EXPORTS -#define ExSemaphoreObjectType *ExSemaphoreObjectType -#define SeTokenObjectType *SeTokenObjectType -#define PsProcessType *PsProcessType -#define PsThreadType *PsThreadType -#define ExEventObjectType *ExEventObjectType -#define IoFileObjectType *IoFileObjectType -#endif #ifdef _PROPER_NT_NDK_EXPORTS #define ObpTypeObjectType *ObpTypeObjectType #define ObpDirectoryObjectType *ObpDirectoryObjectType @@ -203,16 +195,16 @@ TestObjectTypes(VOID) ok_eq_hex(ObpTypeObjectType->Key, TAG('ObjT')); CheckObjectType(Directory, ObpDirectoryObjectType, OBT_CASE_INSENSITIVE | OBT_PAGED_POOL, 0x100, 0x020003, 0x02000c, 0x020003, 0x0f000f, 0x0f000f); CheckObjectType(SymbolicLink, ObpSymbolicLinkObjectType, OBT_CASE_INSENSITIVE | OBT_PAGED_POOL, 0x100, 0x020001, 0x020000, 0x020001, 0x0f0001, 0x0f0001); - CheckObjectType(Token, SeTokenObjectType, OBT_SECURITY_REQUIRED | OBT_PAGED_POOL, 0x100, 0x020008, 0x0200e0, 0x020000, 0x0f01ff, 0x1f01ff); - CheckObjectType(Process, PsProcessType, OBT_NO_DEFAULT | OBT_SECURITY_REQUIRED, 0x0b0, 0x020410, 0x020beb, 0x120000, 0x1f0fff, 0x1f0fff); - CheckObjectType(Thread, PsThreadType, OBT_NO_DEFAULT | OBT_SECURITY_REQUIRED, 0x0b0, 0x020048, 0x020037, 0x120000, 0x1f03ff, 0x1f03ff); + CheckObjectType(Token, *SeTokenObjectType, OBT_SECURITY_REQUIRED | OBT_PAGED_POOL, 0x100, 0x020008, 0x0200e0, 0x020000, 0x0f01ff, 0x1f01ff); + CheckObjectType(Process, *PsProcessType, OBT_NO_DEFAULT | OBT_SECURITY_REQUIRED, 0x0b0, 0x020410, 0x020beb, 0x120000, 0x1f0fff, 0x1f0fff); + CheckObjectType(Thread, *PsThreadType, OBT_NO_DEFAULT | OBT_SECURITY_REQUIRED, 0x0b0, 0x020048, 0x020037, 0x120000, 0x1f03ff, 0x1f03ff); CheckObjectType(Job, PsJobType, OBT_NO_DEFAULT | OBT_SECURITY_REQUIRED, 0x000, 0x020004, 0x02000b, 0x120000, 0x1f03ff, 0x1f001f); CheckObjectType(DebugObject, DbgkDebugObjectType, OBT_NO_DEFAULT | OBT_SECURITY_REQUIRED, 0x000, 0x020001, 0x020002, 0x120000, 0x1f000f, 0x1f000f); - CheckObjectType(Event, ExEventObjectType, OBT_NO_DEFAULT, 0x100, 0x020001, 0x020002, 0x120000, 0x1f0003, 0x1f0003); + CheckObjectType(Event, *ExEventObjectType, OBT_NO_DEFAULT, 0x100, 0x020001, 0x020002, 0x120000, 0x1f0003, 0x1f0003); CheckObjectType(EventPair, ExEventPairObjectType, 0, 0x100, 0x120000, 0x120000, 0x120000, 0x1f0000, 0x1f0000); CheckObjectType(Mutant, ExMutantObjectType, OBT_NO_DEFAULT, 0x100, 0x020001, 0x020000, 0x120000, 0x1f0001, 0x1f0001); CheckObjectType(Callback, ExCallbackObjectType, OBT_NO_DEFAULT, 0x100, 0x020000, 0x020001, 0x120000, 0x1f0001, 0x1f0001); - CheckObjectType(Semaphore, ExSemaphoreObjectType, OBT_NO_DEFAULT, 0x100, 0x020001, 0x020002, 0x120000, 0x1f0003, 0x1f0003); + CheckObjectType(Semaphore, *ExSemaphoreObjectType, OBT_NO_DEFAULT, 0x100, 0x020001, 0x020002, 0x120000, 0x1f0003, 0x1f0003); CheckObjectType(Timer, ExTimerObjectType, OBT_NO_DEFAULT, 0x100, 0x020001, 0x020002, 0x120000, 0x1f0003, 0x1f0003); CheckObjectType(Profile, ExProfileObjectType, OBT_NO_DEFAULT, 0x100, 0x020001, 0x020001, 0x020001, 0x0f0001, 0x0f0001); CheckObjectType(KeyedEvent, ExpKeyedEventObjectType, OBT_PAGED_POOL, 0x000, 0x020001, 0x020002, 0x020000, 0x0f0003, 0x1f0003); @@ -231,7 +223,7 @@ TestObjectTypes(VOID) 0x100, 0x120089, 0x120116, 0x1200a0, 0x1f01ff, 0x1f01ff); CheckObjectType(Driver, IoDriverObjectType, OBT_CASE_INSENSITIVE, 0x100, 0x120089, 0x120116, 0x1200a0, 0x1f01ff, 0x1f01ff); CheckObjectType(IoCompletion, IoCompletionObjectType, OBT_CASE_INSENSITIVE, 0x110, 0x020001, 0x020002, 0x120000, 0x1f0003, 0x1f0003); - CheckObjectType(File, IoFileObjectType, OBT_NO_DEFAULT | OBT_CUSTOM_SECURITY_PROC | OBT_CASE_INSENSITIVE | OBT_MAINTAIN_HANDLE_COUNT, + CheckObjectType(File, *IoFileObjectType, OBT_NO_DEFAULT | OBT_CUSTOM_SECURITY_PROC | OBT_CASE_INSENSITIVE | OBT_MAINTAIN_HANDLE_COUNT, 0x130, 0x120089, 0x120116, 0x1200a0, 0x1f01ff, 0x1f01ff); CheckObjectType(WmiGuid, WmipGuidObjectType, OBT_NO_DEFAULT | OBT_CUSTOM_SECURITY_PROC | OBT_SECURITY_REQUIRED, 0x100, 0x000001, 0x000002, 0x000010, 0x120fff, 0x1f0fff); From 3ffbea35b3821fd9d9ff56d70252ad7f44b08981 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Mon, 12 May 2014 23:40:14 +0000 Subject: [PATCH 81/92] [DDK] - Remove NTKERNELAPI from Rtl String routines - Remove obsolete hack definition - Fix a typo, spotted by Thomas svn path=/trunk/; revision=63269 --- reactos/include/ddk/ntifs.h | 6 +++--- reactos/include/ddk/wdm.h | 7 ++----- reactos/include/xdk/rtltypes.h | 6 +++--- reactos/include/xdk/wdm.template.h | 4 ++-- 4 files changed, 10 insertions(+), 13 deletions(-) diff --git a/reactos/include/ddk/ntifs.h b/reactos/include/ddk/ntifs.h index 7c4ce754313..53b2d135915 100644 --- a/reactos/include/ddk/ntifs.h +++ b/reactos/include/ddk/ntifs.h @@ -870,11 +870,11 @@ typedef VOID (NTAPI *PRTL_FREE_STRING_ROUTINE)( _In_ __drv_freesMem(Mem) _Post_invalid_ PVOID Buffer); -extern NTKERNELAPI const PRTL_ALLOCATE_STRING_ROUTINE RtlAllocateStringRoutine; -extern NTKERNELAPI const PRTL_FREE_STRING_ROUTINE RtlFreeStringRoutine; +extern const PRTL_ALLOCATE_STRING_ROUTINE RtlAllocateStringRoutine; +extern const PRTL_FREE_STRING_ROUTINE RtlFreeStringRoutine; #if _WIN32_WINNT >= 0x0600 -extern NTKERNELAPI const PRTL_REALLOCATE_STRING_ROUTINE RtlReallocateStringRoutine; +extern const PRTL_REALLOCATE_STRING_ROUTINE RtlReallocateStringRoutine; #endif _Function_class_(RTL_HEAP_COMMIT_ROUTINE) diff --git a/reactos/include/ddk/wdm.h b/reactos/include/ddk/wdm.h index 26ebbf394c9..8d040604b0c 100644 --- a/reactos/include/ddk/wdm.h +++ b/reactos/include/ddk/wdm.h @@ -25,9 +25,6 @@ #ifndef _WDMDDK_ #define _WDMDDK_ -// TEMP HACK! -#define _PROPER_NT_EXPORTS 1 - #define WDM_MAJORVERSION 0x06 #define WDM_MINORVERSION 0x00 @@ -155,9 +152,9 @@ extern "C" { #ifndef __STRINGIFY #define __STRINGIFY(_exp) #_exp #endif -#define _Pragma_redifine_extname(_Name, _Target) _Pragma(__STRINGIFY(redefine_extname _Name _Target)) +#define _Pragma_redefine_extname(_Name, _Target) _Pragma(__STRINGIFY(redefine_extname _Name _Target)) #define __CREATE_NTOS_DATA_IMPORT_ALIAS(_Name) \ - _Pragma_redifine_extname(_Name,__IMPORTNAME(_Name)) + _Pragma_redefine_extname(_Name,__IMPORTNAME(_Name)) #endif #if defined(_WIN64) diff --git a/reactos/include/xdk/rtltypes.h b/reactos/include/xdk/rtltypes.h index 7e56f8c9e1f..fef0604c5e0 100644 --- a/reactos/include/xdk/rtltypes.h +++ b/reactos/include/xdk/rtltypes.h @@ -559,11 +559,11 @@ typedef VOID (NTAPI *PRTL_FREE_STRING_ROUTINE)( _In_ __drv_freesMem(Mem) _Post_invalid_ PVOID Buffer); -extern NTKERNELAPI const PRTL_ALLOCATE_STRING_ROUTINE RtlAllocateStringRoutine; -extern NTKERNELAPI const PRTL_FREE_STRING_ROUTINE RtlFreeStringRoutine; +extern const PRTL_ALLOCATE_STRING_ROUTINE RtlAllocateStringRoutine; +extern const PRTL_FREE_STRING_ROUTINE RtlFreeStringRoutine; #if _WIN32_WINNT >= 0x0600 -extern NTKERNELAPI const PRTL_REALLOCATE_STRING_ROUTINE RtlReallocateStringRoutine; +extern const PRTL_REALLOCATE_STRING_ROUTINE RtlReallocateStringRoutine; #endif _Function_class_(RTL_HEAP_COMMIT_ROUTINE) diff --git a/reactos/include/xdk/wdm.template.h b/reactos/include/xdk/wdm.template.h index 4d9e8f1d000..e525303877b 100644 --- a/reactos/include/xdk/wdm.template.h +++ b/reactos/include/xdk/wdm.template.h @@ -152,9 +152,9 @@ extern "C" { #ifndef __STRINGIFY #define __STRINGIFY(_exp) #_exp #endif -#define _Pragma_redifine_extname(_Name, _Target) _Pragma(__STRINGIFY(redefine_extname _Name _Target)) +#define _Pragma_redefine_extname(_Name, _Target) _Pragma(__STRINGIFY(redefine_extname _Name _Target)) #define __CREATE_NTOS_DATA_IMPORT_ALIAS(_Name) \ - _Pragma_redifine_extname(_Name,__IMPORTNAME(_Name)) + _Pragma_redefine_extname(_Name,__IMPORTNAME(_Name)) #endif #if defined(_WIN64) From 3904749e7d627a2df4fd9b89abd8829353d996cd Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Tue, 13 May 2014 12:58:54 +0000 Subject: [PATCH 82/92] [CRT] * Update split_oflags(). CORE-8080 svn path=/trunk/; revision=63272 --- reactos/lib/sdk/crt/stdio/file.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index 0c7533ef5c2..8de2884d83c 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -1562,6 +1562,9 @@ wchar_t * CDECL _wmktemp(wchar_t *pattern) if (oflags & _O_APPEND) wxflags |= WX_APPEND; if (oflags & _O_BINARY) {/* Nothing to do */} else if (oflags & _O_TEXT) wxflags |= WX_TEXT; + else if (oflags & _O_WTEXT) wxflags |= WX_TEXT; + else if (oflags & _O_U16TEXT) wxflags |= WX_TEXT; + else if (oflags & _O_U8TEXT) wxflags |= WX_TEXT; else if (*__p__fmode() & _O_BINARY) {/* Nothing to do */} else wxflags |= WX_TEXT; /* default to TEXT*/ if (oflags & _O_NOINHERIT) wxflags |= WX_DONTINHERIT; @@ -1571,7 +1574,8 @@ wchar_t * CDECL _wmktemp(wchar_t *pattern) _O_TRUNC|_O_EXCL|_O_CREAT| _O_RDWR|_O_WRONLY|_O_TEMPORARY| _O_NOINHERIT| - _O_SEQUENTIAL|_O_RANDOM|_O_SHORT_LIVED + _O_SEQUENTIAL|_O_RANDOM|_O_SHORT_LIVED| + _O_WTEXT|_O_U16TEXT|_O_U8TEXT ))) ERR(":unsupported oflags 0x%04x\n",unsupp); From 065ed0c86033cf94948ea626b62daf45eebfc03f Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Tue, 13 May 2014 13:11:22 +0000 Subject: [PATCH 83/92] [CRT] * Update fgetwc(). * Fixes some msvcrt tests. CORE-8080 svn path=/trunk/; revision=63273 --- reactos/lib/sdk/crt/stdio/file.c | 80 ++++++++++++++------------------ 1 file changed, 35 insertions(+), 45 deletions(-) diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index 8de2884d83c..b79b46a2fe1 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -2634,60 +2634,50 @@ char * CDECL fgets(char *s, int size, FILE* file) /********************************************************************* * fgetwc (MSVCRT.@) - * - * In _O_TEXT mode, multibyte characters are read from the file, dropping - * the CR from CR/LF combinations */ wint_t CDECL fgetwc(FILE* file) { - int c; + wint_t ret; + int ch; _lock_file(file); - if (!(get_ioinfo(file->_file)->wxflag & WX_TEXT)) - { - wchar_t wc; - unsigned int i; - int j; - char *chp, *wcp; - wcp = (char *)&wc; - for(i=0; i_cnt>0) - { - file->_cnt--; - chp = file->_ptr++; - wcp[i] = *chp; - } - else - { - j = _filbuf(file); - if(file->_cnt<=0) - { - file->_flag |= (file->_cnt == 0) ? _IOEOF : _IOERR; - file->_cnt = 0; - _unlock_file(file); - return WEOF; - } - wcp[i] = j; - } - } + if((get_ioinfo(file->_file)->exflag & (EF_UTF8 | EF_UTF16)) + || !(get_ioinfo(file->_file)->wxflag & WX_TEXT)) { + char *p; - _unlock_file(file); - return wc; + for(p=(char*)&ret; (wint_t*)p<&ret+1; p++) { + ch = fgetc(file); + if(ch == EOF) { + ret = WEOF; + break; + } + *p = (char)ch; + } + }else { + char mbs[MB_LEN_MAX]; + int len = 0; + + ch = fgetc(file); + if(ch != EOF) { + mbs[0] = (char)ch; + if(isleadbyte((unsigned char)mbs[0])) { + ch = fgetc(file); + if(ch != EOF) { + mbs[1] = (char)ch; + len = 2; + } + }else { + len = 1; + } + } + + if(!len || mbtowc(&ret, mbs, len)==-1) + ret = WEOF; } - c = fgetc(file); - if ((__mb_cur_max > 1) && isleadbyte(c)) - { - FIXME("Treat Multibyte characters\n"); - } - - _unlock_file(file); - if (c == EOF) - return WEOF; - else - return (wint_t)c; + _unlock_file(file); + return ret; } /********************************************************************* From 5ddc0c6c38cd0dbba9ef37b214c000ea3150f25b Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Tue, 13 May 2014 16:00:25 +0000 Subject: [PATCH 84/92] [CRT] * Update _isatty(). CORE-8080 svn path=/trunk/; revision=63274 --- reactos/lib/sdk/crt/stdio/file.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index b79b46a2fe1..9573a3e439b 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -530,6 +530,20 @@ static int flush_buffer(FILE* file) return 0; } +/********************************************************************* + * _isatty (MSVCRT.@) + */ +int CDECL _isatty(int fd) +{ + HANDLE hand = fdtoh(fd); + + TRACE(":fd (%d) handle (%p)\n",fd,hand); + if (hand == INVALID_HANDLE_VALUE) + return 0; + + return GetFileType(hand) == FILE_TYPE_CHAR? 1 : 0; +} + /* INTERNAL: Allocate stdio file buffer */ /*static*/ void alloc_buffer(FILE* file) { @@ -1470,20 +1484,6 @@ intptr_t CDECL _get_osfhandle(int fd) return (intptr_t)hand; } -/********************************************************************* - * _isatty (MSVCRT.@) - */ -int CDECL _isatty(int fd) -{ - HANDLE hand = fdtoh(fd); - - TRACE(":fd (%d) handle (%p)\n",fd,hand); - if (hand == INVALID_HANDLE_VALUE) - return 0; - - return GetFileType(hand) == FILE_TYPE_CHAR? 1 : 0; -} - /********************************************************************* * _mktemp (MSVCRT.@) */ From 433b9ce3baaf823b9d6b9b0941b68f49744fb6fa Mon Sep 17 00:00:00 2001 From: Daniel Reimer Date: Tue, 13 May 2014 18:11:07 +0000 Subject: [PATCH 85/92] [TRANSLATIONS] Applications: some corrections and improvements to German translations by zehnvor CORE-8130 #resolve #comment Committed, thx. usetup: German translation revamp by zehnvor CORE-8179 #resolve #comment Committed, thx. DLL: Many improvements to German translations by zehnvor (without the dll patch yet, Wine syncs need no ROS only tranlation IMO) CORE-8216 #comment Committed without the dll patch yet, Wine syncs need no ROS only tranlation IMO svn path=/trunk/; revision=63275 --- .../cmdutils/doskey/lang/de-DE.rc | 6 +- .../applications/cmdutils/find/lang/de-DE.rc | 3 +- .../applications/cmdutils/help/lang/de-DE.rc | 27 +- .../cmdutils/hostname/lang/de-DE.rc | 2 +- .../applications/cmdutils/reg/lang/de-DE.rc | 4 +- .../cmdutils/taskkill/lang/de-DE.rc | 6 +- .../base/applications/logoff/lang/de-DE.rc | 4 +- .../base/applications/magnify/lang/de-DE.rc | 4 +- .../base/applications/msconfig/lang/de-DE.rc | 4 +- .../mscutils/devmgmt/lang/de-DE.rc | 4 +- .../mscutils/servman/lang/de-DE.rc | 8 +- reactos/base/applications/mstsc/lang/de-DE.rc | 2 +- .../network/ipconfig/lang/de-DE.rc | 8 +- .../applications/network/ping/lang/de-DE.rc | 10 +- .../base/applications/notepad/lang/de-DE.rc | 12 +- .../base/applications/regedit/lang/de-DE.rc | 30 +- reactos/base/applications/wordpad/lang/De.rc | 2 +- reactos/base/setup/usetup/lang/de-DE.h | 488 +++++++++--------- reactos/dll/cpl/access/lang/de-DE.rc | 12 +- reactos/dll/cpl/desk/lang/de-DE.rc | 8 +- reactos/dll/cpl/hdwwiz/lang/de-DE.rc | 16 +- reactos/dll/cpl/inetcpl/lang/de-DE.rc | 6 +- reactos/dll/cpl/input/lang/de-DE.rc | 22 +- reactos/dll/cpl/intl/lang/de-DE.rc | 24 +- reactos/dll/cpl/mmsys/lang/de-DE.rc | 6 +- reactos/dll/cpl/sysdm/lang/de-DE.rc | 8 +- reactos/dll/cpl/timedate/lang/de-DE.rc | 12 +- reactos/dll/cpl/usrmgr/lang/de-DE.rc | 7 +- reactos/dll/cpl/usrmgr/lang/en-US.rc | 5 - reactos/dll/cpl/usrmgr/lang/fr-FR.rc | 1 - reactos/dll/cpl/usrmgr/lang/he-IL.rc | 5 - reactos/dll/cpl/usrmgr/lang/ru-RU.rc | 5 - reactos/dll/cpl/usrmgr/lang/uk-UA.rc | 5 - reactos/dll/shellext/deskadp/lang/de-DE.rc | 8 +- reactos/dll/shellext/slayer/lang/de-DE.rc | 4 +- reactos/dll/win32/syssetup/lang/de-DE.rc | 60 +-- 36 files changed, 408 insertions(+), 430 deletions(-) diff --git a/reactos/base/applications/cmdutils/doskey/lang/de-DE.rc b/reactos/base/applications/cmdutils/doskey/lang/de-DE.rc index 943ef392c65..3bb64a48c53 100644 --- a/reactos/base/applications/cmdutils/doskey/lang/de-DE.rc +++ b/reactos/base/applications/cmdutils/doskey/lang/de-DE.rc @@ -9,9 +9,9 @@ DOSKEY [/INSERT | /OVERSTRIKE] [/EXENAME=exe] [/HISTORY] [/LISTSIZE=size]\n\ \n\ /INSERT Aktiviert den Einfügemodus.\n\ /OVERSTRIKE Deaktiviert den Einfügemodus.\n\ - /EXENAME=exename Legt den Namen der Anwendung, auf die die Einstel-\n\ - lungen angewendet werden sollen, fest. Der Standard-\n\ - wert ist cmd.exe.\n\ + /EXENAME=exename Gibt den Namen der Anwendung an, deren Einstellungen\n\ + angezeigt oder geändert werden sollen.\n\ + Der Standardwert ist cmd.exe.\n\ /HISTORY Zeigt den Befehlsverlauf an.\n\ /LISTSIZE=size Legt die Anzahl der Befehle per Verlaufspuffer fest.\n\ /REINSTALL Leert den Befehlsverlauf.\n\ diff --git a/reactos/base/applications/cmdutils/find/lang/de-DE.rc b/reactos/base/applications/cmdutils/find/lang/de-DE.rc index 5224b11bbec..de8d09ea133 100644 --- a/reactos/base/applications/cmdutils/find/lang/de-DE.rc +++ b/reactos/base/applications/cmdutils/find/lang/de-DE.rc @@ -3,7 +3,8 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL STRINGTABLE BEGIN IDS_USAGE "Sucht in einer Datei nach einer Zeichenfolge.\n\n\ - FIND [ /C ] [ /I ] [ /N ] [ /V ] ""string"" [ file... ]\n\ + FIND [ /C ] [ /I ] [ /N ] [ /V ] ""Zeichenfolge""\n\ + [[Laufwerk:][Pfad]Dateiname]]\n\ /C Zeigt nur die Anzahl der die Zeichenfolge enthaltenen Zeilen an.\n\ /I Ignoriert Groß-/Kleinbuchstaben bei der Suche.\n\ /N Zeigt die Zeilen mit ihren Zeilennummern an.\n\ diff --git a/reactos/base/applications/cmdutils/help/lang/de-DE.rc b/reactos/base/applications/cmdutils/help/lang/de-DE.rc index 24e440a1406..05831c3f350 100644 --- a/reactos/base/applications/cmdutils/help/lang/de-DE.rc +++ b/reactos/base/applications/cmdutils/help/lang/de-DE.rc @@ -9,7 +9,7 @@ END STRINGTABLE BEGIN - IDS_USAGE "Liefert Informationen über ReactOS Befehle.\n\n\ + IDS_USAGE "Zeigt die Hilfe für Kommandozeilenbefehle an.\n\n\ HELP [Befehl]\n\n\ Befehl - Zeige Informationen über diesen Befehl.\n" IDS_HELP1 "Übersicht aller verfügbaren Befehle und deren Kurzbeschreibungen\n\n\ @@ -19,12 +19,11 @@ HELP [Befehl]\n\n\ ? Listet alle Befehle auf (ohne Erklärung).\n\ ALIAS Setzt, löscht oder zeigt den Alias.\n\ ATTRIB Zeigt Dateiattribute an bzw. ändert sie.\n\ -BEEP Gibt einen Piepton durch den PC-Speaker aus.\n\ -CALL Ruft eine Batchdatei aus einer anderen Batchdatei heraus auf.\n\ +BEEP Gibt einen Piepton durch den Systemlautsprecher aus.\n\ +CALL Ruft eine Batchdatei aus einer anderen heraus auf.\n\ CD Zeigt den Namen des aktuellen Verzeichnisses an bzw. ändert diesen.\n\ CHCP Zeigt die aktive Codepagenummer an bzw. legt diese fest.\n\ -CHOICE Wartet auf den Benutzer, welcher aus einer Auswahl eine Option\n\ - wählen muss.\n\ +CHOICE Lässt den Benutzer eine Auswahl aus vorgegebenen Optionen treffen.\n\ CLS Löscht den Bildschirminhalt.\n\ CMD Startet eine neue Instanz des ReactOS-Befehlsinterpreters.\n\ COLOR Legt die Farben für Hinter- und Vordergrund der Konsole fest.\n\ @@ -37,10 +36,10 @@ ERASE Löscht eine oder mehrere Dateien.\n\ EXIT Beendet das Programm CMD.EXE (Befehlsinterpreter).\n\ FOR Führt einen angegebenen Befehl für jede Datei in einem Dateiensatz\n\ aus.\n\ -FREE Zeigt den (freien) Speicherplatz an.\n\ +FREE Zeigt die aktuelle Speicherausnutzung für Laufwerke an.\n\ GOTO Setzt den ReactOS-Befehlsinterpreter auf eine markierte Zeile in\n\ einem Batchprogramm.\n\ -HELP Zeigt Hilfeinformationen zu ReactOS-Befehlen an.\n\ +HELP Zeigt die Hilfe für Kommandozeilenbefehle an.\n\ HISTORY Listet alle Befehle auf, welche sich im Speicher befinden.\n\ IF Verarbeitet Ausdrücke in einer Batchdatei abhängig von Bedingungen.\n\ LABEL Erstellt, ändert oder löscht die Bezeichnung eines Volumes.\n\ @@ -56,22 +55,22 @@ PROMPT Ändert die Eingabeaufforderung.\n\ PUSHD Speichert das aktuelle Verzeichnis, und wechselt dann zu einem\n\ anderen Verzeichnis.\n\ RD Entfernt ein Verzeichnis.\n\ -REM Leitet Kommentare in einer Batchdatei.\n\ -REN Benennt eine od. mehrere Dateien um.\n\ -RENAME Benennt eine od. mehrere Dateien um.\n\ +REM Leitet Kommentare in einer Batchdatei ein.\n\ +REN Benennt eine oder mehrere Dateien um.\n\ +RENAME Benennt eine oder mehrere Dateien um.\n\ REPLACE Ersetzt Dateien.\n\ RMDIR Löscht ein Verzeichnis.\n\ -SCREEN Bewegt den Cursor und optional die Ausgabe.\n\ +SCREEN Bewegt den Eingabezeiger und gibt optional Text aus.\n\ SET Setzt oder löscht die Umgebungsvariablen bzw. zeigt sie an.\n\ SHIFT Verändert die Position ersetzbarer Parameter in Batchdateien.\n\ START Startet ein eigenes Fenster, um ein bestimmtes Programm oder einen\n\ Befehl auszuführen.\n\ TIME Zeigt die Systemzeit an bzw. legt sie fest.\n\ -TIMER Erlaubt die Benutzung von bis zu 10 Stoppuhren\n\ +TIMER Erlaubt die Benutzung von bis zu 10 Stoppuhren.\n\ TITLE Legt den Fenstertitel für das Eingabeaufforderungsfenster fest.\n\ TYPE Zeigt den Inhalt einer Textdatei an.\n\ VER Zeigt die ReactOS-Version an.\n\ -VERIFY Legt fest, ob überwacht werden soll, ob Dateien korrekt auf den\n\ - Datenträger geschrieben werden.\n\ +VERIFY Legt fest, ob das ordnungsgemäße Schreiben von Dateien auf den\n\ + Datenträger überprüft werden soll.\n\ VOL Zeigt die Datenträgervolumebezeichnung und die Seriennummer an.\n" END diff --git a/reactos/base/applications/cmdutils/hostname/lang/de-DE.rc b/reactos/base/applications/cmdutils/hostname/lang/de-DE.rc index 9fca99d1f1c..b7a53bf877e 100644 --- a/reactos/base/applications/cmdutils/hostname/lang/de-DE.rc +++ b/reactos/base/applications/cmdutils/hostname/lang/de-DE.rc @@ -4,5 +4,5 @@ STRINGTABLE BEGIN IDS_USAGE "Zeigt den Computernamen an.\n\nhostname" IDS_NOSET "Der Befehl hostname -s wird nicht unterstützt." - IDS_ERROR "Win32 Fehler" + IDS_ERROR "Win32-Fehler" END diff --git a/reactos/base/applications/cmdutils/reg/lang/de-DE.rc b/reactos/base/applications/cmdutils/reg/lang/de-DE.rc index e3cecd1f034..449aec0f45a 100644 --- a/reactos/base/applications/cmdutils/reg/lang/de-DE.rc +++ b/reactos/base/applications/cmdutils/reg/lang/de-DE.rc @@ -2,13 +2,13 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL STRINGTABLE BEGIN - STRING_USAGE "Die Syntax von diesem Befehl ist:\n\nREG [ ADD | DELETE | QUERY ]\nREG Befehl /?\n" + STRING_USAGE "Syntax:\n\nREG [ ADD | DELETE | QUERY ]\nREG Befehl /?\n" STRING_ADD_USAGE "REG ADD Schlüssel [/v Wert | /ve] [/t Typ] [/s Trenner] [/d Daten] [/f]\n" STRING_DELETE_USAGE "REG DELETE Schlüssel [/v Wert | /ve | /va] [/f]\n" STRING_QUERY_USAGE "REG QUERY Schlüssel [/v Wert | /ve] [/s]\n" STRING_SUCCESS "Der Vorgang wurde erfolgreich abgeschlossen\n" STRING_INVALID_KEY "Fehler: Ungültiger Schlüssel\n" STRING_INVALID_CMDLINE "Fehler: Ungültige Befehlszeilenargumente\n" - STRING_NO_REMOTE "Fehler: Konnte Schlüssel nicht zum remote Rechner hinzufügen\n" + STRING_NO_REMOTE "Fehler: Konnte Schlüssel nicht zum entfernten Rechner hinzufügen\n" STRING_CANNOT_FIND "Fehler: Der angegebene Schlüssel oder Wert konnte nicht gefunden werden\n" END diff --git a/reactos/base/applications/cmdutils/taskkill/lang/de-DE.rc b/reactos/base/applications/cmdutils/taskkill/lang/de-DE.rc index 3cf1e124e6f..fa3b99ed95a 100644 --- a/reactos/base/applications/cmdutils/taskkill/lang/de-DE.rc +++ b/reactos/base/applications/cmdutils/taskkill/lang/de-DE.rc @@ -8,12 +8,12 @@ BEGIN STRING_MISSING_OPTION "Fehler: Eine der Optionen /im oder /pid muss angegeben werden.\n" STRING_MISSING_PARAM "Fehler: Option %1 erwartet einen Kommandozeilenparameter.\n" STRING_MUTUAL_EXCLUSIVE "Fehler: Optionen /im und /pid schließen sich gegenseitig aus.\n" - STRING_CLOSE_PID_SEARCH "Schließen Nachricht an Top-Level Fenster des Prozesses mit PID %1!u! gesendet.\n" - STRING_CLOSE_PROC_SRCH "Schließen Nachricht an Top-Level Fenster des Prozesses ""%1"" mit PID %2!u! gesendet.\n" + STRING_CLOSE_PID_SEARCH "Schließen-Befehl an oberstes Fenster des Prozesses mit PID %1!u! gesendet.\n" + STRING_CLOSE_PROC_SRCH "Schließen-Befehl an oberstes Fenster des Prozesses ""%1"" mit PID %2!u! gesendet.\n" STRING_TERM_PID_SEARCH "Prozess mit PID %1!u! wurde erzwungenermaßen beendet.\n" STRING_TERM_PROC_SEARCH "Prozess ""%1"" mit PID %2!u! wurde erzwungenermaßen beendet.\n" STRING_SEARCH_FAILED "Fehler: Konnte Prozess ""%1"" nicht finden.\n" STRING_ENUM_FAILED "Fehler: Prozessliste kann nicht aufgebaut werden.\n" STRING_TERMINATE_FAILED "Fehler: Prozess ""%1"" kann nicht beendet werden.\n" - STRING_SELF_TERMINATION "Fehler: Prozess Selbstterminierung ist nicht gestattet.\n" + STRING_SELF_TERMINATION "Fehler: Der Prozess kann sich nicht selbst beenden.\n" END diff --git a/reactos/base/applications/logoff/lang/de-DE.rc b/reactos/base/applications/logoff/lang/de-DE.rc index b45234bee9a..ddfb48a29a5 100644 --- a/reactos/base/applications/logoff/lang/de-DE.rc +++ b/reactos/base/applications/logoff/lang/de-DE.rc @@ -5,7 +5,7 @@ BEGIN IDS_USAGE "Beendet eine Sitzung.\n\n\ /v\t\tZeigt Informationen zu den Aktionen an, die gerade ausgeführt werden.\n\ /?\t\tZeigt diese Informationen an.\n\n" - IDS_LOGOFF_REMOTE "Beendet eine Sitzung auf einem Server." - IDS_LOGOFF_LOCAL "Beendet eine Sitzung auf dem aktuellen Server." + IDS_LOGOFF_REMOTE "Beendet eine Sitzung auf einem entfernten Rechner." + IDS_LOGOFF_LOCAL "Beendet eine Sitzung auf diesem Rechner." IDS_ILLEGAL_PARAM "Ungültige(r) Parameter\n" END diff --git a/reactos/base/applications/magnify/lang/de-DE.rc b/reactos/base/applications/magnify/lang/de-DE.rc index 31b3c000290..8bdee024aac 100644 --- a/reactos/base/applications/magnify/lang/de-DE.rc +++ b/reactos/base/applications/magnify/lang/de-DE.rc @@ -23,7 +23,7 @@ CAPTION "Über" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN ICON IDI_ICON, IDC_MYICON, 14, 9, 20, 20 - LTEXT "Bildschirm-Lupe Version 1.0", IDC_STATIC, 49, 10, 119, 8, SS_NOPREFIX + LTEXT "Bildschirmlupe Version 1.0", IDC_STATIC, 49, 10, 119, 8, SS_NOPREFIX LTEXT "Copyright (C) 2007 Marc Piulachs (marc.piulachs@codexchange.net)", IDC_STATIC, 48, 24, 125, 22 PUSHBUTTON "OK", IDOK, 162, 48, 50, 14 END @@ -67,5 +67,5 @@ END STRINGTABLE BEGIN - IDS_APP_TITLE "Bildschirm-Lupe" + IDS_APP_TITLE "Bildschirmlupe" END diff --git a/reactos/base/applications/msconfig/lang/de-DE.rc b/reactos/base/applications/msconfig/lang/de-DE.rc index 42f57323bb4..6f5c7cccb96 100644 --- a/reactos/base/applications/msconfig/lang/de-DE.rc +++ b/reactos/base/applications/msconfig/lang/de-DE.rc @@ -3,7 +3,7 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL IDD_MSCONFIG_DIALOG DIALOGEX 0, 0, 378, 220 STYLE DS_SHELLFONT | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU -CAPTION "Systemkonfigurationsprogramm" +CAPTION "Systemkonfiguration" FONT 8, "MS Shell Dlg" BEGIN CONTROL "Tab1", IDC_TAB, "SysTabControl32", WS_TABSTOP, 2, 2, 374, 195 @@ -123,7 +123,7 @@ END STRINGTABLE BEGIN - IDS_MSCONFIG "Systemkonfigurationsprogramm" + IDS_MSCONFIG "Systemkonfiguration" IDS_TAB_GENERAL "Allgemein" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI" diff --git a/reactos/base/applications/mscutils/devmgmt/lang/de-DE.rc b/reactos/base/applications/mscutils/devmgmt/lang/de-DE.rc index 009f7530cbd..3b18371bfb7 100644 --- a/reactos/base/applications/mscutils/devmgmt/lang/de-DE.rc +++ b/reactos/base/applications/mscutils/devmgmt/lang/de-DE.rc @@ -53,7 +53,7 @@ END STRINGTABLE BEGIN - IDS_LICENSE "Dieses Programm ist kostenlos; Sie können es frei verteilen mit od. ohne Änderungen unter der GNU Lesser General Public License, wie es von der Free Software Foundation veröffentlicht wurde; entweder Version 2.1 der Lizenz, oder eine spätere Version (ihrer Wahl).\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." + IDS_LICENSE "Dieses Programm ist Freie Software: Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation, Version 2.1 der Lizenz oder (nach Ihrer Wahl) jeder neueren veröffentlichten Version, weiterverbreiten und/oder modifizieren.\r\n\r\nDieses Programm wird in der Hoffnung, dass es nützlich sein wird, aber OHNE JEDE GEWÄHRLEISTUNG, bereitgestellt; sogar ohne die implizite Gewährleistung der MARKTFÄHIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK.\r\n\r\nSie sollten eine Kopie der GNU General Public License zusammen mit diesem Programm erhalten haben. Wenn nicht, siehe ." END STRINGTABLE @@ -71,7 +71,7 @@ BEGIN IDS_HINT_BLANK " " IDS_HINT_EXIT " Das Programm beenden." IDS_HINT_REFRESH " Die Service-Liste aktualisieren." - IDS_HINT_PROP " Eigenschaften-Seite für die aktuelle Auswahl anzeigen." + IDS_HINT_PROP " Eigenschaften für die aktuelle Auswahl anzeigen." IDS_HINT_HELP " Hilfe-Fenster anzeigen." IDS_HINT_ABOUT " Über ReactOS Geräte-Manager." IDS_HINT_SYS_RESTORE " Dieses Fenster auf normale Größe wiederherstellen." diff --git a/reactos/base/applications/mscutils/servman/lang/de-DE.rc b/reactos/base/applications/mscutils/servman/lang/de-DE.rc index c7e24ca99f3..fdd62f57161 100644 --- a/reactos/base/applications/mscutils/servman/lang/de-DE.rc +++ b/reactos/base/applications/mscutils/servman/lang/de-DE.rc @@ -113,7 +113,7 @@ BEGIN WS_VISIBLE | WS_TABSTOP | TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | TVS_DISABLEDRAGDROP, 8, 151, 234, 67 LTEXT "Einige Dienste sind von anderen Diensten, Systemtreibern und Ladegruppen abhängig. Falls eine Systemkomponente anhält oder nicht einwandfrei ausgeführt wird, kann dies Auswirkungen auf abhängige Dienste haben.", IDC_STATIC, 8, 7, 238, 38 - LTEXT "Dieser Dienst ist von diesen Systemkomponenten abhängig", IDC_STATIC, 8, 57, 236, 9 + LTEXT "Dieser Dienst ist von folgenden Systemkomponenten abhängig", IDC_STATIC, 8, 57, 236, 9 LTEXT "", IDC_DEPEND_SERVICE, 8, 38, 236, 13 END @@ -208,8 +208,8 @@ STRINGTABLE BEGIN IDS_NUM_SERVICES "Anzahl der Dienste: %d" IDS_STOP_DEPENDS "Wenn %s beendet wird, werden diese Dienste ebenfalls beendet" - IDS_NO_DEPENDS "" - IDS_LICENSE "Dieses Programm ist kostenlos; Sie können es frei verteilen mit od. ohne Änderungen unter der GNU Lesser General Public License, wie es von der Free Software Foundation veröffentlicht wurde; entweder Version 2.1 der Lizenz, oder eine spätere Version (ihrer Wahl).\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." + IDS_NO_DEPENDS "" + IDS_LICENSE "Dieses Programm ist Freie Software: Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation, Version 2.1 der Lizenz oder (nach Ihrer Wahl) jeder neueren veröffentlichten Version, weiterverbreiten und/oder modifizieren.\r\n\r\nDieses Programm wird in der Hoffnung, dass es nützlich sein wird, aber OHNE JEDE GEWÄHRLEISTUNG, bereitgestellt; sogar ohne die implizite Gewährleistung der MARKTFÄHIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK.\r\n\r\nSie sollten eine Kopie der GNU General Public License zusammen mit diesem Programm erhalten haben. Wenn nicht, siehe ." END STRINGTABLE @@ -233,7 +233,7 @@ BEGIN IDS_PROGRESS_INFO_RESUME "ReactOS versucht den folgenden Dienst fortzusetzen" IDS_CREATE_SUCCESS "Der Dienst wurde erfolgreich erstellt" IDS_DELETE_SUCCESS "Der Dienst wurde erfolgreich gelöscht" - IDS_CREATE_REQ "Mit einem Sternchen gekennzeichnete Felder sind erforderlich" + IDS_CREATE_REQ "Mit einem Stern (*) gekennzeichnete Felder sind erforderlich" IDS_DELETE_STOP "Sie müssen den Dienst manuell beenden, bevor er gelöscht werden kann!" END diff --git a/reactos/base/applications/mstsc/lang/de-DE.rc b/reactos/base/applications/mstsc/lang/de-DE.rc index 6eed8d7e7a1..e7b9c5595fc 100644 --- a/reactos/base/applications/mstsc/lang/de-DE.rc +++ b/reactos/base/applications/mstsc/lang/de-DE.rc @@ -58,6 +58,6 @@ BEGIN IDS_PIXEL "%lux%lu Pixel" IDS_FULLSCREEN "Vollbild" IDS_BROWSESERVER "" - IDS_HEADERTEXT1 "Remote Desktop" + IDS_HEADERTEXT1 "Remotedesktop" IDS_HEADERTEXT2 "Verbindung" END diff --git a/reactos/base/applications/network/ipconfig/lang/de-DE.rc b/reactos/base/applications/network/ipconfig/lang/de-DE.rc index 3e80462c510..7285cbe79e5 100644 --- a/reactos/base/applications/network/ipconfig/lang/de-DE.rc +++ b/reactos/base/applications/network/ipconfig/lang/de-DE.rc @@ -3,7 +3,7 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL STRINGTABLE BEGIN IDS_BCAST "Broadcast" - IDS_P2P "Peer To Peer" + IDS_P2P "Peer-to-Peer" IDS_MIXED "Gemischt" IDS_HYBRID "Hybrid" IDS_UNKNOWN "Unbekannt" @@ -24,10 +24,10 @@ STRINGTABLE BEGIN IDS_USAGE "\nSyntax:\n \ - ipconfig [/? | /all | /renew [adapter] | /release [adapter] |\n \ + ipconfig [/? | /all | /renew [Adapter] | /release [Adapter] |\n \ /flushdns | /displaydns | /registerdns |\n \ - /showclassid adapter |\n \ - /setclassid adapter [Klassen-ID] ]\n \ + /showclassid Adapter |\n \ + /setclassid Adapter [Klassen-ID] ]\n \ \n \ wobei\n \ Adapter Verbindungsname\n \ diff --git a/reactos/base/applications/network/ping/lang/de-DE.rc b/reactos/base/applications/network/ping/lang/de-DE.rc index c75d7ff148b..e85ff210e5b 100644 --- a/reactos/base/applications/network/ping/lang/de-DE.rc +++ b/reactos/base/applications/network/ping/lang/de-DE.rc @@ -4,15 +4,15 @@ STRINGTABLE BEGIN IDS_USAGE "\nSyntax: ping [-t] [-n Anzahl] [-l Größe] [-w Zeitlimit] Zielhost\n\n\ Optionen:\n\ - -t Sendet fortlaufend Pings an den angegebenen Host.\n\ + -t Sendet fortlaufend Ping-Signale an den angegebenen Host.\n\ Drücken Sie STRG-C, um den Vorgang abzubrechen.\n\ -n Anzahl Anzahl der Echoanforderungen, die gesendet werden.\n\ -l Größe Größe des Sendepuffers.\n\ -w Zeitlimit Zeitlimit in Millisekunden für eine Antwort.\n\n\0" - IDS_PING_WITH_BYTES "\nPingen von %1 [%2] mit %3!d! Bytes Daten:\n\n\0" + IDS_PING_WITH_BYTES "\nPing wird ausgeführt für %1 [%2] mit %3!d! Bytes Daten:\n\n\0" IDS_PING_STATISTICS "\nPing Statistik für %1:\n\0" - IDS_PACKETS_SENT_RECEIVED_LOST " Packets: Gesendet = %1!d!, Empfangen = %2!d!, Verloren = %3!d! (%4!d!%% Verlust),\n\0" + IDS_PACKETS_SENT_RECEIVED_LOST " Pakete: Gesendet = %1!d!, Empfangen = %2!d!, Verloren = %3!d! (%4!d!%% Verlust),\n\0" IDS_APPROXIMATE_ROUND_TRIP "Durchschnittliche Antwortzeit in Millisekunden:\n\0" IDS_MIN_MAX_AVERAGE " Minimum = %1, Maximum = %2, Durchschnitt = %3\n\0" IDS_NOT_ENOUGH_RESOURCES "Nicht genügend freie Resourcen verfügbar.\n\0" @@ -20,9 +20,9 @@ Optionen:\n\ IDS_SETSOCKOPT_FAILED "setsockopt ist fehlgeschlagen (%1!d!).\n\0" IDS_COULD_NOT_CREATE_SOCKET "Konnte keinen Socket erzeugen (#%1!d!).\n\0" IDS_COULD_NOT_INIT_WINSOCK "Die Winsock DLL konnte nicht initialisiert werden.\n\0" - IDS_DEST_MUST_BE_SPECIFIED "Name oder IP-Address des Zielhostes muss angegeben werden.\n\0" + IDS_DEST_MUST_BE_SPECIFIED "Name oder IP-Adresse des Zielhosts muss angegeben werden.\n\0" IDS_BAD_PARAMETER "Ungültiger Parameter %1.\n\0" - IDS_BAD_OPTION_FORMAT "Ungültiges Options-Format %1.\n\0" + IDS_BAD_OPTION_FORMAT "Ungültiges Format %1.\n\0" IDS_BAD_OPTION "Ungültige Option %1.\n\0" IDS_BAD_VALUE_OPTION_L "Ungültiger Wert für Option -l, Erlaubter Bereich ist von 0 bis %1!d!.\n\0" IDS_REPLY_FROM "Antwort von %1: bytes=%2!d! time%3%4 TTL=%5!d!\n\0" diff --git a/reactos/base/applications/notepad/lang/de-DE.rc b/reactos/base/applications/notepad/lang/de-DE.rc index 0f8dc2e8000..d8aa320a830 100644 --- a/reactos/base/applications/notepad/lang/de-DE.rc +++ b/reactos/base/applications/notepad/lang/de-DE.rc @@ -70,7 +70,7 @@ BEGIN END END -/* Dialog 'Page setup' */ +/* Dialog 'Seite einrichten' */ DIALOG_PAGESETUP DIALOGEX 0, 0, 225, 95 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU FONT 8, "MS Shell Dlg" @@ -94,11 +94,11 @@ BEGIN PUSHBUTTON "&Hilfe", IDHELP, 180, 39, 40, 15, WS_TABSTOP END -/* Dialog 'Enkodierung' */ +/* Dialog 'Zeichenkodierung' */ DIALOG_ENCODING DIALOGEX 0, 0, 256, 44 STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPSIBLINGS | WS_CAPTION | WS_SYSMENU FONT 8, "MS Shell Dlg" -CAPTION "Enkodierung" +CAPTION "Zeichenkodierung" BEGIN COMBOBOX ID_ENCODING, 54, 0, 156, 80, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP LTEXT "Kodierung:", 0x155, 5, 2, 41, 12 @@ -113,7 +113,7 @@ FONT 8, "MS Shell Dlg" CAPTION "Gehe zu Zeile" BEGIN EDITTEXT ID_LINENUMBER, 54, 10, 106, 12, WS_CHILD | WS_BORDER | WS_TABSTOP - LTEXT "Zeile Nummer:", 0x155, 5, 12, 45, 12, WS_CHILD | WS_TABSTOP | ES_NUMBER + LTEXT "Zeilennummer:", 0x155, 5, 12, 45, 12, WS_CHILD | WS_TABSTOP | ES_NUMBER DEFPUSHBUTTON "OK", IDOK, 75, 30, 40, 15, WS_CHILD | WS_TABSTOP PUSHBUTTON "Abbrechen", IDCANCEL, 120, 30, 40, 15, WS_CHILD | WS_TABSTOP END @@ -132,7 +132,7 @@ END STRINGTABLE BEGIN - STRING_LICENSE "Dieses Programm ist kostenlos; Sie können es frei verteilen mit od. ohne Änderungen unter der GNU Lesser General Public License, wie es von der Free Software Foundation veröffentlicht wurde; entweder Version 2.1 der Lizenz, oder eine spätere Version (ihrer Wahl).\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." + STRING_LICENSE "Dieses Programm ist Freie Software: Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation, Version 2.1 der Lizenz oder (nach Ihrer Wahl) jeder neueren veröffentlichten Version, weiterverbreiten und/oder modifizieren.\r\n\r\nDieses Programm wird in der Hoffnung, dass es nützlich sein wird, aber OHNE JEDE GEWÄHRLEISTUNG, bereitgestellt; sogar ohne die implizite Gewährleistung der MARKTFÄHIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK.\r\n\r\nSie sollten eine Kopie der GNU General Public License zusammen mit diesem Programm erhalten haben. Wenn nicht, siehe ." END STRINGTABLE @@ -166,7 +166,7 @@ um diese Funktion \nabzuschließen. Beenden Sie eine oder mehrere \ STRING_CANNOTFIND "'%s' wurde nicht gefunden." STRING_ANSI "ANSI" STRING_UNICODE "Unicode" - STRING_UNICODE_BE "Unicode (big endian)" + STRING_UNICODE_BE "Unicode (Big-Endian)" STRING_UTF8 "UTF-8" STRING_CRLF "Windows (CR + LF)" STRING_LF "Unix (LF)" diff --git a/reactos/base/applications/regedit/lang/de-DE.rc b/reactos/base/applications/regedit/lang/de-DE.rc index 188b78018a4..3a0adfc4bf3 100644 --- a/reactos/base/applications/regedit/lang/de-DE.rc +++ b/reactos/base/applications/regedit/lang/de-DE.rc @@ -151,9 +151,9 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP | WS_POPUP | CAPTION "Zeichenkette ändern" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Name:", IDC_STATIC, 6, 6, 134, 8 + LTEXT "&Wertname:", IDC_STATIC, 6, 6, 134, 8 EDITTEXT IDC_VALUE_NAME, 6, 17, 240, 12, ES_AUTOHSCROLL | ES_READONLY - LTEXT "&Daten:", IDC_STATIC, 6, 35, 161, 8 + LTEXT "&Wert:", IDC_STATIC, 6, 35, 161, 8 EDITTEXT IDC_VALUE_DATA, 6, 46, 240, 12, ES_AUTOHSCROLL DEFPUSHBUTTON "OK", IDOK, 142, 64, 50, 14 PUSHBUTTON "Abbrechen", IDCANCEL, 196, 64, 50, 14 @@ -161,12 +161,12 @@ 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 "Multi-Stringwert editieren" +CAPTION "Mehrteilige Zeichenfolge bearbeiten" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Name:", IDC_STATIC, 6, 6, 134, 8 + LTEXT "&Wertname:", IDC_STATIC, 6, 6, 134, 8 EDITTEXT IDC_VALUE_NAME, 6, 17, 240, 12, ES_AUTOHSCROLL | ES_READONLY - LTEXT "&Daten:", IDC_STATIC, 6, 35, 161, 8 + LTEXT "&Wert:", IDC_STATIC, 6, 35, 161, 8 EDITTEXT IDC_VALUE_DATA, 6, 46, 240, 102, ES_AUTOHSCROLL | ES_MULTILINE | ES_WANTRETURN | ES_AUTOVSCROLL | WS_VSCROLL DEFPUSHBUTTON "OK", IDOK, 142, 154, 50, 14 @@ -175,12 +175,12 @@ END IDD_EDIT_BIN_DATA DIALOGEX 32, 24, 252, 174 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Binärwert editieren" +CAPTION "Binärwert bearbeiten" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Name:", IDC_STATIC, 6, 6, 134, 8 + LTEXT "&Wertname:", IDC_STATIC, 6, 6, 134, 8 EDITTEXT IDC_VALUE_NAME, 6, 17, 240, 12, ES_AUTOHSCROLL | ES_READONLY - LTEXT "&Daten:", IDC_STATIC, 6, 35, 161, 8 + LTEXT "&Wert:", IDC_STATIC, 6, 35, 161, 8 CONTROL "", IDC_VALUE_DATA, "HexEdit32", WS_VSCROLL | WS_BORDER | WS_TABSTOP, 6, 46, 240, 102 DEFPUSHBUTTON "OK", IDOK, 142, 154, 50, 14 PUSHBUTTON "Abbrechen", IDCANCEL, 196, 154, 50, 14 @@ -188,12 +188,12 @@ 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 "DWORD-Wert editieren" +CAPTION "DWORD-Wert bearbeiten" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Name:", IDC_STATIC, 6, 6, 134, 8 + LTEXT "&Wertname:", IDC_STATIC, 6, 6, 134, 8 EDITTEXT IDC_VALUE_NAME, 6, 17, 240, 12, ES_AUTOHSCROLL | ES_READONLY - LTEXT "&Daten:", IDC_STATIC, 6, 35, 161, 8 + LTEXT "&Wert:", IDC_STATIC, 6, 35, 161, 8 EDITTEXT IDC_VALUE_DATA, 6, 46, 116, 12, ES_AUTOHSCROLL GROUPBOX "Basis", IDC_STATIC, 130, 35, 116, 39 AUTORADIOBUTTON "&Hexadezimal", IDC_FORMAT_HEX, 141, 46, 60, 10, WS_GROUP @@ -270,7 +270,7 @@ STRINGTABLE BEGIN ID_REGISTRY_MENU "Enthält Befehle für das Arbeiten mit der ganzen Registry" ID_EDIT_MENU "Enthält Befehle für das Ändern von Schlüsseln oder Werten" - ID_VIEW_MENU "Enthält Befehle für das Anpassen des Registry Editor Fensters" + ID_VIEW_MENU "Enthält Befehle für das Anpassen des Editor-Fensters" ID_FAVOURITES_MENU "Enthält Befehle um auf oft genutzte Schlüssel zuzugreifen" ID_HELP_MENU "Enthält Befehle um Hilfe und Informationen über den Registry-Editor anzuzeigen" ID_EDIT_NEW_MENU "Enthält Befehle für das Erstellen von neuen Schlüsseln oder Werten" @@ -289,9 +289,9 @@ BEGIN ID_REGISTRY_UNLOADHIVE "Entlädt einen Hive von der Registry" ID_REGISTRY_CONNECTNETWORKREGISTRY "Verbindet zu einer Registry eines Fremdcomputers" ID_REGISTRY_DISCONNECTNETWORKREGISTRY "Trennt die Verbindung zu der Registry eines Fremdcomputers" - ID_REGISTRY_PRINT "Druckt Teile oder die gesamte Registry aus" + ID_REGISTRY_PRINT "Druckt die gesamte Registry oder Teile davon aus" /* ID_HELP_HELPTOPICS "Öffnet die Hilfe" */ - ID_HELP_ABOUT "Zeigt Programmname, Version und Copyright an" + ID_HELP_ABOUT "Zeigt Versions- und Copyright-Informationen an" END STRINGTABLE @@ -329,7 +329,7 @@ BEGIN IDS_ERR_RENVAL_CAPTION "Fehler beim Umbenennen des Wertes" IDS_ERR_RENVAL_TOEMPTY "Kann %s nicht umbenennen. Der angegebene Name ist leer." IDS_QUERY_IMPORT_HIVE_CAPTION "Wiederherstellen des Schlüssels bestätigen" - IDS_QUERY_IMPORT_HIVE_MSG "Ein Schlüssel wird über den aktuell ausgewählten Schlüssel wiederhergestellt.\nAlle Werte und Unterschlüssel dieses Schlüssels werden dabei gelöscht.\nMöchten Sie den Vorgang fortsetzen?" + IDS_QUERY_IMPORT_HIVE_MSG "Ein Schlüssel wird an der Stelle des aktuell ausgewählten Schlüssels eingefügt.\nAlle Werte und Unterschlüssel dieses Schlüssels werden dabei gelöscht.\nMöchten Sie den Vorgang fortsetzen?" IDS_NEW_KEY "Neuer Schlüssel #%d" IDS_NEW_VALUE "Neuer Wert #%d" END diff --git a/reactos/base/applications/wordpad/lang/De.rc b/reactos/base/applications/wordpad/lang/De.rc index 53e1ba13b02..d22f978062a 100644 --- a/reactos/base/applications/wordpad/lang/De.rc +++ b/reactos/base/applications/wordpad/lang/De.rc @@ -128,7 +128,7 @@ BEGIN MENUITEM "Pink", ID_COLOR_FUCHSIA MENUITEM "Aquamarin", ID_COLOR_AQUA MENUITEM "Weiß", ID_COLOR_WHITE - MENUITEM "Automatic", ID_COLOR_AUTOMATIC + MENUITEM "Automatisch", ID_COLOR_AUTOMATIC END END diff --git a/reactos/base/setup/usetup/lang/de-DE.h b/reactos/base/setup/usetup/lang/de-DE.h index fb9857b9144..731ff05b03f 100644 --- a/reactos/base/setup/usetup/lang/de-DE.h +++ b/reactos/base/setup/usetup/lang/de-DE.h @@ -18,19 +18,19 @@ static MUI_ENTRY deDELanguagePageEntries[] = { 6, 8, - "Sprachauswahl.", + "Sprachauswahl", TEXT_STYLE_NORMAL }, { 8, 10, - "\x07 Bitte whlen Sie die Sprache, die Sie whrend des Setups verwenden", + "\x07 Bitte whlen Sie die Sprache, die Sie whrend der Installation", TEXT_STYLE_NORMAL }, { 11, 11, - "wollen. Dann drcken Sie ENTER.", + "verwenden wollen. Besttigen Sie die Auswahl mit der EINGABETASTE.", TEXT_STYLE_NORMAL }, { @@ -42,7 +42,7 @@ static MUI_ENTRY deDELanguagePageEntries[] = { 0, 0, - "ENTER = Fortsetzen F3 = Beenden", + "EINGABETASTE = Fortsetzen F3 = Installation abbrechen", TEXT_TYPE_STATUS | TEXT_PADDING_BIG }, { @@ -76,13 +76,13 @@ static MUI_ENTRY deDEWelcomePageEntries[] = { 6, 12, - "Computer und bereitet den zweiten Teil des Setups vor.", + "Computer und bereitet die nchsten Schritte vor.", TEXT_STYLE_NORMAL }, { 8, 15, - "\x07 Drcken Sie ENTER, um ReactOS zu installieren.", + "\x07 Drcken Sie die EINGABETASTE, um ReactOS zu installieren.", TEXT_STYLE_NORMAL }, { @@ -100,13 +100,13 @@ static MUI_ENTRY deDEWelcomePageEntries[] = { 8, 21, - "\x07 Drcken Sie F3, um das Setup zu beenden.", + "\x07 Drcken Sie F3, um die Installation abzubrechen.", TEXT_STYLE_NORMAL }, { 6, 23, - "Fr weitere Informationen besuchen Sie bitte:", + "Weitere Informationen erhalten Sie unter:", TEXT_STYLE_NORMAL }, { @@ -118,7 +118,7 @@ static MUI_ENTRY deDEWelcomePageEntries[] = { 0, 0, - "ENTER = Fortsetzen R = Reparieren L = Lizenz F3 = Beenden", + "EINGABETASTE = Fortsetzen R = Reparieren L = Lizenz F3 = Beenden", TEXT_TYPE_STATUS | TEXT_PADDING_BIG }, { @@ -140,79 +140,79 @@ static MUI_ENTRY deDEIntroPageEntries[] = { 6, 8, - "Das ReactOS-Setup ist noch in einer frhen Entwicklungsphase. Es unter-", + "Der Installationsassistent befindet sich noch in der Entwicklungsphase.", TEXT_STYLE_NORMAL }, { 6, 9, - "sttzt noch nicht alle Funktionen eines vollstndig nutzbaren Setups.", + "Einige Funktionen werden noch nicht vollstndig untersttzt.", TEXT_STYLE_NORMAL }, { 6, 12, - "Es gibt folgende Beschrnkungen:", + "Es existieren folgende Beschrnkungen:", TEXT_STYLE_NORMAL }, { 8, 13, - "- Setup kann nur eine primre Partition auf einer HDD verwalten.", + "- Nur primre Festplattenpartitionen knnen verwaltet werden.", TEXT_STYLE_NORMAL }, { 8, 14, - "- Setup kann keine primre Partition von einer HDD lschen,", + "- Eine primre Partition kann nicht gelscht werden,", TEXT_STYLE_NORMAL }, { 8, 15, - " so lange erweiterte Partitionen auf dieser HDD existieren.", + " solange erweiterte Partitionen auf der Festplatte existieren.", TEXT_STYLE_NORMAL }, { 8, 16, - "- Setup kann die erste erweiterte Partition nicht von der HDD lschen,", + "- Die jeweils erste erweiterte Partition kann nicht gelscht werden,", TEXT_STYLE_NORMAL }, { 8, 17, - " so lange weitere erweiterte Partitionen auf dieser HDD existieren.", + " solange weitere erweiterte Partitionen auf der Festplatte existieren.", TEXT_STYLE_NORMAL }, { 8, 18, - "- Setup untersttzt nur FAT-Dateisysteme.", + "- Es werden nur FAT-Dateisysteme untersttzt.", TEXT_STYLE_NORMAL }, { 8, 19, - "- Dateisystemberprfung ist noch nicht implementiert.", + "- Die Dateisystemberprfung ist noch nicht implementiert.", TEXT_STYLE_NORMAL }, { 8, 23, - "\x07 Drcken Sie ENTER, um ReactOS zu installieren.", + "\x07 Drcken Sie die EINGABETASTE, um ReactOS zu installieren.", TEXT_STYLE_NORMAL }, { 8, 25, - "\x07 Drcken Sie F3, um das Setup zu beenden.", + "\x07 Drcken Sie F3, um die Installation abzubrechen.", TEXT_STYLE_NORMAL }, { 0, 0, - "ENTER = Fortsetzen F3 = Beenden", + "EINGABETASTE = Fortsetzen F3 = Installation abbrechen", TEXT_TYPE_STATUS| TEXT_PADDING_BIG }, { @@ -240,103 +240,103 @@ static MUI_ENTRY deDELicensePageEntries[] = { 8, 8, - "The ReactOS System is licensed under the terms of the", + "ReactOS ist unter den Bedingungen der GNU General Public License", TEXT_STYLE_NORMAL }, { 8, 9, - "GNU GPL with parts containing code from other compatible", + "lizenziert. Einige Teile von ReactOS stehen unter dazu kompatiblen", TEXT_STYLE_NORMAL }, { 8, 10, - "licenses such as the X11 or BSD and GNU LGPL licenses.", + "Lizenzen wie der BSD- oder GNU LGPL-Lizenz.", TEXT_STYLE_NORMAL }, { 8, 11, - "All software that is part of the ReactOS system is", + "Smtliche Software in ReactOS daher unter der", TEXT_STYLE_NORMAL }, { 8, 12, - "therefore released under the GNU GPL as well as maintaining", + "GNU GPL verffentlicht, behalten daneben aber ihre", TEXT_STYLE_NORMAL }, { 8, 13, - "the original license.", + "ursprnglichen Lizenzen bei.", TEXT_STYLE_NORMAL }, { 8, 15, - "This software comes with NO WARRANTY or restrictions on usage", + "ReactOS ist freie Software. Die Verffentlichung dieses Programms", TEXT_STYLE_NORMAL }, { 8, 16, - "save applicable local and international law. The licensing of", + "erfolgt in der Hoffnung, dass es Ihnen von Nutzen sein wird,", TEXT_STYLE_NORMAL }, { 8, 17, - "ReactOS only covers distribution to third parties.", + "aber OHNE IRGENDEINE GARANTIE,", TEXT_STYLE_NORMAL }, { 8, 18, - "If for some reason you did not receive a copy of the", + "sogar ohne die implizite Garantie der MARKTREIFE", TEXT_STYLE_NORMAL }, { 8, 19, - "GNU General Public License with ReactOS please visit", + "oder der VERWENDBARKEIT FR EINEN BESTIMMTEN ZWECK.", TEXT_STYLE_NORMAL }, { 8, 20, - "http://www.gnu.org/licenses/licenses.html", - TEXT_STYLE_HIGHLIGHT - }, - { - 8, - 22, - "Warranty:", - TEXT_STYLE_HIGHLIGHT - }, - { - 8, - 24, - "This is free software; see the source for copying conditions.", + "Details finden Sie in der GNU General Public License.", TEXT_STYLE_NORMAL }, { 8, - 25, - "There is NO warranty; not even for MERCHANTABILITY or", + 22, + "Sie sollten ein Exemplar der GNU General Public License", + TEXT_STYLE_NORMAL + }, + { + 8, + 23, + "zusammen mit ReactOS erhalten haben.", + TEXT_STYLE_NORMAL + }, + { + 8, + 24, + "Falls nicht, besuchen Sie bitte", TEXT_STYLE_NORMAL }, { 8, 26, - "FITNESS FOR A PARTICULAR PURPOSE", - TEXT_STYLE_NORMAL + "http://www.gnu.org/licenses", + TEXT_STYLE_HIGHLIGHT }, { 0, 0, - "ENTER = Zurck", + "EINGABETASTE = Zurck", TEXT_TYPE_STATUS | TEXT_PADDING_BIG }, { @@ -364,13 +364,13 @@ static MUI_ENTRY deDEDevicePageEntries[] = { 24, 11, - "Computer:", + "Computertyp:", TEXT_STYLE_NORMAL | TEXT_ALIGN_RIGHT }, { 24, 12, - "Bildschirm:", + "Anzeige:", TEXT_STYLE_NORMAL | TEXT_ALIGN_RIGHT }, { @@ -382,15 +382,15 @@ static MUI_ENTRY deDEDevicePageEntries[] = { 24, 14, - " Tastaturlayout:", + "Tastaturlayout:", TEXT_STYLE_NORMAL | TEXT_ALIGN_RIGHT }, - { + /*{ 24, 16, "Akzeptieren:", TEXT_STYLE_NORMAL | TEXT_ALIGN_RIGHT - }, + },*/ { 25, 16, "Diese Gerteeinstellungen akzeptieren", @@ -399,13 +399,13 @@ static MUI_ENTRY deDEDevicePageEntries[] = { 6, 19, - "Sie knnen die Einstellungen durch die Pfeiltasten auswhlen.", + "Sie knnen die Einstellungen durch die PFEILTASTEN auswhlen.", TEXT_STYLE_NORMAL }, { 6, 20, - "Dann drcken Sie die Eingabetaste, um eine Einstellung zu ndern.", + "Drcken Sie die EINGABETASTE, um eine Einstellung zu ndern.", TEXT_STYLE_NORMAL }, { @@ -423,13 +423,13 @@ static MUI_ENTRY deDEDevicePageEntries[] = { 6, 24, - "einstellungen akzeptieren\" und drcken danach die Eingabetaste.", + "einstellungen akzeptieren\" und besttigen mit der EINGABETASTE.", TEXT_STYLE_NORMAL }, { 0, 0, - "ENTER = Fortsetzen F3 = Beenden", + "EINGABETASTE = Fortsetzen F3 = Installation abbrechen", TEXT_TYPE_STATUS | TEXT_PADDING_BIG }, { @@ -451,49 +451,55 @@ static MUI_ENTRY deDERepairPageEntries[] = { 6, 8, - "Das ReactOS-Setup ist noch in einer frhen Entwicklungsphase. Es unter-", + "Der Installationsassistent ist noch der Entwicklungsphase.", TEXT_STYLE_NORMAL }, { 6, 9, - "sttzt noch nicht alle Funktionen eines vollstndig nutzbaren Setups.", + "Er untersttzt noch nicht alle Funktionen eines vollstndig", TEXT_STYLE_NORMAL }, { 6, 12, + "nutzbaren Setups.", + TEXT_STYLE_NORMAL + }, + { + 6, + 14, "Die Reparaturfunktionen sind noch nicht implementiert.", TEXT_STYLE_NORMAL }, { 8, - 15, + 16, "\x07 Drcken Sie U, um ReactOS zu aktualisieren.", TEXT_STYLE_NORMAL }, { 8, - 17, + 19, "\x07 Drcken Sie R, fr die Wiederherstellungskonsole.", TEXT_STYLE_NORMAL }, { 8, - 19, + 20, "\x07 Drcken Sie ESC, um zur Hauptseite zurckzukehren.", TEXT_STYLE_NORMAL }, { 8, - 21, - "\x07 Drcken Sie ENTER, um den Computer neu zu starten.", + 22, + "\x07 Drcken Sie die EINGABETASTE, um den Computer neu zu starten.", TEXT_STYLE_NORMAL }, { 0, 0, - "ESC = Hauptseite U = Update R = Recovery ENTER = Neustarten", + "ESC = Zurck U = Aktualisieren R = Wiederherst. EINGABETASTE = Neustart", TEXT_TYPE_STATUS | TEXT_PADDING_BIG }, { @@ -514,19 +520,19 @@ static MUI_ENTRY deDEComputerPageEntries[] = { 6, 8, - "Sie wollen den Computertyp ndern, der installiert wird.", + "Den zu installierenden Computertyp einstellen.", TEXT_STYLE_NORMAL }, { 8, 10, - "\x07 Drcken Sie die HOCH- oder RUNTER-Taste, um den gewnschten", + "\x07 Drcken Sie die PFEILTASTEN, um den gewnschten", TEXT_STYLE_NORMAL }, { 8, 11, - " Typ zu whlen. Dann drcken Sie ENTER.", + " Typ zu whlen. Besttigen Sie mit der EINGABETASTE.", TEXT_STYLE_NORMAL }, { @@ -544,7 +550,7 @@ static MUI_ENTRY deDEComputerPageEntries[] = { 0, 0, - "ENTER = Fortsetzen ESC = Abbrechen F3 = Beenden", + "EINGABETASTE = Fortsetzen ESC = Zurck F3 = Installation abbrechen", TEXT_TYPE_STATUS | TEXT_PADDING_BIG }, { @@ -566,25 +572,25 @@ static MUI_ENTRY deDEFlushPageEntries[] = { 10, 6, - "Das System vergewissert sich, dass alle Daten gespeichert sind.", + "Die geschrieben Daten werden berprft", TEXT_STYLE_NORMAL }, { 10, 8, - "Dies kann einige Minuten in Anspruch nehmen.", + "Dies kann einige Zeit in Anspruch nehmen.", TEXT_STYLE_NORMAL }, { 10, 9, - "Der PC wird automatisch neustarten, wenn der Vorgang beendet ist.", + "Der PC wird automatisch neu gestartet, sobald der Vorgang beendet ist.", TEXT_STYLE_NORMAL }, { 0, 0, - "Cache wird geleert", + "Der Zwischenspeicher wird geleert", TEXT_TYPE_STATUS | TEXT_PADDING_BIG }, { @@ -612,19 +618,13 @@ static MUI_ENTRY deDEQuitPageEntries[] = { 10, 8, - "Entfernen Sie die Diskette aus Laufwerk A: und", - TEXT_STYLE_NORMAL - }, - { - 10, - 9, - "alle CD-ROMs aus den CD-Laufwerken.", + "Entfernen Sie alle Datentrger aus den CD-Laufwerken.", TEXT_STYLE_NORMAL }, { 10, 11, - "Drcken Sie ENTER, um den Computer neuzustarten.", + "Drcken Sie die EINGABETASTE, um den Computer neu zu starten.", TEXT_STYLE_NORMAL }, { @@ -652,18 +652,18 @@ static MUI_ENTRY deDEDisplayPageEntries[] = { 6, 8, - "Sie wollen den Bildschirmtyp ndern, der installiert wird.", + "Sie wollen den zu installierenden Bildschirmtyp ndern.", TEXT_STYLE_NORMAL }, { 8, 10, - "\x07 Drcken Sie die HOCH- oder RUNTER-Taste, um den gewnschten", + "\x07 Benutzen Sie die PFEILTASTEN, um den gewnschten", TEXT_STYLE_NORMAL }, { 8, 11, - " Typ zu whlen. Dann drcken Sie ENTER.", + " Typ zu whlen. Besttigen Sie mit der EINGABETASTE.", TEXT_STYLE_NORMAL }, { @@ -681,7 +681,7 @@ static MUI_ENTRY deDEDisplayPageEntries[] = { 0, 0, - "ENTER = Fortsetzen ESC = Abbrechen F3 = Beenden", + "EEINGABETASTE = Fortsetzen ESC = Zurck F3 = Installation abbrechen", TEXT_TYPE_STATUS | TEXT_PADDING_BIG }, { @@ -703,31 +703,25 @@ static MUI_ENTRY deDESuccessPageEntries[] = { 10, 6, - "Die Standardkomponenten von ReactOS wurden erfolgreich installiert.", + "Die Grundkomponenten von ReactOS wurden erfolgreich installiert.", TEXT_STYLE_NORMAL }, { 10, 8, - "Entfernen Sie die Diskette aus Laufwerk A: und", - TEXT_STYLE_NORMAL - }, - { - 10, - 9, - "alle CD-ROMs aus den CD-Laufwerken.", + "Entfernen Sie alle Datentrger aus den CD-Laufwerken.", TEXT_STYLE_NORMAL }, { 10, 11, - "Drcken Sie ENTER, um den Computer neuzustarten.", + "Drcken Sie die EINGABETASTE, um den Computer neu zu starten.", TEXT_STYLE_NORMAL }, { 0, 0, - "ENTER = Computer neustarten", + "EINGABETASTE = Computer neu starten", TEXT_TYPE_STATUS | TEXT_PADDING_BIG }, { @@ -749,13 +743,13 @@ static MUI_ENTRY deDEBootPageEntries[] = { 6, 8, - "Das Setup kann das Boot-Sektor nicht auf der", + "Der Bootsektor konnte nicht auf der", TEXT_STYLE_NORMAL }, { 6, 9, - "Festplatte Ihres Computers installieren", + "Festplatte Ihres Computers installiert werden.", TEXT_STYLE_NORMAL }, { @@ -767,13 +761,13 @@ static MUI_ENTRY deDEBootPageEntries[] = { 6, 14, - "drcken Sie ENTER.", + "drcken Sie die EINGABETASTE.", TEXT_STYLE_NORMAL, }, { 0, 0, - "ENTER = Fortsetzen F3 = Beenden", + "EINGABETASTE = Fortsetzen F3 = Installation abbrechen", TEXT_TYPE_STATUS | TEXT_PADDING_BIG }, { @@ -796,37 +790,37 @@ static MUI_ENTRY deDESelectPartitionEntries[] = { 6, 8, - "Diese Liste zeigt existierende Partitionen an und den freien", + "Diese Liste zeigt die existierenden Partitionen und ", TEXT_STYLE_NORMAL }, { 6, 9, - "Speicherplatz fr neue Partitionen.", + "freien Speicherplatz fr neue Partitionen auf der Festplatte an.", TEXT_STYLE_NORMAL }, { 8, 11, - "\x07 Drcken Sie die Pfeiltasten, um eine Partition auszuwhlen.", + "\x07 Benutzen Sie die PFEILTASTEN, um eine Partition auszuwhlen.", TEXT_STYLE_NORMAL }, { 8, 13, - "\x07 Drcken Sie die Eingabetaste, um die Auswahl zu besttigen.", + "\x07 Besttigen Sie Ihre Auswahl mit der EINGABETASTE.", TEXT_STYLE_NORMAL }, { 8, 15, - "\x07 Drcken Sie C, um eine neue Partition zu erstellen.", + "\x07 C erstellt eine neue Partition.", TEXT_STYLE_NORMAL }, { 8, 17, - "\x07 Drcken Sie D, um eine vorhandene Partition zu lschen.", + "\x07 D lscht eine vorhandene Partition.", TEXT_STYLE_NORMAL }, { @@ -854,25 +848,25 @@ static MUI_ENTRY deDEFormatPartitionEntries[] = { 6, 8, - "Formatiere Partition", - TEXT_STYLE_NORMAL + "Formatierung der Partition", + TEXT_STYLE_HIGHLIGHT }, { 6, 10, - "Setup wird nun die gewnschte Partition formatieren.", + "Die gewnschte Partition wird nun formatiert.", TEXT_STYLE_NORMAL }, { 6, 11, - "Drcken Sie die Eingabetaste, um fortzufahren.", + "Drcken Sie die EINGABETASTE, um fortzufahren.", TEXT_STYLE_NORMAL }, { 0, 0, - "ENTER = Fortfahren F3 = Beenden", + "EINGABETASTE = Fortfahren F3 = Installation abbrechen", TEXT_TYPE_STATUS | TEXT_PADDING_BIG }, { @@ -894,31 +888,37 @@ static MUI_ENTRY deDEInstallDirectoryEntries[] = { 6, 8, - "Setup installiert die ReactOS-Installationsdateien in die ausgewhlte", + "Die Installationsdateien werden auf die ausgewhlte Partition kopiert.", TEXT_STYLE_NORMAL }, { 6, 9, - "Partition. Whlen Sie ein Installationsverzeichnis fr ReactOS:", + "Whlen Sie ein Installationsverzeichnis fr ReactOS:", TEXT_STYLE_NORMAL }, { 6, 14, - "Um den Vorschlag zu ndern drcken sie die 'Entf'-Taste, um", + "Geben Sie den Namen des Verzeichnisses an.", TEXT_STYLE_NORMAL }, { 6, 15, - "Zeichen zu lschen, und geben sie dann den Namen des Verzeichnis ein", + "Benutzen Sie die Entf-TASTE, um Zeichen zu lschen.", + TEXT_STYLE_NORMAL + }, + { + 6, + 17, + "Besttigen Sie die Eingabe mit der EINGABETASTE.", TEXT_STYLE_NORMAL }, { 0, 0, - "ENTER = Fortfahren F3 = Beenden", + "EINGABETASTE = Fortfahren F3 = Installation abbrechen", TEXT_TYPE_STATUS | TEXT_PADDING_BIG }, { @@ -940,19 +940,19 @@ static MUI_ENTRY deDEFileCopyEntries[] = { 0, 12, - "Bitte warten Sie, whrend das ReactOS-Setup die ReactOS-Dateien", + "Die bentigten Dateien werden in das Installationsverzeichnis kopiert.", TEXT_STYLE_NORMAL | TEXT_ALIGN_CENTER }, { 0, 13, - "in das Installationsverzeichnis kopiert.", + "Dieser Vorgang kann einige Zeit in Anspruch nehmen -", TEXT_STYLE_NORMAL | TEXT_ALIGN_CENTER }, { 0, 14, - "Dieser Vorgang kann mehrere Minuten in Anspruch nehmen.", + "Bitte haben Sie einen Moment Geduld.", TEXT_STYLE_NORMAL | TEXT_ALIGN_CENTER }, { @@ -980,37 +980,37 @@ static MUI_ENTRY deDEBootLoaderEntries[] = { 6, 8, - "Setup installiert nun den Boot-Loader.", + "Bestimmen Sie, wo der Bootloader installiert werden soll:", TEXT_STYLE_NORMAL }, { 8, 12, - "Boot-Loader auf der Festplatte installieren (MBR und VBR).", + "Bootloader auf der Festplatte installieren (MBR und VBR)", TEXT_STYLE_NORMAL }, { 8, 13, - "Boot-Loader auf der Festplatte installieren (nur VBR).", + "Bootloader auf der Festplatte installieren (nur VBR)", TEXT_STYLE_NORMAL }, { 8, 14, - "Boot-Loader auf einer Diskette installieren.", + "Bootloader auf einer Diskette installieren", TEXT_STYLE_NORMAL }, { 8, 15, - "Boot-Loader nicht installieren.", + "Bootloader nicht installieren", TEXT_STYLE_NORMAL }, { 0, 0, - "ENTER = Fortfahren F3 = Abbrechen", + "EINGABETASTE = Fortfahren F3 = Abbrechen", TEXT_TYPE_STATUS | TEXT_PADDING_BIG }, { @@ -1032,19 +1032,19 @@ static MUI_ENTRY deDEKeyboardSettingsEntries[] = { 6, 8, - "Sie wollen den Tastaturtyp ndern, der installiert wird.", + "Sie wollen den zu installierenden Tastaturtyp ndern.", TEXT_STYLE_NORMAL }, { 8, 10, - "\x07 Drcken Sie die HOCH- oder RUNTER-Taste, um den gewnschten", + "\x07 Benutzen Sie die PFEILTASTEN, um den gewnschten Typ", TEXT_STYLE_NORMAL }, { 8, 11, - " Typ zu whlen. Dann drcken Sie ENTER.", + " zu whlen. Besttigen Sie Ihre Auswahl mit der EINGABETASTE.", TEXT_STYLE_NORMAL }, { @@ -1062,7 +1062,7 @@ static MUI_ENTRY deDEKeyboardSettingsEntries[] = { 0, 0, - "ENTER = Fortfahren ESC = Abbrechen F3 = Beenden", + "EINGABETASTE = Fortfahren ESC = Abbrechen F3 = Installation abbrechen", TEXT_TYPE_STATUS | TEXT_PADDING_BIG }, { @@ -1084,19 +1084,19 @@ static MUI_ENTRY deDELayoutSettingsEntries[] = { 6, 8, - "Bitte whlen Sie ein zu installierendes Standardlayout aus.", + "Bitte whlen Sie das Standardtastaturlayout aus.", TEXT_STYLE_NORMAL }, { 8, 10, - "\x07 Drcken Sie die HOCH- oder RUNTER-Taste, um den gewnschten", + "\x07 Benutzen Sie die PFEILTASTEN, um den gewnschten Typ", TEXT_STYLE_NORMAL }, { 8, 11, - " Typ zu whlen. Dann drcken Sie ENTER.", + " zu whlen. Besttigen Sie Ihre Auswahl mit der EINGABETASTE.", TEXT_STYLE_NORMAL }, { @@ -1114,7 +1114,7 @@ static MUI_ENTRY deDELayoutSettingsEntries[] = { 0, 0, - "ENTER = Fortfahren ESC = Abbrechen F3 = Beenden", + "EINGABETASTE = Fortfahren ESC = Abbrechen F3 = Installation abbrechen", TEXT_TYPE_STATUS | TEXT_PADDING_BIG }, { @@ -1137,7 +1137,7 @@ static MUI_ENTRY deDEPrepareCopyEntries[] = { 6, 8, - "Setup bereitet ihren Computer fr die Installation vor.", + "Der Computer wird fr die Installation vorbereitet.", TEXT_STYLE_NORMAL }, { @@ -1172,13 +1172,13 @@ static MUI_ENTRY deDESelectFSEntries[] = { 8, 19, - "\x07 Drcken Sie die Pfeiltasten, um das Dateisystem zu ndern.", + "\x07 Drcken Sie die PFEILTASTEN, um das Dateisystem zu ndern.", 0 }, { 8, 21, - "\x07 Drcken Sie die Eingabetaste, um die Partition zu formatieren.", + "\x07 Drcken Sie die EINGABETASTE, um die Partition zu formatieren.", 0 }, { @@ -1190,7 +1190,7 @@ static MUI_ENTRY deDESelectFSEntries[] = { 0, 0, - "ENTER = Fortfahren ESC = Abbrechen F3 = Beenden", + "EINGABETASTE = Fortfahren ESC = Zurck F3 = Installation abbrechen", TEXT_TYPE_STATUS | TEXT_PADDING_BIG }, @@ -1237,7 +1237,7 @@ static MUI_ENTRY deDEDeletePartitionEntries[] = { 0, 0, - "D = Lsche Partition ESC = Abbrechen F3 = Beenden", + "D = Lsche Partition ESC = Abbrechen F3 = Installation abbrechen", TEXT_TYPE_STATUS | TEXT_PADDING_BIG }, { @@ -1259,13 +1259,13 @@ static MUI_ENTRY deDERegistryEntries[] = { 6, 8, - "Setup aktualisiert die Systemkonfiguration. ", - TEXT_STYLE_NORMAL + "Systemkonfiguration wird aktualisiert. ", + TEXT_STYLE_HIGHLIGHT }, { 0, 0, - "Registryzweige erstellen...", + "Registrierungseintrge erstellen...", TEXT_TYPE_STATUS | TEXT_PADDING_BIG }, { @@ -1281,211 +1281,215 @@ MUI_ERROR deDEErrorEntries[] = { { //ERROR_NOT_INSTALLED - "ReactOS ist nicht vollstndig auf Ihrem System installiert.\n" - "Wenn Sie das Setup jetzt beenden, mssen Sie das\n" - "Setup erneut starten, um ROS zu installieren.\n" + "ReactOS wurde nicht vollstndig auf Ihrem System installiert.\n" + "Wenn Sie die Installation jetzt beenden, mssen Sie diese\n" + "erneut starten, um ReactOS zu installieren.\n" "\n" - " \x07 Drcken Sie ENTER um das Setup Fortzusetzen.\n" - " \x07 Drcken Sie F3 um das Setup zu beenden.", - "F3 = Beenden ENTER = Fortsetzen" + " \x07 Drcken Sie die EINGABETASTE, um die Installation fortzusetzen.\n" + " \x07 Drcken Sie F3, um die Installation zu beenden.", + "F3 = Beenden EINGABETASTE = Fortsetzen" }, { //ERROR_NO_HDD - "Setup konnte keine Festplatte finden.\n", - "ENTER = Computer neu starten" + "Es konnte keine Festplatte gefunden werden.\n", + "EINGABETASTE = Computer neu starten" }, { //ERROR_NO_SOURCE_DRIVE - "Setup konnte das Quelllaufwerk nicht finden.\n", - "ENTER = Computer neu starten" + "Es konnte kein Installationsmedium gefunden werden.\n", + "EINGABETASTE = Computer neu starten" }, { //ERROR_LOAD_TXTSETUPSIF - "Setup konnte TXTSETUP.SIF nicht finden.\n", - "ENTER = Computer neu starten" + "TXTSETUP.SIF konnte nicht gefunden werden.\n", + "EINGABETASTE = Computer neu starten" }, { //ERROR_CORRUPT_TXTSETUPSIF - "Setup fand eine defekte TXTSETUP.SIF.\n", - "ENTER = Computer neu starten" + "TXTSETUP.SIF scheint beschdigt zu sein.\n", + "EINGABETASTE = Computer neu starten" }, { //ERROR_SIGNATURE_TXTSETUPSIF, - "Setup fand eine ungltige Signatur in TXTSETUP.SIF.\n", - "ENTER = Computer neu starten" + "Es wurde eine ungltige Signatur in TXTSETUP.SIF gefunden.\n", + "EINGABETASTE = Computer neu starten" }, { //ERROR_DRIVE_INFORMATION - "Setup konnte keine Laufwerksinformationen abfragen.\n", - "ENTER = Computer neu starten" + "Es konnten keine Laufwerksinformationen abgefragt werden.\n", + "EINGABETASTE = Computer neu starten" }, { //ERROR_WRITE_BOOT, - "Setup konnte den FAT-Bootcode nicht auf der Partition installieren.", - "ENTER = Computer neu starten" + "Der FAT-Bootcode konnte nicht auf der Partition installiert werden.", + "EINGABETASTE = Computer neu starten" }, { //ERROR_LOAD_COMPUTER, - "Setup konnte die Computertypenliste nicht laden.\n", - "ENTER = Computer neu starten" + "Computertypenliste konnte nicht geladen werden.\n", + "EINGABETASTE = Computer neu starten" }, { //ERROR_LOAD_DISPLAY, - "Setup konnte die Displayeinstellungsliste nicht laden.\n", - "ENTER = Computer neu starten" + "Displayeinstellungsliste konnte nicht geladen werden.\n", + "EINGABETASTE = Computer neu starten" }, { //ERROR_LOAD_KEYBOARD, - "Setup konnte die Tastaturtypenliste nicht laden.\n", - "ENTER = Computer neu starten" + "Tastaturtypenliste konnte nicht geladen werden.\n", + "EINGABETASTE = Computer neu starten" }, { //ERROR_LOAD_KBLAYOUT, - "Setup konnte die Tastaturlayoutliste nicht laden.\n", - "ENTER = Computer neu starten" + "Die Liste der Tastaturlayouts konnte nicht geladen werden.\n", + "EINGABETASTE = Computer neu starten" }, { //ERROR_WARN_PARTITION, - "Setup hat mindestens eine Festplatte mit einer inkompatiblen\n" - "Partitionstabelle gefunden, die nicht richtig verwendet werden kann!\n" + "Es wurde mindestens eine Festplatte mit einer inkompatiblen\n" + "Partitionstabelle gefunden, die nicht richtig verwendet werden kann.\n" "\n" - "Partitionen zu erstellen/lschen kann die Partitionstabelle zerstren.\n" + "nderungen an den Partitionen knnen die Partitionstabelle zerstren!\n" "\n" - " \x07 Drcken Sie F3, um das Setup zu beenden.\n" - " \x07 Drcken Sie ENTER, um das Setup Fortzusetzen.", - "F3 = Beenden ENTER = Fortsetzen" + " \x07 Drcken Sie F3, um die Installation zu beenden.\n" + " \x07 Drcken Sie die EINGABETASTE, um die Installation fortzusetzen.", + "F3 = Beenden ENTER = EINGABETASTE" }, { //ERROR_NEW_PARTITION, "Sie knnen keine neue Partition in einer bereits\n" - "vohandenen Partition erstellen!\n" + "vorhandenen Partition erstellen!\n" "\n" " * * Eine beliebige Taste zum Fortsetzen drcken.", NULL }, { //ERROR_DELETE_SPACE, - "Sie knnen unpartitionieren Speicher nicht lschen!\n" + "Sie knnen unpartitionierten Speicher nicht lschen!\n" "\n" " * Eine beliebige Taste zum Fortsetzen drcken.", NULL }, { //ERROR_INSTALL_BOOTCODE, - "Setup konnte den FAT-Bootcode nicht auf der Partition installieren.", - "ENTER = Computer neu starten" + "Der FAT-Bootcode konnte nicht auf der Partition installiert werden.", + "EINGABETASTE = Computer neu starten" }, { //ERROR_NO_FLOPPY, - "Keine Diskette in Laufwerk A:.", - "ENTER = Fortsetzen" + "Keine Diskette in Laufwerk A: gefunden.", + "EINGABETASTE = Fortsetzen" }, { //ERROR_UPDATE_KBSETTINGS, - "Setup konnte das Tastaturlayout nicht aktualisieren.", - "ENTER = Computer neu starten" + "Das Tastaturlayout konnte nicht aktualisiert werden.", + "EINGABETASTE = Computer neu starten" }, { //ERROR_UPDATE_DISPLAY_SETTINGS, - "Setup konnte die Display-Registrywerte nicht aktualisieren.", - "ENTER = Computer neu starten" + "Die Registrierungseintrge der Anzeigeeinstellungen\n" + "konnten nicht aktualisiert werden.", + "EINGABETASTER = Computer neu starten" }, { //ERROR_IMPORT_HIVE, - "Setup konnte keine Hive-Datei importieren.", - "ENTER = Computer neu starten" + "Es konnte keine Hive-Datei importiert werden.", + "EINGABETASTE = Computer neu starten" }, { //ERROR_FIND_REGISTRY - "Setup konnte die Registrydateien nicht finden.", - "ENTER = Computer neu starten" + "Die Registrierungsdateien konnten nicht gefunden werden.", + "EINGABETASTE = Computer neu starten" }, { //ERROR_CREATE_HIVE, - "Setup konnte die Registryzweige nicht erstellen.", - "ENTER = Computer neu starten" + "Die Zweige in der Registrierung konnten nicht erstellt werden.", + "EINGABETASTE = Computer neu starten" }, { //ERROR_INITIALIZE_REGISTRY, - "Setup konnte die Registry nicht initialisieren.", - "ENTER = Computer neu starten" + "Die Registrierung konnte nicht initialisiert werden.", + "EINGABETASTE = Computer neu starten" }, { //ERROR_INVALID_CABINET_INF, - "Cabinet hat keine gltige .inf-Datei.\n", - "ENTER = Computer neu starten" + "Das CAB-Archiv besitzt keine gltige INF-Datei.\n", + "EINGABETASTE = Computer neu starten" }, { //ERROR_CABINET_MISSING, - "Cabinet nicht gefunden.\n", - "ENTER = Computer neu starten" + "Das CAB-Archiv wurde nicht gefunden.\n", + "EINGABETASTE = Computer neu starten" }, { //ERROR_CABINET_SCRIPT, - "Cabinet enthlt kein Setup-Skript.\n", - "ENTER = Computer neu starten" + "Das CAB-Archiv enthlt kein Setup-Skript.\n", + "EINGABETASTE = Computer neu starten" }, { //ERROR_COPY_QUEUE, - "Setup konnte die Liste mit zu kopierenden Dateien nicht finden.\n", - "ENTER = Computer neu starten" + "Die Liste mit den zu kopierenden Dateien\n" + "konnte nicht gefunden werden.\n", + "EINGABETASTE = Computer neu starten" }, { //ERROR_CREATE_DIR, - "Setup konnte die Installationspfade nicht erstellen.", - "ENTER = Computer neu starten" + "Die Installationspfade konnten nicht erstellt werden.", + "EINGABETASTE = Computer neu starten" }, { //ERROR_TXTSETUP_SECTION, - "Setup konnte die 'Ordner'-Sektion in\n" - "TXTSETUP.SIF nicht finden.\n", - "ENTER = Computer neu starten" + "Der Abschnitt 'Ordner' konnte in\n" + "TXTSETUP.SIF nicht gefunden werden.\n", + "EINGABETASTE = Computer neu starten" }, { //ERROR_CABINET_SECTION, - "Setup konnte die 'Ordner'-Sektion im\n" - "Cabinet nicht finden.\n", - "ENTER = Computer neu starten" + "Der Abschnitt 'Ordner' konnte\n" + "im im CAB-Archiv nicht gefunden werden.\n", + "EINGABETASTE = Computer neu starten" }, { //ERROR_CREATE_INSTALL_DIR "Setup konnte den Installationspfad nicht erstellen.", - "ENTER = Computer neu starten" + "EINGABETASTE = Computer neu starten" }, { //ERROR_FIND_SETUPDATA, "Setup konnte die 'SetupData'-Sektion in\n" "TXTSETUP.SIF nicht finden.\n", - "ENTER = Computer neu starten" + "EINGABETASTE = Computer neu starten" }, { //ERROR_WRITE_PTABLE, - "Setup konnte die Partitionstabellen nicht schreiben.\n" - "ENTER = Computer neu starten" + "Die Partitionstabellen konnten nicht geschrieben werden.\n" + "EINGABETASTE = Computer neu starten" }, { //ERROR_ADDING_CODEPAGE, - "Setup konnte den Codepage-Eintrag nicht hinzufgen.\n" - "ENTER = Computer neu starten" + "Es konnte kein Codepage-Eintrag hinzugefgt werden.\n" + "EINGABETASTE = Computer neu starten" }, { //ERROR_UPDATE_LOCALESETTINGS, - "Setup konnte die Systemsprache nicht einstellen.\n" - "ENTER = Computer neu starten" + "Die Systemsprache konnte nicht eingestellt werden.\n" + "EINGABETASTE = Computer neu starten" }, { //ERROR_ADDING_KBLAYOUTS, - "Setup konnte die Tastaturlayouts nicht in der Registry eintragen.\n" - "ENTER = Computer neu starten" + "Die Tastaturlayouts konnten nicht in die Registrierung\n" + "eingetragen werden.\n" + "EINGABETASTE = Computer neu starten" }, { //ERROR_UPDATE_GEOID, - "Setup konnte den geografischen Standort nicht einstellen.\n" - "ENTER = Computer neu starten" + "Der geografische Standort konnte nicht eingestellt werden.\n" + "EINGABETASTE = Computer neu starten" }, { //ERROR_INSUFFICIENT_DISKSPACE, - "Nicht genug Speicherplatz auf der gewhlten Partition vorhanden.\n" + "Es ist nicht gengend Speicherplatz auf der\n" + "gewhlten Partition vorhanden.\n" " * Eine beliebige Taste zum Fortsetzen drcken.", NULL }, @@ -1601,41 +1605,41 @@ MUI_STRING deDEStrings[] = {STRING_PLEASEWAIT, " Bitte warten..."}, {STRING_INSTALLCREATEPARTITION, - " ENTER = Installieren C = Partition erstellen F3 = Beenden"}, + " EINGABETASTE = Installieren C = Partition erstellen F3 = Installation abbr."}, {STRING_INSTALLDELETEPARTITION, - " ENTER = Installieren D = Partition lschen F3 = Beenden"}, + " EINGABETASTE = Installieren D = Partition lschen F3 = Installation abbr."}, {STRING_PARTITIONSIZE, "Gre der neuen Partition:"}, {STRING_CHOOSENEWPARTITION, - "Sie haben beschlossen, eine neue Partition zu erstellen auf"}, + "Eine neue Partition soll hier erstellt werden:"}, {STRING_HDDSIZE, "Bitte geben Sie die Gre der neuen Partition in Megabyte ein."}, {STRING_CREATEPARTITION, - " ENTER = Partition erstellen ESC = Abbruch F3 = Beenden"}, + " EINGABETASTE = Partition erstellen ESC = Abbrechen F3 = Installation abbr."}, {STRING_PARTFORMAT, "Diese Partition wird als nchstes formatiert."}, {STRING_NONFORMATTEDPART, - "Sie wollen ReactOS auf einer neuen/unformatieren Partition installieren."}, + "Sie wollen ReactOS auf einer neuen/unformatierten Partition installieren."}, {STRING_INSTALLONPART, - "Setup installiert ReactOS auf dieser Partition"}, + "ReactOS wird auf dieser Partition installiert."}, {STRING_CHECKINGPART, - "Setup berprft die ausgewhlte Partition."}, + "Die ausgewhlte Partition wird berprft."}, {STRING_QUITCONTINUE, - "F3 = Beenden ENTER = Fortsetzen"}, + "F3 = Beenden EINGABETASTE = Fortsetzen"}, {STRING_REBOOTCOMPUTER, - "ENTER = Computer neu starten"}, + "EINGABETASTE = Computer neu starten"}, {STRING_TXTSETUPFAILED, - "Setup konnte die '%S'-Sektion\nin TXTSETUP.SIF nicht finden.\n"}, + "Der Abschnitt '%S'in TXTSETUP.SIF\nkonnte nicht gefunden werden.\n"}, {STRING_COPYING, " Kopiere Datei: %S"}, {STRING_SETUPCOPYINGFILES, - "Setup kopiert Dateien..."}, + "Dateien werden kopiert..."}, {STRING_REGHIVEUPDATE, - " Registryzweige werden aktualisiert..."}, + " Registrierungseintrge werden aktualisiert..."}, {STRING_IMPORTFILE, " Importiere %S..."}, {STRING_DISPLAYETTINGSUPDATE, - " Bildschirm-Registryeinstellungen werden aktualisiert..."}, + " Anzeigeeinstellungen werden aktualisiert..."}, {STRING_LOCALESETTINGSUPDATE, " Lokalisierungseinstellungen werden aktualisiert..."}, {STRING_KEYBOARDSETTINGSUPDATE, @@ -1645,7 +1649,7 @@ MUI_STRING deDEStrings[] = {STRING_DONE, " Fertig..."}, {STRING_REBOOTCOMPUTER2, - " ENTER = Computer neu starten"}, + " EINGABETASTE = Computer neu starten"}, {STRING_CONSOLEFAIL1, "Konsole konnte nicht geffnet werden\r\n\r\n"}, {STRING_CONSOLEFAIL2, @@ -1653,13 +1657,13 @@ MUI_STRING deDEStrings[] = {STRING_CONSOLEFAIL3, "USB-Tastaturen werden noch nicht vollstndig untersttzt\r\n"}, {STRING_FORMATTINGDISK, - "Setup formatiert Ihre Festplatte"}, + "Ihre Festplatte wird formatiert"}, {STRING_CHECKINGDISK, - "Setup berprft Ihre Festplatte"}, + "Ihre Festplatte wird berprft"}, {STRING_FORMATDISK1, - " Formatiere Partition als %S-Dateisystem (Schnell) "}, + " Partition mit dem %S-Dateisystem formatieren (Schnell) "}, {STRING_FORMATDISK2, - " Formatiere Partition als %S-Dateisystem "}, + " Partition mit dem %S-Dateisystem formatieren "}, {STRING_KEEPFORMAT, " Dateisystem beibehalten (Keine Vernderungen) "}, {STRING_HDINFOPARTCREATE, diff --git a/reactos/dll/cpl/access/lang/de-DE.rc b/reactos/dll/cpl/access/lang/de-DE.rc index 2475d1faa9c..405a81a8be5 100644 --- a/reactos/dll/cpl/access/lang/de-DE.rc +++ b/reactos/dll/cpl/access/lang/de-DE.rc @@ -103,7 +103,7 @@ BEGIN AUTOCHECKBOX "E&xterne Eingabehilfen aktivieren", IDC_SERIAL_BOX, PROPSHEETPADDING(2), LABELLINE(16) - 4, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "&Einstellungen", IDC_SERIAL_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(16) - 4, PROPSHEETPADDING(15), 14 GROUPBOX "Verwaltungsoptionen", -1, PROPSHEETPADDING(1), LABELLINE(19) - 4, PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(5) - AUTOCHECKBOX "&Alle Einstellungen auf dem Anmeldebildschrim anwenden.", IDC_ADMIN_LOGON_BOX, + AUTOCHECKBOX "&Alle Einstellungen auf dem Anmeldebildschirm anwenden.", IDC_ADMIN_LOGON_BOX, PROPSHEETPADDING(2), LABELLINE(20) - 4, PROPSHEETWIDTH - PROPSHEETPADDING(4), 14 AUTOCHECKBOX "Alle Einstellungen als &Standard fr neue Benutzer anwenden.", IDC_ADMIN_USERS_BOX, PROPSHEETPADDING(2), LABELLINE(22) - 4, PROPSHEETWIDTH - PROPSHEETPADDING(4), 14 @@ -134,7 +134,7 @@ END IDD_FILTERKEYSOPTIONS DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "AnschlagverzgerungseEinstellungen" +CAPTION "Einstellungen fr die Anschlagverzgerung" FONT 8, "MS Shell Dlg" BEGIN GROUPBOX "Tastenkombination", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(6) + PROPSHEETPADDING(1) @@ -174,7 +174,7 @@ END IDD_CONTRASTOPTIONS DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Einstellungen fr hohen Konstrast" +CAPTION "Einstellungen fr hohen Kontrast" FONT 8, "MS Shell Dlg" BEGIN GROUPBOX "Tastenkombination", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(6) + PROPSHEETPADDING(1) @@ -227,7 +227,7 @@ CAPTION "Einstellungen f FONT 8, "MS Shell Dlg" BEGIN GROUPBOX "Tastenanschlge", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(5) - LTEXT "&Tastenanschlge igorieren, die schneller wiederholt werden als:", -1, PROPSHEETPADDING(2), LABELLINE(2) + 1, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(2) + LTEXT "&Tastenanschlge ignorieren, die schneller wiederholt werden als:", -1, PROPSHEETPADDING(2), LABELLINE(2) + 1, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(2) COMBOBOX IDC_BOUNCE_TIME_COMBO, PROPSHEETPADDING(2), LABELLINE(3) + 5, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(6), CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP LTEXT "T&estbereich:", -1, PROPSHEETPADDING(1), LABELLINE(7) + 3, PROPSHEETPADDING(8), LABELLINE(1) @@ -242,7 +242,7 @@ CAPTION "Einstellungen f FONT 8, "MS Shell Dlg" BEGIN GROUPBOX "Tastenwiederholung", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(12) - LTEXT "Tastatureinstellungen in der Systemsteuerung bergehen:", + LTEXT "Tastatureinstellungen in der Systemsteuerung berschreiben:", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(2) AUTORADIOBUTTON "&Keine Wiederholung", IDC_REPEAT_NOREPEAT_RADIO, PROPSHEETPADDING(2), LABELLINE(3) + 3, 78, LABELLINE(1), WS_GROUP AUTORADIOBUTTON "&Wiederholungsraten verlangsamen", IDC_REPEAT_REPEAT_RADIO, PROPSHEETPADDING(2), LABELLINE(4) + 7, 131, LABELLINE(1) @@ -273,7 +273,7 @@ BEGIN LTEXT "&Serieller Port:", -1, PROPSHEETPADDING(2), LABELLINE(3) + 5, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(2) COMBOBOX IDC_SERIAL_PORT_COMBO, PROPSHEETPADDING(2), LABELLINE(4) + 7, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(6), CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP - LTEXT "&Baud rate:", -1, PROPSHEETPADDING(2), LABELLINE(7), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(2) + LTEXT "Sym&bolrate:", -1, PROPSHEETPADDING(2), LABELLINE(7), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(2) COMBOBOX IDC_SERIAL_BAUD_COMBO, PROPSHEETPADDING(2), LABELLINE(8) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(8), CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP DEFPUSHBUTTON "OK", IDOK, PROPSHEETWIDTH - 111, PROPSHEETHEIGHT - 21, 50, 14 diff --git a/reactos/dll/cpl/desk/lang/de-DE.rc b/reactos/dll/cpl/desk/lang/de-DE.rc index c4598b8ee8a..e8d78355402 100644 --- a/reactos/dll/cpl/desk/lang/de-DE.rc +++ b/reactos/dll/cpl/desk/lang/de-DE.rc @@ -32,7 +32,7 @@ BEGIN LTEXT "Minuten", IDC_MINTEXT, 70, 125, 26, 9 CONTROL "&Passwort nach Reaktivierung", IDC_SCREENS_USEPASSCHK, "button", BS_AUTOCHECKBOX | WS_TABSTOP, 108, 120, 117, 19 - GROUPBOX "&Enerigesparfunktionen des Monitors", IDC_SCREENS_DUMMY2, 6, 155, 232, 41 + GROUPBOX "&Energiesparfunktionen des Monitors", IDC_SCREENS_DUMMY2, 6, 155, 232, 41 LTEXT "Um die Energieeinstellungen des Monitors zu editieren, wählen Sie Energieeinstellungen.", IDC_STATIC, 14, 166, 146, 27 PUSHBUTTON "Energieoptionen", IDC_SCREENS_POWER_BUTTON, 165, 171, 61, 13 END @@ -118,7 +118,7 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Einstellungen" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Verschieben Sie die Monitor-Symbole, so dass sie der physikalischen Anordnung Ihrer Monitore entsprechen.", -1, 3, 3, 240, 20 + LTEXT "Verschieben Sie die Monitor-Symbole, sodass sie der physischen Anordnung Ihrer Monitore entsprechen.", -1, 3, 3, 240, 20 CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE LTEXT "&Anzeige", 1820, 3, 107, 70, 9 @@ -144,8 +144,8 @@ BEGIN COMBOBOX IDC_FONTSIZE_COMBO, 14, 30, 223, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP LTEXT "", IDC_FONTSIZE_CUSTOM, 14, 46, 223, 12 GROUPBOX "Kompatibilität", -1, 7, 67, 237, 97 - LTEXT "Einige Programme könnten fehlerhaft arbeiten, wenn nach Änderung der Farbeinstellungen nicht neugestartet wird.\r\n\nNach Änderung der Farbeinstellungen", -1, 12, 78, 228, 34 - AUTORADIOBUTTON "&Computer vor dem Anwenden der Farbeinstellungen neustarten.", IDC_RESTART_RB, 14, 116, 228, 10 + LTEXT "Einige Programme könnten fehlerhaft arbeiten, wenn nach Änderung der Farbeinstellungen nicht neu gestartet wird.\r\n\nNach Änderung der Farbeinstellungen", -1, 12, 78, 228, 34 + AUTORADIOBUTTON "&Computer vor dem Anwenden der Farbeinstellungen neu starten.", IDC_RESTART_RB, 14, 116, 228, 10 AUTORADIOBUTTON "Farbeinstellungen ohne Neustart übernehmen.", IDC_WITHOUTREBOOT_RB, 14, 131, 228, 10 AUTORADIOBUTTON "Vor dem Anwenden der neuen Farbeinstellungen nachfragen.", IDC_ASKME_RB, 14, 146, 228, 10 END diff --git a/reactos/dll/cpl/hdwwiz/lang/de-DE.rc b/reactos/dll/cpl/hdwwiz/lang/de-DE.rc index e0b1c753869..b0390d8406f 100644 --- a/reactos/dll/cpl/hdwwiz/lang/de-DE.rc +++ b/reactos/dll/cpl/hdwwiz/lang/de-DE.rc @@ -5,7 +5,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "Hardwareassistent" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Wilkommen zum Hardwareassistenten", IDC_FINISHTITLE, 114, 8, 203, 24 + LTEXT "Willkommen zum Hardwareassistenten", IDC_FINISHTITLE, 114, 8, 203, 24 LTEXT "Dieser Assistent untersttzt Sie bei:", -1, 114, 40, 182, 8 LTEXT "1) Software installieren, um die an den Computer angeschlossene Hardware zu untersttzen.", -1, 121, 56, 184, 16 LTEXT "2) Probleme lsen, die Sie mit Ihrer Hardware haben.", -1, 121, 78, 185, 16 @@ -81,7 +81,7 @@ CAPTION "Hardwareassistent" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Der Hardware-Suchvorgang kann mehrere Minuten dauern.", -1, 21, 8, 275, 15 - LTEXT "Fortschitt:", IDC_TPROGRESSTEXT, 21, 25, 275, 8 + LTEXT "Fortschritt:", IDC_TPROGRESSTEXT, 21, 25, 275, 8 CONTROL "", IDC_TPROGRESSBAR, "msctls_progress32", 0, 21, 37, 275, 14 LTEXT "", IDC_PROGRESSTEXT, 58, 58, 200, 8, SS_NOPREFIX CONTROL "", IDC_PROGRESSBAR, "msctls_progress32", 0, 58, 70, 200, 8 @@ -92,7 +92,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "Hardwareassistent" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Hardwareassistent wird vervollstndigt", IDC_FINISHTITLE, 114, 8, 203, 24 + LTEXT "Hardwareassistent wird abgeschlossen", IDC_FINISHTITLE, 114, 8, 203, 24 LTEXT "Der Hardwareassistent wurde erfolgreich abgeschlossen.", -1, 114, 32, 193, 19 LTEXT "", IDC_STATUSTEXT, 114, 70, 193, 92 LTEXT "Klicken Sie ""Beenden"", um den Assistenten zu schlieen.", -1, 114, 166, 192, 8 @@ -103,7 +103,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "Hardwareassistent" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Hardwareassistent wird vervollstndigt", IDC_FINISHTITLE, 114, 8, 203, 24 + LTEXT "Hardwareassistent wird abgeschlossen", IDC_FINISHTITLE, 114, 8, 203, 24 LTEXT "Der Assistent fand folgende Hardware an ihrem Computer:", -1, 114, 32, 193, 19 LTEXT "Klicken Sie ""Beenden"", um den Assistenten zu schlieen.", -1, 114, 166, 192, 8 CONTROL "", IDC_FOUNDHARDWARELIST, "SysListView32", WS_BORDER | WS_GROUP | WS_TABSTOP | LVS_REPORT | LVS_NOSORTHEADER | LVS_SINGLESEL | LVS_SHAREIMAGELISTS, 114, 56, 193, 78 @@ -114,7 +114,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "Hardwareassistent" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Hardwareassistent wird vervollstndigt", IDC_FINISHTITLE, 114, 8, 195, 28 + LTEXT "Hardwareassistent wird abgeschlossen", IDC_FINISHTITLE, 114, 8, 195, 28 LTEXT "Derzeitiger Status der ausgewhlten Hardware:", -1, 114, 40, 193, 19 EDITTEXT IDC_HWSTATUSEDIT, 114, 60, 193, 70, ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL | NOT WS_TABSTOP LTEXT "Klicken Sie ""Beenden"", um Hilfe zum Lsen von mglichen Problemen zu erhalten.", -1, 114, 136, 193, 16 @@ -128,8 +128,8 @@ FONT 8, "MS Shell Dlg" BEGIN LTEXT "Hardwareassistent kann nicht fortgesetzt werden", IDC_FINISHTITLE, 114, 8, 203, 28 LTEXT "Um fortsetzen zu knnen, verbinden Sie folgende Hardware mit dem Computer.", -1, 114, 40, 193, 16 - AUTOCHECKBOX "&Nach Beenden den Computer neustarten, um die Hardware anschlieen zu knnen.", IDC_TURNOFFCHECKBOX, 114, 64, 203, 20, BS_TOP | BS_MULTILINE - LTEXT "In den meisten Fllen wird ReactOS die Hardware automatisch installieren, wenn Sie sie mit dem Computer verbinden. Andernfalls knnen Sie den Assistenten erneut starten, um die zu untersttzende Hardware zu installieren.", -1, 114, 98, 193, 32 + AUTOCHECKBOX "&Nach Beenden den Computer neu starten, um die Hardware anschlieen zu knnen.", IDC_TURNOFFCHECKBOX, 114, 64, 203, 20, BS_TOP | BS_MULTILINE + LTEXT "In den meisten Fllen wird ReactOS die Hardware automatisch installieren, wenn Sie diese mit dem Computer verbinden. Andernfalls knnen Sie den Assistenten erneut starten, um die zu untersttzende Hardware zu installieren.", -1, 114, 98, 193, 32 LTEXT "Klicken Sie auf ""Beenden"", um den Assistenten zu schlieen.", IDC_STATUSTEXT, 114, 166, 200, 8 END @@ -138,7 +138,7 @@ BEGIN IDS_CPLNAME "Hardware" IDS_CPLDESCRIPTION "Installiert neue Hardwarekomponenten." IDS_SEARCHTITLE "Bitte warten Sie, whrend der Assistent neue Hardware sucht..." - IDS_SEARCHTEXT "Dieser Assistent sucht nach Hardware, die vor kurzem an Ihren Computer angeschlossen, aber noch nicht installiert wurde." + IDS_SEARCHTEXT "Dieser Assistent sucht nach Hardware, die vor Kurzem an Ihren Computer angeschlossen, aber noch nicht installiert wurde." IDS_ISCONNECTED "Ist die Hardware bereits angeschlossen?" IDS_PROBELISTTITLE "Folgende Hardware ist bereits auf Ihrem Computer installiert" IDS_ADDNEWDEVICE "Ein neues Gert hinzufgen" diff --git a/reactos/dll/cpl/inetcpl/lang/de-DE.rc b/reactos/dll/cpl/inetcpl/lang/de-DE.rc index b4e9e71817e..fdab3a1da3f 100644 --- a/reactos/dll/cpl/inetcpl/lang/de-DE.rc +++ b/reactos/dll/cpl/inetcpl/lang/de-DE.rc @@ -31,7 +31,7 @@ CAPTION "Allgemein" BEGIN GROUPBOX " Startseite ", IDC_STATIC, 4, 4, 312, 52 - LTEXT "Sie können eine Addresse wählen, die als Startseite verwendet wird.", + LTEXT "Sie können eine Adresse wählen, die als Startseite verwendet wird.", IDC_STATIC, 58, 10, 252, 10 EDITTEXT IDC_HOME_EDIT, 58, 22, 252, 12, WS_VISIBLE | ES_AUTOHSCROLL PUSHBUTTON "A&ktuelle Seite", IDC_HOME_CURRENT, 58, 36, 80, 14 @@ -49,10 +49,10 @@ END IDD_DELETE_HISTORY DIALOG 0, 0, 250, 250 STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU FONT 8, "MS Shell Dlg" -CAPTION "Gespeicherte Browserdaten löchen" +CAPTION "Gespeicherte Browserdaten löschen" BEGIN - AUTOCHECKBOX "&Temporäre Inernetdateien\nZwischengespeicherte Kopien von Webseiten, Bildern und Zertifikaten.", + AUTOCHECKBOX "&Temporäre Internetdateien\nZwischengespeicherte Kopien von Webseiten, Bildern und Zertifikaten.", IDC_DELETE_TEMP_FILES, 10, 8, 230, 30, BS_TOP | BS_MULTILINE AUTOCHECKBOX "&Cookies\nVon Webseiten auf ihrem Computer gespeicherte Dateien, die Benutzereinstellungen oder Anmeldeinformationen enthalten.", IDC_DELETE_COOKIES, 10, 38, 230, 30, BS_TOP | BS_MULTILINE diff --git a/reactos/dll/cpl/input/lang/de-DE.rc b/reactos/dll/cpl/input/lang/de-DE.rc index 5f943cf991c..ac5cc1a56c2 100644 --- a/reactos/dll/cpl/input/lang/de-DE.rc +++ b/reactos/dll/cpl/input/lang/de-DE.rc @@ -5,7 +5,7 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Einstellungen" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Wählen Sie die Dienste aus, die Sie für die Eingabesprachen in der Liste verwenden wollen.\nVerwenden Sie Hinzufügen und Entfernen, um die Liste zu bearbeiten.", -1, 9, 6, 238, 25 + LTEXT "Wählen Sie die Dienste aus, die Sie für die Eingabesprachen in der Liste verwenden wollen.\nVerwenden Sie ""Hinzufügen"" und ""Entfernen"", um die Liste zu bearbeiten.", -1, 9, 6, 238, 25 CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101 PUSHBUTTON "&Als Standard", IDC_SET_DEFAULT, 101, 159, 144, 14 PUSHBUTTON "&Hinzufügen...", IDC_ADD_BUTTON, 27, 142, 70, 14 @@ -20,7 +20,7 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Erweiterte Einstellungen" FONT 8, "MS Shell Dlg" BEGIN - GROUPBOX "System Konfiguration", -1, 7, 7, 240, 70 + GROUPBOX "Systemkonfiguration", -1, 7, 7, 240, 70 AUTOCHECKBOX "&Erweiterte &Textdienste deaktivieren", IDC_TURNOFFTEXTSVCS_CB, 14, 20, 220, 12 LTEXT "Auswählen, um die erweiterte Sprachunterstützung in allen Programmen zu deaktivieren.\nNicht empfohlen für ostasiatische Benutzer, da die Sprachleiste hierdurch geschlossen wird.", -1, 14, 40, 230, 35 END @@ -62,7 +62,7 @@ FONT 8, "MS Shell Dlg" BEGIN GROUPBOX "", -1, 9, 5, 155, 110 AUTOCHECKBOX "&Eingabesprache umschalten", IDC_SWITCH_INPUT_LANG_CB, 15, 15, 105, 12 - LTEXT "Shift", -1, 73, 37, 27, 12 + LTEXT "Umschalt", -1, 73, 37, 27, 12 CTEXT "+", -1, 62, 37, 8, 9 AUTORADIOBUTTON "&Strg", IDC_CTRL_LANG, 29, 31, 30, 11 AUTORADIOBUTTON "&Alt links", IDC_LEFT_ALT_LANG, 29, 45, 46, 12 @@ -95,7 +95,7 @@ BEGIN IDS_KEYBOARD "Tastatur" IDS_NONE "(Keine)" IDS_UNKNOWN "(Unbekannt)" - IDS_RESTART "Wollen Sie Ihren Computer nun neustarten?" + IDS_RESTART "Wollen Sie Ihren Computer nun neu starten?" IDS_WHATS_THIS "Was ist das?" IDS_LANGUAGE "Sprache" IDS_LAYOUT "Tastaturlayout" @@ -118,8 +118,8 @@ BEGIN IDS_ARMENIAN_WESTERN_LAYOUT "Westarmenisch" IDS_ASSAMESE_LAYOUT "Assamisch" IDS_AZERI_CYRILLIC_LAYOUT "Aserbaidschanisch (Kyrillisch)" - IDS_AZERI_LATIN_LAYOUT "Aserbaidschanisch (Lateinisch)" - IDS_BELARUSIAN_LAYOUT "Belarussisch" + IDS_AZERI_LATIN_LAYOUT "Aserbaidschanisch (Latein)" + IDS_BELARUSIAN_LAYOUT "Weißrussisch" IDS_BELGIAN_COMMA_LAYOUT "Belgisch (Komma)" IDS_BELGIAN_FRENCH_LAYOUT "Belgisch (Wallonisch)" IDS_BELGIAN_LAYOUT "Belgisch (Punkt)" @@ -132,7 +132,7 @@ BEGIN IDS_BURMESE_LAYOUT "Burmesisch" IDS_CANADIAN_FRENCH_LAYOUT "Französisch (Kanada)" IDS_CANADIAN_FRENCH_LEGACY_LAYOUT "Französisch (Kanada, herkömmlich)" - IDS_CANADIAN_MULTILINGUAL_STD_LAYOUT "Kanada (Standard -- Multilingual)" + IDS_CANADIAN_MULTILINGUAL_STD_LAYOUT "Kanada (Standard -- multilingual)" IDS_CANTONESE_PHONETIC_LAYOUT "Phonetisches Kantonesisch" IDS_CHINESE_SIMPLIFIED_MSPINYINIME30_LAYOUT "Chinesisch (vereinfacht) - Microsoft Pinyin IME 3.0" IDS_CHINESE_SIMPLIFIED_NEIMA_LAYOUT "Chinesisch (vereinfacht) - NeiMa" @@ -140,7 +140,7 @@ BEGIN IDS_CHINESE_SIMPLIFIED_SHUANGPIN_LAYOUT "Chinesisch (vereinfacht) - ShuangPin" IDS_CHINESE_SIMPLIFIED_USKEYBOARD_LAYOUT "Chinesisch (vereinfacht) - US-Tastatur" IDS_CHINESE_SIMPLIFIED_ZHENGMA_LAYOUT "Chinesisch (vereinfacht) - ZhengMa" - IDS_CHINESE_TRADITIONAL_ALPHANUMERIC_LAYOUT "Chinesisch (traditionell) - Alphanummerisch" + IDS_CHINESE_TRADITIONAL_ALPHANUMERIC_LAYOUT "Chinesisch (traditionell) - alphanumerisch" IDS_CHINESE_TRADITIONAL_ARRAY_LAYOUT "Chinesisch (traditionell) - Array" IDS_CHINESE_TRADITIONAL_BIG5CODE_LAYOUT "Chinesisch (traditionell) - Big5-Code" IDS_CHINESE_TRADITIONAL_CHANGJIE_LAYOUT "Chinesisch (traditionell) - ChangJie" @@ -231,13 +231,13 @@ BEGIN IDS_TATAR_LAYOUT "Tatarisch" IDS_TELUGU_LAYOUT "Telugu" IDS_THAI_KEDMANEE_LAYOUT "Thai Kedmanee" - IDS_THAI_KEDMANEE_NONSHIFTLOCK_LAYOUT "Thai Kedmanee (nicht ShiftLock)" + IDS_THAI_KEDMANEE_NONSHIFTLOCK_LAYOUT "Thai Kedmanee (ohne ShiftLock)" IDS_THAI_PATTACHOTE_LAYOUT "Thai Pattachote" - IDS_THAI_PATTACHOTE_NONSHIFTLOCK_LAYOUT "Thai Pattachote (nicht ShiftLock)" + IDS_THAI_PATTACHOTE_NONSHIFTLOCK_LAYOUT "Thai Pattachote (ohne ShiftLock)" IDS_TURKISH_F_LAYOUT "Türkisch F" IDS_TURKISH_Q_LAYOUT "Türkisch Q" IDS_UKRAINIAN_LAYOUT "Ukrainisch" - IDS_UKRAINIAN_STUDENT_LAYOUT "Ukrainian (Student)" + IDS_UKRAINIAN_STUDENT_LAYOUT "Ukrainisch (Student)" IDS_UNITED_KINGDOM_LAYOUT "Englisch (Großbritannien u. Nordirland)" IDS_UNITED_STATES_DVIRAK_LAYOUT "Englisch (USA, Dvorak)" IDS_UNITED_STATES_DVORAK_FOR_LEFT_HAND_LAYOUT "Englisch (USA, Dvorak für Linkshänder)" diff --git a/reactos/dll/cpl/intl/lang/de-DE.rc b/reactos/dll/cpl/intl/lang/de-DE.rc index aea5d480f1f..179a951c921 100644 --- a/reactos/dll/cpl/intl/lang/de-DE.rc +++ b/reactos/dll/cpl/intl/lang/de-DE.rc @@ -22,7 +22,7 @@ BEGIN EDITTEXT IDC_SHORTTIMESAMPLE_EDIT, 89, 131, 140, 12, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP | NOT WS_TABSTOP EDITTEXT IDC_FULLTIMESAMPLE_EDIT, 89, 146, 140, 12, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP | NOT WS_TABSTOP GROUPBOX "Geografische Lage", -1, 5, 172, 234, 55 - LTEXT "Wählen Sie Ihren Standort, so dass Dienste Sie mit lokalen Informationen, wie Nachrichten und Wettervorhersagen, versorgen können.", -1, 14, 184, 210, 24 + LTEXT "Wählen Sie Ihren Standort, sodass Dienste Sie mit lokalen Informationen, wie Nachrichten und Wettervorhersagen, versorgen können.", -1, 14, 184, 210, 24 COMBOBOX IDC_LOCATION_COMBO, 14, 210, 217, 160, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP | CBS_SORT END @@ -35,7 +35,7 @@ BEGIN LTEXT "Um Ihre Sprache einsehen oder ändern zu können wählen Sie ""Details...""", -1, 12, 15, 220, 18 PUSHBUTTON "&Details...", IDC_DETAIL_BUTTON, 177, 34, 54, 14 GROUPBOX "Zusätzliche Sprachunterstützung", -1, 5, 62, 234, 82 - LTEXT "Die meisten Sprachen sind standardmäßig installiert. Um weitere Sprachen zu installieren, aktivieren Sie die unteren Kontollkästchen.", -1, 12, 72, 220, 18 + LTEXT "Die meisten Sprachen sind standardmäßig installiert. Um weitere Sprachen zu installieren, aktivieren Sie die unteren Kontrollkästchen.", -1, 12, 72, 220, 18 CHECKBOX "Dateien für Sprachen mit &komplexer Schrift und Rechts-nach-Links-Schreibstil installieren.", IDC_INST_FILES_FOR_RTOL_LANG, 12, 92, 215, 22, BS_MULTILINE CHECKBOX "Dateien für &ostasiatische Sprachen installieren.", IDC_INST_FILES_FOR_ASIAN, 12, 114, 180, 22, BS_MULTILINE END @@ -195,14 +195,14 @@ END STRINGTABLE BEGIN IDS_ERROR "Fehler" - IDS_ERROR_SYMBOL_SEPARATE "Das eingegebene kurze Datumstrennzeichen enthält falsche Symbole" - IDS_ERROR_SYMBOL_FORMAT_SHORT "Das eingegebene kurze Datumsformat enthält falsche Symbole" - IDS_ERROR_SYMBOL_FORMAT_LONG "Das eingegebene lange Datumsformat enthält falsche Symbole" - IDS_ERROR_OEM_CODE_PAGE "Die OEM-Codepage konnte nicht gelesen werden" - IDS_ERROR_ANSI_CODE_PAGE "Die ANSI-Codepage konnte nicht gelesen werden" - IDS_ERROR_INT_KEY_REG "Der Schlüssel HKCU\\Control Panel\\International konnte nicht geöffnet werden" - IDS_ERROR_DEF_INT_KEY_REG "Der Schlüssel HKU\\.DEFAULT\\Control Panel\\International konnte nicht geöffnet werden" - IDS_ERROR_NLS_KEY_REG "Der Schlüssel HKLM\\SYSTEM\\CurrentControlSet\\Control\\NLS\\Language konnte nicht geöffnet werden" - IDS_ERROR_NLS_CODE_REG "Der Schlüssel HKLM\\SYSTEM\\CurrentControlSet\\Control\\NLS\\CodePage konnte nicht geöffnet werden" - IDS_ERROR_INPUT_DLL "input.dll konnte nicht geladen werden" + IDS_ERROR_SYMBOL_SEPARATE "Das eingegebene kurze Datumstrennzeichen enthält falsche Symbole." + IDS_ERROR_SYMBOL_FORMAT_SHORT "Das eingegebene kurze Datumsformat enthält falsche Symbole." + IDS_ERROR_SYMBOL_FORMAT_LONG "Das eingegebene lange Datumsformat enthält falsche Symbole." + IDS_ERROR_OEM_CODE_PAGE "Die OEM-Codepage konnte nicht gelesen werden." + IDS_ERROR_ANSI_CODE_PAGE "Die ANSI-Codepage konnte nicht gelesen werden." + IDS_ERROR_INT_KEY_REG "Der Schlüssel HKCU\\Control Panel\\International konnte nicht geöffnet werden." + IDS_ERROR_DEF_INT_KEY_REG "Der Schlüssel HKU\\.DEFAULT\\Control Panel\\International konnte nicht geöffnet werden." + IDS_ERROR_NLS_KEY_REG "Der Schlüssel HKLM\\SYSTEM\\CurrentControlSet\\Control\\NLS\\Language konnte nicht geöffnet werden." + IDS_ERROR_NLS_CODE_REG "Der Schlüssel HKLM\\SYSTEM\\CurrentControlSet\\Control\\NLS\\CodePage konnte nicht geöffnet werden." + IDS_ERROR_INPUT_DLL "Die Datei input.dll konnte nicht geladen werden." END diff --git a/reactos/dll/cpl/mmsys/lang/de-DE.rc b/reactos/dll/cpl/mmsys/lang/de-DE.rc index 7bae399d53d..04bef41c6c7 100644 --- a/reactos/dll/cpl/mmsys/lang/de-DE.rc +++ b/reactos/dll/cpl/mmsys/lang/de-DE.rc @@ -17,7 +17,7 @@ BEGIN PUSHBUTTON "Er&weitert", IDC_ADVANCED_BTN, 150, 105, 75, 15 GROUPBOX "Lautsprechereinstellungen", IDC_SPEAKER_SET_BTN, 7, 140, 230, 80 CONTROL "", IDC_SPEAKIMG, "Static", SS_OWNERDRAW, 4, 160, 70, 70 - LTEXT "Verwenden Sie die unteren Einstellungen um die Lautstre einzelner Gerte und andere Einstellungen zu verndern.", -1, 70, 155, 150, 36 + LTEXT "Verwenden Sie die unteren Einstellungen um die Lautstrke einzelner Gerte und andere Einstellungen zu verndern.", -1, 70, 155, 150, 36 PUSHBUTTON "&Lautstrke...", IDC_SPEAKER_VOL_BTN, 70, 195, 75, 15 PUSHBUTTON "E&rweitert...", IDC_ADVANCED2_BTN, 150, 195, 75, 15 END @@ -27,7 +27,7 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Klnge" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Ein Klangschema ist eine Sammlung von Klngen, die bestimmten Programmereignissen in ReactOS zugordnet sind. Sie knnen ein existierendes Schema auswhlen oder ein modifiziertes speichern.", -1, 8, 7, 230, 40 + LTEXT "Ein Klangschema ist eine Sammlung von Klngen, die bestimmten Programmereignissen in ReactOS zugeordnet sind. Sie knnen ein existierendes Schema auswhlen oder ein modifiziertes speichern.", -1, 8, 7, 230, 40 LTEXT "Klang&schema:", -1, 8, 42, 150, 17 COMBOBOX IDC_SOUND_SCHEME, 8, 53, 230, 46, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "Sp&eichern unter...", IDC_SAVEAS_BTN, 120, 70, 65, 15 @@ -179,7 +179,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION CAPTION "Multichannel" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Bezeichung kommt hier rein.", 9506, 8, 4, 212, 24 + LTEXT "Bezeichnung erscheint hier.", 9506, 8, 4, 212, 24 LTEXT "Niedrig", 9473, 65, 31, 22, 8 LTEXT "", 9472, 5, 31, 55, 8 CONTROL "Slider1", 9475, "MSCTLS_TRACKBAR32", WS_TABSTOP | 0x00000401, 87, 29, 108, 17 diff --git a/reactos/dll/cpl/sysdm/lang/de-DE.rc b/reactos/dll/cpl/sysdm/lang/de-DE.rc index bb39dbfb75d..76bad0e1082 100644 --- a/reactos/dll/cpl/sysdm/lang/de-DE.rc +++ b/reactos/dll/cpl/sysdm/lang/de-DE.rc @@ -139,7 +139,7 @@ CAPTION "Benutzerprofile" FONT 8, "MS Shell Dlg" BEGIN ICON IDI_USERPROF, IDC_STATIC, 6, 11, 16, 16, SS_ICON - LTEXT "Benutzerprofile enthalten Desktopeinstellungen und andere Informationen bezüglich ihrer Anmeldung. Sie können unterschiedliche Profile, für jeden Computer, den Sie benutzen, einrichten, oder aber auch ein einziges Profil wählen, welches auf jedem Computer gleich ist.", IDC_STATIC, 40, 7, 204, 40 + LTEXT "Benutzerprofile enthalten Desktopeinstellungen und andere Informationen bezüglich ihrer Anmeldung. Sie können unterschiedliche Profile für jeden Computer, den Sie benutzen einrichten oder ein einziges Profil wählen, welches auf jedem Computer gleich ist.", IDC_STATIC, 40, 7, 204, 40 LTEXT "Auf diesem Computer gespeicherte Profile:", IDC_STATIC, 16, 51, 204, 9 CONTROL "", IDC_USERPROFILE_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP, 6, 66, 244, 85, WS_EX_CLIENTEDGE @@ -165,7 +165,7 @@ BEGIN CONTROL "", IDC_STRRECLISTUPDWN, "msctls_updown32", UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | WS_CHILD | WS_VISIBLE, 0, 0, 8, 13 LTEXT "Sek.", IDC_STATIC, 221, 56, 14, 8 - AUTOCHECKBOX "Anze&igedauer der Wiederherstellungs-Optionen:", IDC_STRRECREC, 14, 70, 165, 8 + AUTOCHECKBOX "Anze&igedauer der Wiederherstellungsoptionen:", IDC_STRRECREC, 14, 70, 165, 8 EDITTEXT IDC_STRRECRECEDIT, 185, 68, 30, 12, ES_NUMBER CONTROL "", IDC_STRRECRECUPDWN, "msctls_updown32", UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | WS_CHILD | WS_VISIBLE, 0, 0, 8, 13 @@ -176,7 +176,7 @@ BEGIN AUTOCHECKBOX "Ereignis in das Systemprotokoll &eintragen", IDC_STRRECWRITEEVENT, 14, 124, 148, 10 AUTOCHECKBOX "Administrator-Warnmeldung &senden", IDC_STRRECSENDALERT, 14, 138, 148, 10 AUTOCHECKBOX "Automatisch &neu starten", IDC_STRRECRESTART, 14, 152, 145, 10 - GROUPBOX "Debug-Informationen schreiben", IDC_STATIC, 12, 167, 227, 76 + GROUPBOX "Debuginformationen schreiben", IDC_STATIC, 12, 167, 227, 76 COMBOBOX IDC_STRRECDEBUGCOMBO, 17, 182, 151, 49, CBS_DROPDOWNLIST LTEXT "Dump-&Datei:", IDC_STATIC, 17, 202, 150, 8 EDITTEXT IDC_STRRECDUMPFILE, 17, 210, 153, 12 @@ -269,7 +269,7 @@ BEGIN IDS_TERABYTE "TB RAM" IDS_PETABYTE "PB RAM" IDS_VARIABLE "Variable" - IDS_VALUE "Value" + IDS_VALUE "Wert" IDS_NO_DUMP "(Keine)" IDS_MINI_DUMP "Kleines Speicherabbild (64KB)" IDS_KERNEL_DUMP "Kernelspeicherabbild" diff --git a/reactos/dll/cpl/timedate/lang/de-DE.rc b/reactos/dll/cpl/timedate/lang/de-DE.rc index f7f265dbd9f..c256914a328 100644 --- a/reactos/dll/cpl/timedate/lang/de-DE.rc +++ b/reactos/dll/cpl/timedate/lang/de-DE.rc @@ -2,7 +2,7 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL IDD_DATETIMEPAGE DIALOGEX 0, 0, 252, 146 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Datum & Uhrzeit" +CAPTION "Datum und Uhrzeit" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "&Datum", -1, 4, 2, 122, 125 @@ -37,7 +37,7 @@ BEGIN AUTOCHECKBOX "Automatisch mit einem Internetzeitserver synchronisieren", IDC_AUTOSYNC, 11, 7, 241, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP LTEXT "Server:", IDC_SERVERTEXT, 34, 22, 28, 13 - PUSHBUTTON "Jetzt updaten", IDC_UPDATEBUTTON, 187, 22, 49, 14 + PUSHBUTTON "Jetzt aktualisieren", IDC_UPDATEBUTTON, 187, 22, 49, 14 LTEXT "", IDC_SUCSYNC, 16, 54, 214, 23 LTEXT "", IDC_NEXTSYNC, 12, 96, 137, 12 LTEXT "Zum Synchronisieren muss der Computer mit dem Internet verbunden sein.", -1, 12, 114, 225, 25 @@ -50,8 +50,8 @@ BEGIN IDS_TIMEZONETEXT "Aktuelle Zeitzone: %s" IDS_TIMEZONEINVALID "Ungltig" IDS_TIMEZONEUNKNOWN "Unbekannt" - IDS_INETTIMESUCSYNC "Die Zeit wurde erfolgreich mit %s am %s um %s synchronisiert" - IDS_INETTIMENEXTSYNC "Nchste Synchronisierung am %s um %s" - IDS_INETTIMESYNCING "Bitte warten Sie, whrend ReactOS die Zeit mit %s synchronisiert" - IDS_INETTIMEERROR "Ein Fehler trat beim Synchronisieren mit %s auf" + IDS_INETTIMESUCSYNC "Die Zeit wurde erfolgreich mit %s am %s um %s synchronisiert." + IDS_INETTIMENEXTSYNC "Nchste Synchronisierung am %s um %s." + IDS_INETTIMESYNCING "Bitte warten Sie, whrend ReactOS die Zeit mit %s synchronisiert." + IDS_INETTIMEERROR "Ein Fehler trat beim Synchronisieren mit %s auf." END diff --git a/reactos/dll/cpl/usrmgr/lang/de-DE.rc b/reactos/dll/cpl/usrmgr/lang/de-DE.rc index 1ea06e779c3..56ed5210696 100644 --- a/reactos/dll/cpl/usrmgr/lang/de-DE.rc +++ b/reactos/dll/cpl/usrmgr/lang/de-DE.rc @@ -1,10 +1,5 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL -/* - * Attention Translators: - * DO NOT TRANSLATE THESE RESOURCES YET! - */ - /* Dialogs */ IDD_USERS DIALOGEX 0, 0, 252, 223 @@ -54,7 +49,7 @@ BEGIN AUTOCHECKBOX "Benutzer muss das Passwort bei der ersten Anmeldung ndern", IDC_USER_GENERAL_FORCE_CHANGE, 7, 82, 230, 10 AUTOCHECKBOX "Benutzer kann das Passwort nicht ndern", IDC_USER_GENERAL_CANNOT_CHANGE, 7, 95, 210, 10 AUTOCHECKBOX "Passwort luft nie ab", IDC_USER_GENERAL_NEVER_EXPIRES, 7, 108, 210, 10 - AUTOCHECKBOX "Konto ist deativiert", IDC_USER_GENERAL_DISABLED, 7, 121, 210, 10 + AUTOCHECKBOX "Konto ist deaktiviert", IDC_USER_GENERAL_DISABLED, 7, 121, 210, 10 AUTOCHECKBOX "Konto ist gesperrt", IDC_USER_GENERAL_LOCKED, 7, 134, 210, 10 END diff --git a/reactos/dll/cpl/usrmgr/lang/en-US.rc b/reactos/dll/cpl/usrmgr/lang/en-US.rc index ec23327e02c..ef1f2dcee1b 100644 --- a/reactos/dll/cpl/usrmgr/lang/en-US.rc +++ b/reactos/dll/cpl/usrmgr/lang/en-US.rc @@ -1,10 +1,5 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -/* - * Attention Translators: - * DO NOT TRANSLATE THESE RESOURCES YET! - */ - /* Dialogs */ IDD_USERS DIALOGEX 0, 0, 252, 223 diff --git a/reactos/dll/cpl/usrmgr/lang/fr-FR.rc b/reactos/dll/cpl/usrmgr/lang/fr-FR.rc index 7c7812e705e..463b14b84e7 100644 --- a/reactos/dll/cpl/usrmgr/lang/fr-FR.rc +++ b/reactos/dll/cpl/usrmgr/lang/fr-FR.rc @@ -1,6 +1,5 @@ LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL - /* Dialogs */ IDD_USERS DIALOGEX 0, 0, 252, 223 diff --git a/reactos/dll/cpl/usrmgr/lang/he-IL.rc b/reactos/dll/cpl/usrmgr/lang/he-IL.rc index d4b3327ec8d..4491055908a 100644 --- a/reactos/dll/cpl/usrmgr/lang/he-IL.rc +++ b/reactos/dll/cpl/usrmgr/lang/he-IL.rc @@ -1,10 +1,5 @@ LANGUAGE LANG_HEBREW, SUBLANG_DEFAULT -/* - * Attention Translators: - * DO NOT TRANSLATE THESE RESOURCES YET! - */ - /* Dialogs */ IDD_USERS DIALOGEX 0, 0, 252, 223 diff --git a/reactos/dll/cpl/usrmgr/lang/ru-RU.rc b/reactos/dll/cpl/usrmgr/lang/ru-RU.rc index 9c734d3bac5..7e79213af95 100644 --- a/reactos/dll/cpl/usrmgr/lang/ru-RU.rc +++ b/reactos/dll/cpl/usrmgr/lang/ru-RU.rc @@ -1,10 +1,5 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT -/* - * Attention Translators: - * DO NOT TRANSLATE THESE RESOURCES YET! - */ - /* Dialogs */ IDD_USERS DIALOGEX 0, 0, 252, 223 diff --git a/reactos/dll/cpl/usrmgr/lang/uk-UA.rc b/reactos/dll/cpl/usrmgr/lang/uk-UA.rc index 87794ebc446..1299d85a801 100644 --- a/reactos/dll/cpl/usrmgr/lang/uk-UA.rc +++ b/reactos/dll/cpl/usrmgr/lang/uk-UA.rc @@ -1,10 +1,5 @@ LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT -/* - * Attention Translators: - * DO NOT TRANSLATE THESE RESOURCES YET! - */ - /* Dialogs */ IDD_USERS DIALOGEX 0, 0, 252, 223 diff --git a/reactos/dll/shellext/deskadp/lang/de-DE.rc b/reactos/dll/shellext/deskadp/lang/de-DE.rc index 3105ec86cf4..df4b79c7c03 100644 --- a/reactos/dll/shellext/deskadp/lang/de-DE.rc +++ b/reactos/dll/shellext/deskadp/lang/de-DE.rc @@ -40,8 +40,8 @@ BEGIN IDES_REFRESHRATEFMT "%d Hertz" IDS_4BPP "16 Farben" IDS_8BPP "256 Farben" - IDS_15BPP "High Color (15 bit)" - IDS_16BPP "High Color (16 bit)" - IDS_24BPP "True Color (24 bit)" - IDS_32BPP "True Color (32 bit)" + IDS_15BPP "High Color (15 Bit)" + IDS_16BPP "High Color (16 Bit)" + IDS_24BPP "True Color (24 Bit)" + IDS_32BPP "True Color (32 Bit)" END diff --git a/reactos/dll/shellext/slayer/lang/de-DE.rc b/reactos/dll/shellext/slayer/lang/de-DE.rc index 552f311a8c5..fd4894d3f83 100644 --- a/reactos/dll/shellext/slayer/lang/de-DE.rc +++ b/reactos/dll/shellext/slayer/lang/de-DE.rc @@ -5,7 +5,7 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Kompatibilitt" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - LTEXT "Falls dieses Programm Probleme verursacht, whlen Sie den zutreffenden Kompatibilittsmodus, der mit der Betriebssystem-Version bereinstimmt, unter der das Programm korrekt funktionierte.", -1, 7, 7, 210, 31 + LTEXT "Falls dieses Programm Probleme verursacht, whlen Sie einen Kompatibilittsmodus, unter dem das Programm mglicherweise korrekt funktioniert.", -1, 7, 7, 210, 31 GROUPBOX "Kompatibilittsmodus", IDC_COMPATGROUP, 7, 41, 210, 49 CHECKBOX "Programm im Kompatibilittsmodus ausfhren fr:", IDC_CHKRUNCOMPATIBILITY, 18, 57, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP COMBOBOX IDC_COMPATIBILITYMODE, 18, 70, 188, 85, CBS_HASSTRINGS | CBS_DROPDOWNLIST | WS_TABSTOP | WS_DISABLED @@ -33,5 +33,5 @@ END STRINGTABLE BEGIN IDS_SLAYER "Slayer" - IDS_DESCRIPTION "Anwendungs-Kompatibilittsschicht Shell Erweiterung" + IDS_DESCRIPTION "Shell-Erweiterung der Anwendungs-Kompatibilittsschicht" END diff --git a/reactos/dll/win32/syssetup/lang/de-DE.rc b/reactos/dll/win32/syssetup/lang/de-DE.rc index f39054967f8..8cb09d7abe3 100644 --- a/reactos/dll/win32/syssetup/lang/de-DE.rc +++ b/reactos/dll/win32/syssetup/lang/de-DE.rc @@ -2,7 +2,7 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL IDD_WELCOMEPAGE DIALOGEX 0, 0, 317, 193 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "ReactOS-Setup" +CAPTION "ReactOS-Installation" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Willkommen beim ReactOS Installationsassistenten.", IDC_WELCOMETITLE, 115, 9, 189, 31 @@ -12,7 +12,7 @@ END IDD_ACKPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "ReactOS-Setup" +CAPTION "ReactOS-Installation" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN LTEXT "Die Entwicklung von ReactOS wurde teilweise durch folgende Open-Source-Projekte ermöglicht:", IDC_STATIC, 15, 7, 286, 19 @@ -24,11 +24,11 @@ END IDD_OWNERPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "ReactOS-Setup" +CAPTION "ReactOS-Installation" FONT 8, "MS Shell Dlg" BEGIN ICON IDI_ICON2, IDC_STATIC, 21, 7, 20, 20 - LTEXT "Bitte geben Sie Ihren Namen und den Namen Ihrer Firma ein.", IDC_STATIC, 54, 7, 242, 21 + LTEXT "Bitte geben Sie Ihren Namen und den Namen Ihrer Firma oder Organisation ein.", IDC_STATIC, 54, 7, 242, 21 LTEXT "Na&me:", IDC_STATIC, 54, 37, 44, 8 EDITTEXT IDC_OWNERNAME, 132, 35, 163, 14, WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL LTEXT "&Organisation:", IDC_STATIC, 54, 57, 44, 8 @@ -37,15 +37,15 @@ END IDD_COMPUTERPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "ReactOS-Setup" +CAPTION "ReactOS-Installation" FONT 8, "MS Shell Dlg" BEGIN ICON IDI_ICON1, IDC_STATIC, 21, 7, 20, 20 - LTEXT "Bitte geben Sie einen Computernamen ein (maximal 15 Zeichen). Wenn Sie im Netzwerk sind, muss dieser Name einmalig sein.", IDC_STATIC, 54, 7, 250, 24 - LTEXT "&Computer Name:", IDC_STATIC, 54, 38, 75, 8 + LTEXT "Bitte geben Sie einen Computernamen maximal 15 Zeichen ein. Wenn Sie im Netzwerk sind, muss dieser Name einmalig sein.", IDC_STATIC, 54, 7, 250, 24 + LTEXT "&Computername:", IDC_STATIC, 54, 38, 75, 8 EDITTEXT IDC_COMPUTERNAME, 132, 35, 163, 14, WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL | ES_UPPERCASE ICON IDI_ICON5, IDC_STATIC, 21, 57, 20, 20 - LTEXT "Das Setup wird ein Administratorkonto erstellen. Benutzen Sie es, wenn Sie vollen Zugriff auf Ihren Computer benötigen.", IDC_STATIC, 54, 57, 250, 25 + LTEXT "Das Installationsprogramm wird ein Administratorkonto erstellen. Benutzen Sie es, wenn Sie vollen Zugriff auf Ihren Computer benötigen.", IDC_STATIC, 54, 57, 250, 25 LTEXT "Geben Sie ein Passwort für das Administratorkonto mit max. 127 Zeichen ein.", IDC_STATIC, 54, 87, 250, 8 LTEXT "&Administratorpasswort:", IDC_STATIC, 54, 104, 75, 8 EDITTEXT IDC_ADMINPASSWORD1, 132, 101, 172, 14, WS_VISIBLE | WS_TABSTOP | ES_PASSWORD @@ -55,27 +55,27 @@ END IDD_LOCALEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "ReactOS-Setup" +CAPTION "ReactOS-Installation" FONT 8, "MS Shell Dlg" BEGIN ICON IDI_ICON4, IDC_STATIC, 21, 7, 20, 20 - LTEXT "Die lokalen Systemeinstellungen sollten mit der Sprache der Anwendungen, die Sie nutzen wollen übereinstimmen. Die lokalen Nutzereinstellungen geben vor, wie Nummern, Währungen und Datumsangaben dargestellt werden.", IDC_STATIC, 53, 6, 253, 30 + LTEXT "Die Spracheinstellungen des Systems sollten mit der Sprache der Anwendungen, die Sie nutzen wollen übereinstimmen. Die Nutzereinstellungen geben vor, wie Zahlen, Währungen und Datumsangaben dargestellt werden.", IDC_STATIC, 53, 6, 253, 30 LTEXT "", IDC_LOCALETEXT, 54, 34, 250, 16 - LTEXT "Um die lokalen Nutzer- oder Systemeinstellungen zu ändern, klicken Sie auf Einstellen.", IDC_STATIC, 53, 57, 188, 16 + LTEXT "Klicken Sie auf Einstellen, um die regionalen Einstellungen zu ändern.", IDC_STATIC, 53, 57, 188, 16 PUSHBUTTON "&Einstellen...", IDC_CUSTOMLOCALE, 245, 57, 50, 14 LTEXT "Das Tastaturlayout gibt vor, welches Zeichen ein Tastendruck bewirkt.", IDC_STATIC, 53, 86, 253, 8 LTEXT "", IDC_LAYOUTTEXT, 53, 100, 250, 16 - LTEXT "Um das Tastaturlayout zu ändern, klicken Sie auf Einstellen.", IDC_STATIC, 53, 122, 188, 16 - PUSHBUTTON "&Einstellen...", IDC_CUSTOMLAYOUT, 245, 122, 50, 14 + LTEXT "Klicken Sie auf Einstellen, um das Tastaturlayout zu ändern.", IDC_STATIC, 53, 122, 188, 16 + PUSHBUTTON "Eins&tellen...", IDC_CUSTOMLAYOUT, 245, 122, 50, 14 END IDD_DATETIMEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "ReactOS-Setup" +CAPTION "ReactOS-Installation" FONT 8, "MS Shell Dlg" BEGIN ICON IDI_ICON3, IDC_STATIC, 21, 10, 20, 20 - LTEXT "Datum und Zeit", IDC_STATIC, 53, 7, 253, 8 + LTEXT "Datum und Uhrzeit", IDC_STATIC, 53, 7, 253, 8 CONTROL "", IDC_DATEPICKER, "SysDateTimePick32", DTS_LONGDATEFORMAT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 53, 17, 137, 14 CONTROL "", IDC_TIMEPICKER, "SysDateTimePick32", DTS_TIMEFORMAT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 200, 17, 54, 14 LTEXT "Zeitzone", IDC_STATIC, 53, 42, 253, 8 @@ -85,7 +85,7 @@ END IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "ReactOS-Setup" +CAPTION "ReactOS-Installation" FONT 8, "MS Shell Dlg" BEGIN LTEXT "", IDC_ACTIVITY, 53, 7, 253, 20 @@ -99,14 +99,14 @@ CAPTION "Fertigstellung der Installation" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Fertigstellung des ReactOS Installationsassistenten", IDC_FINISHTITLE, 115, 9, 195, 37 - LTEXT "Das ReactOS-Setup wurde erfolgreich fertiggestellt.\n\nWenn Sie auf Beenden klicken, wird der Computer neu gestartet.", IDC_STATIC, 115, 58, 195, 100 + LTEXT "Die Installation von ReactOS wurde erfolgreich fertiggestellt.\n\nWenn Sie auf Beenden klicken, wird der Computer neu gestartet.", IDC_STATIC, 115, 58, 195, 100 CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 115, 138, 188, 12 - LTEXT "Entfernen Sie die CD, wenn vorhanden. Danach klicken Sie auf Beenden, um den Computer neu zu starten.", IDC_STATIC, 115, 160, 195, 31 + LTEXT "Entfernen Sie die CD und klicken Sie auf Beenden, um den Computer neuzustarten.", IDC_STATIC, 115, 160, 195, 31 END IDD_GPL DIALOGEX 0, 0, 333, 230 STYLE DS_SHELLFONT | DS_CENTER | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "GNU General Public License" +CAPTION "GNU General Public License (GPL)" FONT 8, "MS Shell Dlg" BEGIN EDITTEXT IDC_GPL_TEXT, 7, 7, 319, 190, ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL @@ -123,7 +123,7 @@ END STRINGTABLE BEGIN - IDS_ACKTITLE "Anerkennungen" + IDS_ACKTITLE "Danksagungen" IDS_ACKSUBTITLE "Informationen über die Entwickler und Softwarelizenzen" IDS_OWNERTITLE "Personalisieren Sie Ihre Software" IDS_OWNERSUBTITLE "Das Setup nutzt diese Informationen über Sie, um ReactOS zu personalisieren." @@ -132,14 +132,14 @@ BEGIN IDS_LOCALETITLE "Regionale Einstellungen" IDS_LOCALESUBTITLE "Sie können ReactOS auf unterschiedliche Regionen und Sprachen einstellen." IDS_DATETIMETITLE "Datum und Uhrzeit" - IDS_DATETIMESUBTITLE "Setzen Sie das korrekte Datum und Uhrzeit für Ihren Computer." - IDS_PROCESSTITLE "Registriere Komponenten" + IDS_DATETIMESUBTITLE "Stellen Sie das korrekte Datum und die Uhrzeit für Ihren Computer ein." + IDS_PROCESSTITLE "Komponenten werden registriert" IDS_PROCESSSUBTITLE "Bitte warten..." END STRINGTABLE BEGIN - IDS_REACTOS_SETUP "ReactOS-Setup" + IDS_REACTOS_SETUP "ReactOS-Installation" IDS_UNKNOWN_ERROR "Unbekannter Fehler" IDS_REGISTERING_COMPONENTS "Registriere Komponenten..." IDS_LOADLIBRARY_FAILED "LoadLibrary fehlgeschlagen: " @@ -159,13 +159,13 @@ END STRINGTABLE BEGIN - IDS_WZD_NAME "Setup kann erst fortgesetzt werden, wenn ein Name eingegeben wurde." - IDS_WZD_SETCOMPUTERNAME "Setup konnte den Computernamen nicht setzen." - IDS_WZD_COMPUTERNAME "Setup kann erst fortgesetzt werden, wenn ein Computername eingegeben wurde." - IDS_WZD_PASSWORDEMPTY "Sie müssen ein Passwort setzen!" - IDS_WZD_PASSWORDMATCH "Die Passwörter sind nicht gleich. Bitte setzen Sie die Passwörter erneut." - IDS_WZD_PASSWORDCHAR "Das Passwort, das Sie setzten, enthält ungültige Zeichen. Bitte setzen Sie ein gültiges Passwort." - IDS_WZD_LOCALTIME "Setup konnte die lokale Zeit nicht setzen." + IDS_WZD_NAME "Die Installation kann erst fortgesetzt werden, wenn ein Name eingegeben wurde." + IDS_WZD_SETCOMPUTERNAME "Das Installationsprogramm konnte den Computernamen nicht einstellen." + IDS_WZD_COMPUTERNAME "Die Installation kann erst fortgesetzt werden, wenn ein Computername eingegeben wurde." + IDS_WZD_PASSWORDEMPTY "Sie müssen ein Passwort vergeben!" + IDS_WZD_PASSWORDMATCH "Die Passwörter sind nicht identisch. Bitte geben Sie die Passwörter erneut ein." + IDS_WZD_PASSWORDCHAR "Das Passwort enthält ungültige Zeichen. Bitte wählen Sie ein gültiges Passwort." + IDS_WZD_LOCALTIME "Das Installationsprogramm konnte die lokale Zeit nicht einstellen." END STRINGTABLE From de380ecfd2b3a017db5b930d72740d25dd31a339 Mon Sep 17 00:00:00 2001 From: Daniel Reimer Date: Tue, 13 May 2014 18:28:47 +0000 Subject: [PATCH 86/92] DLL: Many improvements to German translations by zehnvor CORE-8216 #resolve #comment Committed, thx. svn path=/trunk/; revision=63276 --- reactos/dll/win32/aclui/lang/de-DE.rc | 2 +- reactos/dll/win32/comctl32/lang/comctl_De.rc | 10 ++++---- reactos/dll/win32/comdlg32/lang/cdlg_De.rc | 18 +++++++------- reactos/dll/win32/cryptui/lang/cryptui_De.rc | 14 +++++------ reactos/dll/win32/devmgr/lang/de-DE.rc | 6 ++--- reactos/dll/win32/iccvid/lang/iccvid_De.rc | 4 +-- reactos/dll/win32/jscript/lang/jscript_De.rc | 22 ++++++++--------- reactos/dll/win32/localspl/lang/spl_De.rc | 2 +- reactos/dll/win32/localui/lang/ui_De.rc | 4 +-- reactos/dll/win32/lsasrv/lang/de-DE.rc | 12 ++++----- reactos/dll/win32/mapi32/lang/De.rc | 2 +- reactos/dll/win32/msgina/lang/de-DE.rc | 26 ++++++++++---------- reactos/dll/win32/mshtml/lang/De.rc | 6 ++--- reactos/dll/win32/msports/lang/de-DE.rc | 4 +-- reactos/dll/win32/msvfw32/lang/msvfw32_De.rc | 6 ++--- reactos/dll/win32/netcfgx/lang/de-DE.rc | 2 +- reactos/dll/win32/netid/lang/de-DE.rc | 14 +++++------ reactos/dll/win32/netshell/lang/de-DE.rc | 4 +-- reactos/dll/win32/oleacc/lang/oleacc_De.rc | 12 ++++----- reactos/dll/win32/oledlg/lang/oledlg_De.rc | 16 ++++++------ reactos/dll/win32/samsrv/lang/de-DE.rc | 4 +-- reactos/dll/win32/serialui/lang/de-DE.rc | 22 ++++++++--------- reactos/dll/win32/shell32/lang/de-DE.rc | 16 ++++++------ reactos/dll/win32/winmm/lang/winmm_De.rc | 16 ++++++------ 24 files changed, 122 insertions(+), 122 deletions(-) diff --git a/reactos/dll/win32/aclui/lang/de-DE.rc b/reactos/dll/win32/aclui/lang/de-DE.rc index 5465cc44900..1e4a757c631 100644 --- a/reactos/dll/win32/aclui/lang/de-DE.rc +++ b/reactos/dll/win32/aclui/lang/de-DE.rc @@ -5,7 +5,7 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_VISIBLE | WS_CAPTION CAPTION "Sicherheit" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - LTEXT "&Gruppen oder Benutzernamen:", -1, 7, 21, 105, 8 + LTEXT "&Gruppen- oder Benutzernamen:", -1, 7, 21, 105, 8 CONTROL "", IDC_PRINCIPALS, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 7, 31, 213, 52, WS_EX_NOPARENTNOTIFY | WS_EX_CLIENTEDGE LTEXT "&Besitzer:", -1, 7, 7, 49, 8 EDITTEXT IDC_OWNER, 63, 4, 156, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_READONLY diff --git a/reactos/dll/win32/comctl32/lang/comctl_De.rc b/reactos/dll/win32/comctl32/lang/comctl_De.rc index 98e3edc4866..702468a35fa 100644 --- a/reactos/dll/win32/comctl32/lang/comctl_De.rc +++ b/reactos/dll/win32/comctl32/lang/comctl_De.rc @@ -57,7 +57,7 @@ END IDD_WIZARD DIALOG 0, 0, 290, 159 STYLE DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE -CAPTION "Wizard" +CAPTION "Assistent" FONT 8, "MS Shell Dlg" BEGIN PUSHBUTTON "< &Zurück", IDC_BACK_BUTTON,56,138,55,14 @@ -79,12 +79,12 @@ BEGIN DEFPUSHBUTTON "&Schließen", IDCANCEL,320,6,70,14 PUSHBUTTON "&Zurücksetzen", IDC_RESET_BTN,320,23,70,14 PUSHBUTTON "&Hilfe", IDC_HELP_BTN,320,40,70,14 - PUSHBUTTON "Nach &Oben verschieben", IDC_MOVEUP_BTN,320,74,70,14 - PUSHBUTTON "Nach &Unten verschieben", IDC_MOVEDN_BTN,320,91,70,14 - LTEXT "&Vorhandene Knöpfe:", -1,4,5,120,10 + PUSHBUTTON "Nach &oben verschieben", IDC_MOVEUP_BTN,320,74,70,14 + PUSHBUTTON "Nach &unten verschieben", IDC_MOVEDN_BTN,320,91,70,14 + LTEXT "&Vorhandene Buttons:", -1,4,5,120,10 LISTBOX IDC_AVAILBTN_LBOX,5,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP PUSHBUTTON "H&inzufügen ->", IDOK, 132, 42, 55, 14 PUSHBUTTON "<- &Löschen", IDC_REMOVE_BTN,132,62,55,14 - LTEXT "Symbolleis&tenknöpfe:", -1,194,5,120,10 + LTEXT "Symbolleis&tenbuttons:", -1,194,5,120,10 LISTBOX IDC_TOOLBARBTN_LBOX, 194,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END diff --git a/reactos/dll/win32/comdlg32/lang/cdlg_De.rc b/reactos/dll/win32/comdlg32/lang/cdlg_De.rc index c92c5ccb0c4..b5a264f03c8 100644 --- a/reactos/dll/win32/comdlg32/lang/cdlg_De.rc +++ b/reactos/dll/win32/comdlg32/lang/cdlg_De.rc @@ -66,7 +66,7 @@ Bitte geben Sie eine Zahl zwischen 1 und %d ein." PD32_DRIVER_UNKNOWN "Unbekannter Druckertreiber." PD32_NO_DEVICES "Bevor Sie Drucker-relevante Aufgaben ausführen können, wie die Seiteneinrichtung oder ein Dokument zu drucken, müssen Sie einen Drucker installieren. Bitte führen Sie dies zuerst aus und versuchen Sie es erneut." - PD32_DEFAULT_PRINTER "Standard Drucker; " + PD32_DEFAULT_PRINTER "Standarddrucker; " PD32_NR_OF_DOCUMENTS_IN_QUEUE "Es sind %d Dokumente in der Warteschlange" PD32_MARGINS_IN_INCHES "Ränder [Zoll]" PD32_MARGINS_IN_MILLIMETERS "Ränder [mm]" @@ -80,16 +80,16 @@ Bitte geben Sie eine Zahl zwischen 1 und %d ein." PD32_PRINTER_STATUS_PAPER_OUT "Papierfach leer; " PD32_PRINTER_STATUS_MANUAL_FEED "Papier manuell zuführen; " PD32_PRINTER_STATUS_PAPER_PROBLEM "Papierproblem; " - PD32_PRINTER_STATUS_OFFLINE "Drucker ist offline; " + PD32_PRINTER_STATUS_OFFLINE "Drucker ist unerreichbar; " PD32_PRINTER_STATUS_IO_ACTIVE "Datenübertragung; " PD32_PRINTER_STATUS_BUSY "Beschäftigt; " - PD32_PRINTER_STATUS_PRINTING "Druckend; " - PD32_PRINTER_STATUS_OUTPUT_BIN_FULL "Ausgabe Fach ist voll; " + PD32_PRINTER_STATUS_PRINTING "Druckt; " + PD32_PRINTER_STATUS_OUTPUT_BIN_FULL "Ausgabefach ist voll; " PD32_PRINTER_STATUS_NOT_AVAILABLE "Nicht vorhanden; " - PD32_PRINTER_STATUS_WAITING "Wartend; " + PD32_PRINTER_STATUS_WAITING "Warten; " PD32_PRINTER_STATUS_PROCESSING "In Bearbeitung; " - PD32_PRINTER_STATUS_INITIALIZING "Initialisierend; " - PD32_PRINTER_STATUS_WARMING_UP "Aufwärmend; " + PD32_PRINTER_STATUS_INITIALIZING "Initialisierung; " + PD32_PRINTER_STATUS_WARMING_UP "Aufwärmen; " PD32_PRINTER_STATUS_TONER_LOW "Tonerstand niedrig; " PD32_PRINTER_STATUS_NO_TONER "Kein Toner mehr; " PD32_PRINTER_STATUS_PAGE_PUNT "Seitenausgabe; " @@ -123,7 +123,7 @@ STRINGTABLE /* Color names */ IDS_COLOR_LIME "Hellgrün" IDS_COLOR_YELLOW "Gelb" IDS_COLOR_BLUE "Blau" - IDS_COLOR_FUCHSIA "Fuchsin" + IDS_COLOR_FUCHSIA "Fuchsie" IDS_COLOR_AQUA "Aquamarin" IDS_COLOR_WHITE "Weiß" } @@ -193,7 +193,7 @@ FONT 8, "MS Shell Dlg" { LTEXT "Drucker:", stc1, 6, 6, 40, 9 LTEXT "", stc2, 60, 6, 150, 9 - GROUPBOX "Druck Bereich", grp1, 6, 30, 160, 65, BS_GROUPBOX + GROUPBOX "Druckbereich", grp1, 6, 30, 160, 65, BS_GROUPBOX RADIOBUTTON "&Alles", rad1, 16, 45, 60, 12 RADIOBUTTON "A&uswahl", rad2, 16, 60, 60, 12 RADIOBUTTON "&Seiten", rad3, 16, 75, 60, 12 diff --git a/reactos/dll/win32/cryptui/lang/cryptui_De.rc b/reactos/dll/win32/cryptui/lang/cryptui_De.rc index ef2806b259a..742ec682385 100644 --- a/reactos/dll/win32/cryptui/lang/cryptui_De.rc +++ b/reactos/dll/win32/cryptui/lang/cryptui_De.rc @@ -318,7 +318,7 @@ IDD_IMPORT_STORE DIALOG 0,0,317,143 CAPTION "Importassistent für die Zertifikatsverwaltung" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Wine kann automatisch einen Zertifikatsspeicher wählen, oder Sie wählen einen aus.", + LTEXT "ReactOS kann automatisch einen Zertifikatsspeicher wählen, oder Sie wählen einen aus.", -1, 21,1,220,25 AUTORADIOBUTTON "A&utomatisch einen Zertifikatsspeicher wählen", IDC_IMPORT_AUTO_STORE, 31,28,220,12, BS_AUTORADIOBUTTON|WS_TABSTOP @@ -381,11 +381,11 @@ CAPTION "Exportassistent für die Zertifikatsverwaltung" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Willkommen", IDC_EXPORT_TITLE, 115,7,195,30 - LTEXT "Dieser Assistent hilft ihnen Zertifikate, Zertifikatssperrlisten und Zertifikatsvertrauenslisten in eine Datei zu exportieren.\n\ + LTEXT "Dieser Assistent hilft ihnen, Zertifikate, Zertifikatssperrlisten und Zertifikatsvertrauenslisten in eine Datei zu exportieren.\n\ \n\ Ein Zertifikat dient zur Identifikation von Ihnen oder ihrem Computer. Es kann auch für die Authentifizierung und zum Unterzeichnen genutzt werden. Zertifikatsspeicher sind Sammlungen von Zertifikaten, Zertifikatssperrlisten und Zertifikatsvertrauenslisten.\n\ \n\ -Klicken Sie Weiter um fortzufahren.", +Klicken Sie auf Weiter, um fortzufahren.", -1, 115,40,195,120 END @@ -393,7 +393,7 @@ IDD_EXPORT_PRIVATE_KEY DIALOG 0,0,317,143 CAPTION "Exportassistent für die Zertifikatsverwaltung" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Wenn Sie sich entscheiden den privaten Schlüssel zu exportieren, werden Sie später nach einem Passwort gefragt.", -1, 21,1,195,25 + LTEXT "Wenn Sie sich entscheiden, den privaten Schlüssel zu exportieren, werden Sie später nach einem Passwort gefragt.", -1, 21,1,195,25 LTEXT "Privaten Schlüssel exportieren?", -1, 21,27,195,10 AUTORADIOBUTTON "&Ja, privaten Schlüssel exportieren", IDC_EXPORT_PRIVATE_KEY_YES, 31,36,200,12, BS_AUTORADIOBUTTON|WS_TABSTOP @@ -423,15 +423,15 @@ BEGIN IDC_EXPORT_FORMAT_BASE64, 31,30,280,12, BS_AUTORADIOBUTTON AUTORADIOBUTTON "&Syntaxstandard kryptografischer Meldungen/PKCS #7 Zertifikate (.p7b)", IDC_EXPORT_FORMAT_CMS, 31,42,280,12, BS_AUTORADIOBUTTON - CHECKBOX "&Wenn möglich alle Zertifikate im Zertifizierungspfad einbeziehen", + CHECKBOX "&Wenn möglich, alle Zertifikate im Zertifizierungspfad einbeziehen", IDC_EXPORT_CMS_INCLUDE_CHAIN, 44,57,280,8, BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED AUTORADIOBUTTON "&Privater Informationsaustausch/PKCS #12 (.pfx)", IDC_EXPORT_FORMAT_PFX, 31,72,280,12, BS_AUTORADIOBUTTON|WS_DISABLED - CHECKBOX "W&enn möglich alle Zertifikate im Zertifizierungspfad einbeziehen", + CHECKBOX "W&enn möglich, alle Zertifikate im Zertifizierungspfad einbeziehen", IDC_EXPORT_PFX_INCLUDE_CHAIN, 44,87,280,8, BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED CHECKBOX "&Verstärkte Sicherheit aktivieren", IDC_EXPORT_PFX_STRONG_ENCRYPTION, 44,102,280,8, BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED - CHECKBOX "Priva&ten Schlüssel löschen wenn der Export erfolgreich war", + CHECKBOX "Priva&ten Schlüssel löschen, wenn der Export erfolgreich war", IDC_EXPORT_PFX_DELETE_PRIVATE_KEY, 44,117,280,8, BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED END diff --git a/reactos/dll/win32/devmgr/lang/de-DE.rc b/reactos/dll/win32/devmgr/lang/de-DE.rc index 9390aa27e8d..98bfd492609 100644 --- a/reactos/dll/win32/devmgr/lang/de-DE.rc +++ b/reactos/dll/win32/devmgr/lang/de-DE.rc @@ -20,7 +20,7 @@ BEGIN IDS_DEVONPARENT "auf %1" IDS_TROUBLESHOOTDEV "Problem &lösen..." IDS_ENABLEDEV "Gerät &aktivieren" - IDS_REINSTALLDRV "Treiber neu&installieren" + IDS_REINSTALLDRV "Treiber neu &installieren" IDS_PROPERTIES "&Eigenschaften" IDS_UPDATEDRV "Treiber &aktualisieren..." IDS_REBOOT "Computer neusta&rten..." @@ -40,7 +40,7 @@ STRINGTABLE BEGIN IDS_DEV_NO_PROBLEM "Dieses Gerät funktioniert einwandfrei." IDS_DEV_NOT_CONFIGURED "Dieses Gerät ist nicht richtig konfiguriert." - IDS_DEV_DEVLOADER_FAILED "ReactOS konnte den Treiber für dieses Gerät nicht laden, weil der Computer zwei %1 Bustypen meldet." + IDS_DEV_DEVLOADER_FAILED "ReactOS konnte den Treiber für dieses Gerät nicht laden, weil der Computer zwei %1 Bustypen meldet." IDS_DEV_DEVLOADER_FAILED2 "Der/die %1 Gerätelader für dieses Gerät konnte den Gerätetreiber nicht laden." IDS_DEV_OUT_OF_MEMORY "Der Treiber für dieses Gerät könnte beschädigt sein, oder Ihr System verfügt über zu wenig Speicher oder andere Ressourcen." IDS_DEV_ENTRY_IS_WRONG_TYPE "Dieses Gerät arbeitet nicht korrekt, weil einer seiner Treiber oder die Registry beschädigt ist." @@ -49,7 +49,7 @@ BEGIN IDS_DEV_FAILED_FILTER "Die Treiber für dieses Gerät müssen neu installiert werden." IDS_DEV_DEVLOADER_NOT_FOUND "Dieses Gerät arbeitet nicht korrekt, weil ReactOS die Datei %1 nicht laden kann, die die Treiber für dieses Gerät lädt." IDS_DEV_DEVLOADER_NOT_FOUND2 "Dieses Gerät arbeitet nicht korrekt, weil die Datei %1, die die Treiber für dieses Gerät lädt, defekt ist." - IDS_DEV_DEVLOADER_NOT_FOUND3 "Gerätefehler: Versuchen Sie, den Treiber für dieses Gerät auszutauschen. Wenn das nicht hilft, sehen Sie in die Gerätedokumentation." + IDS_DEV_DEVLOADER_NOT_FOUND3 "Gerätefehler: Versuchen Sie, einen anderen Treiber für dieses Gerät zu verwenden. Wenn das nicht hilft, sehen Sie in die Gerätedokumentation." IDS_DEV_INVALID_DATA "Dieses Gerät arbeitet nicht korrekt, weil das BIOS ihres Computers die Ressourcen für dieses Gerät falsch angibt." IDS_DEV_INVALID_DATA2 "Dieses Gerät arbeitet nicht korrekt, weil das BIOS dieses Gerätes die Ressourcen für dieses Gerät falsch angibt. " IDS_DEV_FAILED_START "Dieses Gerät ist entweder nicht vorhanden, funktioniert nicht korrekt, oder es sind nicht alle Treiber installiert." diff --git a/reactos/dll/win32/iccvid/lang/iccvid_De.rc b/reactos/dll/win32/iccvid/lang/iccvid_De.rc index 075d5618961..f2c4e4f088f 100644 --- a/reactos/dll/win32/iccvid/lang/iccvid_De.rc +++ b/reactos/dll/win32/iccvid/lang/iccvid_De.rc @@ -25,6 +25,6 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL STRINGTABLE { - IDS_NAME "Cinepak Video Codec" - IDS_DESCRIPTION "Cinepak Video Codec" + IDS_NAME "Cinepak Video-Codec" + IDS_DESCRIPTION "Cinepak Video-Codec" } diff --git a/reactos/dll/win32/jscript/lang/jscript_De.rc b/reactos/dll/win32/jscript/lang/jscript_De.rc index 74d77bfb608..70a068cdf96 100644 --- a/reactos/dll/win32/jscript/lang/jscript_De.rc +++ b/reactos/dll/win32/jscript/lang/jscript_De.rc @@ -22,26 +22,26 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL STRINGTABLE { - IDS_TO_PRIMITIVE "Fehler beim umwandeln des Objektes in einen Grundtyp" - IDS_INVALID_CALL_ARG "Ungültiger Funktionsaufruf oder Argument" + IDS_TO_PRIMITIVE "Fehler beim Umwandeln des Objektes in einen Grundtyp" + IDS_INVALID_CALL_ARG "Ungültiger Funktionsaufruf oder ungültiges Argument" IDS_CREATE_OBJ_ERROR "Automatisierungsserver konnte das Objekt nicht erstellen" IDS_NO_PROPERTY "Das Objekt unterstützt diese Eigenschaft oder Methode nicht" - IDS_ARG_NOT_OPT "Argument nicht optional" - IDS_SYNTAX_ERROR "Syntax Fehler" + IDS_ARG_NOT_OPT "Dieses Argument ist nicht optional" + IDS_SYNTAX_ERROR "Syntaxfehler" IDS_SEMICOLON "';' erwartet" IDS_LBRACKET "'(' erwartet" IDS_RBRACKET "')' erwartet" - IDS_UNTERMINATED_STR "konstante Zeichenkette nicht terminiert" + IDS_UNTERMINATED_STR "konstante Zeichenkette wurde nicht abgeschlossen" IDS_NOT_FUNC "Funktion erwartet" IDS_NOT_DATE "'[Objekt]' ist kein Datums-Objekt" - IDS_NOT_NUM "Nummer erwartet" + IDS_NOT_NUM "Zahl erwartet" IDS_OBJECT_EXPECTED "Objekt erwartet" IDS_ILLEGAL_ASSIGN "Unzulässige Zuweisung" IDS_UNDEFINED "'|' nicht definiert" - IDS_NOT_BOOL "Boolisches Objekt erwartet" - IDS_JSCRIPT_EXPECTED "JScript Objekt erwartet" - IDS_REGEXP_SYNTAX_ERROR "Syntax Fehler in regulärem Ausdruck" + IDS_NOT_BOOL "Boolsches Objekt erwartet" + IDS_JSCRIPT_EXPECTED "JScript-Objekt erwartet" + IDS_REGEXP_SYNTAX_ERROR "Syntaxfehler in regulärem Ausdruck" IDS_URI_INVALID_CHAR "Zu verschlüsselnde URI enthält ungültige Zeichen" - IDS_INVALID_LENGTH "Array-Größe muss eine endliche, positive Ganzzahl sein" - IDS_ARRAY_EXPECTED "Array Objekt erwartet" + IDS_INVALID_LENGTH "Größe des Array muss eine endliche, positive Ganzzahl sein" + IDS_ARRAY_EXPECTED "Array-Objekt erwartet" } diff --git a/reactos/dll/win32/localspl/lang/spl_De.rc b/reactos/dll/win32/localspl/lang/spl_De.rc index 4ad1148b0e7..29191bd9a1c 100644 --- a/reactos/dll/win32/localspl/lang/spl_De.rc +++ b/reactos/dll/win32/localspl/lang/spl_De.rc @@ -26,5 +26,5 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL STRINGTABLE { IDS_LOCALPORT "Lokaler Anschluss" - IDS_LOCALMONITOR "Lokaler Monitor" + IDS_LOCALMONITOR "Lokale Anzeige" } diff --git a/reactos/dll/win32/localui/lang/ui_De.rc b/reactos/dll/win32/localui/lang/ui_De.rc index 9a22d931635..cee6d7b61d0 100644 --- a/reactos/dll/win32/localui/lang/ui_De.rc +++ b/reactos/dll/win32/localui/lang/ui_De.rc @@ -29,7 +29,7 @@ STYLE DS_CONTEXTHELP | DS_MODALFRAME | DS_SETFONT | DS_SETFOREGROUND | WS_POPUPW CAPTION "Lokalen Anschluss hinzufügen" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Lokaler Anschuss, der hinzugefügt werden soll:", -1, 7, 13, 194, 13, WS_VISIBLE + LTEXT "&Lokaler Anschluss, der hinzugefügt werden soll:", -1, 7, 13, 194, 13, WS_VISIBLE EDITTEXT ADDPORT_EDIT, 6, 28, 174, 12, WS_VISIBLE | ES_AUTOHSCROLL DEFPUSHBUTTON "OK", IDOK, 188, 10, 50, 14, WS_VISIBLE PUSHBUTTON "Abbrechen", IDCANCEL, 188, 27, 50, 14, WS_VISIBLE @@ -54,5 +54,5 @@ STRINGTABLE IDS_LOCALPORT "Lokaler Anschluss" IDS_INVALIDNAME "'%s' ist kein gültiger Anschlussname" IDS_PORTEXISTS "Der Anschluss %s existiert bereits" - IDS_NOTHINGTOCONFIG "Dieser Anschluss hat keine Optionen zum Konfigurieren" + IDS_NOTHINGTOCONFIG "Dieser Anschluss besitzt keine zu konfigurierenden Optionen" } diff --git a/reactos/dll/win32/lsasrv/lang/de-DE.rc b/reactos/dll/win32/lsasrv/lang/de-DE.rc index 6ea9330f2f4..0c53df7dada 100644 --- a/reactos/dll/win32/lsasrv/lang/de-DE.rc +++ b/reactos/dll/win32/lsasrv/lang/de-DE.rc @@ -32,13 +32,13 @@ BEGIN IDS_ALIAS_RID_USERS "Benutzer" IDS_ALIAS_RID_GUESTS "Gäste" IDS_ALIAS_RID_POWER_USERS "Hauptbenutzer" - IDS_ALIAS_RID_ACCOUNT_OPS "Konten-Operatoren" - IDS_ALIAS_RID_SYSTEM_OPS "Server-Operatoren" - IDS_ALIAS_RID_PRINT_OPS "Druck-Operatoren" - IDS_ALIAS_RID_BACKUP_OPS "Sicherungs-Operatoren" - IDS_ALIAS_RID_REPLICATOR "Replikations-Operatoren" + IDS_ALIAS_RID_ACCOUNT_OPS "Kontenoperatoren" + IDS_ALIAS_RID_SYSTEM_OPS "Serveroperatoren" + IDS_ALIAS_RID_PRINT_OPS "Druckoperatoren" + IDS_ALIAS_RID_BACKUP_OPS "Sicherungsoperatoren" + IDS_ALIAS_RID_REPLICATOR "Replikationsoperatoren" IDS_ALIAS_RID_RAS_SERVERS "RAS- und IAS-Server" IDS_ALIAS_RID_PREW2KCOMPACCESS "Prä-Windows 2000 kompatibler Zugriff" IDS_ALIAS_RID_REMOTE_DESKTOP_USERS "Remotedesktopbenutzer" - IDS_ALIAS_RID_NETWORK_CONFIGURATION_OPS "Netzwerkkonfigurations-Operatoren" + IDS_ALIAS_RID_NETWORK_CONFIGURATION_OPS "Netzwerk-Konfigurationsoperatoren" END diff --git a/reactos/dll/win32/mapi32/lang/De.rc b/reactos/dll/win32/mapi32/lang/De.rc index 2bbaee89fa7..31bda205643 100644 --- a/reactos/dll/win32/mapi32/lang/De.rc +++ b/reactos/dll/win32/mapi32/lang/De.rc @@ -23,6 +23,6 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL STRINGTABLE { - IDS_NO_MAPI_CLIENT, "Das senden der E-Mails scheiterte, da Sie keinen MAPI E-Mail Programm installiert haben." + IDS_NO_MAPI_CLIENT, "Das Senden der E-Mails scheiterte, da Sie kein MAPI-fähiges E-Mail-Programm installiert haben." IDS_SEND_MAIL, "E-Mail senden" } diff --git a/reactos/dll/win32/msgina/lang/de-DE.rc b/reactos/dll/win32/msgina/lang/de-DE.rc index e71838cc2be..82d9a6a236c 100644 --- a/reactos/dll/win32/msgina/lang/de-DE.rc +++ b/reactos/dll/win32/msgina/lang/de-DE.rc @@ -62,7 +62,7 @@ BEGIN CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54 ICON IDI_LOCKICON, -1, 7, 59, 20, 20 LTEXT "Dieser Computer wird verwendet und ist gesperrt.", IDC_STATIC, 37, 61, 231, 8 - LTEXT "Message", IDC_LOCKMSG, 37, 75, 231, 26 + LTEXT "Nachricht", IDC_LOCKMSG, 37, 75, 231, 26 LTEXT "Drücken Sie Strg+Alt+Entf um den Computer zu entsperren.", IDC_STATIC, 37, 106, 231, 8 END @@ -74,7 +74,7 @@ BEGIN CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54 ICON IDI_LOCKICON, -1, 7, 59, 20, 20 LTEXT "Dieser Computer wird verwendet und ist gesperrt.", IDC_STATIC, 36, 61, 232, 8 - LTEXT "Message", IDC_LOCKMSG, 36, 75, 232, 26 + LTEXT "Nachricht", IDC_LOCKMSG, 36, 75, 232, 26 LTEXT "Benutzername:", IDC_STATIC, 36, 107, 54, 8 EDITTEXT IDC_USERNAME, 92, 104, 119, 14, ES_AUTOHSCROLL LTEXT "Passwort:", IDC_STATIC, 36, 125, 42, 8 @@ -148,22 +148,22 @@ BEGIN IDS_LOGONTITLE "Anmeldemeldung" IDS_LOGONWRONGUSERORPWD "Sie konnten nicht angemeldet werden. Prüfen Sie Benutzername und Domäne, und geben Sie das Passwort erneut ein. Bei Passworten wird Groß- und Kleinschreibung unterschieden." IDS_LOGONUSERDISABLED "Ihr Konto wurde deaktiviert. Wenden Sie sich an Ihren Systemadministrator." - IDS_PASSWORDMUSTCHANGE "Sie müssen Ihr Paasswort bei der ersten Anmeldung ändern." + IDS_PASSWORDMUSTCHANGE "Sie müssen Ihr Passwort bei der ersten Anmeldung ändern." IDS_PASSWORDEXPIRED "Ihr Passwort ist abgelaufen und muss geändert werden." END /* Shutdown Dialog Strings */ STRINGTABLE BEGIN - IDS_SHUTDOWN_LOGOFF "Log off ""%s""" - IDS_SHUTDOWN_SHUTDOWN "Shut down" - IDS_SHUTDOWN_RESTART "Restart" - IDS_SHUTDOWN_SLEEP "Sleep" - IDS_SHUTDOWN_HIBERNATE "Hibernate" + IDS_SHUTDOWN_LOGOFF """%s"" abmelden" + IDS_SHUTDOWN_SHUTDOWN "Herunterfahren" + IDS_SHUTDOWN_RESTART "Neustart" + IDS_SHUTDOWN_SLEEP "Schlafmodus" + IDS_SHUTDOWN_HIBERNATE "Energiesparmodus" /* Shut down descriptions */ - IDS_SHUTDOWN_LOGOFF_DESC "Ends your current session and allows other users to log on to the system." - IDS_SHUTDOWN_SHUTDOWN_DESC "Ends your current session and shuts down the system so you can safely shut down the power." - IDS_SHUTDOWN_RESTART_DESC "Ends your current session and reboots the system." - IDS_SHUTDOWN_SLEEP_DESC "Puts the system in sleep mode." - IDS_SHUTDOWN_HIBERNATE_DESC "Saves the current session and shuts down the computer." + IDS_SHUTDOWN_LOGOFF_DESC "Beendet Ihre aktuelle Sitzung und erlaubt es anderen Benutzern, sich an diesem System anzumelden." + IDS_SHUTDOWN_SHUTDOWN_DESC "Beendet Ihre aktuelle Sitzung, fährt ReactOS herunter und schaltet den Computer aus." + IDS_SHUTDOWN_RESTART_DESC "Beendet Ihre aktuelle Sitzung und startet den Computer neu." + IDS_SHUTDOWN_SLEEP_DESC "Versetzt das System in den Schlafmodus" + IDS_SHUTDOWN_HIBERNATE_DESC "Speichert die aktuelle Sitzung und fährt den Computer herunter, sodass die Sitzung schnell wiederhergestellt werden kann." END diff --git a/reactos/dll/win32/mshtml/lang/De.rc b/reactos/dll/win32/mshtml/lang/De.rc index 6b761a64e85..09615acb4f4 100644 --- a/reactos/dll/win32/mshtml/lang/De.rc +++ b/reactos/dll/win32/mshtml/lang/De.rc @@ -24,8 +24,8 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL STRINGTABLE { - IDS_STATUS_DONE "Done" - IDS_STATUS_DOWNLOADINGFROM "Downloading from %s..." + IDS_STATUS_DONE "Fertig" + IDS_STATUS_DOWNLOADINGFROM "Herunterladen von %s..." } STRINGTABLE @@ -38,7 +38,7 @@ STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Hyperlink" FONT 8, "MS Shell Dlg" { - GROUPBOX "Hyperlink Informationen", -1, 5, 5, 190, 55 + GROUPBOX "Hyperlink-Eigenschaften", -1, 5, 5, 190, 55 LTEXT "&Typ:", -1, 10, 22, 20, 10 COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS LTEXT "&URL:", -1, 10, 42, 20, 10 diff --git a/reactos/dll/win32/msports/lang/de-DE.rc b/reactos/dll/win32/msports/lang/de-DE.rc index 5306117bdd1..d1afcbb3c50 100644 --- a/reactos/dll/win32/msports/lang/de-DE.rc +++ b/reactos/dll/win32/msports/lang/de-DE.rc @@ -2,7 +2,7 @@ IDD_SERIALSETTINGS DIALOGEX 0, 0, 252, 218 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Port Einstellungen" +CAPTION "Porteinstellungen" FONT 8, "MS Shell Dlg" BEGIN RTEXT "B&its pro Sekunde:", -1, 74, 19, 62, 8, WS_GROUP @@ -21,7 +21,7 @@ END IDD_PARALLELSETTINGS DIALOGEX 0, 0, 252, 218 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Port Einstellungen" +CAPTION "Porteinstellungen" FONT 8, "MS Shell Dlg" BEGIN RTEXT "TEST", -1, 74, 19, 62, 8, WS_GROUP diff --git a/reactos/dll/win32/msvfw32/lang/msvfw32_De.rc b/reactos/dll/win32/msvfw32/lang/msvfw32_De.rc index 54b915ffc31..0024db45e25 100644 --- a/reactos/dll/win32/msvfw32/lang/msvfw32_De.rc +++ b/reactos/dll/win32/msvfw32/lang/msvfw32_De.rc @@ -23,7 +23,7 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL ICM_CHOOSE_COMPRESSOR DIALOG 36, 24, 187, 95 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Video Compression" +CAPTION "Videokompression" FONT 8, "MS Shell Dlg" { DEFPUSHBUTTON "OK",IDOK,129,2,49,14 @@ -39,13 +39,13 @@ FONT 8, "MS Shell Dlg" LTEXT "Komprimierungsqualität:",886,9,34,80,8 - CONTROL "&Key Frame alle",887,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,9,60,66,12 + CONTROL "Ein &Key-Frame alle",887,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,9,60,66,12 EDITTEXT 888,78,60,22,12 LTEXT "Frames",889,103,62,26,10 CONTROL "&Datenrate",894,"Button",BS_AUTOCHECKBOX|WS_TABSTOP,9,76,66,12 EDITTEXT 895,78,76,22,12 - LTEXT "KB/sec",896,102,78,26,10 + LTEXT "kB/Sek",896,102,78,26,10 } STRINGTABLE diff --git a/reactos/dll/win32/netcfgx/lang/de-DE.rc b/reactos/dll/win32/netcfgx/lang/de-DE.rc index a8fdfd32adf..cd432808ce6 100644 --- a/reactos/dll/win32/netcfgx/lang/de-DE.rc +++ b/reactos/dll/win32/netcfgx/lang/de-DE.rc @@ -198,7 +198,7 @@ END STRINGTABLE BEGIN IDS_NET_CONNECT "LAN-Verbindung" - IDS_NO_IPADDR_SET "Der Adapter erfordert mindestens eine IP-Addresse. Geben Sie eine IP-Adresse ein." + IDS_NO_IPADDR_SET "Der Adapter erfordert mindestens eine IP-Adresse. Geben Sie eine IP-Adresse ein." IDS_NO_SUBMASK_SET "Sie haben eine Adresse eingegeben, für die keine Subnetzmaske vorhanden ist. Fügen Sie eine Subnetzmaske hinzu." IDS_TCPFILTERDESC "Mit der TCP/IP-Filterung können Sie die Art der TCP/IP-Netzwerkdaten, die den Windows-Computer erreichen sollen, steuern." IDS_TCPFILTER "TCP/IP-Filterung" diff --git a/reactos/dll/win32/netid/lang/de-DE.rc b/reactos/dll/win32/netid/lang/de-DE.rc index 09a4e6f6fe5..3dbeacfa291 100644 --- a/reactos/dll/win32/netid/lang/de-DE.rc +++ b/reactos/dll/win32/netid/lang/de-DE.rc @@ -21,7 +21,7 @@ BEGIN EDITTEXT IDC_COMPUTERNAME, 98, 68, 144, 12, ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP LTEXT "Arbeitsgruppe:", IDC_WORKGROUPDOMAIN, 6, 84, 64, 9 EDITTEXT IDC_WORKGROUPDOMAIN_NAME, 98, 84, 144, 12, ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP - LTEXT "Um den Netzwerk-Identifikations-Assistenten zum Anmelden an einer Domäne und dem Erstellen eines lokalen Benutzers aufzurufen, klicken Sie auf ""Netzwerk-ID"".", IDC_STATIC, 6, 108, 172, 32 + LTEXT "Um den Netzwerk-Assistenten zum Anmelden an einer Domäne und dem Erstellen eines lokalen Benutzers aufzurufen, klicken Sie auf ""Netzwerk-ID"".", IDC_STATIC, 6, 108, 172, 32 PUSHBUTTON "&Netzwerk-ID...", IDC_NETWORK_ID, 190, 114, 58, 15 LTEXT "Um diesen Computer umzubenennen oder sich an einer Domäne anzumelden, klicken Sie auf ""Ändern"".", IDC_STATIC, 6, 149, 170, 17 PUSHBUTTON "&Ändern...", IDC_NETWORK_PROPERTY, 190, 149, 58, 15 @@ -30,7 +30,7 @@ END IDD_PROPPAGECOMPNAMECHENGE DIALOGEX 0, 0, 232, 222 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_CAPTION -CAPTION "Computername ändern" +CAPTION "Den Computernamen ändern" FONT 8, "MS Shell Dlg" BEGIN LTEXT "(message goes here)", 1017, 7, 5, 218, 30 @@ -54,21 +54,21 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_CAPTIO CAPTION "DNS-Suffix und NetBIOS-Computername" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Primäres DNS Suffix dieses Computers:", -1, 7, 5, 253, 8 + LTEXT "&Primäres DNS-Suffix dieses Computers:", -1, 7, 5, 253, 8 EDITTEXT 1011, 7, 17, 252, 14, ES_AUTOHSCROLL - AUTOCHECKBOX "Primäres DN&S-Suffix bei Domänenmitgliedschaftsänderung ändern", 115, 11, 39, 250, 10 + AUTOCHECKBOX "Primäres DN&S-Suffix bei Änderung der Domänenmitgliedschaft ändern", 115, 11, 39, 250, 10 LTEXT "&NetBIOS Computername:", -1, 7, 57, 148, 8 EDITTEXT 1013, 7, 69, 150, 14, ES_UPPERCASE | ES_AUTOHSCROLL | ES_READONLY DEFPUSHBUTTON "OK", 1, 153, 104, 50, 14 PUSHBUTTON "Abbrechen", 2, 209, 104, 50, 14 - LTEXT "Dieser Name dient der Interoperatibilität mit älteren Computern und Diensten.", 13, 7, 88, 253, 8 + LTEXT "Dieser Name dient der Interoperabilität mit älteren Computern und Diensten.", 13, 7, 88, 253, 8 END STRINGTABLE BEGIN 1 "* Unbekannt *" 2 "ARBEITSGRUPPE" - 3 "Bei dem Versuch, Domänenmitgliedschaftsinformationen zu lesen, trat folgender Fehler auf:" + 3 "Bei dem Versuch, Informationen über Domänenmitgliedschaften zu lesen, trat folgender Fehler auf:" 4 "Computernamen ändern" 5 "Arbeitsgruppe:" 6 "Domäne:" @@ -82,5 +82,5 @@ BEGIN 3210 "&Details >>" 3220 "<< &Details" 4000 "Information" - 4001 "Kann neuen Computernamen nicht setzen!" + 4001 "Kann den neuen Computernamen nicht einstellen!" END diff --git a/reactos/dll/win32/netshell/lang/de-DE.rc b/reactos/dll/win32/netshell/lang/de-DE.rc index 2a3e16ad21e..6d01c32a7ca 100644 --- a/reactos/dll/win32/netshell/lang/de-DE.rc +++ b/reactos/dll/win32/netshell/lang/de-DE.rc @@ -94,13 +94,13 @@ BEGIN IDS_SHV_COLUMN_TYPE "Typ" IDS_SHV_COLUMN_STATE "Status" IDS_SHV_COLUMN_DEVNAME "Gerätename" - IDS_SHV_COLUMN_PHONE "Rufnummer oder Hostaddresse" + IDS_SHV_COLUMN_PHONE "Rufnummer oder Hostadresse" IDS_SHV_COLUMN_OWNER "Besitzer" IDS_TYPE_ETHERNET "LAN oder Hochgeschwindigkeitsinternet" IDS_STATUS_NON_OPERATIONAL "Deaktiviert" IDS_STATUS_UNREACHABLE "Nicht verbunden" IDS_STATUS_DISCONNECTED "Netzwerkkabel wurde entfernt" - IDS_STATUS_CONNECTING "Netzwerkaddresse beziehen" + IDS_STATUS_CONNECTING "Netzwerkadresse beziehen" IDS_STATUS_CONNECTED "Verbindung hergestellt" IDS_STATUS_OPERATIONAL "Verbindung hergestellt" IDS_NET_ACTIVATE "Aktivieren" diff --git a/reactos/dll/win32/oleacc/lang/oleacc_De.rc b/reactos/dll/win32/oleacc/lang/oleacc_De.rc index 6c0c9542c81..cc0bb0df805 100644 --- a/reactos/dll/win32/oleacc/lang/oleacc_De.rc +++ b/reactos/dll/win32/oleacc/lang/oleacc_De.rc @@ -33,7 +33,7 @@ STRINGTABLE ROLE_SYSTEM_GRIP "Fangpunkt" ROLE_SYSTEM_SOUND "Audio" ROLE_SYSTEM_CURSOR "Cursor" - ROLE_SYSTEM_CARET "Caret-Zeichen" + ROLE_SYSTEM_CARET "Zirkumflex" ROLE_SYSTEM_ALERT "Warnung" ROLE_SYSTEM_WINDOW "Fenster" ROLE_SYSTEM_CLIENT "Client" @@ -73,7 +73,7 @@ STRINGTABLE ROLE_SYSTEM_CHECKBUTTON "Kontrollkästchen" ROLE_SYSTEM_RADIOBUTTON "Optionskästchen" ROLE_SYSTEM_COMBOBOX "Kombinationsfeld" - ROLE_SYSTEM_DROPLIST "Drop Down" + ROLE_SYSTEM_DROPLIST "Dropdown-Liste" ROLE_SYSTEM_PROGRESSBAR "Fortschrittsanzeige" ROLE_SYSTEM_DIAL "wählen" ROLE_SYSTEM_HOTKEYFIELD "Schnellzugriffsfeld" @@ -82,13 +82,13 @@ STRINGTABLE ROLE_SYSTEM_DIAGRAM "Diagramm" ROLE_SYSTEM_ANIMATION "Animation" ROLE_SYSTEM_EQUATION "Gleichung" - ROLE_SYSTEM_BUTTONDROPDOWN "Dropdown Schaltfläche" + ROLE_SYSTEM_BUTTONDROPDOWN "Dropdown-Schaltfläche" ROLE_SYSTEM_BUTTONMENU "Menü Schaltfläche" ROLE_SYSTEM_BUTTONDROPDOWNGRID "Raster Dropdown Schaltfläche" ROLE_SYSTEM_WHITESPACE "Leerzeichen" ROLE_SYSTEM_PAGETABLIST "Register" ROLE_SYSTEM_CLOCK "Uhr" - ROLE_SYSTEM_SPLITBUTTON "Trenn Schaltfläche" - ROLE_SYSTEM_IPADDRESS "IP Addresse" - ROLE_SYSTEM_OUTLINEBUTTON "Gliederung Schaltfläche" + ROLE_SYSTEM_SPLITBUTTON "Trenn-Schaltfläche" + ROLE_SYSTEM_IPADDRESS "IP-Adresse" + ROLE_SYSTEM_OUTLINEBUTTON "Gliederungsschaltfläche" /* outline kann aber auch umrahmen heißen... */ } diff --git a/reactos/dll/win32/oledlg/lang/oledlg_De.rc b/reactos/dll/win32/oledlg/lang/oledlg_De.rc index b771e75de32..17d2d978435 100644 --- a/reactos/dll/win32/oledlg/lang/oledlg_De.rc +++ b/reactos/dll/win32/oledlg/lang/oledlg_De.rc @@ -49,10 +49,10 @@ END STRINGTABLE { - IDS_RESULTOBJDESC "Fügt ein neues %s - Objekt in Ihr Dokument ein." + IDS_RESULTOBJDESC "Fügt ein neues %s-Objekt in Ihr Dokument ein." IDS_RESULTFILEOBJDESC "Fügt den Inhalt der Datei als Objekt so in Ihr Dokument ein, dass Sie es mit dem Programm aktivieren können, mit dem es erstellt wurde." IDS_BROWSE "Durchsuchen" - IDS_NOTOLEMOD "Die Datei ist offenbar kein gültiges OLE - Steuermodul. Die OLE - Steuerung konnte nicht registiert werden." + IDS_NOTOLEMOD "Die Datei ist offenbar kein gültiges OLE-Steuermodul. Die OLE-Steuerung konnte nicht registriert werden." IDS_NOTOLEMODCAPTION "Steuerung hinzufügen" } @@ -85,12 +85,12 @@ END STRINGTABLE { IDS_PS_PASTE_DATA "Fügt den Inhalt der Zwischenablage in Ihr Dokument als %s ein." - IDS_PS_PASTE_OBJECT "Fügt den Inhalt der Zwischenablage so in Ihr Dokument ein dass Sie es mit %s aktivieren können." - IDS_PS_PASTE_OBJECT_AS_ICON "Fügt den Inhalt der Zwischenablage so in Ihr Dokument ein dass Sie es mit %s aktivieren können. Wird als Symbol dargestellt." - IDS_PS_PASTE_LINK_DATA "Fügt den Inhalt der Zwischenablage in Ihr Dokument als %s ein. Die Daten sind mit der Ursprungsdatei verknüpft so dass Änderungen an dieser in Ihrem Dokument erscheinen." - IDS_PS_PASTE_LINK_OBJECT "Fügt ein Bild des Zwischenablagen-Inhalts in Ihr Dokument ein. Das Bild ist mit der Ursprungsdatei verknüpft so dass Änderungen an dieser in Ihrem Dokument erscheinen." - IDS_PS_PASTE_LINK_OBJECT_AS_ICON "Fügt eine Verknüpfung ein die auf den Ort des Zwischenablagen-Inhalts zeigt. Die Verknüpfung ist mit der Ursprungsdatei verknüpft so dass Änderungen an dieser in Ihrem Dokument erscheinen." - IDS_PS_NON_OLE "Fügt den Inhalt der Zwischenablage in Ihr Dokument als ein." + IDS_PS_PASTE_OBJECT "Fügt den Inhalt der Zwischenablage so in Ihr Dokument ein, dass Sie ihn mit %s aktivieren können." + IDS_PS_PASTE_OBJECT_AS_ICON "Fügt den Inhalt der Zwischenablage so in Ihr Dokument ein, dass Sie ihn mit %s aktivieren können. Er wird dann als Symbol dargestellt." + IDS_PS_PASTE_LINK_DATA "Fügt den Inhalt der Zwischenablage in Ihr Dokument als %s ein. Die Daten sind mit der Ursprungsdatei verknüpft, sodass Änderungen an dieser in Ihrem Dokument erscheinen." + IDS_PS_PASTE_LINK_OBJECT "Fügt ein Bild aus der Zwischenablage in Ihr Dokument ein. Das Bild ist mit der Ursprungsdatei verknüpft, sodass Änderungen an dieser in Ihrem Dokument erscheinen." + IDS_PS_PASTE_LINK_OBJECT_AS_ICON "Fügt eine Verknüpfung ein, die auf den Ort in der Zwischenablage zeigt. Die Verknüpfung ist mit der Ursprungsdatei verknüpft, sodass Änderungen an dieser in Ihrem Dokument erscheinen." + IDS_PS_NON_OLE "Fügt den Inhalt der Zwischenablage in Ihr Dokument ein." IDS_PS_UNKNOWN_TYPE "Unbekannter Typ" IDS_PS_UNKNOWN_SRC "Unbekannte Quelle" IDS_PS_UNKNOWN_APP "dem Erzeugerprogramm" diff --git a/reactos/dll/win32/samsrv/lang/de-DE.rc b/reactos/dll/win32/samsrv/lang/de-DE.rc index be6da81a353..d0e32b428b9 100644 --- a/reactos/dll/win32/samsrv/lang/de-DE.rc +++ b/reactos/dll/win32/samsrv/lang/de-DE.rc @@ -8,7 +8,7 @@ BEGIN IDS_ALIAS_ADMINISTRATORS_NAME "Administratoren" IDS_ALIAS_ADMINISTRATORS_COMMENT "Administratoren haben unbeschränkten Zugriff auf den Computer oder die Domäne." IDS_ALIAS_GUESTS_NAME "Gäste" - IDS_ALIAS_GUESTS_COMMENT "Gäste besitzen standadmäßig die selben Rechte wie die Mitglieder der Benutzer-Gruppe." + IDS_ALIAS_GUESTS_COMMENT "Gäste besitzen standardmäßig die selben Rechte wie die Mitglieder der Benutzer-Gruppe." IDS_ALIAS_POWER_USERS_NAME "Hauptbenutzer" IDS_ALIAS_POWER_USERS_COMMENT "Hauptbenutzer besitzen die meisten Rechte mit einigen Einschränkungen." IDS_ALIAS_USERS_NAME "Benutzer" @@ -19,7 +19,7 @@ BEGIN * syssetup.dll:IDS_ADMINISTRATOR_NAME synchronized. */ IDS_USER_ADMINISTRATOR_NAME "Administrator" - IDS_USER_ADMINISTRATOR_COMMENT "Vordefiniertes Konto für die Verwaltung des Comuters oder der Domäne." + IDS_USER_ADMINISTRATOR_COMMENT "Vordefiniertes Konto für die Verwaltung des Computers oder der Domäne." IDS_USER_GUEST_NAME "Gast" IDS_USER_GUEST_COMMENT "Vordefiniertes Konto für Gastzugriff auf den Computer oder die Domäne." END diff --git a/reactos/dll/win32/serialui/lang/de-DE.rc b/reactos/dll/win32/serialui/lang/de-DE.rc index a4b481dac5c..cba734ca851 100644 --- a/reactos/dll/win32/serialui/lang/de-DE.rc +++ b/reactos/dll/win32/serialui/lang/de-DE.rc @@ -2,14 +2,14 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL STRINGTABLE BEGIN - IDS_EVENPARITY "Even" - IDS_MARKPARITY "Mark" - IDS_NOPARITY "No parity" - IDS_ODDPARITY "Odd" - IDS_SPACEPARITY "Space" - IDS_ONESTOPBIT "1 Stopbit" - IDS_ONE5STOPBITS "1.5 Stopbits" - IDS_TWOSTOPBITS "2 Stopbits" + IDS_EVENPARITY "Gerade" + IDS_MARKPARITY "Kennzeichnen" + IDS_NOPARITY "ohne Parität (gerade/ungerade)" + IDS_ODDPARITY "Ungerade" + IDS_SPACEPARITY "Lücke" + IDS_ONESTOPBIT "1 Stoppbit" + IDS_ONE5STOPBITS "1.5 Stoppbits" + IDS_TWOSTOPBITS "2 Stoppbits" IDS_FC_NO "Nein" IDS_FC_CTSRTS "CTS/RTS" IDS_FC_XONXOFF "XON/XOFF" @@ -24,11 +24,11 @@ BEGIN CONTROL "", IDC_GRP1, "Button", 0x50000007, 6, 5, 210, 146, 0x00000000 CONTROL "OK", IDC_OKBTN, "Button", 0x50010000, 98, 156, 56, 13, 0x00000000 CONTROL "Abbrechen", IDC_CANCELBTN, "Button", 0x50010000, 158, 156, 56, 13, 0x00000000 - CONTROL "Baud rate:", IDC_STC1, "Static", 0x50000000, 24, 31, 42, 9, 0x00000000 + CONTROL "Symbolrate:", IDC_STC1, "Static", 0x50000000, 24, 31, 42, 9, 0x00000000 CONTROL "Bytegröße:", IDC_STC2, "Static", 0x50000000, 24, 53, 42, 9, 0x00000000 CONTROL "Parität:", IDC_STC3, "Static", 0x50000000, 24, 73, 42, 9, 0x00000000 - CONTROL "Stop bits:", IDC_STC4, "Static", 0x50000000, 24, 96, 42, 9, 0x00000000 - CONTROL "Flusskontrolle:", IDC_STC5, "Static", 0x50000000, 24, 120, 45, 9, 0x00000000 + CONTROL "Stoppbits:", IDC_STC4, "Static", 0x50000000, 24, 96, 42, 9, 0x00000000 + CONTROL "Flusssteuerung:", IDC_STC5, "Static", 0x50000000, 24, 120, 45, 9, 0x00000000 CONTROL "", IDC_BAUDRATE, "ComboBox", 0x50210003, 98, 29, 100, 50, 0x00000000 CONTROL "", IDC_BYTESIZE, "ComboBox", 0x50210003, 98, 49, 100, 50, 0x00000000 CONTROL "", IDC_PARITY, "ComboBox", 0x50210003, 98, 72, 100, 50, 0x00000000 diff --git a/reactos/dll/win32/shell32/lang/de-DE.rc b/reactos/dll/win32/shell32/lang/de-DE.rc index 9fb4a3f4fcd..22636caa597 100644 --- a/reactos/dll/win32/shell32/lang/de-DE.rc +++ b/reactos/dll/win32/shell32/lang/de-DE.rc @@ -114,7 +114,7 @@ BEGIN LTEXT ")", IDC_STATIC, 153, 65, 5, 10 LTEXT "Copyright 1998-", IDC_STATIC, 35, 75, 53, 10 LTEXT COPYRIGHT_YEAR, IDC_STATIC, 88, 75, 17, 10 - LTEXT " ReactOS Team\0", IDC_STATIC, 105, 75, 53, 10 + LTEXT " Das ReactOS Team\0", IDC_STATIC, 105, 75, 70, 10 LTEXT "", IDC_ABOUT_OTHERSTUFF, 35, 90, 180, 20 LTEXT "Diese ReactOS-Version wurde registriert auf:", IDC_STATIC, 35, 115, 180, 10 LTEXT "", IDC_ABOUT_REG_USERNAME, 45, 125, 180, 10 @@ -183,7 +183,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN LTEXT "Wählen Sie die erweiterten Einstellungen für diese Verknüpfung.", -1, 5, 30, 210, 10 CHECKBOX "Als anderer Benutzer ausführen", 14000, 25, 50, 150, 10 - LTEXT "Diese Einstellung ermöglicht es, diese Verknüpfung unter einem anderen oder Ihrem eingenen Bentzerkonto auszuführen während der Computer und Ihre Daten vor unauthorisierten Programmaktivitäten geschützt werden können.", -1, 50, 60, 175, 40 + LTEXT "Diese Einstellung ermöglicht es, diese Verknüpfung unter einem anderen oder Ihrem eigenen Benutzerkonto auszuführen während der Computer und Ihre Daten vor unautorisierten Programmaktivitäten geschützt werden können.", -1, 50, 60, 175, 40 CHECKBOX "In getrenntem Speicherbereich ausführen", 14001, 25, 100, 150, 10, WS_DISABLED PUSHBUTTON "OK", 1, 63, 124, 50, 15, WS_VISIBLE PUSHBUTTON "Abbrechen", 2, 120, 124, 50, 15, WS_VISIBLE @@ -311,13 +311,13 @@ CAPTION "Extras" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "Fehlerüberprüfung", -1, 5, 5, 230, 60 - LTEXT "Bei Wahl dieser Option wird das Volume\nauf Fehler überprüft.", -1, 40, 25, 160, 20 + LTEXT "Bei Wahl dieser Option wird der Datenträger\nauf Fehler überprüft.", -1, 40, 25, 160, 20 PUSHBUTTON "Jetzt &prüfen...", 14000, 130, 45, 90, 15, WS_TABSTOP GROUPBOX "Defragmentierung", -1, 5, 65, 230, 60 - LTEXT "Bei Wahl dieser Option werden die Dateien auf\ndem Volume defragmentiert.", -1, 40, 85, 160, 20 + LTEXT "Bei Wahl dieser Option werden die Dateien auf\ndem Datenträger defragmentiert.", -1, 40, 85, 160, 20 PUSHBUTTON "Jetzt &defragmentieren...", 14001, 130, 105, 90, 15, WS_TABSTOP GROUPBOX "Sicherung", -1, 5, 130, 230, 60 - LTEXT "Bei Wahl dieser Option werden die auf dem\nVolume gespeicherten Dateien gesichert.", -1, 40, 150, 160, 20 + LTEXT "Bei Wahl dieser Option werden die auf dem\nDatenträger gespeicherten Dateien gesichert.", -1, 40, 150, 160, 20 PUSHBUTTON "Jetzt &sichern...", 14002, 130, 170, 90, 15, WS_TABSTOP END @@ -335,7 +335,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN LTEXT "Welches Benutzerkonto wollen Sie zum Starten dieser Anwendung verwenden?", -1, 10, 20, 220, 20 CHECKBOX "Aktueller Benutzer %s", 14000, 10, 45, 150, 10 - LTEXT "Computer vor unauthorisierten Programmaktiviäten schützen", -1, 25, 57, 200, 10, WS_DISABLED + LTEXT "Computer vor unautorisierten Programmaktivitäten schützen", -1, 25, 57, 200, 10, WS_DISABLED CHECKBOX "Diese Einstellung kann Computerviren daran hindern, ihrem Computer oder Ihren persönlichen Daten zu schaden, aber es kann auch Programme daran hindern, ordnungsgemäß zu arbeiten.", 14001, 25, 68, 200, 30, WS_DISABLED | BS_MULTILINE CHECKBOX "Folgender Benutzer:", 14002, 10, 100, 90, 10 LTEXT "Benutzername:", -1, 20, 118, 54, 10 @@ -404,8 +404,8 @@ BEGIN GROUPBOX "Markieren von Elementen", -1, 7, 110, 249, 60 ICON "", 30111, 14, 120, 21, 20, SS_REALSIZECONTROL AUTORADIOBUTTON "&Öffnen durch &einfachen Klick (Markieren durch zeigen)", 14007, 40, 120, 210, 10, WS_TABSTOP | WS_GROUP - AUTORADIOBUTTON "Symbolunerschriften wie im Br&owser unterstreichen", 14008, 50, 132, 210, 10, WS_TABSTOP | WS_GROUP - AUTORADIOBUTTON "Symbolunerschriften nur beim Zeigen &unterstreichen", 14009, 50, 144, 210, 10, WS_TABSTOP | WS_GROUP + AUTORADIOBUTTON "Symbolbeschriftungen wie im Br&owser unterstreichen", 14008, 50, 132, 210, 10, WS_TABSTOP | WS_GROUP + AUTORADIOBUTTON "Symbolbeschriftungen nur beim Zeigen &unterstreichen", 14009, 50, 144, 210, 10, WS_TABSTOP | WS_GROUP AUTORADIOBUTTON "&Öffnen durch &Doppelklick (Markieren durch einfachen Klick)", 14010, 40, 156, 210, 10, WS_TABSTOP | WS_GROUP PUSHBUTTON "&Wiederherstellen", 14011, 180, 180, 60, 14, WS_TABSTOP END diff --git a/reactos/dll/win32/winmm/lang/winmm_De.rc b/reactos/dll/win32/winmm/lang/winmm_De.rc index bd062136c91..7acfc61f732 100644 --- a/reactos/dll/win32/winmm/lang/winmm_De.rc +++ b/reactos/dll/win32/winmm/lang/winmm_De.rc @@ -25,7 +25,7 @@ MMSYSERR_ERROR, "Unbekannter externer Fehler." MMSYSERR_BADDEVICEID, "Die derzeit verwendete Gertekennung ist auerhalb des zulssigen Bereichs fr Ihr System." MMSYSERR_NOTENABLED, "Der Treiber konnte nicht gestartet werden." MMSYSERR_ALLOCATED, "Das Gert wird bereits verwendet. Warten Sie, bis es freigegeben ist, und versuchen Sie es erneut." -MMSYSERR_INVALHANDLE, "Das angegebende Gertehandle ist ungltig." +MMSYSERR_INVALHANDLE, "Das angegebene Gertehandle ist ungltig." MMSYSERR_NODRIVER, "Es ist kein Treiber auf Ihrem System installiert !\n" MMSYSERR_NOMEM, "Nicht gengend Speicher fr diesen Befehl. Beenden Sie eine oder mehrere Anwendungen, und versuchen Sie es erneut." MMSYSERR_NOTSUPPORTED, "Diese Funktion wird nicht untersttzt. Benutzen Sie die Funktion 'Capabilities', um zu ermitteln, welche Funktion dieser Treiber untersttzt." @@ -70,7 +70,7 @@ MCIERR_INTERNAL, "Ein Fehler ereignete sich beim Starten von MCI. Versuche Rea MCIERR_DRIVER, "Es gibt ein Problem mit dem Gertetreiber. Der Treiber wird geschlossen. Ein Fehler kann nicht gemeldet werden." MCIERR_CANNOT_USE_ALL, "Der Gertename 'all' ist nicht in diesem Befehl erlaubt." MCIERR_MULTIPLE, "Es traten Fehler in mehr als einem Gert auf. Geben Sie jeden Befehl fr jedes Gert einzeln an, um zu bestimmen, welches Gert die Fehler verursachte." -MCIERR_EXTENSION_NOT_FOUND, "Kann keinen Gertetyp aus der angegebenen Dateinamenerweiterung ermitteln." +MCIERR_EXTENSION_NOT_FOUND, "Kann keinen Gertetyp aus der angegebenen Dateinamenserweiterung ermitteln." MCIERR_OUTOFRANGE, "Der angegebene Parameter liegt auerhalb des zulssigen Bereichs fr diesen Befehl." MCIERR_FLAGS_NOT_COMPATIBLE, "Die Parameter knnen nicht zusammen verwendet werden." MCIERR_FILE_NOT_SAVED, "Die Datei kann nicht gespeichert werden. Stellen Sie sicher, dass gengend Platz auf dem Datentrger verfgbar ist oder Ihre Netzwerkverbindung noch besteht." @@ -91,7 +91,7 @@ MCIERR_NOTIFY_ON_AUTO_OPEN, "Das 'notify' Flag ist unzul MCIERR_NO_ELEMENT_ALLOWED, "Ein Dateiname kann mit diesem Gert nicht verwendet werden." MCIERR_NONAPPLICABLE_FUNCTION, "Die Befehle sind in der angegebenen Reihenfolge nicht ausfhrbar. ndern Sie die Reihenfolge, und versuchen Sie es erneut." MCIERR_ILLEGAL_FOR_AUTO_OPEN, "Der Befehl kann nicht auf ein selbstffnedes Gert angewandt werden. Warten Sie, bis das Gert geschlossen wurde und versuchen Sie es erneut." -MCIERR_FILENAME_REQUIRED, "Der Dateiname ist ungltig. Der Dateiname muss aus maximal 8 Zeichen, gefolgt von einem Punkt und einer Dateinamenerweiterung bestehen." +MCIERR_FILENAME_REQUIRED, "Der Dateiname ist ungltig. Der Dateiname muss aus maximal 8 Zeichen, gefolgt von einem Punkt und einer Dateinamenserweiterung bestehen." MCIERR_EXTRA_CHARACTERS, "Zustzliche Zeichen nach einer Zeichenkette mit Anfhrungszeichen sind nicht erlaubt." MCIERR_DEVICE_NOT_INSTALLED, "Das angegebene Gert ist nicht auf Ihren System installiert. Benutzen Sie die Hardwareerkennung in der Systemsteuerung, um das Gert zu installieren." MCIERR_GET_CD, "Auf die angegebene Datei oder das MCI - Gert kann nicht zugegriffen werden. Versuchen Sie, das Verzeichnis zu wechseln oder das System neu zu starten." @@ -104,8 +104,8 @@ MCIERR_WAVE_OUTPUTSINUSE, "Alle Waveformger MCIERR_WAVE_SETOUTPUTINUSE, "Das gegenwrtige Waveformgert kann nicht wiedergeben, weil es gerade benutzt wird. Warten Sie, bis das Gert frei ist, und wiederholen Sie den Vorgang." MCIERR_WAVE_INPUTSINUSE, "Es ist kein Waveformgert frei, das das gegenwrtige Format aufzeichnen knnte. Warten Sie, bis ein Waveformgert frei ist, und wiederholen Sie den Vorgang." MCIERR_WAVE_SETINPUTINUSE, "Das gegenwrtige Waveformgert kann nicht aufzeichnen, weil es gerade verwendet wird. Warten Sie, bis das Gert frei ist, und wiederholen Sie den Vorgang." -MCIERR_WAVE_OUTPUTUNSPECIFIED, "Jedes kompatible Waveform - Wiedergabegert kann verwendet werden." -MCIERR_WAVE_INPUTUNSPECIFIED, "Jedes kompatible Waveform - Aufnahmegert kann verwendet werden." +MCIERR_WAVE_OUTPUTUNSPECIFIED, "Jedes kompatible Waveform-Wiedergabegert kann verwendet werden." +MCIERR_WAVE_INPUTUNSPECIFIED, "Jedes kompatible Waveform-Aufnahmegert kann verwendet werden." MCIERR_WAVE_OUTPUTSUNSUITABLE, "Es ist kein Waveformgert installiert, das Dateien im aktuellen Format wiedergeben kann. Benutzen Sie die Hardwareerkennung in der Systemsteuerung, um ein Waveformgert zu installieren." MCIERR_WAVE_SETOUTPUTUNSUITABLE,"Das Wiedergabegert erkennt das gegenwrtige Dateiformat nicht." MCIERR_WAVE_INPUTSUNSUITABLE, "Es ist kein Waveformgert installiert, das Dateien im aktuellen Format aufnehmen kann. Benutzen Sie die Hardwareerkennung in der Systemsteuerung, um ein Waveformgert zu installieren." @@ -114,13 +114,13 @@ MCIERR_NO_WINDOW, "Es gibt kein Anzeigefenster." MCIERR_CREATEWINDOW, "Fenster konnte nicht erzeugt oder verwendet werden." MCIERR_FILE_READ, "Die Datei konnte nicht gelesen werden. Stellen Sie sicher, dass die Datei existiert oder Ihre Netzwerkverbindung noch besteht." MCIERR_FILE_WRITE, "Die Datei konnte nicht geschrieben werden. Stellen Sie sicher, dass gengend Platz auf dem Datentrger verfgbar ist, oder dass die Netzwerkverbindung noch besteht." -MCIERR_SEQ_DIV_INCOMPATIBLE, "Die Zeitformate von ""song pointer"" und SMPTE schliessen sich gegenseitig aus. Sie knnen sie nicht zusammen verwenden." +MCIERR_SEQ_DIV_INCOMPATIBLE, "Die Zeitformate von ""song pointer"" und SMPTE schlieen sich gegenseitig aus. Sie knnen sie nicht zusammen verwenden." MCIERR_SEQ_NOMIDIPRESENT, "Es sind keine MIDI - Gerte auf dem System installiert. Benutzen Sie die Hardwareerkennung in der Systemsteuerung, um einen MIDI - Treiber zu installieren." MCIERR_SEQ_PORT_INUSE, "Der angegebene MIDI - Anschluss wird bereits verwendet. Warten Sie bis der Anschluss frei ist, und versuchen Sie es erneut." MCIERR_SEQ_PORT_MAPNODEVICE, "Das gegenwrtige MIDI - Mapper Setup benutzt ein MIDI - Gert, dass nicht auf Ihren System installiert ist. Benutzen Sie den MIDI - Mapper in der Systemsteuerung, um das Setup zu ndern." MCIERR_SEQ_PORT_MISCERROR, "Beim Benutzen des angegebenen Anschlusses trat ein Fehler auf." -MCIERR_SEQ_PORT_NONEXISTENT, "Es sind keine angegebnen MIDI - Gerte auf dem System installiert. Benutzen Sie die Hardwareerkennung in der Systemsteuerung, um ein MIDI - Gert zu installieren." -MCIERR_SEQ_PORTUNSPECIFIED, "Es gibt keinen aktuellen MIDI - Anschluss auf dem System." +MCIERR_SEQ_PORT_NONEXISTENT, "Es sind keine angegebenen MIDI-Gerte auf dem System installiert. Benutzen Sie die Hardwareerkennung in der Systemsteuerung, um ein MIDI - Gert zu installieren." +MCIERR_SEQ_PORTUNSPECIFIED, "Es gibt keinen aktuellen MIDI-Anschluss auf dem System." MCIERR_SEQ_TIMER, "Alle Multimediazeitgeber werden von anderen Anwendungen verwendet. Beenden Sie eine dieser Anwendungen, und versuchen Sie es erneut." END From 9a02edda3623d7f10f7762d38024a213ec19b7b4 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Tue, 13 May 2014 20:00:51 +0000 Subject: [PATCH 87/92] [UTF16LE] - Add to build CORE-8221 svn path=/trunk/; revision=63278 --- reactos/CMakeLists.txt | 4 ++-- reactos/tools/CMakeLists.txt | 1 + reactos/tools/utf16le/CMakeLists.txt | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 reactos/tools/utf16le/CMakeLists.txt diff --git a/reactos/CMakeLists.txt b/reactos/CMakeLists.txt index f590ed83578..a6a48ac077b 100644 --- a/reactos/CMakeLists.txt +++ b/reactos/CMakeLists.txt @@ -77,9 +77,9 @@ if(NOT CMAKE_CROSSCOMPILING) add_subdirectory(lib) if(NOT MSVC) - export(TARGETS bin2c widl gendib cabman cdmake mkhive obj2bin spec2def geninc rsym mkshelllink FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- ) + export(TARGETS bin2c widl gendib cabman cdmake mkhive obj2bin spec2def geninc rsym mkshelllink utf16le FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- ) else() - export(TARGETS bin2c widl gendib cabman cdmake mkhive obj2bin spec2def geninc mkshelllink FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- ) + export(TARGETS bin2c widl gendib cabman cdmake mkhive obj2bin spec2def geninc mkshelllink utf16le FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- ) endif() else() diff --git a/reactos/tools/CMakeLists.txt b/reactos/tools/CMakeLists.txt index 79dd094bee4..9d59b0720ca 100644 --- a/reactos/tools/CMakeLists.txt +++ b/reactos/tools/CMakeLists.txt @@ -19,6 +19,7 @@ add_subdirectory(obj2bin) add_subdirectory(spec2def) add_subdirectory(unicode) add_subdirectory(mkshelllink) +add_subdirectory(utf16le) add_subdirectory(widl) add_subdirectory(wpp) if(NOT MSVC) diff --git a/reactos/tools/utf16le/CMakeLists.txt b/reactos/tools/utf16le/CMakeLists.txt new file mode 100644 index 00000000000..40f0647429e --- /dev/null +++ b/reactos/tools/utf16le/CMakeLists.txt @@ -0,0 +1 @@ +add_executable(utf16le utf16le.cpp) From c35341fd7c9904e04290852de6fb8f02d2862e65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Tue, 13 May 2014 21:04:23 +0000 Subject: [PATCH 88/92] [PS] Fix whitespace. svn path=/trunk/; revision=63279 --- rosapps/applications/sysutils/utils/ps/ps.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/rosapps/applications/sysutils/utils/ps/ps.c b/rosapps/applications/sysutils/utils/ps/ps.c index 0e9317311ce..d356969822a 100644 --- a/rosapps/applications/sysutils/utils/ps/ps.c +++ b/rosapps/applications/sysutils/utils/ps/ps.c @@ -1,5 +1,4 @@ /* - * * ReactOS ps - process list console viewer * * ps.c @@ -19,7 +18,7 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* - Thanks to Filip Navara patch for fixing the Xp crash problem. + Thanks to Filip Navara patch for fixing the Xp crash problem. */ #define NTOS_MODE_USER From 0dc9aa5b130fc2cbfae0090b1b723ecf376b8370 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Tue, 13 May 2014 21:07:49 +0000 Subject: [PATCH 89/92] [ROSAPPS] - Fix some newlines, - Fireball == Aleksey, not Aleasky :P (ahh, GreatLord, we miss you ^^), - Fix rosddt (ROS Device Detection Tool) readme file (convert into UTF-8 without BOM). svn path=/trunk/; revision=63280 --- rosapps/CMakeLists.txt | 2 +- .../applications/cmdutils/tee/CMakeLists.txt | 2 +- .../cmdutils/touch/CMakeLists.txt | 2 +- .../cmdutils/uptime/CMakeLists.txt | 2 +- .../applications/cmdutils/y/CMakeLists.txt | 2 +- .../applications/screensavers/CMakeLists.txt | 2 +- .../screensavers/matrix/Permission.txt | 2 +- .../applications/sysutils/rosddt/readme.txt | 26 +++++++++---------- .../sysutils/utils/CMakeLists.txt | 1 - rosapps/applications/winfile/CMakeLists.txt | 2 +- rosapps/demos/CMakeLists.txt | 2 +- rosapps/drivers/CMakeLists.txt | 2 +- 12 files changed, 23 insertions(+), 24 deletions(-) diff --git a/rosapps/CMakeLists.txt b/rosapps/CMakeLists.txt index 7d40d363077..1ef8103909a 100644 --- a/rosapps/CMakeLists.txt +++ b/rosapps/CMakeLists.txt @@ -1,4 +1,4 @@ add_subdirectory(applications) add_subdirectory(demos) add_subdirectory(drivers) -# add_subdirectory(lib) \ No newline at end of file +# add_subdirectory(lib) diff --git a/rosapps/applications/cmdutils/tee/CMakeLists.txt b/rosapps/applications/cmdutils/tee/CMakeLists.txt index 189648ef5e7..8fbb0f6a8e4 100644 --- a/rosapps/applications/cmdutils/tee/CMakeLists.txt +++ b/rosapps/applications/cmdutils/tee/CMakeLists.txt @@ -2,4 +2,4 @@ add_executable(tee tee.c tee.rc) set_module_type(tee win32cui) add_importlibs(tee msvcrt kernel32) -add_cd_file(TARGET tee DESTINATION reactos/system32 FOR all) \ No newline at end of file +add_cd_file(TARGET tee DESTINATION reactos/system32 FOR all) diff --git a/rosapps/applications/cmdutils/touch/CMakeLists.txt b/rosapps/applications/cmdutils/touch/CMakeLists.txt index fd5cd2ae231..c2d5bd00407 100644 --- a/rosapps/applications/cmdutils/touch/CMakeLists.txt +++ b/rosapps/applications/cmdutils/touch/CMakeLists.txt @@ -7,4 +7,4 @@ if(MSVC) target_link_libraries(touch oldnames) endif() -add_cd_file(TARGET touch DESTINATION reactos/system32 FOR all) \ No newline at end of file +add_cd_file(TARGET touch DESTINATION reactos/system32 FOR all) diff --git a/rosapps/applications/cmdutils/uptime/CMakeLists.txt b/rosapps/applications/cmdutils/uptime/CMakeLists.txt index b8e5f831a87..bf82f3a7bc8 100644 --- a/rosapps/applications/cmdutils/uptime/CMakeLists.txt +++ b/rosapps/applications/cmdutils/uptime/CMakeLists.txt @@ -6,4 +6,4 @@ add_importlibs(uptime msvcrt kernel32) if(MSVC) add_importlibs(uptime ntdll) endif() -add_cd_file(TARGET uptime DESTINATION reactos/system32 FOR all) \ No newline at end of file +add_cd_file(TARGET uptime DESTINATION reactos/system32 FOR all) diff --git a/rosapps/applications/cmdutils/y/CMakeLists.txt b/rosapps/applications/cmdutils/y/CMakeLists.txt index 926bd055ec0..f052de15d17 100644 --- a/rosapps/applications/cmdutils/y/CMakeLists.txt +++ b/rosapps/applications/cmdutils/y/CMakeLists.txt @@ -2,4 +2,4 @@ add_executable(y y.c y.rc) set_module_type(y win32cui) add_importlibs(y msvcrt kernel32) -add_cd_file(TARGET y DESTINATION reactos/system32 FOR all) \ No newline at end of file +add_cd_file(TARGET y DESTINATION reactos/system32 FOR all) diff --git a/rosapps/applications/screensavers/CMakeLists.txt b/rosapps/applications/screensavers/CMakeLists.txt index 773ce3b0739..a6d6fa31a65 100644 --- a/rosapps/applications/screensavers/CMakeLists.txt +++ b/rosapps/applications/screensavers/CMakeLists.txt @@ -4,5 +4,5 @@ add_subdirectory(circles) add_subdirectory(cylfrac) add_subdirectory(matrix) add_subdirectory(mazescr) -add_subdirectory(starfield) add_subdirectory(ssstars) +add_subdirectory(starfield) diff --git a/rosapps/applications/screensavers/matrix/Permission.txt b/rosapps/applications/screensavers/matrix/Permission.txt index 0a081c95b3e..363394051bc 100644 --- a/rosapps/applications/screensavers/matrix/Permission.txt +++ b/rosapps/applications/screensavers/matrix/Permission.txt @@ -14,4 +14,4 @@ under Public Domain. Do what thou will but please give credit where credit is due. --Magnus Olsen (aka GreatLord) / Aleasky (aka Fireball) +-Magnus Olsen (aka GreatLord) / Aleksey (aka Fireball) diff --git a/rosapps/applications/sysutils/rosddt/readme.txt b/rosapps/applications/sysutils/rosddt/readme.txt index 0663311c4a6..739227caa04 100644 --- a/rosapps/applications/sysutils/rosddt/readme.txt +++ b/rosapps/applications/sysutils/rosddt/readme.txt @@ -1,17 +1,17 @@ =========== rosddt - ReactOS device detection tool =========== -: -rosddt -enum - -rosddt -check - ReactOS -rosddt -update - -rosddt -report - ReactOS. . +Использование: +rosddt -enum - вывести список всего установленного железа +rosddt -check - проверить совместимость ReactOS с вашей системой +rosddt -update - обновить базу совместимости до последней версии +rosddt -report - отправить отчет об аппаратной конфигурации разработчикам ReactOS. Эта информация будет использована для ведения статистики и поддержки базы совместимости. -=== rosddt.ini === - "URL" : udpate - rosddt.ini, , report - . "data" POST UTF-8. hw.php. +=== формат файла rosddt.ini === +Секция "URL" содержит две ссылки: udpate - ссылка на rosddt.ini, используется при обновлении, report - ссылка на скрипт принимающий отчеты. Всё содержимое отчета передаётся в поле "data" POST запроса в кодировке UTF-8. Пример приёма отчетов смотрите в hw.php. - "HW" ReactOS . : ok - ReactOS, notwork - ReactOS crash - ReactOS . - : -1 - . "Intel(R) 82371AB/EB PCI Bus Master IDE Controller". -2 - PNP ID . "PCI\VEN_8086&DEV_1237&SUBSYS_00000000&REV_02". -3 - PCI pnp id, "PCI\VEN_8086&DEV_1237" "PCI\VEN_8086&DEV_1237&REV_02". , id pci . , . -4 - USB . "USB\ROOT_HUB&VID8086&PID3A34&REV0000" "USB\VID8086&PID3A34" "USB\VID8086&PID3A34&REV0000" \ No newline at end of file +Секция "HW" содержит базу совместимости ReactOS с железом. Каждое занесённое в базу устройство может иметь три статуса совместимости: ok - устройство работает в ReactOS, notwork - устройство не работает в ReactOS и crash - ReactOS не запускается на системе с этим устройством. +Устройства могут обозначаться следующими способами: +1 - По полному читаемому имени устройства. Например "Intel(R) 82371AB/EB PCI Bus Master IDE Controller". +2 - По полному PNP ID устройства. Например "PCI\VEN_8086&DEV_1237&SUBSYS_00000000&REV_02". +3 - Для PCI устройств можно указывать также сокращенные сокращенные pnp id, такие как "PCI\VEN_8086&DEV_1237" или "PCI\VEN_8086&DEV_1237&REV_02". Рекомендуется пользоваться именно такой формой записи, поскольку полный id привязан к номеру pci слота в который вставлено устройство. Ревизию указывать по необходимости, лучше обойтись без неё. +4 - Для USB устройств можно пользоваться сокращенной формой записи. Например "USB\ROOT_HUB&VID8086&PID3A34&REV0000" можно записать как "USB\VID8086&PID3A34" или "USB\VID8086&PID3A34&REV0000" \ No newline at end of file diff --git a/rosapps/applications/sysutils/utils/CMakeLists.txt b/rosapps/applications/sysutils/utils/CMakeLists.txt index 76c58de7dfc..d8d6917b97e 100644 --- a/rosapps/applications/sysutils/utils/CMakeLists.txt +++ b/rosapps/applications/sysutils/utils/CMakeLists.txt @@ -13,4 +13,3 @@ add_subdirectory(ps) #add_subdirectory(stats) #add_subdirectory(theme) #add_subdirectory(tickcount) - diff --git a/rosapps/applications/winfile/CMakeLists.txt b/rosapps/applications/winfile/CMakeLists.txt index d857e1ed5e7..bfa5f9458fc 100644 --- a/rosapps/applications/winfile/CMakeLists.txt +++ b/rosapps/applications/winfile/CMakeLists.txt @@ -11,4 +11,4 @@ if(NOT MSVC) # FIXME: http://www.cmake.org/Bug/view.php?id=12998 #add_target_compile_flags(winefile "-Wno-format") allow_warnings(winefile) -endif() \ No newline at end of file +endif() diff --git a/rosapps/demos/CMakeLists.txt b/rosapps/demos/CMakeLists.txt index a39b6e4a449..64483eb47c9 100644 --- a/rosapps/demos/CMakeLists.txt +++ b/rosapps/demos/CMakeLists.txt @@ -1 +1 @@ -add_subdirectory(maze) \ No newline at end of file +add_subdirectory(maze) diff --git a/rosapps/drivers/CMakeLists.txt b/rosapps/drivers/CMakeLists.txt index b47e23d69eb..4ec7f692cd7 100644 --- a/rosapps/drivers/CMakeLists.txt +++ b/rosapps/drivers/CMakeLists.txt @@ -1 +1 @@ -add_subdirectory(green) \ No newline at end of file +add_subdirectory(green) From 5cbfb61a5aa7be4f50ac5bf3d7129a67f30e303c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Tue, 13 May 2014 21:19:04 +0000 Subject: [PATCH 90/92] [ROSAPPS] Remove almost all remnants of RBuild Dark Age; RBuild, we won't miss you :P svn path=/trunk/; revision=63281 --- rosapps/applications/applications.rbuild | 41 ---------- .../cmdutils/appwiz/appwiz.rbuild | 7 -- rosapps/applications/cmdutils/cmdutils.rbuild | 18 ----- rosapps/applications/cmdutils/tee/tee.rbuild | 4 - .../applications/cmdutils/touch/touch.rbuild | 6 -- .../cmdutils/uptime/uptime.rbuild | 5 -- rosapps/applications/cmdutils/y/y.rbuild | 4 - .../applications/devutils/directory.rbuild | 27 ------- .../applications/imagesoft/imagesoft.rbuild | 30 ------- .../butterflies/butterflies.rbuild | 17 ---- .../screensavers/circles/circles.rbuild | 13 --- .../screensavers/cylfrac/cylfrac.rbuild | 12 --- .../screensavers/matrix/matrix.rbuild | 21 ----- .../screensavers/mazescr/mazescr.rbuild | 11 --- .../screensavers/screensavers.rbuild | 25 ------ .../screensavers/ssstars/makefile | 79 ------------------- .../screensavers/ssstars/ssstars.rbuild | 19 ----- .../screensavers/starfield/starfield.rbuild | 11 --- rosapps/applications/sysutils/ctm/ctm.rbuild | 8 -- .../applications/sysutils/kill/kill.rbuild | 7 -- rosapps/applications/sysutils/sysutils.rbuild | 66 ---------------- .../applications/sysutils/tlist/tlist.rbuild | 8 -- .../sysutils/utils/cat/cat.rbuild | 3 - .../applications/sysutils/utils/ps/ps.rbuild | 6 -- .../applications/sysutils/utils/utils.rbuild | 35 -------- rosapps/demos/directory.rbuild | 6 -- rosapps/demos/maze/Makefile | 24 ------ rosapps/demos/maze/maze.rbuild | 6 -- rosapps/drivers/directory.rbuild | 6 -- rosapps/drivers/green/green.rbuild | 15 ---- rosapps/makefile | 20 ----- 31 files changed, 560 deletions(-) delete mode 100644 rosapps/applications/applications.rbuild delete mode 100644 rosapps/applications/cmdutils/appwiz/appwiz.rbuild delete mode 100644 rosapps/applications/cmdutils/cmdutils.rbuild delete mode 100644 rosapps/applications/cmdutils/tee/tee.rbuild delete mode 100644 rosapps/applications/cmdutils/touch/touch.rbuild delete mode 100644 rosapps/applications/cmdutils/uptime/uptime.rbuild delete mode 100644 rosapps/applications/cmdutils/y/y.rbuild delete mode 100644 rosapps/applications/devutils/directory.rbuild delete mode 100644 rosapps/applications/imagesoft/imagesoft.rbuild delete mode 100644 rosapps/applications/screensavers/butterflies/butterflies.rbuild delete mode 100644 rosapps/applications/screensavers/circles/circles.rbuild delete mode 100644 rosapps/applications/screensavers/cylfrac/cylfrac.rbuild delete mode 100644 rosapps/applications/screensavers/matrix/matrix.rbuild delete mode 100644 rosapps/applications/screensavers/mazescr/mazescr.rbuild delete mode 100644 rosapps/applications/screensavers/screensavers.rbuild delete mode 100644 rosapps/applications/screensavers/ssstars/makefile delete mode 100644 rosapps/applications/screensavers/ssstars/ssstars.rbuild delete mode 100644 rosapps/applications/screensavers/starfield/starfield.rbuild delete mode 100644 rosapps/applications/sysutils/ctm/ctm.rbuild delete mode 100644 rosapps/applications/sysutils/kill/kill.rbuild delete mode 100644 rosapps/applications/sysutils/sysutils.rbuild delete mode 100644 rosapps/applications/sysutils/tlist/tlist.rbuild delete mode 100644 rosapps/applications/sysutils/utils/cat/cat.rbuild delete mode 100644 rosapps/applications/sysutils/utils/ps/ps.rbuild delete mode 100644 rosapps/applications/sysutils/utils/utils.rbuild delete mode 100644 rosapps/demos/directory.rbuild delete mode 100644 rosapps/demos/maze/Makefile delete mode 100644 rosapps/demos/maze/maze.rbuild delete mode 100644 rosapps/drivers/directory.rbuild delete mode 100644 rosapps/drivers/green/green.rbuild delete mode 100644 rosapps/makefile diff --git a/rosapps/applications/applications.rbuild b/rosapps/applications/applications.rbuild deleted file mode 100644 index b4c9161d1d9..00000000000 --- a/rosapps/applications/applications.rbuild +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/rosapps/applications/cmdutils/appwiz/appwiz.rbuild b/rosapps/applications/cmdutils/appwiz/appwiz.rbuild deleted file mode 100644 index 1c84412cf6e..00000000000 --- a/rosapps/applications/cmdutils/appwiz/appwiz.rbuild +++ /dev/null @@ -1,7 +0,0 @@ - - advapi32 - user32 - shell32 - appwiz.c - appwiz.rc - diff --git a/rosapps/applications/cmdutils/cmdutils.rbuild b/rosapps/applications/cmdutils/cmdutils.rbuild deleted file mode 100644 index dd8e5cd19b5..00000000000 --- a/rosapps/applications/cmdutils/cmdutils.rbuild +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/rosapps/applications/cmdutils/tee/tee.rbuild b/rosapps/applications/cmdutils/tee/tee.rbuild deleted file mode 100644 index aa9583160cf..00000000000 --- a/rosapps/applications/cmdutils/tee/tee.rbuild +++ /dev/null @@ -1,4 +0,0 @@ - - tee.c - tee.rc - diff --git a/rosapps/applications/cmdutils/touch/touch.rbuild b/rosapps/applications/cmdutils/touch/touch.rbuild deleted file mode 100644 index 954acbff9fd..00000000000 --- a/rosapps/applications/cmdutils/touch/touch.rbuild +++ /dev/null @@ -1,6 +0,0 @@ - - . - getopt - err.c - touch.c - touch.rc diff --git a/rosapps/applications/cmdutils/uptime/uptime.rbuild b/rosapps/applications/cmdutils/uptime/uptime.rbuild deleted file mode 100644 index 008799bd623..00000000000 --- a/rosapps/applications/cmdutils/uptime/uptime.rbuild +++ /dev/null @@ -1,5 +0,0 @@ - - - uptime.c - uptime.rc - diff --git a/rosapps/applications/cmdutils/y/y.rbuild b/rosapps/applications/cmdutils/y/y.rbuild deleted file mode 100644 index 8c2fae60107..00000000000 --- a/rosapps/applications/cmdutils/y/y.rbuild +++ /dev/null @@ -1,4 +0,0 @@ - - y.c - y.rc - diff --git a/rosapps/applications/devutils/directory.rbuild b/rosapps/applications/devutils/directory.rbuild deleted file mode 100644 index 4d2722309da..00000000000 --- a/rosapps/applications/devutils/directory.rbuild +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/rosapps/applications/imagesoft/imagesoft.rbuild b/rosapps/applications/imagesoft/imagesoft.rbuild deleted file mode 100644 index 479c5a542ab..00000000000 --- a/rosapps/applications/imagesoft/imagesoft.rbuild +++ /dev/null @@ -1,30 +0,0 @@ - - - - . - gdi32 - user32 - advapi32 - version - comctl32 - shell32 - comdlg32 - - about.c - adjust.c - brightness.c - contrast.c - custcombo.c - floatwindow.c - font.c - imagesoft.c - imgedwnd.c - mainwnd.c - misc.c - opensave.c - tooldock.c - - imagesoft.rc - precomp.h - - diff --git a/rosapps/applications/screensavers/butterflies/butterflies.rbuild b/rosapps/applications/screensavers/butterflies/butterflies.rbuild deleted file mode 100644 index b399d268681..00000000000 --- a/rosapps/applications/screensavers/butterflies/butterflies.rbuild +++ /dev/null @@ -1,17 +0,0 @@ - - - - . - scrnsave - user32 - gdi32 - opengl32 - glu32 - advapi32 - shell32 - - - - butterflies.c - butterflies.rc - diff --git a/rosapps/applications/screensavers/circles/circles.rbuild b/rosapps/applications/screensavers/circles/circles.rbuild deleted file mode 100644 index 50e7013bc5b..00000000000 --- a/rosapps/applications/screensavers/circles/circles.rbuild +++ /dev/null @@ -1,13 +0,0 @@ - - - - . - scrnsave - user32 - gdi32 - - - - circles.c - circles.rc - diff --git a/rosapps/applications/screensavers/cylfrac/cylfrac.rbuild b/rosapps/applications/screensavers/cylfrac/cylfrac.rbuild deleted file mode 100644 index 1d85dc10e74..00000000000 --- a/rosapps/applications/screensavers/cylfrac/cylfrac.rbuild +++ /dev/null @@ -1,12 +0,0 @@ - - - - user32 - gdi32 - opengl32 - glu32 - winmm - - cylfrac.c - cylfrac.rc - diff --git a/rosapps/applications/screensavers/matrix/matrix.rbuild b/rosapps/applications/screensavers/matrix/matrix.rbuild deleted file mode 100644 index 8f4216502d0..00000000000 --- a/rosapps/applications/screensavers/matrix/matrix.rbuild +++ /dev/null @@ -1,21 +0,0 @@ - - - - . - user32 - gdi32 - winspool - comctl32 - comdlg32 - advapi32 - shell32 - uuid - - config.c - matrix.c - message.c - password.c - screensave.c - settings.c - rsrc.rc - diff --git a/rosapps/applications/screensavers/mazescr/mazescr.rbuild b/rosapps/applications/screensavers/mazescr/mazescr.rbuild deleted file mode 100644 index b91c5386a32..00000000000 --- a/rosapps/applications/screensavers/mazescr/mazescr.rbuild +++ /dev/null @@ -1,11 +0,0 @@ - - - - - user32 - gdi32 - - scrnsave.c - maze.c - scrnsave.rc - diff --git a/rosapps/applications/screensavers/screensavers.rbuild b/rosapps/applications/screensavers/screensavers.rbuild deleted file mode 100644 index 0ff863eaeb6..00000000000 --- a/rosapps/applications/screensavers/screensavers.rbuild +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/rosapps/applications/screensavers/ssstars/makefile b/rosapps/applications/screensavers/ssstars/makefile deleted file mode 100644 index 83180ee18c9..00000000000 --- a/rosapps/applications/screensavers/ssstars/makefile +++ /dev/null @@ -1,79 +0,0 @@ -# Makefile for Starfield screensaver -# -# syntax: -# make -# -# parameters: -# -# x68_64=1 : compile for x86_64 -# undefined: use default tools (typically IA_32) -# -# unicode=1: compile as UNICODE application -# undefined: compile as ASCII application - -# Makefile for Starfield screensaver - -# Default tools -TOOL_PREFIX= - -ifdef x86-64 -TOOL_PREFIX=x86_64-pc-mingw32- -endif - -CPP = $(TOOL_PREFIX)g++.exe -CC = $(TOOL_PREFIX)gcc.exe -WINDRES = $(TOOL_PREFIX)windres.exe - -# Define some variables -INCLUDE = -DEBUG = -Wall -OPTIMIZE = -O2 -fomit-frame-pointer - -ifdef x86-64 -# nothing here -else -OPTIMIZE+= -mpreferred-stack-boundary=2 -endif - -# Strip, typical mingw flag, help library -LIBS = -lopengl32 -lglu32 -lscrnsave -lcomctl32 -s -mwindows - -# Base files -FILES = stars settings - -# Check the UNICODE support -ifeq ($(unicode), 1) -UNICODE=u -DEFS += -DUNICODE -D_UNICODE -else -UNICODE=a -endif - -CFLAGS = $(DEFS) $(INCLUDE) $(DEBUG) $(OPTIMIZE) - -DIR_OBJECTS = obj/$(TOOL_PREFIX)$(UNICODE)/ - -# target file name -TARGET = $(DIR_OBJECTS)ssstars.scr - -OBJS= $(addprefix $(DIR_OBJECTS), $(addsuffix .o, $(FILES))) -RES = $(DIR_OBJECTS)resource.res - -.PHONY: all all-before all-after clean clean-custom - -all: all-before $(TARGET) all-after - -clean: clean-custom - $(RM) $(OBJ) $(TARGET) - -$(TARGET): $(OBJS) $(RES) - $(CC) $^ -o $@ $(LIBS) - -$(DIR_OBJECTS)%.o: %.c $(DIR_OBJECTS) - $(CC) -c $< -o $@ $(CFLAGS) - -$(RES): resource.rc - $(WINDRES) -i $< --input-format=rc -o $@ -O coff - -$(DIR_OBJECTS): - -mkdir $@ diff --git a/rosapps/applications/screensavers/ssstars/ssstars.rbuild b/rosapps/applications/screensavers/ssstars/ssstars.rbuild deleted file mode 100644 index 5fe7403c33a..00000000000 --- a/rosapps/applications/screensavers/ssstars/ssstars.rbuild +++ /dev/null @@ -1,19 +0,0 @@ - - - - scrnsave - chkstk - user32 - gdi32 - opengl32 - glu32 - advapi32 - comctl32 - shell32 - - ssstars.c - settings.c - resource.rc - - - diff --git a/rosapps/applications/screensavers/starfield/starfield.rbuild b/rosapps/applications/screensavers/starfield/starfield.rbuild deleted file mode 100644 index 732e4278766..00000000000 --- a/rosapps/applications/screensavers/starfield/starfield.rbuild +++ /dev/null @@ -1,11 +0,0 @@ - - - - user32 - gdi32 - - - - screensaver.c - starfield.rc - diff --git a/rosapps/applications/sysutils/ctm/ctm.rbuild b/rosapps/applications/sysutils/ctm/ctm.rbuild deleted file mode 100644 index 33362bf9652..00000000000 --- a/rosapps/applications/sysutils/ctm/ctm.rbuild +++ /dev/null @@ -1,8 +0,0 @@ - - epsapi - ntdll - user32 - - ctm.c - ctm.rc - diff --git a/rosapps/applications/sysutils/kill/kill.rbuild b/rosapps/applications/sysutils/kill/kill.rbuild deleted file mode 100644 index 998f1363355..00000000000 --- a/rosapps/applications/sysutils/kill/kill.rbuild +++ /dev/null @@ -1,7 +0,0 @@ - - ntdll - user32 - - kill.c - kill.rc - diff --git a/rosapps/applications/sysutils/sysutils.rbuild b/rosapps/applications/sysutils/sysutils.rbuild deleted file mode 100644 index b3aee1b4a88..00000000000 --- a/rosapps/applications/sysutils/sysutils.rbuild +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/rosapps/applications/sysutils/tlist/tlist.rbuild b/rosapps/applications/sysutils/tlist/tlist.rbuild deleted file mode 100644 index 07ccd1851f5..00000000000 --- a/rosapps/applications/sysutils/tlist/tlist.rbuild +++ /dev/null @@ -1,8 +0,0 @@ - - epsapi - - getopt - user32 - ntdll - tlist.c - diff --git a/rosapps/applications/sysutils/utils/cat/cat.rbuild b/rosapps/applications/sysutils/utils/cat/cat.rbuild deleted file mode 100644 index b922a2fc8f3..00000000000 --- a/rosapps/applications/sysutils/utils/cat/cat.rbuild +++ /dev/null @@ -1,3 +0,0 @@ - - ntdll - cat.c diff --git a/rosapps/applications/sysutils/utils/ps/ps.rbuild b/rosapps/applications/sysutils/utils/ps/ps.rbuild deleted file mode 100644 index c2a194e4e29..00000000000 --- a/rosapps/applications/sysutils/utils/ps/ps.rbuild +++ /dev/null @@ -1,6 +0,0 @@ - - . - user32 - ntdll - ps.c - diff --git a/rosapps/applications/sysutils/utils/utils.rbuild b/rosapps/applications/sysutils/utils/utils.rbuild deleted file mode 100644 index 140b12fa96f..00000000000 --- a/rosapps/applications/sysutils/utils/utils.rbuild +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/rosapps/demos/directory.rbuild b/rosapps/demos/directory.rbuild deleted file mode 100644 index 2df2edb23fb..00000000000 --- a/rosapps/demos/directory.rbuild +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/rosapps/demos/maze/Makefile b/rosapps/demos/maze/Makefile deleted file mode 100644 index ade1431fcd6..00000000000 --- a/rosapps/demos/maze/Makefile +++ /dev/null @@ -1,24 +0,0 @@ - -PATH_TO_TOP = ../../../reactos - -TARGET_TYPE = program - -TARGET_APPTYPE = windows - -TARGET_NAME = maze - -TARGET_SDKLIBS = kernel32.a gdi32.a - -TARGET_OBJECTS = maze.o - -TARGET_CFLAGS = -Wall -Werror - -include $(PATH_TO_TOP)/rules.mak - -include $(TOOLS_PATH)/helper.mk - -# Automatic dependency tracking -DEP_OBJECTS := $(TARGET_OBJECTS) -include $(PATH_TO_TOP)/tools/depend.mk - -# EOF diff --git a/rosapps/demos/maze/maze.rbuild b/rosapps/demos/maze/maze.rbuild deleted file mode 100644 index 2124212521d..00000000000 --- a/rosapps/demos/maze/maze.rbuild +++ /dev/null @@ -1,6 +0,0 @@ - - gdi32 - user32 - maze.c - maze.rc - diff --git a/rosapps/drivers/directory.rbuild b/rosapps/drivers/directory.rbuild deleted file mode 100644 index 0c21ad124d8..00000000000 --- a/rosapps/drivers/directory.rbuild +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/rosapps/drivers/green/green.rbuild b/rosapps/drivers/green/green.rbuild deleted file mode 100644 index 05bb8559a97..00000000000 --- a/rosapps/drivers/green/green.rbuild +++ /dev/null @@ -1,15 +0,0 @@ - - - ntoskrnl - hal - createclose.c - dispatch.c - green.c - keyboard.c - misc.c - pnp.c - power.c - screen.c - green.rc - green.h - diff --git a/rosapps/makefile b/rosapps/makefile deleted file mode 100644 index 04a9680f62b..00000000000 --- a/rosapps/makefile +++ /dev/null @@ -1,20 +0,0 @@ -all: - @echo To build "rosapps" there are two paths: - @echo --- - @echo 1. copy the rosapps folder into the reactos\modules folder - @echo 2. link reactos/modules/rosapps to rosapps - -ifeq ($(shell uname),) -# Information for Windows users - - @echo cd %%_ROSSOURCEDIR%%\reactos\modules - @echo junction rosapps %%_ROSSOURCEDIR%%\rosapps -else -# Information for UNIX users - - @echo " cd \$$_ROSSOURCEDIR/reactos/modules" - @echo " ln -s \$$_ROSSOURCEDIR/rosapps rosapps" -endif - - @echo --- - @echo Eventually you can run "make depends" in the \reactos directory to compile it. From 2bdc85867dced6f99be76ab3a3009241f74890c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Tue, 13 May 2014 21:21:34 +0000 Subject: [PATCH 91/92] [ROSAPPS] Name copying the *nix way (in uppercases), just for fun. svn path=/trunk/; revision=63282 --- rosapps/{copying => COPYING} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rosapps/{copying => COPYING} (100%) diff --git a/rosapps/copying b/rosapps/COPYING similarity index 100% rename from rosapps/copying rename to rosapps/COPYING From 32604108f4f2b4b8aa8fdc30edfd1aa8ea26161d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Tue, 13 May 2014 21:39:36 +0000 Subject: [PATCH 92/92] [ROSAPPS] Add/update Romanian translation, by Stefan Fulea. ROSAPPS-231 #resolve #comment Thanks for your patch! svn path=/trunk/; revision=63283 --- .../devutils/vgafontedit/lang/ro-RO.rc | 94 +++++++ .../devutils/vgafontedit/vgafontedit.rc | 3 + rosapps/applications/fraginator/Fraginator.rc | 1 + rosapps/applications/fraginator/lang/ro-RO.rc | 230 +++++++++++++++++ rosapps/applications/imagesoft/lang/ro-RO.rc | 240 ++++++++++++++++++ rosapps/applications/imagesoft/rsrc.rc | 3 + .../screensavers/blankscr/lang/ro-RO.rc | 17 ++ .../screensavers/blankscr/scrnsave.rc | 3 + .../screensavers/butterflies/lang/ro-RO.rc | 44 ++++ .../screensavers/butterflies/rsrc.rc | 5 +- .../screensavers/circles/circles.rc | 3 + .../screensavers/circles/lang/ro-RO.rc | 17 ++ .../screensavers/cylfrac/cylfrac.rc | 1 + .../screensavers/cylfrac/lang/ro-RO.rc | 16 ++ .../screensavers/matrix/lang/ro-RO.rc | 63 +++++ .../applications/screensavers/matrix/rsrc.rc | 3 + .../screensavers/mazescr/lang/ro-RO.rc | 18 ++ .../screensavers/mazescr/scrnsave.rc | 5 +- .../screensavers/ssstars/lang/ro-RO.rc | 60 +++++ .../screensavers/ssstars/resource.rc | 1 + .../screensavers/starfield/lang/ro-RO.rc | 18 ++ .../screensavers/starfield/starfield.rc | 3 + rosapps/applications/sysutils/ctm/ctm.rc | 3 + .../applications/sysutils/ctm/lang/ro-RO.rc | 40 +++ .../sysutils/systeminfo/lang/ro-RO.rc | 80 ++++++ .../applications/sysutils/systeminfo/rsrc.rc | 1 + 26 files changed, 970 insertions(+), 2 deletions(-) create mode 100644 rosapps/applications/devutils/vgafontedit/lang/ro-RO.rc create mode 100644 rosapps/applications/fraginator/lang/ro-RO.rc create mode 100644 rosapps/applications/imagesoft/lang/ro-RO.rc create mode 100644 rosapps/applications/screensavers/blankscr/lang/ro-RO.rc create mode 100644 rosapps/applications/screensavers/butterflies/lang/ro-RO.rc create mode 100644 rosapps/applications/screensavers/circles/lang/ro-RO.rc create mode 100644 rosapps/applications/screensavers/cylfrac/lang/ro-RO.rc create mode 100644 rosapps/applications/screensavers/matrix/lang/ro-RO.rc create mode 100644 rosapps/applications/screensavers/mazescr/lang/ro-RO.rc create mode 100644 rosapps/applications/screensavers/ssstars/lang/ro-RO.rc create mode 100644 rosapps/applications/screensavers/starfield/lang/ro-RO.rc create mode 100644 rosapps/applications/sysutils/ctm/lang/ro-RO.rc create mode 100644 rosapps/applications/sysutils/systeminfo/lang/ro-RO.rc diff --git a/rosapps/applications/devutils/vgafontedit/lang/ro-RO.rc b/rosapps/applications/devutils/vgafontedit/lang/ro-RO.rc new file mode 100644 index 00000000000..29d34f61089 --- /dev/null +++ b/rosapps/applications/devutils/vgafontedit/lang/ro-RO.rc @@ -0,0 +1,94 @@ +/* + * PROJECT: ReactOS VGA Font Editor + * LICENSE: GNU General Public License Version 2.0 or any later version + * FILE: devutils/vgafontedit/lang/ro-RO.rc + * PURPOSE: Romanian resource file + * COPYRIGHT: Copyright 2008 Colin Finck + * TRANSLATOR: Ștefan Fulea (stefan dot fulea at mail dot md) + */ + +LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL + +IDD_ABOUT DIALOGEX 10, 10, 130, 62 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU +CAPTION "About" +FONT 8, "MS Shell Dlg" +BEGIN + ICON IDI_MAIN, IDC_STATIC, 10, 10, 20, 20 + LTEXT "Editor de font VGA ReactOS", IDC_STATIC, 37, 10, 93, 10 + LTEXT "Drept de autor 2008 Colin Finck", IDC_STATIC, 37, 20, 93, 10 + DEFPUSHBUTTON "Î&nchide", IDCANCEL, 40, 44, 55, 15 +END + +IDD_EDITGLYPH DIALOGEX 32768, 32768, 246, 197 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Editare glifă" +FONT 8, "MS Shell Dlg" +BEGIN + CONTROL "", IDC_EDIT_GLYPH_TOOLBOX, TOOLBARCLASSNAMEA, CCS_NODIVIDER | CCS_NORESIZE, 5, 5, 24, 82 + CONTROL "", IDC_EDIT_GLYPH_EDIT, EDIT_GLYPH_EDIT_CLASSW, 0, 39, 5, 160, 160 + CONTROL "", IDC_EDIT_GLYPH_PREVIEW, EDIT_GLYPH_PREVIEW_CLASSW, 0, 209, 5, 32, 32 + + DEFPUSHBUTTON "Con&firmă", IDOK, 48, 177, 70, 14 + PUSHBUTTON "A&nulează", IDCANCEL, 125, 177, 70, 14 +END + +IDM_MAINMENU MENU +BEGIN + POPUP "&Fișier" + BEGIN + MENUITEM "&Nou\tCtrl+N", ID_FILE_NEW + MENUITEM "&Deschidere…\tCtrl+O", ID_FILE_OPEN + MENUITEM "În&chide", ID_FILE_CLOSE + MENUITEM SEPARATOR + MENUITEM "Pă&strează\tCtrl+S", ID_FILE_SAVE + MENUITEM "&Păstrare în…", ID_FILE_SAVE_AS + MENUITEM SEPARATOR + MENUITEM "I&eșire\tAlt+F4", ID_FILE_EXIT + END + + POPUP "&Editare" + BEGIN + MENUITEM "&Copiază\tCtrl+C", ID_EDIT_COPY + MENUITEM "&Lipește\tCtrl+V", ID_EDIT_PASTE + MENUITEM SEPARATOR + MENUITEM "&Editare glifă…", ID_EDIT_GLYPH + END + + POPUP "Fe&restre" + BEGIN + MENUITEM "Aranjare în &cascadă", ID_WINDOW_CASCADE + MENUITEM "Aranjări &orizontale", ID_WINDOW_TILE_HORZ + MENUITEM "Aranjări &verticale", ID_WINDOW_TILE_VERT + MENUITEM "&Aranjează pictograme", ID_WINDOW_ARRANGE + MENUITEM SEPARATOR + MENUITEM "&Următoarea\tCtrl+F6", ID_WINDOW_NEXT + END + + POPUP "&?" + BEGIN + MENUITEM "&Despre…", ID_HELP_ABOUT + END +END + +STRINGTABLE +BEGIN + IDS_OPENFILTER, "Toate formatele compatibile (*.bin,*.psf)|*.bin;*.psf|Fișiere de font binar (*.bin)|*.bin|Fonturi (de versiune 1) PC Screen (*.psf)|*.psf|" + IDS_SAVEFILTER, "Fișiere de font binar (*.bin)|*.bin|" + IDS_OPENERROR, "Eroare la deschiderea fișierului! (Număr de eroare %1!u!)" + IDS_READERROR, "Eroare la citirea fișierului! (Număr de eroare %1!u!)" + IDS_WRITEERROR, "Eroare la scrierea fișierului! (Număr de eroare %1!u!)" + IDS_UNSUPPORTEDFORMAT, "Format de fișier incompatibil!" + IDS_UNSUPPORTEDPSF, "Format incompatibil de font PSF! Posibilitățile editorului se limitează la fonturile 8x8 fără moduri speciale." + IDS_DOCNAME, "Font %1!u!" + IDS_SAVEPROMPT, "Modificările în fișierul „%1” încă nu au fost păstrate.\n\nDoriți păstrarea lor?" + IDS_APPTITLE, "Editor de font VGA ReactOS" + IDS_CLOSEEDIT, "Închideți mai întâi toate ferestrele de editare!" + + IDS_TOOLTIP_NEW, "Nou" + IDS_TOOLTIP_OPEN, "Deschide" + IDS_TOOLTIP_SAVE, "Păstrează" + IDS_TOOLTIP_EDIT_GLYPH, "Editează glifă" + IDS_TOOLTIP_COPY, "Copiază" + IDS_TOOLTIP_PASTE, "Lipește" +END diff --git a/rosapps/applications/devutils/vgafontedit/vgafontedit.rc b/rosapps/applications/devutils/vgafontedit/vgafontedit.rc index 8770cc41c8e..f3898b9eda5 100644 --- a/rosapps/applications/devutils/vgafontedit/vgafontedit.rc +++ b/rosapps/applications/devutils/vgafontedit/vgafontedit.rc @@ -59,6 +59,9 @@ IDI_DOC ICON "res/doc.ico" #ifdef LANGUAGE_PL_PL #include "lang/pl-PL.rc" #endif +#ifdef LANGUAGE_RO_RO + #include "lang/ro-RO.rc" +#endif #ifdef LANGUAGE_RU_RU #include "lang/ru-RU.rc" #endif diff --git a/rosapps/applications/fraginator/Fraginator.rc b/rosapps/applications/fraginator/Fraginator.rc index 463454098d9..e3912d3d668 100644 --- a/rosapps/applications/fraginator/Fraginator.rc +++ b/rosapps/applications/fraginator/Fraginator.rc @@ -17,5 +17,6 @@ #include "lang/es-ES.rc" #include "lang/fr-FR.rc" #include "lang/no-NO.rc" +#include "lang/ro-RO.rc" #include "lang/sk-SK.rc" #include "lang/uk-UA.rc" diff --git a/rosapps/applications/fraginator/lang/ro-RO.rc b/rosapps/applications/fraginator/lang/ro-RO.rc new file mode 100644 index 00000000000..b4fbb5da1b2 --- /dev/null +++ b/rosapps/applications/fraginator/lang/ro-RO.rc @@ -0,0 +1,230 @@ +// Microsoft Visual C++ generated resource script. +// + +///////////////////////////////////////////////////////////////////////////// +// Romanian resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL +#pragma code_page(65001) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_MAIN DIALOGEX 0, 0, 346, 103 +STYLE DS_SHELLFONT | DS_CENTERMOUSE | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | + WS_CAPTION | WS_SYSMENU +FONT 8, "MS Shell Dlg", 0, 0, 0x1 +BEGIN + COMBOBOX IDC_DRIVES_LIST,78,52,29,111,CBS_DROPDOWNLIST | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_METHODS_LIST,135,52,77,79,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_PRIORITY_LIST,223,52,59,91,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Pornire",IDC_STARTSTOP,294,7,45,15 + PUSHBUTTON "Manual",ID_MAIN_HELP,294,28,45,15 + PUSHBUTTON "I&eșire",IDC_QUIT,294,49,45,15 + CONTROL 110,-1,"Static",SS_BITMAP | SS_SUNKEN | + WS_BORDER,7,7,63,58 + LTEXT "Alegeți o unitate:",-1,78,40,50,8 + LTEXT "Alegeți o acțiune:",-1,135,40,58,8 + CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER | + 0x1,7,71,299,10 + CONTROL "Static",IDC_STATUS,"Static",SS_LEFTNOWORDWRAP | + SS_SUNKEN | WS_GROUP,7,86,332,10 + LTEXT "I am a monkey, hear me eeK",IDC_WISECRACKS,78,15,91,8 + LTEXT "100.00%",IDC_PERCENT,311,71,28,8,0,WS_EX_RIGHT + LTEXT "Prioritate proces:",-1,223,40,51,8 +END + +IDD_REPORT DIALOGEX 0, 0, 391, 169 +STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION +CAPTION "Raport" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "octeți",IDC_BYTES,7,148,50,14 + DEFPUSHBUTTON "kiloocteți",IDC_KILOBYTES,61,148,50,14 + DEFPUSHBUTTON "Megaocteți",IDC_MEGABYTES,115,148,50,14 + DEFPUSHBUTTON "Gigaocteți",IDC_GIGABYTES,169,148,50,14 + DEFPUSHBUTTON "Î&nchide",IDC_REPORTOK,334,148,50,14 + RTEXT "Volum",-1,7,7,24,8 + LTEXT "Capacitate",-1,7,51,28,8 + RTEXT "(literă dispozitiv)",IDC_DRIVELETTER,63,7,117,10,SS_SUNKEN + RTEXT "(mărime disc, octeți)",IDC_DISKSIZEBYTES,63,51,117,10, + SS_SUNKEN + RTEXT "(mărime disc, cluster-i)",IDC_DISKSIZECLUSTERS,63,73,117, + 10,SS_SUNKEN + LTEXT "Total cluster-i",-1,7,73,43,8 + RTEXT "(mărime cluster)",IDC_DISKCLUSTERSIZE,63,84,117,10, + SS_SUNKEN + LTEXT "Dimensiune cluster",-1,7,84,36,8 + RTEXT "(număr fișiere)",IDC_FILESCOUNT,267,18,117,10,SS_SUNKEN + RTEXT "(mărime fișiere, octeți)",IDC_FILESSIZEBYTES,267,29,117,10, + SS_SUNKEN + LTEXT "# de fișiere",-1,194,18,28,8 + LTEXT "Mărime în total",-1,194,29,31,8 + LTEXT "Mărime pe disc",-1,194,40,39,8 + RTEXT "(mărime în total, octeți)",IDC_FILESSIZEONDISK,267,40,117,10, + SS_SUNKEN + RTEXT "(fișiere octeți latenți)",IDC_FILESSLACKBYTES,267,51,117,10, + SS_SUNKEN + LTEXT "Risipă latențe",-1,194,51,44,8 + RTEXT "(liber pe disc, octeți)",IDC_DISKFREEBYTES,63,62,117,10, + SS_SUNKEN + LTEXT "Spațiu liber",-1,7,62,36,8 + RTEXT "(firșiere fragmentate, numărate)",IDC_FILESFRAGGED,267,62,117, + 10,SS_SUNKEN + LTEXT "Fișiere fragmentate",-1,194,62,52,8 + RTEXT "(directoare numărate)",IDC_DIRSCOUNT,267,7,117,10,SS_SUNKEN + LTEXT "# de directoare",-1,194,7,48,8 + RTEXT "Sistem de fișiere",-1,7,40,36,8 + RTEXT "(Numele sistemului de fișiere)",IDC_FILESYSTEM,63,40,117,10, + SS_SUNKEN + RTEXT "Etichetă volum",-1,7,18,44,8 + RTEXT "(nume volum)",IDC_VOLUMELABEL,63,18,117,10,SS_SUNKEN + RTEXT "Serie",-1,7,29,18,8 + RTEXT "(serie volum)",IDC_VOLUMESERIAL,63,29,117,10, + SS_SUNKEN + RTEXT "(medie fragmete per fișier)",IDC_AVERAGEFRAGS,267,73,117, + 10,SS_SUNKEN + LTEXT "Media fragmentelor per fișier",-1,194,73,60,20 + LTEXT "XX.X% din fișierele dispozitivului sunt fragmentate. Este recomandată efectuarea unei defragmentări SSSSSSS.", + IDC_RECOMMEND,7,106,377,38,SS_SUNKEN + LTEXT "Recomandări:",-1,7,96,62,8 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_MAIN, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 339 + TOPMARGIN, 7 + BOTTOMMARGIN, 96 + END + + IDD_REPORT, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 384 + TOPMARGIN, 7 + BOTTOMMARGIN, 162 + END +END +#endif // APSTUDIO_INVOKED + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""windows.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,3,0,0 + PRODUCTVERSION 1,3,0,0 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x40004L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "CompanyName", " " + VALUE "FileDescription", "Fraginator" + VALUE "FileVersion", "1.03" + VALUE "InternalName", "Fraginator" + VALUE "LegalCopyright", "Drept de autor © 2000-2002 Rick Brewster" + VALUE "OriginalFilename", "Fraginator.exe" + VALUE "ProductName", "Fraginator" + VALUE "ProductVersion", "1.03" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDB_LOGO BITMAP "Fraginator Motif Icon.bmp" + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_ICON ICON "icon1.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// RT_MANIFEST +// + +1 RT_MANIFEST "default1.bin" +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/rosapps/applications/imagesoft/lang/ro-RO.rc b/rosapps/applications/imagesoft/lang/ro-RO.rc new file mode 100644 index 00000000000..e1b107f3de3 --- /dev/null +++ b/rosapps/applications/imagesoft/lang/ro-RO.rc @@ -0,0 +1,240 @@ +/* + * PROJECT: ReactOS ImageSoft + * LICENSE: GPL - See COPYING in the top level directory + * FILE: rosapps/applications/imagesoft/lang/ro-RO.rc + * PURPOSE: Romanian Language File for ImageSoft + * TRANSLATOR: Ștefan Fulea (stefan dot fulea at mail dot md) + */ + +LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL + +STRINGTABLE DISCARDABLE +BEGIN + IDS_APPNAME "ImageSoft" + IDS_VERSION "v0.1" +END + +IDR_MAINMENU MENU +BEGIN + POPUP "&Fișier" + BEGIN + MENUITEM "&Nou…", ID_NEW + MENUITEM "&Deschidere…", ID_OPEN + MENUITEM SEPARATOR + MENUITEM "În&chide\tCtrl+F4", ID_CLOSE, GRAYED + MENUITEM "Închide t&ot", ID_CLOSEALL,GRAYED + MENUITEM SEPARATOR + MENUITEM "Pă&strează", ID_SAVE, GRAYED + MENUITEM "&Păstrare în…", ID_SAVEAS, GRAYED + MENUITEM SEPARATOR + MENUITEM "Pre&vizionează imprimare", ID_PRINTPRE, GRAYED + MENUITEM "&Imprimare…", ID_PRINT, GRAYED + MENUITEM SEPARATOR + MENUITEM "P&roprietăți…", ID_PROP, GRAYED + MENUITEM SEPARATOR + MENUITEM "I&eșire\tAlt+F4", ID_EXIT + END + POPUP "&Editare" + BEGIN + MENUITEM "&Desface", ID_UNDO, GRAYED + MENUITEM "&Reface", ID_REDO, GRAYED + MENUITEM SEPARATOR + MENUITEM "&Decupează", ID_CUT, GRAYED + MENUITEM "&Copie", ID_COPY, GRAYED + MENUITEM "&Lipește", ID_PASTE, GRAYED + MENUITEM "Lipește ca &imagine nouă", ID_PASTENEWIMAGE, GRAYED + MENUITEM SEPARATOR + MENUITEM "Selectează t&ot", ID_SELALL, GRAYED + END + POPUP "&Afișare" + BEGIN + MENUITEM "&Instrumente", ID_TOOLS + MENUITEM "&Culori", ID_COLOR + MENUITEM "Ist&oric", ID_HISTORY + MENUITEM "&Bară de stare", ID_STATUSBAR + END + POPUP "&Ajustare" + BEGIN + MENUITEM "Strălucire…", ID_BRIGHTNESS + MENUITEM "Contrast…", ID_CONTRAST + MENUITEM "Nuanță/Saturație…", -1, GRAYED + POPUP "Culoare" + BEGIN + MENUITEM "Alb-negru", ID_BLACKANDWHITE + MENUITEM "Inversează culori", ID_INVERTCOLORS + END + MENUITEM SEPARATOR + MENUITEM "Încețoșează", ID_BLUR + MENUITEM "Intensifică", ID_SHARPEN + MENUITEM "Margini line", -1, GRAYED + MENUITEM "Adaugă umbră", -1, GRAYED + MENUITEM SEPARATOR + MENUITEM "Dimensiune imagine…", -1, GRAYED + MENUITEM "Întoarce", -1, GRAYED + MENUITEM "Oglindește", -1, GRAYED + MENUITEM "Rotește", -1, GRAYED + + END + POPUP "&Culori" + BEGIN + MENUITEM "&Editare culori…", ID_EDITCOLOURS + END + POPUP "Fe&restră" + BEGIN + MENUITEM "În &cascadă", ID_WINDOW_CASCADE + MENUITEM "Suprapuse &orizontal", ID_WINDOW_TILE_HORZ + MENUITEM "Suprapuse &vertical", ID_WINDOW_TILE_VERT + MENUITEM "&Aranjează pictograme", ID_WINDOW_ARRANGE + MENUITEM SEPARATOR + MENUITEM "Urmă&toare\tCtrl+F6", ID_WINDOW_NEXT + END + POPUP "&?" + BEGIN + MENUITEM "&Despre…", ID_ABOUT + END +END + +IDR_POPUP MENU +BEGIN + POPUP "popup" + BEGIN + MENUITEM SEPARATOR + END +END + + +IDD_BRIGHTNESS DIALOGEX 6, 5, 193, 120 +CAPTION "Strălucire" +FONT 8,"MS Shell Dlg", 0, 0 +STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME +BEGIN + LTEXT "", IDC_PICPREVIEW, 0, 1, 132, 96, SS_OWNERDRAW | SS_SUNKEN + LTEXT "Forma culorii:", IDC_STATIC, 135, 5, 36, 9 + GROUPBOX "", IDC_BRI_GROUP, 138 ,30, 50, 48 + CONTROL "Deplină (RVA)", IDC_BRI_FULL, "Button", BS_AUTORADIOBUTTON, 138, 18, 46, 9 + CONTROL "Roșu", IDC_BRI_RED, "Button", BS_AUTORADIOBUTTON, 142, 38, 42, 9 + CONTROL "Verde", IDC_BRI_GREEN, "Button", BS_AUTORADIOBUTTON, 142, 51, 42, 9 + CONTROL "Albastru", IDC_BRI_BLUE, "Button", BS_AUTORADIOBUTTON, 142, 64, 42, 9 + EDITTEXT IDC_BRI_EDIT, 98, 103, 28, 13 + CONTROL "", IDC_BRI_TRACKBAR, "msctls_trackbar32", TBS_BOTH | TBS_NOTICKS | WS_TABSTOP, 2, 105, 90, 11 + PUSHBUTTON "Con&firmă", IDOK, 142, 88, 48, 13 + PUSHBUTTON "A&nulează", IDCANCEL, 142, 105, 48, 13 +END + +IDD_ABOUTBOX DIALOGEX 22,16,210,182 +CAPTION "Despre ImageSoft" +FONT 8,"MS Shell Dlg",0,0 +STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME +//EXSTYLE WS_EX_LAYERED +BEGIN + LTEXT "ImageSoft v0.1\nDrept de autor (C) 2006\nThomas Weidenmueller (w3seek@reactos.org)\nGed Murphy (gedmurphy@gmail.com)", IDC_STATIC, 48, 7, 150, 36 + PUSHBUTTON "Î&nchide", IDOK, 75, 162, 44, 15 + ICON IDI_IMAGESOFTICON, IDC_STATIC, 10, 10, 7, 30 + EDITTEXT IDC_LICENSE_EDIT, 8, 44, 194, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE +END + + +IDD_IMAGE_PROP DIALOGEX 6, 5, 156, 163 +CAPTION "Proprietăți imagine" +FONT 8,"MS Shell Dlg",0,0 +STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME +BEGIN + LTEXT "Nume:", IDC_STATIC, 12, 5, 38, 9 + EDITTEXT IDC_IMAGE_NAME_EDIT, 58, 3, 94, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP + GROUPBOX "Proprietăți pânză", IDC_STATIC, 4, 22, 148, 98 + LTEXT "Tip de imagine:", IDC_STATIC, 12, 36, 42, 9 + CONTROL "", IDC_IMAGETYPE, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 35, 88, 54 + LTEXT "Lățime:", IDC_STATIC, 12, 51, 42, 9 + EDITTEXT IDC_WIDTH_EDIT, 58, 49, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER + LTEXT "", IDC_WIDTH_STAT, 94, 51, 40, 9 + LTEXT "Înălțime:", IDC_STATIC, 12, 68, 42, 9 + EDITTEXT IDC_HEIGHT_EDIT, 58, 66, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER + LTEXT "", IDC_HEIGHT_STAT, 94, 68, 40, 9 + LTEXT "Resoluție:", IDC_STATIC, 12, 84, 42, 9 + EDITTEXT IDC_RES_EDIT, 58, 83, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER + LTEXT "", IDC_RES_STAT, 94, 84, 40, 9 + LTEXT "Unitate:", IDC_STATIC, 12, 99, 42, 9 + CONTROL "", IDC_UNIT, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 99, 54, 50 + LTEXT "Dimensiune imagine:", IDC_STATIC, 12, 125, 42, 9 + LTEXT "", IDC_IMAGE_SIZE, 58, 125, 54, 9 + PUSHBUTTON "Con&firmă", IDOK, 50, 144, 48, 13 + PUSHBUTTON "A&nulează", IDCANCEL, 102, 144, 48, 13 +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_LICENSE "Aceast program este software liber; îl puteți redistribui și/sau modifica în termenii Licenței Publice Generale GNU publicată de Free Software Foundation; fie în versiunea 2 a Licenței, sau (la alegere) a unei versiuni ulterioare.\r\n\r\nAcest program este distribuit doar în speranța că va fi util, însă FĂRĂ NICI O GARANȚIE; nici măcar cea implicită a VANDABILITĂȚII sau a UTILITĂȚII ÎNTR-UN SCOP ANUME. Vedeți Licența Publică Generală GNU pentru mai multe detalii.\r\n\r\nAr trebui să primiți o copie a Licenței Publice Generale împreună cu acest program; altfel, scrieți către Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA." + IDS_READY " Pregătit." + IDS_TOOLBAR_STANDARD "Standard" + IDS_TOOLBAR_TEST "Test" + IDS_IMAGE_NAME "Imagine %1!u!" + IDS_FLT_TOOLS "Instrumente" + IDS_FLT_COLORS "Culori" + IDS_FLT_HISTORY "Istoric" +END + +/* imageprop.c */ +STRINGTABLE DISCARDABLE +BEGIN + IDS_IMAGE_MONOCHROME "Monocromatic (1 bit)" + IDS_IMAGE_GREYSCALE "Tonuri de gri (8 biți)" + IDS_IMAGE_PALETTE "Paletă sau 256 culori (8 biți)" + IDS_IMAGE_TRUECOLOR "Culori fotografice (24 biți)" + + IDS_UNIT_PIXELS "Pixeli" + IDS_UNIT_CM "Cm" + IDS_UNIT_INCHES "Țoli" + IDS_UNIT_DOTSCM "Puncte / Cm" + IDS_UNIT_DPI "Puncte / Țol" + IDS_UNIT_KB "%d ko" + IDS_UNIT_MB "%d Mo" +END + +/* Tooltips */ +STRINGTABLE DISCARDABLE +BEGIN + IDS_TOOLTIP_NEW "Nou" + IDS_TOOLTIP_OPEN "Deschidere" + IDS_TOOLTIP_SAVE "Păstrează" + IDS_TOOLTIP_PRINTPRE "Previzionează imprimare" + IDS_TOOLTIP_PRINT "Imprimare" + IDS_TOOLTIP_CUT "Decupează" + IDS_TOOLTIP_COPY "Copie" + IDS_TOOLTIP_PASTE "Lipește" + IDS_TOOLTIP_UNDO "Desface" + IDS_TOOLTIP_REDO "Reface" +END + + +/* Hints */ +STRINGTABLE DISCARDABLE +BEGIN + IDS_HINT_BLANK " " + IDS_HINT_NEW " Crează un document nou." + IDS_HINT_OPEN " Deschide un document existent." + IDS_HINT_CLOSE " Închide această fereastră." + IDS_HINT_CLOSEALL " Închide toate ferestrele." + IDS_HINT_SAVE " Păstrează documentul activ." + IDS_HINT_SAVEAS " Păstrează documentul activ sub un nou nume." + IDS_HINT_PRINTPRE " Previzionează documentul de imprimat." + IDS_HINT_PRINT " Imprimă documentul activ." + IDS_HINT_PROP " Afișează proprietățile imaginei active." + IDS_HINT_EXIT " Ieșire din această aplicație." + + IDS_HINT_TOOLS " Afișează sau ascunde fereastra cu instrumente." + IDS_HINT_COLORS " Afișează sau ascunde fereastra cu paleta de culori." + IDS_HINT_HISTORY " Afișează sau ascunde fereastra cu istoric." + IDS_HINT_STATUS " Afișează sau ascunde bara de stare." + + IDS_HINT_CASCADE " Aranjează ferestrele permițând suprapunerea." + IDS_HINT_TILE_HORZ " Aranjează ferestrele fără suprapunere." + IDS_HINT_TILE_VERT " Aranjează ferestrele fără suprapunere." + IDS_HINT_ARRANGE " Aranjează pictogramele la baza ferestrei." + IDS_HINT_NEXT " Activează următoarea fereastră." + + IDS_HINT_SYS_RESTORE " Restituie această fereastră la dimensiunea sa normală." + IDS_HINT_SYS_MOVE " Mută această fereastră." + IDS_HINT_SYS_SIZE " Redenumește această fereastră." + IDS_HINT_SYS_MINIMIZE " Reduce această fereastră la o pictogramă." + IDS_HINT_SYS_MAXIMIZE " Extinde această fereastră pe tot ecranul." +END diff --git a/rosapps/applications/imagesoft/rsrc.rc b/rosapps/applications/imagesoft/rsrc.rc index e7b3a382145..619b3fd925b 100644 --- a/rosapps/applications/imagesoft/rsrc.rc +++ b/rosapps/applications/imagesoft/rsrc.rc @@ -31,6 +31,9 @@ #ifdef LANGUAGE_PL_PL #include "lang/pl-PL.rc" #endif +#ifdef LANGUAGE_RO_RO + #include "lang/ro-RO.rc" +#endif #ifdef LANGUAGE_RU_RU #include "lang/ru-RU.rc" #endif diff --git a/rosapps/applications/screensavers/blankscr/lang/ro-RO.rc b/rosapps/applications/screensavers/blankscr/lang/ro-RO.rc new file mode 100644 index 00000000000..97c5536e0a7 --- /dev/null +++ b/rosapps/applications/screensavers/blankscr/lang/ro-RO.rc @@ -0,0 +1,17 @@ +/* + * PROJECT: ReactOS Default ScreenSaver + * LICENSE: GPL - See COPYING in the top level directory + * FILE: rosapps/applications/screensavers/blankscr/lang/ro-RO.rc + * PURPOSE: Romanian Language File for Default ScreenSaver + * TRANSLATOR: Ștefan Fulea (stefan dot fulea at mail dot md) + */ + +LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL + +#pragma code_page(65001) + +STRINGTABLE DISCARDABLE +BEGIN + IDS_DESCRIPTION "Ecran gol (animație de inactivitate)" + IDS_TEXT "Nu este necesară stabilirea de opțiuni." +END diff --git a/rosapps/applications/screensavers/blankscr/scrnsave.rc b/rosapps/applications/screensavers/blankscr/scrnsave.rc index 84dbd06854e..a1038e185c8 100644 --- a/rosapps/applications/screensavers/blankscr/scrnsave.rc +++ b/rosapps/applications/screensavers/blankscr/scrnsave.rc @@ -21,3 +21,6 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL #include "lang/pl-PL.rc" #include "lang/sk-SK.rc" #include "lang/uk-UA.rc" + +/* UTF-8 */ +#include "lang/ro-RO.rc" \ No newline at end of file diff --git a/rosapps/applications/screensavers/butterflies/lang/ro-RO.rc b/rosapps/applications/screensavers/butterflies/lang/ro-RO.rc new file mode 100644 index 00000000000..56c18e9b23d --- /dev/null +++ b/rosapps/applications/screensavers/butterflies/lang/ro-RO.rc @@ -0,0 +1,44 @@ +/* + * PROJECT: ReactOS Butterflies ScreenSaver + * LICENSE: GPL - See COPYING in the top level directory + * FILE: rosapps/applications/screensavers/butterflies/lang/ro-RO.rc + * PURPOSE: Romanian Language File for Butterflies ScreenSaver + * TRANSLATOR: Ștefan Fulea (stefan dot fulea at mail dot md) + */ + +LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL + +#pragma code_page(65001) + +IDD_DLG_SCREEN DIALOGEX DISCARDABLE 0, 0, 172, 57 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Oprțiuni animație de inactivitate Fluturi" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "Con&firmă",IDOK,7,35,50,14 + PUSHBUTTON "A&nulează",IDCANCEL,61,35,50,14 + CONTROL "&Rotește Fluturi",ROTATE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,56,15,70,8 + PUSHBUTTON "&Despre…",IDABOUT,115,35,50,14 +END + +IDD_DLG_ABOUT DIALOGEX DISCARDABLE 0, 0, 149, 79 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Despre" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "Î&nchide",IDOK,48,58,56,14 + CTEXT "Animație de inactivitate Fluturi",IDC_STATIC,7,7,135,9 + CTEXT "Versiune demonstrativă de: NeHe ",IDC_STATIC,7,20,135,8 + CTEXT "http://nehe.gamedev.net",WEBPAGE1,7,29,135,8,SS_NOTIFY | + NOT WS_GROUP + CTEXT "Animație de inactivitate de: tHaPuTeR",IDC_STATIC,7,38,135,8,NOT + WS_GROUP + CTEXT "http://www.thaputer.com",WEBPAGE2,7,47,135,8,SS_NOTIFY | + NOT WS_GROUP +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_DESCRIPTION "Fluturi (animație de inactivitate)" +END diff --git a/rosapps/applications/screensavers/butterflies/rsrc.rc b/rosapps/applications/screensavers/butterflies/rsrc.rc index 69eaf403aa5..76b5f5b4077 100644 --- a/rosapps/applications/screensavers/butterflies/rsrc.rc +++ b/rosapps/applications/screensavers/butterflies/rsrc.rc @@ -4,7 +4,10 @@ #include "lang/es-ES.rc" #include "lang/fr-FR.rc" #include "lang/lt-LT.rc" -#include "lang/pl-PL.rc" #include "lang/no-NO.rc" +#include "lang/pl-PL.rc" #include "lang/sk-SK.rc" #include "lang/uk-UA.rc" + +/* UTF-8 */ +#include "lang/ro-RO.rc" \ No newline at end of file diff --git a/rosapps/applications/screensavers/circles/circles.rc b/rosapps/applications/screensavers/circles/circles.rc index 483db2bafd7..48d5bbfd663 100644 --- a/rosapps/applications/screensavers/circles/circles.rc +++ b/rosapps/applications/screensavers/circles/circles.rc @@ -17,3 +17,6 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL #include "lang/no-NO.rc" #include "lang/sk-SK.rc" #include "lang/uk-UA.rc" + +/* UTF-8 */ +#include "lang/ro-RO.rc" \ No newline at end of file diff --git a/rosapps/applications/screensavers/circles/lang/ro-RO.rc b/rosapps/applications/screensavers/circles/lang/ro-RO.rc new file mode 100644 index 00000000000..8c7d79729c1 --- /dev/null +++ b/rosapps/applications/screensavers/circles/lang/ro-RO.rc @@ -0,0 +1,17 @@ +/* + * PROJECT: ReactOS Circles ScreenSaver + * LICENSE: GPL - See COPYING in the top level directory + * FILE: rosapps/applications/screensavers/circles/lang/ro-RO.rc + * PURPOSE: Romanian Language File for Circles ScreenSaver + * TRANSLATOR: Ștefan Fulea (stefan dot fulea at mail dot md) + */ + +LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL + +#pragma code_page(65001) + +STRINGTABLE DISCARDABLE +BEGIN + IDS_DESCRIPTION "Cercuri (animație de inactivitate)" + IDS_TEXT "Nu este necesară stabilirea de opțiuni." +END diff --git a/rosapps/applications/screensavers/cylfrac/cylfrac.rc b/rosapps/applications/screensavers/cylfrac/cylfrac.rc index 665fe54b6c2..f1b456a7afd 100644 --- a/rosapps/applications/screensavers/cylfrac/cylfrac.rc +++ b/rosapps/applications/screensavers/cylfrac/cylfrac.rc @@ -19,5 +19,6 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL #include "lang/nl-NL.rc" #include "lang/no-NO.rc" #include "lang/pl-PL.rc" +#include "lang/ro-RO.rc" #include "lang/sk-SK.rc" #include "lang/uk-UA.rc" diff --git a/rosapps/applications/screensavers/cylfrac/lang/ro-RO.rc b/rosapps/applications/screensavers/cylfrac/lang/ro-RO.rc new file mode 100644 index 00000000000..f355e2e95ab --- /dev/null +++ b/rosapps/applications/screensavers/cylfrac/lang/ro-RO.rc @@ -0,0 +1,16 @@ +/* + * PROJECT: ReactOS Cylinders fractal ScreenSaver + * LICENSE: GPL - See COPYING in the top level directory + * FILE: rosapps/applications/screensavers/cylfrac/lang/ro-RO.rc + * PURPOSE: Romanian Language File for Cylinders fractal ScreenSaver + * TRANSLATOR: Ștefan Fulea (stefan dot fulea at mail dot md) + */ + +LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL + +STRINGTABLE DISCARDABLE +BEGIN + IDS_DESCRIPTION "Fractal cilindri (animație de inactivitate)" + IDS_TITLE "Despre" + IDS_TEXT "Fractal cilindri de unC0Rr.\nSpecial pentru ReactOS." +END diff --git a/rosapps/applications/screensavers/matrix/lang/ro-RO.rc b/rosapps/applications/screensavers/matrix/lang/ro-RO.rc new file mode 100644 index 00000000000..f7ff3f223a4 --- /dev/null +++ b/rosapps/applications/screensavers/matrix/lang/ro-RO.rc @@ -0,0 +1,63 @@ +/* + * PROJECT: ReactOS Matrix ScreenSaver + * LICENSE: GPL - See COPYING in the top level directory + * FILE: rosapps/applications/screensavers/matrix/lang/ro-RO.rc + * PURPOSE: Romanian Language File for Matrix ScreenSaver + * TRANSLATOR: Ștefan Fulea (stefan dot fulea at mail dot md) + */ + +#include "resource.h" + +LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL + +#pragma code_page(65001) + +IDD_CONFIG DIALOGEX DISCARDABLE 0, 0, 340, 183 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Configurare animație de inacrivitate „Matrix”" +FONT 8, "MS Shell Dlg" +BEGIN + GROUPBOX "&Viteza de decodificare",IDC_STATIC,7,7,128,36 + LTEXT "Lentă",IDC_STATIC,13,24,22,8 + CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_AUTOTICKS | + TBS_BOTH | WS_TABSTOP,38,17,62,22 + LTEXT "Rapidă",IDC_STATIC,104,24,25,8 + GROUPBOX "Densitatea &cifrului",IDC_STATIC,7,50,128,36 + LTEXT "Mică",IDC_STATIC,13,67,19,8 + CONTROL "Slider1",IDC_SLIDER2,"msctls_trackbar32",TBS_AUTOTICKS | + TBS_BOTH | WS_TABSTOP,38,60,62,22 + LTEXT "Mare",IDC_STATIC,104,67,23,8 + GROUPBOX "Vite&za de afișare a mesajului",IDC_MSGSPEEDGRP,7,93,127,36 + LTEXT "Lentă",IDC_STATIC,13,110,22,8 + CONTROL "Slider3",IDC_SLIDER3,"msctls_trackbar32",TBS_AUTOTICKS | + TBS_BOTH | WS_TABSTOP,38,103,62,22 + LTEXT "Rapidă",IDC_STATIC,104,110,22,8 + GROUPBOX "&Dimensiunea fontului",IDC_STATIC,7,137,127,36 + LTEXT "Mărunt",IDC_STATIC,13,153,24,8 + CONTROL "Slider3",IDC_SLIDER4,"msctls_trackbar32",TBS_AUTOTICKS | + TBS_BOTH | WS_TABSTOP,38,146,62,22 + LTEXT "Mășcat",IDC_STATIC,104,153,25,8 + GROUPBOX "&Mesaje codificate",IDC_STATIC,145,7,188,142 + COMBOBOX IDC_COMBO1,153,22,172,62,CBS_DROPDOWN | WS_VSCROLL | + WS_TABSTOP + CONTROL "",IDC_PREVIEW,"Static",SS_LEFTNOWORDWRAP | + SS_CENTERIMAGE | WS_GROUP,154,39,116,72 + PUSHBUTTON "&Adaugă",IDC_ADD,280,41,44,18 + PUSHBUTTON "&Elimină",IDC_REMOVE,280,66,44,18 + CONTROL "&Ordine aleatoare",IDC_RANDOM,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,151,134,85,10 + DEFPUSHBUTTON "Con&firmă",IDOK,222,162,50,14 + PUSHBUTTON "A&nulează",IDCANCEL,283,162,50,14 + LTEXT "N&ume font:",IDC_STATIC,151,118,38,8 + COMBOBOX IDC_COMBO2,195,116,130,71,CBS_DROPDOWNLIST | CBS_SORT | + WS_VSCROLL | WS_TABSTOP + CONTROL "Ca&racter aldin",IDC_BOLD,"Button",BS_AUTOCHECKBOX | + BS_MULTILINE | WS_TABSTOP,247,134,66,10 + CTEXT "Anim. de inactiv. „Matrix” www.catch22.org.uk",IDC_ABOUT,140, + 158,75,18 +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_DESCRIPTION "Matrix (animație de inactivitate)" +END diff --git a/rosapps/applications/screensavers/matrix/rsrc.rc b/rosapps/applications/screensavers/matrix/rsrc.rc index 87a8bf410c9..2a5b79f4f03 100644 --- a/rosapps/applications/screensavers/matrix/rsrc.rc +++ b/rosapps/applications/screensavers/matrix/rsrc.rc @@ -19,3 +19,6 @@ IDI_ICON1 ICON DISCARDABLE "icon1.ico" #include "lang/sk-SK.rc" #include "lang/th-TH.rc" #include "lang/uk-UA.rc" + +/* UTF-8 */ +#include "lang/ro-RO.rc" \ No newline at end of file diff --git a/rosapps/applications/screensavers/mazescr/lang/ro-RO.rc b/rosapps/applications/screensavers/mazescr/lang/ro-RO.rc new file mode 100644 index 00000000000..23af4cf2c0f --- /dev/null +++ b/rosapps/applications/screensavers/mazescr/lang/ro-RO.rc @@ -0,0 +1,18 @@ +/* + * PROJECT: ReactOS Maze ScreenSaver + * LICENSE: GPL - See COPYING in the top level directory + * FILE: rosapps/applications/screensavers/mazescr/lang/ro-RO.rc + * PURPOSE: Romanian Language File for Maze ScreenSaver + * TRANSLATOR: Ștefan Fulea (stefan dot fulea at mail dot md) + */ + +LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL + +#pragma code_page(65001) + +STRINGTABLE DISCARDABLE +BEGIN + IDS_DESCRIPTION "Labirint (animație de inactivitate)" + IDS_TITLE "Despre" + IDS_TEXT "Nu este necesară stabilirea de opțiuni." +END diff --git a/rosapps/applications/screensavers/mazescr/scrnsave.rc b/rosapps/applications/screensavers/mazescr/scrnsave.rc index d4d749bf95c..437e62a222d 100644 --- a/rosapps/applications/screensavers/mazescr/scrnsave.rc +++ b/rosapps/applications/screensavers/mazescr/scrnsave.rc @@ -16,7 +16,10 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL #include "lang/es-ES.rc" #include "lang/fr-FR.rc" #include "lang/lt-LT.rc" +#include "lang/no-NO.rc" #include "lang/pl-PL.rc" #include "lang/sk-SK.rc" #include "lang/uk-UA.rc" -#include "lang/no-NO.rc" + +/* UTF-8 */ +#include "lang/ro-RO.rc" \ No newline at end of file diff --git a/rosapps/applications/screensavers/ssstars/lang/ro-RO.rc b/rosapps/applications/screensavers/ssstars/lang/ro-RO.rc new file mode 100644 index 00000000000..0544a3ca090 --- /dev/null +++ b/rosapps/applications/screensavers/ssstars/lang/ro-RO.rc @@ -0,0 +1,60 @@ +/* + * PROJECT: ReactOS Starfield ScreenSaver + * LICENSE: GPL - See COPYING in the top level directory + * FILE: rosapps/applications/screensavers/ssstars/lang/ro-RO.rc + * PURPOSE: Romanian Language File for Starfield ScreenSaver + * TRANSLATOR: Ștefan Fulea (stefan dot fulea at mail dot md) + */ + +LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL + +// Dialog + +DLG_SCRNSAVECONFIGURE DIALOGEX 0, 0, 292, 282 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION +CAPTION "Configurație" +FONT 8, "MS Shell Dlg" +BEGIN + GROUPBOX "Opțiuni",IDC_STATIC,16,100,260,76 + RTEXT "Numărul de stele:",IDC_STATIC,24,116,68,12, + SS_CENTERIMAGE + CONTROL "Slider1",IDC_SLIDER_NUM_OF_STARS,"msctls_trackbar32", + TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,96,116,140,12 + CTEXT "Static",IDC_TEXT_NUM_OF_STARS,240,116,24,12, + SS_CENTERIMAGE,WS_EX_STATICEDGE + RTEXT "Viteza:",IDC_STATIC,24,137,68,12,SS_CENTERIMAGE + CONTROL "Slider1",IDC_SLIDER_SPEED,"msctls_trackbar32",TBS_BOTH | + TBS_NOTICKS | WS_TABSTOP,96,137,140,12 + CTEXT "Static",IDC_TEXT_SPEED,240,137,24,12,SS_CENTERIMAGE, + WS_EX_STATICEDGE + RTEXT "Rotația:",IDC_STATIC,24,156,68,12,SS_CENTERIMAGE + COMBOBOX IDC_COMBO_ROTATION,100,156,80,60,CBS_DROPDOWNLIST | + WS_TABSTOP + CONTROL "",IDC_IMAGE_COSMOS,"Static",SS_BITMAP | SS_CENTERIMAGE, + 4,4,284,92 + GROUPBOX "A&vansate…",IDC_STATIC,16,180,260,72 + CONTROL "Activează &Wamestec de fundal",IDC_CHECK_DOBLENDING, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,24,196,110,10 + CONTROL "Activează &corecție fină de perspectivă", + IDC_CHECK_PERSPECTIVE,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,24,208,142,10 + CONTROL "Activea&ză filtrarea texturilor",IDC_CHECK_FILTERING, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,24,220,90,10 + CONTROL "Activează umbrire omogenă",IDC_CHECK_SHADING,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,24,232,100,10 + PUSHBUTTON "Con&firmă",IDOK,60,260,52,16 + PUSHBUTTON "A&nulează",IDCANCEL,120,260,52,16 + PUSHBUTTON "&Despre…",IDC_BUTTON_ABOUT,179,260,52,16 +END + +// String Tables + +STRINGTABLE DISCARDABLE +BEGIN + IDS_DESCRIPTION "Câmp de stele (animație de inactivitate)" + IDS_ROTATION_NONE "nespecificat" + IDS_ROTATION_LINEAR "Lineară" + IDS_ROTATION_PERIODIC "Periodică" + IDS_LICENSE "Câmp de stele este public, oferit în termenii licenței GNU GPL." + IDS_AUTHOR "Scris de Carlo Bramini" +END diff --git a/rosapps/applications/screensavers/ssstars/resource.rc b/rosapps/applications/screensavers/ssstars/resource.rc index a57bc0d9a1f..e23280c58c8 100644 --- a/rosapps/applications/screensavers/ssstars/resource.rc +++ b/rosapps/applications/screensavers/ssstars/resource.rc @@ -48,5 +48,6 @@ IDB_STAR BITMAP DISCARDABLE "res/star.bmp" #pragma code_page(65001) #include "lang/en-US.rc" #include "lang/it-IT.rc" +#include "lang/ro-RO.rc" #include "lang/ru-RU.rc" #include "lang/pl-PL.rc" diff --git a/rosapps/applications/screensavers/starfield/lang/ro-RO.rc b/rosapps/applications/screensavers/starfield/lang/ro-RO.rc new file mode 100644 index 00000000000..5cbf950e58d --- /dev/null +++ b/rosapps/applications/screensavers/starfield/lang/ro-RO.rc @@ -0,0 +1,18 @@ +/* + * PROJECT: ReactOS Starfield ScreenSaver + * LICENSE: GPL - See COPYING in the top level directory + * FILE: rosapps/applications/screensavers/starfield/lang/ro-RO.rc + * PURPOSE: Romanian Language File for Starfield ScreenSaver + * TRANSLATOR: Ștefan Fulea (stefan dot fulea at mail dot md) + */ + +LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL + +#pragma code_page(65001) + +STRINGTABLE DISCARDABLE +BEGIN + IDS_DESCRIPTION "Câmp de stele (animație de inactivitate)" + IDS_TITLE "Despre…" + IDS_TEXT "Nu este necesară stabilirea de opțiuni." +END diff --git a/rosapps/applications/screensavers/starfield/starfield.rc b/rosapps/applications/screensavers/starfield/starfield.rc index a7d0515fb32..a43690dcb20 100644 --- a/rosapps/applications/screensavers/starfield/starfield.rc +++ b/rosapps/applications/screensavers/starfield/starfield.rc @@ -21,3 +21,6 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL #include "lang/pl-PL.rc" #include "lang/sk-SK.rc" #include "lang/uk-UA.rc" + +/* UTF-8 */ +#include "lang/ro-RO.rc" diff --git a/rosapps/applications/sysutils/ctm/ctm.rc b/rosapps/applications/sysutils/ctm/ctm.rc index a78a3c15d3b..db800711296 100644 --- a/rosapps/applications/sysutils/ctm/ctm.rc +++ b/rosapps/applications/sysutils/ctm/ctm.rc @@ -15,3 +15,6 @@ #include "lang/uk-UA.rc" #include "lang/ru-RU.rc" #include "lang/no-NO.rc" + +/* UTF-8 */ +#include "lang/ro-RO.rc" \ No newline at end of file diff --git a/rosapps/applications/sysutils/ctm/lang/ro-RO.rc b/rosapps/applications/sysutils/ctm/lang/ro-RO.rc new file mode 100644 index 00000000000..2d00c9b2b25 --- /dev/null +++ b/rosapps/applications/sysutils/ctm/lang/ro-RO.rc @@ -0,0 +1,40 @@ +/* + * PROJECT: ReactOS Console Task Manager + * LICENSE: GPL - See COPYING in the top level directory + * FILE: rosapps/applications/sysutils/ctm/lang/ro-RO.rc + * PURPOSE: Romanian Language File for Console Task Manager + * TRANSLATOR: Ștefan Fulea (stefan dot fulea at mail dot md) + */ + +LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL + +#pragma code_page(65001) + +STRINGTABLE DISCARDABLE +BEGIN + IDS_APP_TITLE "Gestionar de activități consolă v0.1 de Aleksey Bragin " + + IDS_COLUMN_NUMBER "# " + IDS_COLUMN_IMAGENAME "Nume proces " + IDS_COLUMN_PID "IDP " + IDS_COLUMN_CPU "UCP" + IDS_COLUMN_MEM "Uz memor." + IDS_COLUMN_MEM_UNIT "ko" + IDS_COLUMN_PF "Er. de pag." + + IDS_IDLE_PROCESS "Proces de inactivitate sistem" + IDS_YES "D" + IDS_NO "N" + + IDS_MENU "Apasă: q - ieșire, k - oprește proces" + IDS_MENU_QUIT "Q" + IDS_MENU_KILL_PROCESS "K" + + IDS_KILL_PROCESS "Sigur doriți oprirea procesului? (d|n)" + IDS_KILL_PROCESS_ERR1 "Nu se reușește oprirea procesului..." + IDS_KILL_PROCESS_ERR2 "Nu se reușește oprirea procesului %d (eșec la OpenProcess)" + + IDS_CTM_GENERAL_ERR1 "ctm: eșec la folosirea consolei." + IDS_CTM_GENERAL_ERR2 "ctm: eșec la GetConsoleMode() pentru consola de intrare." + IDS_CTM_GENERAL_ERR3 "ctm: eșec la GetConsoleMode() pentru consola de ieșire." +END diff --git a/rosapps/applications/sysutils/systeminfo/lang/ro-RO.rc b/rosapps/applications/sysutils/systeminfo/lang/ro-RO.rc new file mode 100644 index 00000000000..a2691fa7c26 --- /dev/null +++ b/rosapps/applications/sysutils/systeminfo/lang/ro-RO.rc @@ -0,0 +1,80 @@ +/* + * PROJECT: ReactOS System Information + * LICENSE: GPL - See COPYING in the top level directory + * FILE: rosapps/applications/sysutils/systeminfo/lang/ro-RO.rc + * PURPOSE: Romanian Language File for System Information + * TRANSLATOR: Ștefan Fulea (stefan dot fulea at mail dot md) + */ + +LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL + +STRINGTABLE DISCARDABLE +BEGIN + +IDS_USAGE, "SYSTEMINFO [/S sistem [/U nume [/P [parolă]]]] [/FO format] [/NH]\n\n\ +Descriere:\n\ + Această comandă permite unui administrator interogarea pentru informații\n\ + de bază referitoare la configurația sistemului.\n\n\ +Lista de parametri:\n\ + /S sistem Specifică sistemul (de la distanță) vizat.\n\n\ + /U [domeniu\\]nume Specifică utilizatorului sub autoritatea\n\ + căruia este executată comanda.\n\n\ + /P [parolă] Specifică parola pentru utilizatorul dat.\n\ + Urmează solicitare automată dacă este omis.\n\n\ + /FO format Specifică formatul sub care ieșirea va fi\n\ + reprezentată.\n\ + Valori valide: „TABLE”, „LIST”, „CSV”.\n\n\ + /NH Specifică faptul că „antetul coloanelor” nu\n\ + trebuie inclus la ieșire.\n\ + Valid doar pentru formatele „TABLE” și „CSV”.\n\n\ + /? Afișează acest manual de utilizare.\n\n\ +Exemple:\n\ + SYSTEMINFO\n\ + SYSTEMINFO /?\n\ + SYSTEMINFO /S sistem\n\ + SYSTEMINFO /S sistem /U nume\n\ + SYSTEMINFO /S sistem /U domeniu\\nume /P parolă /FO TABLE\n\ + SYSTEMINFO /S sistem /FO LIST\n\ + SYSTEMINFO /S sistem /FO CSV /NH\n" + +IDS_HOST_NAME, "Nume gazdă" +IDS_OS_NAME, "Nume SO" +IDS_OS_VERSION, "Versiune SO" +IDS_BUILD, "Construcție" +IDS_OS_BUILD_TYPE, "Tip construcție SO" +IDS_REG_OWNER, "Deținător înregistrat" +IDS_REG_ORG, "Organizație înregistrată" +IDS_PRODUCT_ID, "ID produs" +IDS_INST_DATE, "Data de instalare" +IDS_UP_TIME, "Timp de operare" +IDS_UP_TIME_FORMAT "%u zile, %u ore, %u minute, %u secunde" +IDS_SYS_MANUFACTURER, "Furnizorul sistemului" +IDS_SYS_MODEL, "Modelul sistemului" +IDS_SYS_TYPE, "Tipul sistemului" +IDS_PROCESSORS, "Proceso(a)r(e)" +IDS_PROCESSORS_FORMAT, "%u proceso(a)r(e) instalate." +IDS_BIOS_DATE, "Dată BIOS" +IDS_BIOS_VERSION, "Versiune BIOS" +IDS_ROS_DIR, "Director ReactOS" +IDS_SYS_DIR, "Director System" +IDS_BOOT_DEV, "Dispozitiv de inițializare" +IDS_SYS_LOCALE, "Localizare sistem" +IDS_INPUT_LOCALE, "Localizare intrare" +IDS_TIME_ZONE, "Fus orar" +IDS_TOTAL_PHYS_MEM, "Memorie fizică totală" +IDS_AVAIL_PHISICAL_MEM, "Memorie fizică disponibilă" +IDS_VIRT_MEM_MAX, "Memorie virtuală: Maximă" +IDS_VIRT_MEM_AVAIL, "Memorie virtuală: Disponibilă" +IDS_VIRT_MEM_INUSE, "Memorie virtuală: În uz" +IDS_PAGEFILE_LOC, "Amplasare fișiere de paginare" +IDS_DOMAIN, "Domeniu" +IDS_NETWORK_CARDS, "Plăci de rețea" +IDS_NETWORK_CARDS_FORMAT, "%u instalate." +IDS_CONNECTION_NAME, "Nume conexiune" +IDS_STATUS, "Stare" +IDS_MEDIA_DISCONNECTED, "Media deconectat" +IDS_DHCP_ENABLED, "DHCP activat" +IDS_NO, "Nu" +IDS_IP_ADDRESSES, "Adrese IP" + +END diff --git a/rosapps/applications/sysutils/systeminfo/rsrc.rc b/rosapps/applications/sysutils/systeminfo/rsrc.rc index 42c65fabd20..48c6ea42aba 100644 --- a/rosapps/applications/sysutils/systeminfo/rsrc.rc +++ b/rosapps/applications/sysutils/systeminfo/rsrc.rc @@ -8,6 +8,7 @@ #include "lang/it-IT.rc" #include "lang/no-NO.rc" #include "lang/pl-PL.rc" +#include "lang/ro-RO.rc" #include "lang/sk-SK.rc" #include "lang/uk-UA.rc"