diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b533cb4f2143b..51b36fc858bf0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,13 +11,27 @@ jobs: wget https://svn.reactos.org/storage/vperevertkin/rosbe-ci.tar.zst mkdir ${{github.workspace}}/rosbe tar -I zstd -xvf rosbe-ci.tar.zst --directory ${{github.workspace}}/rosbe + - name: Install other packages + run: sudo apt install ccache - uses: actions/checkout@v2 with: path: src + - name: ccache cache files + uses: actions/cache@v1 + with: + path: ccache + key: ccache-gcc-i386-${{github.sha}} + restore-keys: | + ccache-gcc-i386- + - name: Set ccache settings + env: + CCACHE_BASEDIR: ${{github.workspace}} + CCACHE_DIR: ${{github.workspace}}/ccache + CCACHE_MAXSIZE: 2G - name: Configure run: | mkdir build - echo 'cd ${{github.workspace}}/build && ${{github.workspace}}/src/configure.sh -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1' > commands + echo 'cd ${{github.workspace}}/build && ${{github.workspace}}/src/configure.sh -DENABLE_CCACHE=1 -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1' > commands ${{github.workspace}}/rosbe/RosBE.sh < commands - name: Build run: | diff --git a/CREDITS b/CREDITS index f085df8cc220d..059871b689372 100644 --- a/CREDITS +++ b/CREDITS @@ -28,6 +28,7 @@ Filip Navara Frederik Leemans Ge van Geldorp Ged Murphy +George Bisoc Giannis Adamopoulos Gregor Brunmar Gregor Schneider diff --git a/README.md b/README.md index a200f9a5dc16c..e6acf3d7bfcc9 100644 --- a/README.md +++ b/README.md @@ -55,16 +55,15 @@ Up-to-date versions for Windows and for Unix/GNU-Linux are available from our do Alternatively one can use Microsoft Visual C++ (MSVC) version 2015+. Building with MSVC is covered here: ["Visual Studio or Microsoft Visual C++"](https://reactos.org/wiki/CMake#Visual_Studio_or_Microsoft_Visual_C.2B.2B). +See ["Building ReactOS"](https://reactos.org/wiki/Building_ReactOS) article for more details. + ### Binaries To build ReactOS you must run the `configure` script in the directory you want to have your build files. Choose `configure.cmd` or `configure.sh` depending on your system. Then run `ninja ` to build a module you want or just `ninja` to build all modules. ### Bootable images -To build a bootable CD image run `ninja bootcd` from the -build directory. This will create a CD image with a filename `bootcd.iso`. - -See ["Building ReactOS"](https://reactos.org/wiki/Building_ReactOS) for more details. +To build a bootable CD image run `ninja bootcd` from the build directory. This will create a CD image with a filename `bootcd.iso`. You can always download fresh binary builds of bootable images from the ["Daily builds"](https://reactos.org/getbuilds/) page. @@ -74,9 +73,7 @@ By default, ReactOS currently can only be installed on a machine that has a FAT1 The partition on which ReactOS is to be installed (which may or may not be the bootable partition) must also be formatted as FAT16 or FAT32. ReactOS Setup can format the partitions if needed. -Starting 0.4.10, ReactOS can be installed using the BtrFS file system. But -consider this as an experimental feature and thus regressions not triggered on -FAT setup may be observed. +Starting with 0.4.10, ReactOS can be installed using the BtrFS file system. But consider this as an experimental feature and thus regressions not triggered on FAT setup may be observed. To install ReactOS from the bootable CD distribution, extract the archive contents. Then burn the CD image, boot from it, and follow the instructions. @@ -125,10 +122,10 @@ The main development is done on [GitHub](https://github.com/reactos/reactos). We There is also an obsolete [SVN archive repository](https://svn.reactos.org/reactos/) that is kept for historical purposes. [coverity.badge]: https://scan.coverity.com/projects/205/badge.svg?flat=1 -[rosbewin.badge]: https://img.shields.io/badge/RosBE_Windows-2.1.6-0688CB.svg -[rosbeunix.badge]: https://img.shields.io/badge/RosBE_Unix-2.1.2-0688CB.svg +[rosbewin.badge]: https://img.shields.io/badge/RosBE_Windows-2.2.0-0688CB.svg +[rosbeunix.badge]: https://img.shields.io/badge/RosBE_Unix-2.2-0688CB.svg [prwelcome.badge]: https://img.shields.io/badge/PR-welcome-0688CB.svg [coverity.link]: https://scan.coverity.com/projects/205 -[rosbewin.link]: https://sourceforge.net/projects/reactos/files/RosBE-Windows/i386/2.1.6/ -[rosbeunix.link]: https://sourceforge.net/projects/reactos/files/RosBE-Unix/2.1.2/ +[rosbewin.link]: https://sourceforge.net/projects/reactos/files/RosBE-Windows/i386/2.2.0/ +[rosbeunix.link]: https://sourceforge.net/projects/reactos/files/RosBE-Unix/2.2/ diff --git a/base/applications/fontview/fontview.c b/base/applications/fontview/fontview.c index df5056f4b5d01..8ef2a7cb98bb4 100644 --- a/base/applications/fontview/fontview.c +++ b/base/applications/fontview/fontview.c @@ -126,10 +126,10 @@ wWinMain(HINSTANCE hThisInstance, if (argc < 2) { OPENFILENAMEW fontOpen; - WCHAR filter[MAX_PATH*2], dialogTitle[MAX_PATH]; + WCHAR filter[MAX_PATH*2] = {0}, dialogTitle[MAX_PATH]; LoadStringW(NULL, IDS_OPEN, dialogTitle, ARRAYSIZE(dialogTitle)); - LoadStringW(NULL, IDS_FILTER_LIST, filter, ARRAYSIZE(filter)); + LoadStringW(NULL, IDS_FILTER_LIST, filter, ARRAYSIZE(filter) - 1); /* Clears out any values of fontOpen before we use it */ ZeroMemory(&fontOpen, sizeof(fontOpen)); diff --git a/base/applications/mplay32/mplay32.c b/base/applications/mplay32/mplay32.c index 06694d517aef8..f3df906dcf97f 100644 --- a/base/applications/mplay32/mplay32.c +++ b/base/applications/mplay32/mplay32.c @@ -1149,22 +1149,15 @@ OpenFileDialog(HWND hwnd, DWORD dwFilterIndex, LPTSTR lpType) { OPENFILENAME OpenFileName; TCHAR szFile[MAX_PATH + 1] = _T(""); - TCHAR szCurrentDir[MAX_PATH]; ZeroMemory(&OpenFileName, sizeof(OpenFileName)); - if (!GetCurrentDirectory(ARRAYSIZE(szCurrentDir), szCurrentDir)) - { - StringCbCopy(szCurrentDir, sizeof(szCurrentDir), _T("c:\\")); - } - OpenFileName.lStructSize = sizeof(OpenFileName); OpenFileName.hwndOwner = hwnd; OpenFileName.hInstance = hInstance; OpenFileName.lpstrFilter = szFilter; OpenFileName.lpstrFile = szFile; OpenFileName.nMaxFile = ARRAYSIZE(szFile); - OpenFileName.lpstrInitialDir = szCurrentDir; OpenFileName.Flags = OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_SHAREAWARE; OpenFileName.lpstrDefExt = _T("\0"); OpenFileName.nFilterIndex = dwFilterIndex; diff --git a/base/applications/mscutils/servman/CMakeLists.txt b/base/applications/mscutils/servman/CMakeLists.txt index 1f96e0677dfab..24fbe8b4fa066 100644 --- a/base/applications/mscutils/servman/CMakeLists.txt +++ b/base/applications/mscutils/servman/CMakeLists.txt @@ -1,6 +1,5 @@ list(APPEND SOURCE - about.c control.c create.c delete.c diff --git a/base/applications/mscutils/servman/about.c b/base/applications/mscutils/servman/about.c deleted file mode 100644 index 2f23db343f365..0000000000000 --- a/base/applications/mscutils/servman/about.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * PROJECT: ReactOS Services - * LICENSE: GPL - See COPYING in the top level directory - * FILE: base/applications/mscutils/servman/about.c - * PURPOSE: About dialog box message handler - * COPYRIGHT: Copyright 2005-2007 Ged Murphy - * - */ - -#include "precomp.h" - -INT_PTR CALLBACK -AboutDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) -{ - switch (message) - { - case WM_INITDIALOG: - { - HWND hLicenseEditWnd; - - hLicenseEditWnd = GetDlgItem(hDlg, - IDC_LICENSE_EDIT); - if (hLicenseEditWnd) - { - LPWSTR lpString; - - if (AllocAndLoadString(&lpString, - hInstance, - IDS_LICENSE)) - { - SetWindowTextW(hLicenseEditWnd, - lpString); - - LocalFree(lpString); - } - } - - return TRUE; - } - - case WM_COMMAND: - - if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL)) - { - EndDialog(hDlg, - LOWORD(wParam)); - return TRUE; - } - - break; - } - - return FALSE; -} diff --git a/base/applications/mscutils/servman/lang/bg-BG.rc b/base/applications/mscutils/servman/lang/bg-BG.rc index c19437e1089e2..daa9d7fc6decb 100644 --- a/base/applications/mscutils/servman/lang/bg-BG.rc +++ b/base/applications/mscutils/servman/lang/bg-BG.rc @@ -68,17 +68,6 @@ BEGIN VK_F5, ID_REFRESH, VIRTKEY END -IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 -CAPTION "За управителя на устройствата" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Service Manager v0.8\nCopyright (C) 2005-2007\nby Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 135, 40 - PUSHBUTTON "Close", 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, 300, 225 CAPTION "Общи" FONT 8, "MS Shell Dlg", 0, 0 @@ -262,7 +251,6 @@ BEGIN IDS_NUM_SERVICES "Брой услуги: %d" IDS_STOP_DEPENDS "При спирането на %s, ще спрат и следните услуги" IDS_NO_DEPENDS "<Без зависимости>" - IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA." END STRINGTABLE @@ -331,6 +319,7 @@ END STRINGTABLE BEGIN IDS_APPNAME "Управление на услугите на РеактОС" + IDS_APPAUTHORS "Copyright (C) 2005-2007 by Ged Murphy (gedmurphy@reactos.org)" END STRINGTABLE diff --git a/base/applications/mscutils/servman/lang/cs-CZ.rc b/base/applications/mscutils/servman/lang/cs-CZ.rc index 8632cf698f04b..d91887f80c78c 100644 --- a/base/applications/mscutils/servman/lang/cs-CZ.rc +++ b/base/applications/mscutils/servman/lang/cs-CZ.rc @@ -68,17 +68,6 @@ BEGIN VK_F5, ID_REFRESH, VIRTKEY 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, 40 - 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 "Obecné" FONT 8, "MS Shell Dlg", 0, 0 @@ -262,7 +251,6 @@ 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 @@ -331,6 +319,7 @@ END STRINGTABLE BEGIN IDS_APPNAME "ReactOS Správce služeb" + IDS_APPAUTHORS "Copyright (C) 2005-2007 by Ged Murphy (gedmurphy@reactos.org)" END STRINGTABLE diff --git a/base/applications/mscutils/servman/lang/de-DE.rc b/base/applications/mscutils/servman/lang/de-DE.rc index bb941ebd70fbc..e68d930600c80 100644 --- a/base/applications/mscutils/servman/lang/de-DE.rc +++ b/base/applications/mscutils/servman/lang/de-DE.rc @@ -68,17 +68,6 @@ BEGIN VK_F5, ID_REFRESH, VIRTKEY END -IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 -CAPTION "Info über Dienst-Manager" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Dienst-Manager v0.8\nCopyright (C) 2005-2007\nby Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 135, 40 - PUSHBUTTON "Schließen", 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 "Allgemein" FONT 8, "MS Shell Dlg", 0, 0 @@ -262,7 +251,6 @@ 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 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 @@ -331,6 +319,7 @@ END STRINGTABLE BEGIN IDS_APPNAME "ReactOS Dienst-Manager" + IDS_APPAUTHORS "Copyright (C) 2005-2007 by Ged Murphy (gedmurphy@reactos.org)" END STRINGTABLE diff --git a/base/applications/mscutils/servman/lang/el-GR.rc b/base/applications/mscutils/servman/lang/el-GR.rc index 4eb8a250bec05..c45e164f657b3 100644 --- a/base/applications/mscutils/servman/lang/el-GR.rc +++ b/base/applications/mscutils/servman/lang/el-GR.rc @@ -68,17 +68,6 @@ BEGIN VK_F5, ID_REFRESH, VIRTKEY END -IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 -CAPTION "Σχετικά με το Διαχειριστή Υπηρεσιών" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Διαχειριστής Υπηρεσιών v0.8\nCopyright (C) 2005-2007\nby Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 135, 40 - PUSHBUTTON "Κλείσιμο", 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 "Γενικά" FONT 8, "MS Shell Dlg", 0, 0 @@ -262,7 +251,6 @@ BEGIN IDS_NUM_SERVICES "Num Services: %d" IDS_STOP_DEPENDS "When %s stops, these other services will also stop" IDS_NO_DEPENDS "" - IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA." END STRINGTABLE @@ -331,6 +319,7 @@ END STRINGTABLE BEGIN IDS_APPNAME "Διαχειριστής Υπηρεσιών του ReactOS" + IDS_APPAUTHORS "Copyright (C) 2005-2007 by Ged Murphy (gedmurphy@reactos.org)" END STRINGTABLE diff --git a/base/applications/mscutils/servman/lang/en-US.rc b/base/applications/mscutils/servman/lang/en-US.rc index 272a73eb9f50a..a2c75480908f4 100644 --- a/base/applications/mscutils/servman/lang/en-US.rc +++ b/base/applications/mscutils/servman/lang/en-US.rc @@ -68,17 +68,6 @@ BEGIN VK_F5, ID_REFRESH, VIRTKEY END -IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 -CAPTION "About Service Manager" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Service Manager v0.8\nCopyright (C) 2005-2007\nby Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 135, 40 - PUSHBUTTON "&Close", 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 @@ -262,7 +251,6 @@ BEGIN IDS_NUM_SERVICES "Num Services: %d" IDS_STOP_DEPENDS "When %s stops, these other services will also stop" IDS_NO_DEPENDS "" - IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA." END STRINGTABLE @@ -331,6 +319,7 @@ END STRINGTABLE BEGIN IDS_APPNAME "ReactOS Service Manager" + IDS_APPAUTHORS "Copyright (C) 2005-2007 by Ged Murphy (gedmurphy@reactos.org)" END STRINGTABLE diff --git a/base/applications/mscutils/servman/lang/es-ES.rc b/base/applications/mscutils/servman/lang/es-ES.rc index 1bf14df0b791d..891be8a07b07b 100644 --- a/base/applications/mscutils/servman/lang/es-ES.rc +++ b/base/applications/mscutils/servman/lang/es-ES.rc @@ -71,17 +71,6 @@ BEGIN VK_F5, ID_REFRESH, VIRTKEY END -IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 -CAPTION "Acerca del Administrador de servicios" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Administrador de servicios v0.8\nCopyright (C) 2005-2007\ncreado por Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 135, 40 - PUSHBUTTON "Cerrar", 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 @@ -265,7 +254,6 @@ BEGIN IDS_NUM_SERVICES "Número de servicios: %d" IDS_STOP_DEPENDS "Cuando %s se detenga, estos otros servicios también se detendrán" IDS_NO_DEPENDS "" - IDS_LICENSE "Este programa es software libre; puedes redistribuirlo y/o modificarlo bajo los términos de la GNU General Public License tal y como fueron publicados por la Free Software Foundation; ya sea la versión 2 de la Licencia, o (bajo tu discreción) cualquier versión posterior.\r\n\r\nEste programa se distribuye con el fin de ser útil, pero viene SIN NINGUNA GARANTÍA; sin tan siquiera la garantía implícita de COMERCIALIZACIÓN o la de IDONEIDAD PARA UN PROPÓSITO CONCRETO. Para más información lee la GNU General Public License.\r\n\r\nDeberías de haber recibido una copia de la GNU General Public License con el programa; si no, puedes escribir a la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 EE.UU." END STRINGTABLE @@ -334,6 +322,7 @@ END STRINGTABLE BEGIN IDS_APPNAME "Administrador de servicios de ReactOS" + IDS_APPAUTHORS "Copyright (C) 2005-2007 creado por Ged Murphy (gedmurphy@reactos.org)" END STRINGTABLE diff --git a/base/applications/mscutils/servman/lang/fr-FR.rc b/base/applications/mscutils/servman/lang/fr-FR.rc index 38cd92cfad94d..91240f99ab6ab 100644 --- a/base/applications/mscutils/servman/lang/fr-FR.rc +++ b/base/applications/mscutils/servman/lang/fr-FR.rc @@ -68,17 +68,6 @@ BEGIN VK_F5, ID_REFRESH, VIRTKEY END -IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 -CAPTION "À Propos du gestionnaire de services" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Gestionnaire de services v0.8\nCopyright (C) 2005-2007\nby Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 135, 40 - PUSHBUTTON "Fermer", 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 "Général" FONT 8, "MS Shell Dlg", 0, 0 @@ -262,7 +251,6 @@ BEGIN IDS_NUM_SERVICES "Services : %d" IDS_STOP_DEPENDS "Quand %s s'arrêtera, les services suivants s'arrêteront également :" IDS_NO_DEPENDS "" - IDS_LICENSE "Ce programme est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier tout en respectant les termes de la ""GNU General Public License"" publiée par la Free Software Foundation; dans sa version 2 (ou selon votre préférence) toute version ultérieure.\r\n\r\nCe programme est distribué dans l'espoir qu'il sera utile, cependant SANS GARANTIE D'AUCUNE SORTE; sans même une garantie implicite de COMMERCIABILITÉ ou DE CONFORMITÉ A UNE UTILISATION PARTICULIÈRE. \r\n\r\nVoir la Licence Publique Générale GNU pour plus de détails. Vous devriez avoir reçu un exemplaire de la Licence Publique Générale GNU avec ce programme ; si ce n'est pas le cas, écrivez à la Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA." END STRINGTABLE @@ -331,6 +319,7 @@ END STRINGTABLE BEGIN IDS_APPNAME "Gestionnaire de Services ReactOS" + IDS_APPAUTHORS "Copyright (C) 2005-2007 by Ged Murphy (gedmurphy@reactos.org)" END STRINGTABLE diff --git a/base/applications/mscutils/servman/lang/he-IL.rc b/base/applications/mscutils/servman/lang/he-IL.rc index af1c191532bf9..c20be705069c6 100644 --- a/base/applications/mscutils/servman/lang/he-IL.rc +++ b/base/applications/mscutils/servman/lang/he-IL.rc @@ -68,17 +68,6 @@ BEGIN VK_F5, ID_REFRESH, VIRTKEY END -IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 -CAPTION "אודות מנהל השירותים" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Service Manager v0.8\nCopyright (C) 2005-2007\nby Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 135, 40 - PUSHBUTTON "סגור", 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 "כללי" FONT 8, "MS Shell Dlg", 0, 0 @@ -262,7 +251,6 @@ BEGIN IDS_NUM_SERVICES "מספר השירותים: %d" IDS_STOP_DEPENDS "מתי ש %s יעצור, השירותים הללו גם יעצרו." IDS_NO_DEPENDS "<אין יחסי תלות>" - IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA." END STRINGTABLE @@ -331,6 +319,7 @@ END STRINGTABLE BEGIN IDS_APPNAME "מנהל השירותים של ReactOS" + IDS_APPAUTHORS "Copyright (C) 2005-2007 by Ged Murphy (gedmurphy@reactos.org)" END STRINGTABLE diff --git a/base/applications/mscutils/servman/lang/id-ID.rc b/base/applications/mscutils/servman/lang/id-ID.rc index 22e9b39807fc2..53455e72512f3 100644 --- a/base/applications/mscutils/servman/lang/id-ID.rc +++ b/base/applications/mscutils/servman/lang/id-ID.rc @@ -68,17 +68,6 @@ BEGIN VK_F5, ID_REFRESH, VIRTKEY END -IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 -CAPTION "Tentang Manajer Layanan" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Manajer Layanan v0.8\nHak Cipta (C) 2005-2007\noleh Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 135, 40 - PUSHBUTTON "Tutup", 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 "Umum" FONT 8, "MS Shell Dlg", 0, 0 @@ -262,7 +251,6 @@ BEGIN IDS_NUM_SERVICES "Jumlah Layanan: %d" IDS_STOP_DEPENDS "Ketika %s berhenti, layanan lain terkait juga akan berhenti" IDS_NO_DEPENDS "" - IDS_LICENSE "Program ini adalah software bebas; anda dapat mendistribusikan dan/atau mengubahnya di bawah term GNU General Public License seperti dipublikasikan oleh Free Software Foundation; baik Lisensi versi 2, atau (menurut opini anda) setiap versi berikutnya.\r\n\r\nProgram ini didistribusikan dengan harapan ia akan berguna, tetapi TANPA JAMINAN APAPUN; bahkan tanpa jaminan berarti dari MERCANTABILITAS atau KECUKUPAN UNTUK KEPERLUAN TERTENTU. Lihat GNU General Public License untuk lebih jelasnya.\r\n\r\nAnda seharusnya menerima duplikat GNU General Public License bersamaan dengan program ini; jika tidak, tulis ke Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA." END STRINGTABLE @@ -331,6 +319,7 @@ END STRINGTABLE BEGIN IDS_APPNAME "ReactOS Service Manager" + IDS_APPAUTHORS "Copyright (C) 2005-2007 by Ged Murphy (gedmurphy@reactos.org)" END STRINGTABLE diff --git a/base/applications/mscutils/servman/lang/it-IT.rc b/base/applications/mscutils/servman/lang/it-IT.rc index 8e6b295f31f4c..a3a611e32df4c 100644 --- a/base/applications/mscutils/servman/lang/it-IT.rc +++ b/base/applications/mscutils/servman/lang/it-IT.rc @@ -68,17 +68,6 @@ BEGIN VK_F5, ID_REFRESH, VIRTKEY END -IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 -CAPTION "Informazioni su Gestione Servizi" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Gestione Servizi v0.8\nCopyright (C) 2005-2007\nby Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 135, 40 - PUSHBUTTON "Chiudi", 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 "Generale" FONT 8, "MS Shell Dlg", 0, 0 @@ -262,7 +251,6 @@ BEGIN IDS_NUM_SERVICES "Numero Servizi: %d" IDS_STOP_DEPENDS "Quando %s si ferma, Questi altri sevizi si fermeranno" IDS_NO_DEPENDS "" - IDS_LICENSE "Questo programma è software libero; puoi distribuirlo e/o modificarlo nei termini di licenza di 'GNU General Public License' come pubblicata dalla 'Free Software Foundation'; entrambe le versioni 2 della Licenza, o (a vostra scelta) qualunque versione successiva.\r\n\r\nQuesto programma è distribuito con l'augurio che sia utile, ma PRIVO DI OGNI GARANZIA; privo anche della garanzia implicita di COMMERCIABILITÀ o UTILIZZABILITÀ PER UNO SPECIFICO USO. Vedi la 'GNU General Public License' per ulteriori dettagli.\r\n\r\nVoi dovreste aver ricevuto una copia della 'GNU General Public License' assieme a questo programma; se non è cosi' scrivete a 'Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.." END STRINGTABLE @@ -331,6 +319,7 @@ END STRINGTABLE BEGIN IDS_APPNAME "Gestione dei servizi di ReactOS" + IDS_APPAUTHORS "Copyright (C) 2005-2007 by Ged Murphy (gedmurphy@reactos.org)" END STRINGTABLE diff --git a/base/applications/mscutils/servman/lang/ja-JP.rc b/base/applications/mscutils/servman/lang/ja-JP.rc index e21d46bdaab3c..03e57c1420890 100644 --- a/base/applications/mscutils/servman/lang/ja-JP.rc +++ b/base/applications/mscutils/servman/lang/ja-JP.rc @@ -68,17 +68,6 @@ BEGIN VK_F5, ID_REFRESH, VIRTKEY END -IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 -CAPTION "サービス マネージャについて" -FONT 9, "MS UI Gothic", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "サービス マネージャ v0.8\nCopyright (C) 2005-2007\nby Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 135, 40 - PUSHBUTTON "閉じる", 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 "全般" FONT 9, "MS UI Gothic", 0, 0 @@ -262,7 +251,6 @@ BEGIN IDS_NUM_SERVICES "サービスの数: %d" IDS_STOP_DEPENDS "%s を停止する場合、これらのサービスも停止します" IDS_NO_DEPENDS "<依存関係なし>" - IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA." END STRINGTABLE @@ -331,6 +319,7 @@ END STRINGTABLE BEGIN IDS_APPNAME "ReactOS サービス マネージャ" + IDS_APPAUTHORS "Copyright (C) 2005-2007 by Ged Murphy (gedmurphy@reactos.org)" END STRINGTABLE diff --git a/base/applications/mscutils/servman/lang/ko-KR.rc b/base/applications/mscutils/servman/lang/ko-KR.rc index 84036c6fe01f1..ec78f2ca64043 100644 --- a/base/applications/mscutils/servman/lang/ko-KR.rc +++ b/base/applications/mscutils/servman/lang/ko-KR.rc @@ -70,17 +70,6 @@ BEGIN VK_F5, ID_REFRESH, VIRTKEY END -IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 -CAPTION "서비스 매니저에 대하여" -FONT 9, "굴림", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Service Manager v0.8\nCopyright (C) 2005-2007\nby Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 135, 40 - PUSHBUTTON "닫기", 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 9, "굴림", 0, 0 @@ -264,7 +253,6 @@ BEGIN IDS_NUM_SERVICES "모든 서비스: %d" IDS_STOP_DEPENDS "When %s stops, these other services will also stop" IDS_NO_DEPENDS "" - IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA." END STRINGTABLE @@ -333,6 +321,7 @@ END STRINGTABLE BEGIN IDS_APPNAME "ReactOS 서비스 관리자" + IDS_APPAUTHORS "Copyright (C) 2005-2007 by Ged Murphy (gedmurphy@reactos.org)" END STRINGTABLE diff --git a/base/applications/mscutils/servman/lang/no-NO.rc b/base/applications/mscutils/servman/lang/no-NO.rc index 851e88b05b126..3ccd4005f05cb 100644 --- a/base/applications/mscutils/servman/lang/no-NO.rc +++ b/base/applications/mscutils/servman/lang/no-NO.rc @@ -68,17 +68,6 @@ BEGIN VK_F5, ID_REFRESH, VIRTKEY END -IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 -CAPTION "Om Tjenestebehandler" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Tjenestebehandler v0.8\nCopyright (C) 2005-2007\nby Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 135, 40 - PUSHBUTTON "Lukk", 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 "Generielt" FONT 8, "MS Shell Dlg", 0, 0 @@ -262,7 +251,6 @@ BEGIN IDS_NUM_SERVICES "Num tjeneste: %d" IDS_STOP_DEPENDS "When %s stops, these other services will also stop" IDS_NO_DEPENDS "" - IDS_LICENSE "Dette programmet er gratis programvare; du kan distribuere det og/eller endre det under betingelsene av GNU General Public License som er utgitt av Free Software Foundation; version 2 av lisensen, eller (etter din mening) alle senere versjoner.\r\n\r\nDette programmet er utgitt i håp for at det skal kunne brukes, men DET ER INGEN GARANTIER; uten heller forutsatt garantier av SALGBARHET eller SIKKETHET FOR EN ENKELTHET FORMÅL. Se på GNU General Public Lisensen for mere detaljer.\r\n\r\nDu skal ha motatt en kopi av GNU General Public Lisensen sammen med denne programmet; hvis du ikke har motatt det, skriv til Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA." END STRINGTABLE @@ -331,6 +319,7 @@ END STRINGTABLE BEGIN IDS_APPNAME "ReactOS Tjenestebehandler" + IDS_APPAUTHORS "Copyright (C) 2005-2007 by Ged Murphy (gedmurphy@reactos.org)" END STRINGTABLE diff --git a/base/applications/mscutils/servman/lang/pl-PL.rc b/base/applications/mscutils/servman/lang/pl-PL.rc index b96cce7d94aaf..eb33eecb4aaee 100644 --- a/base/applications/mscutils/servman/lang/pl-PL.rc +++ b/base/applications/mscutils/servman/lang/pl-PL.rc @@ -78,17 +78,6 @@ BEGIN VK_F5, ID_REFRESH, VIRTKEY END -IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 -CAPTION "Menedżer usług - informacje" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Menedżer usług v0.8\nCopyright (C) 2005-2007\nby Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 135, 40 - PUSHBUTTON "Zamknij", 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, 225 CAPTION "Ogólny" FONT 8, "MS Shell Dlg", 0, 0 @@ -272,7 +261,6 @@ BEGIN IDS_NUM_SERVICES "Numer usługi: %d" IDS_STOP_DEPENDS "Kiedy %s się zatrzyma, inne usługi od niej zależne również się zatrzymają" IDS_NO_DEPENDS "" - IDS_LICENSE "Niniejszy program jest wolnym oprogramowaniem; możesz go rozprowadzać dalej i/lub modyfikować na warunkach Powszechnej Licencji Publicznej GNU, wydanej przez Fundację Wolnego Oprogramowania - według wersji 2 tej Licencji lub (według twojego wyboru) którejś z późniejszych wersji.\r\n\r\nNiniejszy program rozpowszechniany jest z nadzieją, iż będzie on użyteczny - jednak BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej gwarancji PRZYDATNOŚCI HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ. W celu uzyskania bliższych informacji sięgnij do Powszechnej Licencji Publicznej GNU.\r\n\r\nZ pewnością wraz z niniejszym programem otrzymałeś też egzemplarz Powszechnej Licencji Publicznej GNU (GNU General Public License); jeśli nie - napisz do Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA." END STRINGTABLE @@ -341,6 +329,7 @@ END STRINGTABLE BEGIN IDS_APPNAME "Menedżer usług ReactOS" + IDS_APPAUTHORS "Copyright (C) 2005-2007 by Ged Murphy (gedmurphy@reactos.org)" END STRINGTABLE diff --git a/base/applications/mscutils/servman/lang/ro-RO.rc b/base/applications/mscutils/servman/lang/ro-RO.rc index 6740bedbb66fa..0e90694b28916 100644 --- a/base/applications/mscutils/servman/lang/ro-RO.rc +++ b/base/applications/mscutils/servman/lang/ro-RO.rc @@ -73,17 +73,6 @@ BEGIN VK_F5, ID_REFRESH, VIRTKEY END -IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 -CAPTION "Despre Gestionar de servicii" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Gestionar de servicii v0.8\nDrept de autor (C) 2005-2007\nde Ged Murphy (gedmurphy@reactos.org)\nTraducere de Petru Dimitriu", IDC_STATIC, 48, 7, 135, 40 - PUSHBUTTON "Î&nchide", IDOK, 75, 162, 44, 15 - ICON IDI_SM_ICON, IDC_STATIC, 10, 10, 7, 30 - EDITTEXT IDC_LICENSE_EDIT, 8, 54, 174, 97, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE -END - IDD_DLG_GENERAL DIALOGEX 6, 6, 253, 232 CAPTION "Generale" FONT 8, "MS Shell Dlg", 0, 0 @@ -267,7 +256,6 @@ BEGIN IDS_NUM_SERVICES "Nr. servicii: %d" IDS_STOP_DEPENDS "Dacă %s se oprește aceste procese se vor opri de asemenea." IDS_NO_DEPENDS "" - IDS_LICENSE "Această aplicație este publică; fiind permisă modificarea și/sau (re)distribuția sa în termenii Licenței Publice Generale GNU publicată de Free Software Foundation; sau versiunea 2 a Licenței, sau (la alegere) a oricărei versiuni ulterioare.\r\n\r\nAceastă aplicație este distribuită doar în speranța de a fi utilă, FĂRĂ însă NICI O GARANȚIE; nici măcar cu garanția implicită a VANDABILITĂȚII sau a UTILITĂȚII ÎNTR-UN SCOP ANUME. Pentru mai multe detalii consultați Licența Publică Generală GNU.\r\n\r\nPuteți vedea această licență aici:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nDe asemenea puteți consulta traduceri neoficiale ale acestei licențe aici:\r\nhttp://www.gnu.org/licenses/translations.html" END STRINGTABLE @@ -336,6 +324,7 @@ END STRINGTABLE BEGIN IDS_APPNAME "Gestionar de servicii" + IDS_APPAUTHORS "Copyright (C) 2005-2007 by Ged Murphy (gedmurphy@reactos.org)" END STRINGTABLE diff --git a/base/applications/mscutils/servman/lang/ru-RU.rc b/base/applications/mscutils/servman/lang/ru-RU.rc index 8f504b4d40490..588e78664333a 100644 --- a/base/applications/mscutils/servman/lang/ru-RU.rc +++ b/base/applications/mscutils/servman/lang/ru-RU.rc @@ -68,17 +68,6 @@ BEGIN VK_F5, ID_REFRESH, VIRTKEY END -IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 -CAPTION "О Диспетчере служб" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Диспетчер служб v0.8\nАвторское право (C) 2005-2007\nГед Мерфи (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 135, 32 - PUSHBUTTON "&Закрыть", 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 "Общие" FONT 8, "MS Shell Dlg", 0, 0 @@ -262,7 +251,6 @@ BEGIN IDS_NUM_SERVICES "Всего служб: %d" IDS_STOP_DEPENDS "После остановки %s, следующие службы тоже будут остановлены" IDS_NO_DEPENDS "<Нет зависимостей>" - IDS_LICENSE "Эта программа является свободным программным обеспечением; Вы можете распространять и/или изменять ее в соответствии с лицензией GNU General Public License версии 2 или более поздней, опубликованной Free Software Foundation.\r\n\r\nЭта программа распространяется с надеждой, что она может быть полезна, но БЕЗ ВСЯКОЙ ГАРАНТИИ; не подразумевается даже РАБОТОСПОСОБНОСТЬ или ПРИГОДНОСТЬ ДЛЯ ВЫПОЛНЕНИЯ НЕОБХОДИМЫХ ЗАДАЧ. См. GNU General Public License для получения дополнительных сведений.\r\n\r\nВы должны получить копию лицензии GNU вместе с этой программой, в противном случае обращайтесь в Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA." END STRINGTABLE @@ -331,6 +319,7 @@ END STRINGTABLE BEGIN IDS_APPNAME "Диспетчер служб ReactOS" + IDS_APPAUTHORS "Copyright (C) 2005-2007 by Ged Murphy (gedmurphy@reactos.org)" END STRINGTABLE diff --git a/base/applications/mscutils/servman/lang/sk-SK.rc b/base/applications/mscutils/servman/lang/sk-SK.rc index f5c88129fcfd4..c65f787b65af5 100644 --- a/base/applications/mscutils/servman/lang/sk-SK.rc +++ b/base/applications/mscutils/servman/lang/sk-SK.rc @@ -73,17 +73,6 @@ BEGIN VK_F5, ID_REFRESH, VIRTKEY END -IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 -CAPTION "Čo je Manažér služieb" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Manažér služieb v0.8\nAutorské práva (C) 2005-2007\nod Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 135, 40 - PUSHBUTTON "Zavrieť", 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 "Všeobecné" FONT 8, "MS Shell Dlg", 0, 0 @@ -267,7 +256,6 @@ BEGIN IDS_NUM_SERVICES "Počet služieb: %d" IDS_STOP_DEPENDS "When %s stops, these other services will also stop" IDS_NO_DEPENDS "<Žiadne 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 @@ -336,6 +324,7 @@ END STRINGTABLE BEGIN IDS_APPNAME "Manažér služieb systému ReactOS" + IDS_APPAUTHORS "Copyright (C) 2005-2007 by Ged Murphy (gedmurphy@reactos.org)" END STRINGTABLE diff --git a/base/applications/mscutils/servman/lang/sq-AL.rc b/base/applications/mscutils/servman/lang/sq-AL.rc index 4f9c936ed2e55..6273d510ac8ad 100644 --- a/base/applications/mscutils/servman/lang/sq-AL.rc +++ b/base/applications/mscutils/servman/lang/sq-AL.rc @@ -73,17 +73,6 @@ BEGIN VK_F5, ID_REFRESH, VIRTKEY END -IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 -CAPTION "Rreth Menaxherit të Shërbimeve" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Menaxher Shërbimesh v0.8\nCopyright (C) 2005-2007\nnga Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 135, 40 - PUSHBUTTON "Mbyll", 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 "Përgjithshëm" FONT 8, "MS Shell Dlg", 0, 0 @@ -267,7 +256,6 @@ BEGIN IDS_NUM_SERVICES "Num Shërbimit: %d" IDS_STOP_DEPENDS "Kur %s ndalon, keto shërbime te tjera do të ndalojnë gjithashtu" IDS_NO_DEPENDS "" - IDS_LICENSE "Ky program është software falas; ju mund ta shpërndani dhe / ose modifikoni sipas kushteve të GNU General Public License të publikuar nga Fondacioni Free Software; sipas versionit 2 të Liçencës, ose (sipas opinionit tuaj) çdo versioni të mëvonshëm.\r\n\r\nKy program shpërndahet me shpresën që do t'ju jetë i dobishëm, por PA ASNJË GARANCI; madje edhe pa garancinë preçize të SHITJES apo PËRDORIMIT PËR NJË QËLLIM TË CAKTUAR. Shiko Liçencën Publike të Përgjithshme GNU për më shumë detaje.\r\n\r\nJu duhet të keni marrë një kopje të Liçensës së Përgjithshme Publike GNU së bashku me këtë program, e nëse jo, shkruani në Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA." END STRINGTABLE @@ -336,6 +324,7 @@ END STRINGTABLE BEGIN IDS_APPNAME "Menaxhues i shërbimeve të ReactOS" + IDS_APPAUTHORS "Copyright (C) 2005-2007 by Ged Murphy (gedmurphy@reactos.org)" END STRINGTABLE diff --git a/base/applications/mscutils/servman/lang/sv-SE.rc b/base/applications/mscutils/servman/lang/sv-SE.rc index 2cb32144080f8..a553372ec228e 100644 --- a/base/applications/mscutils/servman/lang/sv-SE.rc +++ b/base/applications/mscutils/servman/lang/sv-SE.rc @@ -75,17 +75,6 @@ BEGIN VK_F5, ID_REFRESH, VIRTKEY END -IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 -CAPTION "Om Tjänster" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Tjänster v0.8\nCopyright (C) 2005-2007\nby Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 135, 40 - PUSHBUTTON "Stäng", 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 "Allmännt" FONT 8, "MS Shell Dlg", 0, 0 @@ -269,7 +258,6 @@ BEGIN IDS_NUM_SERVICES "Num tjänster: %d" IDS_STOP_DEPENDS "När %s stoppas, kommer också dessa tjänster att stanna" IDS_NO_DEPENDS "" - IDS_LICENSE "Detta programmet är fri programvara; du kan distribuera det och/eller ändra det under villkoren enligt GNU General Public License som är utgivet av Free Software Foundation; version 2, eller (om du så önskar) alla senare versioner.\r\n\r\nDette programmet er utgivet i hopp om att det skall kunne användas, men DET FINNS INGA GARANTIER; även utan underförstådd garanti om SÄLJBARHET eller LÄMPLIGHET FÖR ETT VISST ÄNDAMÅL. Se på GNU General Public Licensen för mer detaljer.\r\n\r\nDu skall ha motagit en kopia av GNU General Public Licensen tillsammans med detta programmet; om du inte har fått det, skriv til Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA." END STRINGTABLE @@ -338,6 +326,7 @@ END STRINGTABLE BEGIN IDS_APPNAME "ReactOS tjänster" + IDS_APPAUTHORS "Copyright (C) 2005-2007 by Ged Murphy (gedmurphy@reactos.org)" END STRINGTABLE diff --git a/base/applications/mscutils/servman/lang/th-TH.rc b/base/applications/mscutils/servman/lang/th-TH.rc index 23706f70e6a67..19fe4578963e5 100644 --- a/base/applications/mscutils/servman/lang/th-TH.rc +++ b/base/applications/mscutils/servman/lang/th-TH.rc @@ -76,17 +76,6 @@ BEGIN VK_F5, ID_REFRESH, VIRTKEY END -IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 -CAPTION "เกี่ยวกับการบริการจัดการ" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "โปรแกรมการบริการจัดการ รุ่น 0.8\nลิขสิทธิ์ (C) 2005-2007\nโดย เก้ด เมอร์ฟี่ (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 135, 40 - PUSHBUTTON "ปิด", 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 "ทั่วไป" FONT 8, "MS Shell Dlg", 0, 0 @@ -270,7 +259,6 @@ BEGIN IDS_NUM_SERVICES "Num Services: %d" IDS_STOP_DEPENDS "When %s stops, these other services will also stop" IDS_NO_DEPENDS "" - IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA." END STRINGTABLE @@ -339,6 +327,7 @@ END STRINGTABLE BEGIN IDS_APPNAME "ReactOS Service Manager" + IDS_APPAUTHORS "Copyright (C) 2005-2007 by Ged Murphy (gedmurphy@reactos.org)" END STRINGTABLE diff --git a/base/applications/mscutils/servman/lang/tr-TR.rc b/base/applications/mscutils/servman/lang/tr-TR.rc index fad8766630be3..3c4d5b2dcfa20 100644 --- a/base/applications/mscutils/servman/lang/tr-TR.rc +++ b/base/applications/mscutils/servman/lang/tr-TR.rc @@ -70,17 +70,6 @@ BEGIN VK_F5, ID_REFRESH, VIRTKEY END -IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 -CAPTION "Himet Yöneticisi Üzerine" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Hizmet Yöneticisi - Sürüm: 0.8\nTelif Hakkı: 2005-2007\nGed Murphy (gedmurphy@reactos.org) ile.", IDC_STATIC, 48, 7, 135, 40 - PUSHBUTTON "Tamam", 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 "Umûmî" FONT 8, "MS Shell Dlg", 0, 0 @@ -264,7 +253,6 @@ BEGIN IDS_NUM_SERVICES "Hizmet Sayısı: %d" IDS_STOP_DEPENDS "%s durduğunda bu hizmetler de duracaktır:" IDS_NO_DEPENDS "" - IDS_LICENSE "ÖNEMLİ: Aşağıdaki metin, özgün metnin resmî olmayan çevirisidir. Çeviri metniyle özgün metin arasında ayrım olabilir. Özgün metin, çeviri metninin altındadır.\r\n\r\n***\r\n\r\nBu izlence özgür yazılımdır; bunu, Özgür Yazılım Vakfı'nın yayımladığı GNU Umûmî Kamu Ruhsatı'nın, 2. sürümünün ya da daha sonraki bir sürümünün (Orası size bağlı.) şartları altında yeniden dağıtabilir veyâ değiştirebilirsiniz.\r\n\r\nBu izlence, kullanışlı olabileceği beklentisiyle dağıtılmıştır ancak bu izlencenin HİÇBİR GÜVENCESİ YOKTUR, SATILABİLİRLİĞİN ve BELİRLİ BİR AMACA UYGUNLUĞUN demek istenilen güvencesi bile. Daha çok bilgi için GNU Umûmî Kamu Ruhsatı'na bakınız.\r\n\r\nBu izlenceyle birlikte GNU Umûmî Kamu Ruhsatı'nın bir kopyasını almış olmalısınız, eğer yoksa Özgür Yazılım Vakfı AŞ'ye (51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 ABD) yazınız.\r\n\r\n***\r\n\r\nThis 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 @@ -333,6 +321,7 @@ END STRINGTABLE BEGIN IDS_APPNAME "Hizmet Yöneticisi" + IDS_APPAUTHORS "Copyright (C) 2005-2007 by Ged Murphy (gedmurphy@reactos.org)" END STRINGTABLE diff --git a/base/applications/mscutils/servman/lang/uk-UA.rc b/base/applications/mscutils/servman/lang/uk-UA.rc index a4fe3d509f737..48626e4f20b53 100644 --- a/base/applications/mscutils/servman/lang/uk-UA.rc +++ b/base/applications/mscutils/servman/lang/uk-UA.rc @@ -76,17 +76,6 @@ BEGIN VK_F5, ID_REFRESH, VIRTKEY END -IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 -CAPTION "Про програму ""Диспетчер керування службами""" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Диспетчер керування службами v0.8\nCopyright (C) 2005-2007\nby Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 135, 40 - PUSHBUTTON "Закрити", 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 "Загальні" FONT 8, "MS Shell Dlg", 0, 0 @@ -270,7 +259,6 @@ BEGIN IDS_NUM_SERVICES "Hомер служби: %d" IDS_STOP_DEPENDS "Коли %s зупинеться, наступні служби також буде зупинено" IDS_NO_DEPENDS "" - IDS_LICENSE "Це вільне програмне забезпечення; Ви можете розповсюджувати її та змінювати, дотримуючись умови Відкритої ліцензійної угоди GNU, опублікованої Фондом вільного програмного забезпечення; або редакції 2 Угоди, або будь-якої редакції, випущеної пізніше.\r\n\r\nЦя програма розповсюджується в надії на те, що вона виявиться корисною, але БЕЗ БУДЬ-ЯКИХ ГАРАНТІЙ, включаючи УЯВНОЮ ГАРАНТІЄЮ ЯКОСТІ або ПРИДАТНОСТІ для певних цілей. Подробиці містяться у Відкритій ліцензійній угоді GNU.\r\n\r\nРазом з цією програмою повинен поширюватися примірник Відкритої ліцензійної угоди GNU. Якщо він відсутній, повідомте про це в Фонд вільного програмного забезпечення (Free Software Foundation, Inc.), 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA." END STRINGTABLE @@ -339,6 +327,7 @@ END STRINGTABLE BEGIN IDS_APPNAME "Диспетчер керування службами ReactOS" + IDS_APPAUTHORS "Copyright (C) 2005-2007 by Ged Murphy (gedmurphy@reactos.org)" END STRINGTABLE diff --git a/base/applications/mscutils/servman/lang/zh-CN.rc b/base/applications/mscutils/servman/lang/zh-CN.rc index df562a2a091bc..c910aea0ae544 100644 --- a/base/applications/mscutils/servman/lang/zh-CN.rc +++ b/base/applications/mscutils/servman/lang/zh-CN.rc @@ -70,17 +70,6 @@ BEGIN VK_F5, ID_REFRESH, VIRTKEY END -IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 -CAPTION "关于服务管理器" -FONT 9, "宋体", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "服务管理器 v0.8\n版权所有 (C) 2005-2007\n作者 Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 135, 40 - PUSHBUTTON "关闭(&C)", 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 "常规" FONT 9, "宋体", 0, 0 @@ -264,7 +253,6 @@ BEGIN IDS_NUM_SERVICES "服务总数: %d" IDS_STOP_DEPENDS "当 %s 停止时,这些服务也将被停止" IDS_NO_DEPENDS "<无依赖>" - IDS_LICENSE "这个程序是自由软件;你可以在自由软件基金会(FSF)的 GNU LGPL 协议下重新发布或修改它;也适用于这个协议的版本 2,或(在您看来)任何更新的版本。\r\n\r\n这个程序在希望其有用的愿望中发布,但没有任何保证;也不意味着性能保证或对某特定用途的适用性。请查看 GNU GPL 许可协议以了解更多细节。\r\n\r\n您应该已经收到了一份和这个程序一起的 GNU GPL 协议的副本;如果没有,请写信给自由软件基金会(FSF):51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA." END STRINGTABLE @@ -333,6 +321,7 @@ END STRINGTABLE BEGIN IDS_APPNAME "ReactOS 服务管理器" + IDS_APPAUTHORS "Copyright (C) 2005-2007 by Ged Murphy (gedmurphy@reactos.org)" END STRINGTABLE diff --git a/base/applications/mscutils/servman/lang/zh-TW.rc b/base/applications/mscutils/servman/lang/zh-TW.rc index 27ca6c40bd5d5..abf56cc0e21f7 100644 --- a/base/applications/mscutils/servman/lang/zh-TW.rc +++ b/base/applications/mscutils/servman/lang/zh-TW.rc @@ -70,17 +70,6 @@ BEGIN VK_F5, ID_REFRESH, VIRTKEY END -IDD_ABOUTBOX DIALOGEX 22, 16, 190, 182 -CAPTION "關於服務管理員" -FONT 9, "新細明體", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "服務管理員 v0.8\n版權所有 (C) 2005-2007\n作者 Ged Murphy (gedmurphy@reactos.org)", IDC_STATIC, 48, 7, 135, 40 - PUSHBUTTON "關閉", 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 "普通" FONT 9, "新細明體", 0, 0 @@ -264,7 +253,6 @@ BEGIN IDS_NUM_SERVICES "服務總數: %d" IDS_STOP_DEPENDS "當 %s 停止時,這些服務也將被停止" IDS_NO_DEPENDS "<沒有依賴>" - IDS_LICENSE "這個程式是自由軟體;你可以在自由軟體基金會(FSF)的 GNU LGPL 協定下重新發佈或修改它;也適用于這個協定的版本 2,或(在您看來)任何更新的版本。\r\n\r\n這個程式在希望其有用的願望中發佈,但沒有任何保證;也不意味著性能保證或對某特定用途的適用性。請查看 GNU GPL 授權合約以瞭解更多細節。\r\n\r\n您應該已經收到了一份和這個程式一起的 GNU GPL 協定的副本;如果沒有,請寫信給自由軟體基金會(FSF):51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA." END STRINGTABLE @@ -333,6 +321,7 @@ END STRINGTABLE BEGIN IDS_APPNAME "ReactOS 服務管理員" + IDS_APPAUTHORS "Copyright (C) 2005-2007 by Ged Murphy (gedmurphy@reactos.org)" END STRINGTABLE diff --git a/base/applications/mscutils/servman/mainwnd.c b/base/applications/mscutils/servman/mainwnd.c index 9358bd4c14faa..02d4ff5523289 100644 --- a/base/applications/mscutils/servman/mainwnd.c +++ b/base/applications/mscutils/servman/mainwnd.c @@ -10,6 +10,7 @@ #include "precomp.h" #include +#include static const WCHAR szMainWndClass[] = L"ServManWndClass"; @@ -23,7 +24,7 @@ static const TBBUTTON Buttons [] = /* Note: First item for a separator is its width in pixels */ {15, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ - {TBICON_CREATE, ID_CREATE, TBSTATE_INDETERMINATE, BTNS_BUTTON, {0}, 0, 0 }, /* create */ + {TBICON_CREATE, ID_CREATE, TBSTATE_INDETERMINATE, BTNS_BUTTON, {0}, 0, 0 }, /* create */ {TBICON_DELETE, ID_DELETE, TBSTATE_INDETERMINATE, BTNS_BUTTON, {0}, 0, 0 }, /* delete */ {15, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0}, /* separator */ @@ -374,7 +375,6 @@ InitMainWnd(PMAIN_WND_INFO Info) return TRUE; } - static VOID MainWndCommand(PMAIN_WND_INFO Info, WORD CmdId, @@ -382,6 +382,10 @@ MainWndCommand(PMAIN_WND_INFO Info, { UNREFERENCED_PARAMETER(hControl); + WCHAR szAppName[256]; + WCHAR szAppAuthors[256]; + HICON hIcon; + switch (CmdId) { case ID_PROP: @@ -590,11 +594,12 @@ MainWndCommand(PMAIN_WND_INFO Info, break; case ID_ABOUT: - DialogBox(hInstance, - MAKEINTRESOURCE(IDD_ABOUTBOX), - Info->hMainWnd, - AboutDialogProc); - SetFocus(Info->hListView); + LoadStringW(hInstance, IDS_APPNAME, szAppName, _countof(szAppName)); + LoadStringW(hInstance, IDS_APPAUTHORS, szAppAuthors, _countof(szAppAuthors)); + + hIcon = LoadIconW(hInstance, MAKEINTRESOURCEW(IDI_SM_ICON)); + ShellAboutW(Info->hMainWnd, szAppName, szAppAuthors, hIcon); + DestroyIcon(hIcon); break; } diff --git a/base/applications/mscutils/servman/resource.h b/base/applications/mscutils/servman/resource.h index 76f0e1e0e736e..3277200005f4e 100644 --- a/base/applications/mscutils/servman/resource.h +++ b/base/applications/mscutils/servman/resource.h @@ -5,10 +5,8 @@ #define IDA_SERVMAN 20 /* about box info */ -#define IDD_ABOUTBOX 200 -#define IDC_LICENSE_EDIT 201 -#define IDS_APPNAME 202 -#define IDS_LICENSE 203 +#define IDS_APPAUTHORS 200 +#define IDS_APPNAME 201 #define IDC_SERVLIST 1000 #define IDC_STATUSBAR 1001 diff --git a/base/applications/network/arp/CMakeLists.txt b/base/applications/network/arp/CMakeLists.txt index 7f86c4cb4ba24..6aba57385c935 100644 --- a/base/applications/network/arp/CMakeLists.txt +++ b/base/applications/network/arp/CMakeLists.txt @@ -1,5 +1,6 @@ add_executable(arp arp.c arp.rc) set_module_type(arp win32cui) +add_dependencies(arp arp_msg) add_importlibs(arp iphlpapi ws2_32 shlwapi msvcrt kernel32) add_cd_file(TARGET arp DESTINATION reactos/system32 FOR all) diff --git a/base/applications/network/arp/arp.c b/base/applications/network/arp/arp.c index 4c9322119a681..f3e758a0095f8 100644 --- a/base/applications/network/arp/arp.c +++ b/base/applications/network/arp/arp.c @@ -49,10 +49,10 @@ int _CRT_glob = 0; // stop * from listing dir files in arp -d * * function declarations */ DWORD DoFormatMessage(VOID); -INT PrintEntries(PMIB_IPNETROW pIpAddRow); -INT DisplayArpEntries(PTCHAR pszInetAddr, PTCHAR pszIfAddr); -INT Addhost(PTCHAR pszInetAddr, PTCHAR pszEthAddr, PTCHAR pszIfAddr); -INT Deletehost(PTCHAR pszInetAddr, PTCHAR pszIfAddr); +DWORD PrintEntries(PMIB_IPNETROW pIpAddRow); +DWORD DisplayArpEntries(PTCHAR pszInetAddr, PTCHAR pszIfAddr); +DWORD Addhost(PTCHAR pszInetAddr, PTCHAR pszEthAddr, PTCHAR pszIfAddr); +DWORD Deletehost(PTCHAR pszInetAddr, PTCHAR pszIfAddr); VOID Usage(VOID); /* @@ -60,7 +60,7 @@ VOID Usage(VOID); */ DWORD DoFormatMessage(VOID) { - LPVOID lpMsgBuf; + LPTSTR lpMsgBuf; DWORD RetVal; DWORD ErrorCode = GetLastError(); @@ -79,8 +79,7 @@ DWORD DoFormatMessage(VOID) if (RetVal != 0) { - _tprintf(_T("%s"), (LPTSTR)lpMsgBuf); - + _tprintf(_T("%s"), lpMsgBuf); LocalFree(lpMsgBuf); /* return number of TCHAR's stored in output buffer * excluding '\0' - as FormatMessage does*/ @@ -90,13 +89,63 @@ DWORD DoFormatMessage(VOID) return 0; } +VOID +PrintMessage( + DWORD dwMessage) +{ + LPTSTR lpMsgBuf; + DWORD RetVal; + + RetVal = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_FROM_HMODULE | + FORMAT_MESSAGE_IGNORE_INSERTS, + GetModuleHandleW(NULL), + dwMessage, + LANG_USER_DEFAULT, + (LPTSTR)&lpMsgBuf, + 0, + NULL); + if (RetVal != 0) + { + _tprintf(_T("%s"), lpMsgBuf); + LocalFree(lpMsgBuf); + } +} + +VOID +PrintMessageV( + DWORD dwMessage, + ...) +{ + LPTSTR lpMsgBuf; + va_list args = NULL; + DWORD RetVal; + + va_start(args, dwMessage); + + RetVal = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_HMODULE, + GetModuleHandleW(NULL), + dwMessage, + LANG_USER_DEFAULT, + (LPTSTR)&lpMsgBuf, + 0, + &args); + va_end(args); + + if (RetVal != 0) + { + _tprintf(_T("%s"), lpMsgBuf); + LocalFree(lpMsgBuf); + } +} + /* * * Takes an ARP entry and prints the IP address, * the MAC address and the entry type to screen * */ -INT PrintEntries(PMIB_IPNETROW pIpAddRow) +DWORD PrintEntries(PMIB_IPNETROW pIpAddRow) { IN_ADDR inaddr; TCHAR cMacAddr[20]; @@ -118,16 +167,24 @@ INT PrintEntries(PMIB_IPNETROW pIpAddRow) /* print cache type */ switch (pIpAddRow->dwType) { - case MIB_IPNET_TYPE_DYNAMIC : _tprintf(_T("dynamic\n")); - break; - case MIB_IPNET_TYPE_STATIC : _tprintf(_T("static\n")); - break; - case MIB_IPNET_TYPE_INVALID : _tprintf(_T("invalid\n")); - break; - case MIB_IPNET_TYPE_OTHER : _tprintf(_T("other\n")); - break; + case MIB_IPNET_TYPE_DYNAMIC: + PrintMessage(10007); + break; + + case MIB_IPNET_TYPE_STATIC: + PrintMessage(10008); + break; + + case MIB_IPNET_TYPE_INVALID: + PrintMessage(10006); + break; + + case MIB_IPNET_TYPE_OTHER: + PrintMessage(10005); + break; } - return EXIT_SUCCESS; + _putts(_T("")); + return NO_ERROR; } /* @@ -140,16 +197,16 @@ INT PrintEntries(PMIB_IPNETROW pIpAddRow) * */ /* FIXME: allow user to specify an interface address, via pszIfAddr */ -INT DisplayArpEntries(PTCHAR pszInetAddr, PTCHAR pszIfAddr) +DWORD DisplayArpEntries(PTCHAR pszInetAddr, PTCHAR pszIfAddr) { - INT iRet; - UINT i, k; + DWORD i, k, dwCount; PMIB_IPNETTABLE pIpNetTable = NULL; PMIB_IPADDRTABLE pIpAddrTable = NULL; ULONG Size = 0; struct in_addr inaddr, inaddr2; PTCHAR pszIpAddr; TCHAR szIntIpAddr[20]; + DWORD dwError = NO_ERROR; /* retrieve the IP-to-physical address mapping table */ @@ -157,15 +214,20 @@ INT DisplayArpEntries(PTCHAR pszInetAddr, PTCHAR pszIfAddr) GetIpNetTable(pIpNetTable, &Size, 0); /* allocate memory for ARP address table */ - pIpNetTable = (PMIB_IPNETTABLE) HeapAlloc(GetProcessHeap(), 0, Size); + pIpNetTable = (PMIB_IPNETTABLE)HeapAlloc(GetProcessHeap(), 0, Size); if (pIpNetTable == NULL) + { + PrintMessage(10004); + dwError = ERROR_NOT_ENOUGH_MEMORY; goto cleanup; + } ZeroMemory(pIpNetTable, sizeof(*pIpNetTable)); - if (GetIpNetTable(pIpNetTable, &Size, TRUE) != NO_ERROR) + dwError = GetIpNetTable(pIpNetTable, &Size, TRUE); + if (dwError != NO_ERROR) { - _tprintf(_T("failed to allocate memory for GetIpNetTable\n")); + _tprintf(_T("GetIpNetTable failed: %lu\n"), dwError); DoFormatMessage(); goto cleanup; } @@ -173,12 +235,10 @@ INT DisplayArpEntries(PTCHAR pszInetAddr, PTCHAR pszIfAddr) /* check there are entries in the table */ if (pIpNetTable->dwNumEntries == 0) { - _tprintf(_T("No ARP entires found\n")); + PrintMessage(10018); goto cleanup; } - - /* Retrieve the interface-to-ip address mapping * table to get the IP address for adapter */ @@ -186,21 +246,25 @@ INT DisplayArpEntries(PTCHAR pszInetAddr, PTCHAR pszIfAddr) Size = 0; GetIpAddrTable(pIpAddrTable, &Size, 0); - pIpAddrTable = (MIB_IPADDRTABLE *) HeapAlloc(GetProcessHeap(), 0, Size); + pIpAddrTable = (PMIB_IPADDRTABLE)HeapAlloc(GetProcessHeap(), 0, Size); if (pIpAddrTable == NULL) + { + PrintMessage(10004); + dwError = ERROR_NOT_ENOUGH_MEMORY; goto cleanup; + } ZeroMemory(pIpAddrTable, sizeof(*pIpAddrTable)); - if ((iRet = GetIpAddrTable(pIpAddrTable, &Size, TRUE)) != NO_ERROR) + dwError = GetIpAddrTable(pIpAddrTable, &Size, TRUE); + if (dwError != NO_ERROR) { - _tprintf(_T("GetIpAddrTable failed: %d\n"), iRet); + _tprintf(_T("GetIpAddrTable failed: %lu\n"), dwError); DoFormatMessage(); goto cleanup; } - - for (k=0; k < pIpAddrTable->dwNumEntries; k++) + for (k = 0; k < pIpAddrTable->dwNumEntries; k++) { if (pIpNetTable->table[0].dwIndex == pIpAddrTable->table[k].dwIndex) { @@ -211,13 +275,40 @@ INT DisplayArpEntries(PTCHAR pszInetAddr, PTCHAR pszIfAddr) } } + /* Count relevant ARP entries */ + dwCount = 0; + for (i = 0; i < pIpNetTable->dwNumEntries; i++) + { + /* if the user has supplied their own internet address * + * only count the arp entry which matches that */ + if (pszInetAddr) + { + inaddr.S_un.S_addr = pIpNetTable->table[i].dwAddr; + pszIpAddr = inet_ntoa(inaddr); + + /* check if it matches, count it */ + if (strcmp(pszIpAddr, pszInetAddr) == 0) + dwCount++; + } + else + { + /* if an address is not supplied, count all entries */ + dwCount++; + } + } + + /* Print message and leave if there are no relevant ARP entries */ + if (dwCount == 0) + { + PrintMessage(10018); + goto cleanup; + } /* print header, including interface IP address and index number */ - _tprintf(_T("\nInterface: %s --- 0x%lx \n"), szIntIpAddr, pIpNetTable->table[0].dwIndex); - _tprintf(_T(" Internet Address Physical Address Type\n")); + PrintMessageV(10003, szIntIpAddr, pIpNetTable->table[0].dwIndex); /* go through all ARP entries */ - for (i=0; i < pIpNetTable->dwNumEntries; i++) + for (i = 0; i < pIpNetTable->dwNumEntries; i++) { /* if the user has supplied their own internet address * @@ -236,14 +327,13 @@ INT DisplayArpEntries(PTCHAR pszInetAddr, PTCHAR pszIfAddr) PrintEntries(&pIpNetTable->table[i]); } - return EXIT_SUCCESS; - cleanup: if (pIpNetTable != NULL) HeapFree(GetProcessHeap(), 0, pIpNetTable); if (pIpAddrTable != NULL) HeapFree(GetProcessHeap(), 0, pIpAddrTable); - return EXIT_FAILURE; + + return dwError; } /* @@ -254,46 +344,47 @@ INT DisplayArpEntries(PTCHAR pszInetAddr, PTCHAR pszIfAddr) * ARP cache as a static entry. * */ -INT Addhost(PTCHAR pszInetAddr, PTCHAR pszEthAddr, PTCHAR pszIfAddr) +DWORD Addhost(PTCHAR pszInetAddr, PTCHAR pszEthAddr, PTCHAR pszIfAddr) { PMIB_IPNETROW pAddHost = NULL; PMIB_IPNETTABLE pIpNetTable = NULL; DWORD dwIpAddr = 0; ULONG Size = 0; INT i, val, c; + DWORD dwError = NO_ERROR; /* error checking */ /* check IP address */ - if (pszInetAddr != NULL) + if (pszInetAddr == NULL) { - if ((dwIpAddr = inet_addr(pszInetAddr)) == INADDR_NONE) - { - _tprintf(_T("ARP: bad IP address: %s\n"), pszInetAddr); - return EXIT_FAILURE; - } + Usage(); + return ERROR_INVALID_PARAMETER; } - else + + dwIpAddr = inet_addr(pszInetAddr); + if (dwIpAddr == INADDR_NONE) { - Usage(); - return EXIT_FAILURE; + PrintMessageV(10001, pszInetAddr); + return ERROR_INVALID_PARAMETER; } /* check MAC address */ if (strlen(pszEthAddr) != 17) { - _tprintf(_T("ARP: bad argument: %s\n"), pszEthAddr); - return EXIT_FAILURE; + PrintMessageV(10002, pszEthAddr); + return ERROR_INVALID_PARAMETER; } - for (i=0; i<17; i++) + + for (i = 0; i < 17; i++) { if (pszEthAddr[i] == SEPARATOR) continue; if (!isxdigit(pszEthAddr[i])) { - _tprintf(_T("ARP: bad argument: %s\n"), pszEthAddr); - return EXIT_FAILURE; + PrintMessageV(10002, pszEthAddr); + return ERROR_INVALID_PARAMETER; } } @@ -302,24 +393,32 @@ INT Addhost(PTCHAR pszInetAddr, PTCHAR pszEthAddr, PTCHAR pszIfAddr) GetIpNetTable(pIpNetTable, &Size, 0); /* allocate memory for ARP address table */ - pIpNetTable = (PMIB_IPNETTABLE) HeapAlloc(GetProcessHeap(), 0, Size); + pIpNetTable = (PMIB_IPNETTABLE)HeapAlloc(GetProcessHeap(), 0, Size); if (pIpNetTable == NULL) + { + PrintMessage(10004); + dwError = ERROR_NOT_ENOUGH_MEMORY; goto cleanup; + } ZeroMemory(pIpNetTable, sizeof(*pIpNetTable)); - if (GetIpNetTable(pIpNetTable, &Size, TRUE) != NO_ERROR) + dwError = GetIpNetTable(pIpNetTable, &Size, TRUE); + if (dwError != NO_ERROR) { - _tprintf(_T("failed to allocate memory for GetIpNetTable\n")); + _tprintf(_T("GetIpNetTable failed: %lu\n"), dwError); DoFormatMessage(); goto cleanup; } - /* reserve memory on heap and zero */ - pAddHost = (MIB_IPNETROW *) HeapAlloc(GetProcessHeap(), 0, sizeof(MIB_IPNETROW)); + pAddHost = (PMIB_IPNETROW)HeapAlloc(GetProcessHeap(), 0, sizeof(MIB_IPNETROW)); if (pAddHost == NULL) + { + PrintMessage(10004); + dwError = ERROR_NOT_ENOUGH_MEMORY; goto cleanup; + } ZeroMemory(pAddHost, sizeof(MIB_IPNETROW)); @@ -345,20 +444,19 @@ INT Addhost(PTCHAR pszInetAddr, PTCHAR pszEthAddr, PTCHAR pszIfAddr) /* Encode bPhysAddr into correct byte array */ - for (i=0; i<6; i++) + for (i = 0; i < 6; i++) { - val =0; - c = toupper(pszEthAddr[i*3]); + val = 0; + c = toupper(pszEthAddr[i * 3]); c = c - (isdigit(c) ? '0' : ('A' - 10)); val += c; val = (val << 4); - c = toupper(pszEthAddr[i*3 + 1]); + c = toupper(pszEthAddr[i * 3 + 1]); c = c - (isdigit(c) ? '0' : ('A' - 10)); val += c; pAddHost->bPhysAddr[i] = (BYTE)val; } - /* copy converted IP address */ pAddHost->dwAddr = dwIpAddr; @@ -368,22 +466,20 @@ INT Addhost(PTCHAR pszInetAddr, PTCHAR pszEthAddr, PTCHAR pszIfAddr) /* Add the ARP entry */ - if (SetIpNetEntry(pAddHost) != NO_ERROR) + dwError = SetIpNetEntry(pAddHost); + if (dwError != NO_ERROR) { DoFormatMessage(); goto cleanup; } - HeapFree(GetProcessHeap(), 0, pAddHost); - - return EXIT_SUCCESS; - cleanup: if (pIpNetTable != NULL) HeapFree(GetProcessHeap(), 0, pIpNetTable); if (pAddHost != NULL) HeapFree(GetProcessHeap(), 0, pAddHost); - return EXIT_FAILURE; + + return dwError; } /* @@ -394,32 +490,37 @@ INT Addhost(PTCHAR pszInetAddr, PTCHAR pszEthAddr, PTCHAR pszIfAddr) * and remove the entry from the ARP cache. * */ -INT Deletehost(PTCHAR pszInetAddr, PTCHAR pszIfAddr) +DWORD Deletehost(PTCHAR pszInetAddr, PTCHAR pszIfAddr) { PMIB_IPNETROW pDelHost = NULL; PMIB_IPNETTABLE pIpNetTable = NULL; ULONG Size = 0; DWORD dwIpAddr = 0; BOOL bFlushTable = FALSE; + DWORD dwError = NO_ERROR; /* error checking */ /* check IP address */ - if (pszInetAddr != NULL) + if (pszInetAddr == NULL) { - /* if wildcard is given, set flag to delete all hosts */ - if (strncmp(pszInetAddr, "*", 1) == 0) - bFlushTable = TRUE; - else if ((dwIpAddr = inet_addr(pszInetAddr)) == INADDR_NONE) - { - _tprintf(_T("ARP: bad IP address: %s\n"), pszInetAddr); - exit(EXIT_FAILURE); - } + Usage(); + return ERROR_INVALID_PARAMETER; + } + + /* if wildcard is given, set flag to delete all hosts */ + if (strncmp(pszInetAddr, "*", 1) == 0) + { + bFlushTable = TRUE; } else { - Usage(); - exit(EXIT_FAILURE); + dwIpAddr = inet_addr(pszInetAddr); + if (dwIpAddr == INADDR_NONE) + { + PrintMessageV(10001, pszInetAddr); + return ERROR_INVALID_PARAMETER; + } } /* We need the IpNetTable to get the adapter index */ @@ -429,25 +530,33 @@ INT Deletehost(PTCHAR pszInetAddr, PTCHAR pszIfAddr) /* allocate memory for ARP address table */ pIpNetTable = (PMIB_IPNETTABLE) HeapAlloc(GetProcessHeap(), 0, Size); if (pIpNetTable == NULL) + { + PrintMessage(10004); + dwError = ERROR_NOT_ENOUGH_MEMORY; goto cleanup; + } ZeroMemory(pIpNetTable, sizeof(*pIpNetTable)); - if (GetIpNetTable(pIpNetTable, &Size, TRUE) != NO_ERROR) + dwError = GetIpNetTable(pIpNetTable, &Size, TRUE); + if (dwError != NO_ERROR) { - _tprintf(_T("failed to allocate memory for GetIpNetTable\n")); + _tprintf(_T("GetIpNetTable failed: %lu\n"), dwError); DoFormatMessage(); goto cleanup; } /* reserve memory on heap and zero */ - pDelHost = (MIB_IPNETROW *) HeapAlloc(GetProcessHeap(), 0, sizeof(MIB_IPNETROW)); + pDelHost = (MIB_IPNETROW *)HeapAlloc(GetProcessHeap(), 0, sizeof(MIB_IPNETROW)); if (pDelHost == NULL) + { + PrintMessage(10004); + dwError = ERROR_NOT_ENOUGH_MEMORY; goto cleanup; + } ZeroMemory(pDelHost, sizeof(MIB_IPNETROW)); - /* set dwIndex field to the index of a local IP address to * indicate the network on which the ARP entry applies */ if (pszIfAddr) @@ -467,38 +576,34 @@ INT Deletehost(PTCHAR pszInetAddr, PTCHAR pszIfAddr) if (bFlushTable != FALSE) { /* delete arp cache */ - if (FlushIpNetTable(pDelHost->dwIndex) != NO_ERROR) + dwError = FlushIpNetTable(pDelHost->dwIndex); + if (dwError != NO_ERROR) { DoFormatMessage(); goto cleanup; } - else - { - HeapFree(GetProcessHeap(), 0, pDelHost); - return EXIT_SUCCESS; - } } else + { /* copy converted IP address */ pDelHost->dwAddr = dwIpAddr; - /* Add the ARP entry */ - if (DeleteIpNetEntry(pDelHost) != NO_ERROR) - { - DoFormatMessage(); - goto cleanup; + /* Delete the ARP entry */ + dwError = DeleteIpNetEntry(pDelHost); + if (dwError != NO_ERROR) + { + DoFormatMessage(); + goto cleanup; + } } - HeapFree(GetProcessHeap(), 0, pDelHost); - - return EXIT_SUCCESS; - cleanup: if (pIpNetTable != NULL) HeapFree(GetProcessHeap(), 0, pIpNetTable); if (pDelHost != NULL) HeapFree(GetProcessHeap(), 0, pDelHost); - return EXIT_FAILURE; + + return dwError; } /* @@ -508,35 +613,7 @@ INT Deletehost(PTCHAR pszInetAddr, PTCHAR pszIfAddr) */ VOID Usage(VOID) { - _tprintf(_T("\nDisplays and modifies the IP-to-Physical address translation tables used by\n" - "address resolution protocol (ARP).\n" - "\n" - "ARP -s inet_addr eth_addr [if_addr]\n" - "ARP -d inet_addr [if_addr]\n" - "ARP -a [inet_addr] [-N if_addr]\n" - "\n" - " -a Displays current ARP entries by interrogating the current\n" - " protocol data. If inet_addr is specified, the IP and Physical\n" - " addresses for only the specified computer are displayed. If\n" - " more than one network interface uses ARP, entries for each ARP\n" - " table are displayed.\n" - " -g Same as -a.\n" - " inet_addr Specifies an internet address.\n" - " -N if_addr Displays the ARP entries for the network interface specified\n" - " by if_addr.\n" - " -d Deletes the host specified by inet_addr. inet_addr may be\n" - " wildcarded with * to delete all hosts.\n" - " -s Adds the host and associates the Internet address inet_addr\n" - " with the Physical address eth_addr. The Physical address is\n" - " given as 6 hexadecimal bytes separated by hyphens. The entry\n" - " is permanent.\n" - " eth_addr Specifies a physical address.\n" - " if_addr If present, this specifies the Internet address of the\n" - " interface whose address translation table should be modified.\n" - " If not present, the first applicable interface will be used.\n" - "Example:\n" - " > arp -s 157.55.85.212 00-aa-00-62-c6-09 .... Adds a static entry.\n" - " > arp -a .... Displays the arp table.\n\n")); + PrintMessage(10000); } /* @@ -547,59 +624,68 @@ VOID Usage(VOID) */ INT main(int argc, char* argv[]) { + DWORD dwError = NO_ERROR; + if ((argc < 2) || (argc > 5)) { Usage(); return EXIT_FAILURE; } - if (argv[1][0] == '-') + if (argv[1][0] != '-') { - switch (argv[1][1]) - { - case 'a': /* fall through */ - case 'g': - if (argc == 2) - DisplayArpEntries(NULL, NULL); - else if (argc == 3) - DisplayArpEntries(argv[2], NULL); - else if ((argc == 4) && ((strcmp(argv[2], "-N")) == 0)) - DisplayArpEntries(NULL, argv[3]); - else if ((argc == 5) && ((strcmp(argv[3], "-N")) == 0)) - DisplayArpEntries(argv[2], argv[4]); - else - { - Usage(); - return EXIT_FAILURE; - } - break; - case 'd': if (argc == 3) - Deletehost(argv[2], NULL); - else if (argc == 4) - Deletehost(argv[2], argv[3]); - else - { - Usage(); - return EXIT_FAILURE; - } - break; - case 's': if (argc == 4) - Addhost(argv[2], argv[3], NULL); - else if (argc == 5) - Addhost(argv[2], argv[3], argv[4]); - else - { - Usage(); - return EXIT_FAILURE; - } - break; - default: - Usage(); - return EXIT_FAILURE; - } - } - else Usage(); + return EXIT_SUCCESS; + } + + switch (argv[1][1]) + { + case 'a': /* fall through */ + case 'g': + if (argc == 2) + dwError = DisplayArpEntries(NULL, NULL); + else if (argc == 3) + dwError = DisplayArpEntries(argv[2], NULL); + else if ((argc == 4) && ((strcmp(argv[2], "-N")) == 0)) + dwError = DisplayArpEntries(NULL, argv[3]); + else if ((argc == 5) && ((strcmp(argv[3], "-N")) == 0)) + dwError = DisplayArpEntries(argv[2], argv[4]); + else + { + Usage(); + dwError = ERROR_INVALID_PARAMETER; + } + break; + + case 'd': + if (argc == 3) + dwError = Deletehost(argv[2], NULL); + else if (argc == 4) + dwError = Deletehost(argv[2], argv[3]); + else + { + Usage(); + dwError = ERROR_INVALID_PARAMETER; + } + break; + + case 's': + if (argc == 4) + dwError = Addhost(argv[2], argv[3], NULL); + else if (argc == 5) + dwError = Addhost(argv[2], argv[3], argv[4]); + else + { + Usage(); + dwError = ERROR_INVALID_PARAMETER; + } + break; + + default: + Usage(); + dwError = ERROR_INVALID_PARAMETER; + break; + } - return EXIT_SUCCESS; + return (dwError == NO_ERROR) ? EXIT_SUCCESS : EXIT_FAILURE; } diff --git a/base/applications/network/arp/arp.rc b/base/applications/network/arp/arp.rc index f206cd790eecd..0076cca8d9c9e 100644 --- a/base/applications/network/arp/arp.rc +++ b/base/applications/network/arp/arp.rc @@ -3,3 +3,4 @@ #define REACTOS_STR_ORIGINAL_FILENAME "arp.exe" #define REACTOS_STR_ORIGINAL_COPYRIGHT "Ged Murphy (gedmurphy@gmail.com)" #include +#include diff --git a/base/applications/network/ftp/main.c b/base/applications/network/ftp/main.c index 44b10fb6970e1..f2b1c9a0bb396 100644 --- a/base/applications/network/ftp/main.c +++ b/base/applications/network/ftp/main.c @@ -227,7 +227,16 @@ int main(int argc, const char *argv[]) (void) strcpy(home, pw->pw_dir); } #endif - strcpy(home, "C:/"); + cp = getenv("SystemDrive"); + if (cp != NULL && *cp != 0) + { + strcpy(home, cp); + strcat(home, "/"); + } + else + { + strcpy(home, "C:/"); + } if (argc > 0) { if (setjmp(toplevel)) exit(0); diff --git a/base/applications/notepad/lang/uk-UA.rc b/base/applications/notepad/lang/uk-UA.rc index a1ebedb050fb7..c249c64a998fc 100644 --- a/base/applications/notepad/lang/uk-UA.rc +++ b/base/applications/notepad/lang/uk-UA.rc @@ -32,7 +32,7 @@ BEGIN MENUITEM SEPARATOR MENUITEM "В&ихід", CMD_EXIT END - POPUP "Пр&авка" + POPUP "&Редагування" BEGIN MENUITEM "С&касувати\tCtrl+Z", CMD_UNDO MENUITEM SEPARATOR @@ -62,7 +62,7 @@ BEGIN BEGIN MENUITEM "Змі&ст", CMD_HELP_CONTENTS MENUITEM SEPARATOR - MENUITEM "&About Notepad", CMD_HELP_ABOUT_NOTEPAD + MENUITEM "&Про Блокнот", CMD_HELP_ABOUT_NOTEPAD END END @@ -70,37 +70,37 @@ END DIALOG_PAGESETUP DIALOGEX 0, 0, 365, 193 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU | DS_CONTEXTHELP FONT 8, "MS Shell Dlg" -CAPTION "Page Setup" +CAPTION "Налаштування сторінки" BEGIN - GROUPBOX "Preview", 0, 240, 6, 120, 153, BS_GROUPBOX + GROUPBOX "Перегляд", 0, 240, 6, 120, 153, BS_GROUPBOX CONTROL "", rct1, "Static", SS_WHITERECT, 260, 42, 80, 80 CONTROL "", rct2, "Static", SS_GRAYRECT, 340, 46, 4, 80 CONTROL "", rct3, "Static", SS_GRAYRECT, 264, 122, 80, 4 - GROUPBOX "Paper", grp2, 8, 6, 224, 56, BS_GROUPBOX - LTEXT "&Size:", stc2, 16, 22, 36, 8 + GROUPBOX "Папір", grp2, 8, 6, 224, 56, BS_GROUPBOX + LTEXT "&Розмір:", stc2, 16, 22, 36, 8 COMBOBOX cmb2, 64, 20, 160, 160, CBS_SIMPLE | CBS_DROPDOWN | CBS_SORT | WS_GROUP | WS_TABSTOP | WS_VSCROLL - LTEXT "&Tray:", stc3, 16, 42, 36, 8 + LTEXT "&Подача:", stc3, 16, 42, 36, 8 COMBOBOX cmb3, 64, 40, 160, 160, CBS_SIMPLE | CBS_DROPDOWN | CBS_SORT | WS_GROUP | WS_TABSTOP | WS_VSCROLL - GROUPBOX "Orientation", grp1, 8, 66, 64, 56, BS_GROUPBOX - AUTORADIOBUTTON "&Portrait", rad1, 16, 80, 52, 12, BS_AUTORADIOBUTTON - AUTORADIOBUTTON "&Landscape", rad2, 16, 100, 52, 12, BS_AUTORADIOBUTTON - GROUPBOX "Borders", grp4, 80, 66, 152, 56, BS_GROUPBOX - LTEXT "L&eft:", stc15, 88, 82, 30, 8 + GROUPBOX "Орієнтація", grp1, 8, 66, 64, 56, BS_GROUPBOX + AUTORADIOBUTTON "&Книжкова", rad1, 16, 80, 52, 12, BS_AUTORADIOBUTTON + AUTORADIOBUTTON "П&ортретна", rad2, 16, 100, 52, 12, BS_AUTORADIOBUTTON + GROUPBOX "Поля", grp4, 80, 66, 152, 56, BS_GROUPBOX + LTEXT "&Ліве:", stc15, 88, 82, 30, 8 EDITTEXT edt4, 119, 80, 36, 12, WS_TABSTOP | WS_GROUP | WS_BORDER - LTEXT "&Right:", stc16, 159, 82, 30, 8 + LTEXT "Пр&аве:", stc16, 159, 82, 30, 8 EDITTEXT edt6, 190, 80, 36, 12, WS_TABSTOP | WS_GROUP | WS_BORDER - LTEXT "T&op:", stc17, 88, 102, 30, 8 + LTEXT "&Верхнє:", stc17, 88, 102, 30, 8 EDITTEXT edt5, 119, 100, 36, 12, WS_TABSTOP | WS_GROUP | WS_BORDER - LTEXT "&Bottom:", stc18, 159, 102, 30, 8 + LTEXT "&Нижнє:", stc18, 159, 102, 30, 8 EDITTEXT edt7, 190, 100, 36, 12, WS_TABSTOP | WS_GROUP | WS_BORDER - LTEXT "&Header:", 0x140, 8, 132, 40, 15 + LTEXT "Вер&хній колонтитул:", 0x140, 8, 132, 40, 15 EDITTEXT 0x141, 58, 130, 173, 12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL - LTEXT "&Footer:", 0x142, 8, 149, 40, 15 + LTEXT "Н&ижній колонтитул:", 0x142, 8, 149, 40, 15 EDITTEXT 0x143, 58, 147, 173, 12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL - PUSHBUTTON "Help", IDHELP, 8, 170, 50, 14 + PUSHBUTTON "Допомога", IDHELP, 8, 170, 50, 14 DEFPUSHBUTTON "OK", IDOK, 198, 170, 50, 14, BS_PUSHBUTTON - PUSHBUTTON "Cancel", IDCANCEL, 254, 170, 50, 14 - PUSHBUTTON "P&rinter...", psh3, 310, 170, 50, 14 + PUSHBUTTON "Скасувати", IDCANCEL, 254, 170, 50, 14 + PUSHBUTTON "Прин&тер...", psh3, 310, 170, 50, 14 END /* Dialog 'Encoding' */ @@ -143,17 +143,17 @@ BEGIN STRING_ALL_FILES "Усі файли (*.*)" STRING_TEXT_FILES_TXT "Текстові файли (*.txt)" STRING_TOOLARGE "Файл '%s' завеликий для блокнота.\n \ -Будь ласка використайте інший редактор." +Будь ласка, використайте інший редактор." STRING_NOTEXT "Ви не ввели ніякого тексту. \ -\nБудь ласка введіть що-небудь і спробуйте ще раз" +\nБудь ласка, введіть що-небудь і спробуйте ще раз" STRING_DOESNOTEXIST "Файл '%s'\nне існує\n\n \ -Хочете створити новий файл ?" +Хочете створити новий файл?" STRING_NOTSAVED "Файл '%s'\nбув змінений\n\n \ -Хочете зберегти зміни ?" - STRING_NOTFOUND "'%s' can not be found." +Хочете зберегти зміни?" + STRING_NOTFOUND "'%s' не знайдено." STRING_OUT_OF_MEMORY "Недостатньо пам'яті для виконання операції.\ \nЗакрийте один або декілька додатків і повторіть спробу." - STRING_CANNOTFIND "Не можу знайти '%s'" + STRING_CANNOTFIND "Неможливо знайти '%s'" STRING_ANSI "ANSI" STRING_UNICODE "Юнікод" STRING_UNICODE_BE "Юнікод (big endian)" @@ -162,8 +162,8 @@ BEGIN STRING_LF "Unix (LF)" STRING_CR "Mac (CR)" STRING_LINE_COLUMN "Рядок %d, стовпчик %d" - STRING_PRINTERROR "Cannot print the file '%s'.\n\nMake sure that the printer is turned on and is configured properly." + STRING_PRINTERROR "Неможливо розпечатати файл '%s'.\n\nПереконайтесь, що принтер ввімкнено, та налаштовано." - STRING_TEXT_DOCUMENT "Text Document" + STRING_TEXT_DOCUMENT "Текстовий документ" STRING_NOTEPAD_AUTHORS "Copyright 1997,98 Marcel Baur, 2000 Mike McCormack, 2002 Sylvain Petreolle, 2002 Andriy Palamarchuk\r\n" END diff --git a/base/applications/rapps/CMakeLists.txt b/base/applications/rapps/CMakeLists.txt index ea0cf7d34f874..33225ae5c04c1 100644 --- a/base/applications/rapps/CMakeLists.txt +++ b/base/applications/rapps/CMakeLists.txt @@ -7,7 +7,6 @@ include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/cryptlib) include_directories(include) list(APPEND SOURCE - aboutdlg.cpp available.cpp cabinet.cpp gui.cpp diff --git a/base/applications/rapps/aboutdlg.cpp b/base/applications/rapps/aboutdlg.cpp deleted file mode 100644 index 0758009b94350..0000000000000 --- a/base/applications/rapps/aboutdlg.cpp +++ /dev/null @@ -1,28 +0,0 @@ -/* - * PROJECT: ReactOS Applications Manager - * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+) - * FILE: base/applications/rapps/aboutdlg.cpp - * PURPOSE: About Dialog - * COPYRIGHT: Copyright 2009 Dmitry Chapyshev (dmitry@reactos.org) - * Copyright 2017 Alexander Shaposhikov (sanchaez@reactos.org) - */ -#include "rapps.h" - -static INT_PTR CALLBACK AboutDlgProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) -{ - if ((Msg == WM_COMMAND) && - (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)) - { - return EndDialog(hDlg, LOWORD(wParam)); - } - - return FALSE; -} - -VOID ShowAboutDialog() -{ - DialogBoxW(hInst, - MAKEINTRESOURCEW(IDD_ABOUT_DIALOG), - hMainWnd, - AboutDlgProc); -} diff --git a/base/applications/rapps/gui.cpp b/base/applications/rapps/gui.cpp index 43f27202e917b..65209073ce6dc 100644 --- a/base/applications/rapps/gui.cpp +++ b/base/applications/rapps/gui.cpp @@ -1469,6 +1469,19 @@ class CMainWindow : } } + VOID ShowAboutDlg() + { + ATL::CStringW szApp; + ATL::CStringW szAuthors; + HICON hIcon; + + szApp.LoadStringW(IDS_APPTITLE); + szAuthors.LoadStringW(IDS_APP_AUTHORS); + hIcon = LoadIconW(hInst, MAKEINTRESOURCEW(IDI_MAIN)); + ShellAboutW(m_hWnd, szApp, szAuthors, hIcon); + DestroyIcon(hIcon); + } + VOID OnCommand(WPARAM wParam, LPARAM lParam) { WORD wCommand = LOWORD(wParam); @@ -1605,7 +1618,7 @@ class CMainWindow : break; case ID_ABOUT: - ShowAboutDialog(); + ShowAboutDlg(); break; case ID_CHECK_ALL: diff --git a/base/applications/rapps/include/dialogs.h b/base/applications/rapps/include/dialogs.h index 5247462d59fc0..52fb721072972 100644 --- a/base/applications/rapps/include/dialogs.h +++ b/base/applications/rapps/include/dialogs.h @@ -8,9 +8,6 @@ // Settings dialog (settingsdlg.cpp) VOID CreateSettingsDlg(HWND hwnd); -// About dialog (aboutdlg.cpp) -VOID ShowAboutDialog(); - //Main window VOID ShowMainWindow(INT nShowCmd); diff --git a/base/applications/rapps/include/resource.h b/base/applications/rapps/include/resource.h index c922cbbe534c3..e5cfc14d27e0b 100644 --- a/base/applications/rapps/include/resource.h +++ b/base/applications/rapps/include/resource.h @@ -59,7 +59,6 @@ #define IDD_SETTINGS_DIALOG 300 #define IDD_INSTALL_DIALOG 301 #define IDD_DOWNLOAD_DIALOG 302 -#define IDD_ABOUT_DIALOG 303 /* Menus */ #define IDR_MAINMENU 500 @@ -114,6 +113,7 @@ #define IDS_SELECTEDFORINST 129 #define IDS_MISMATCH_CERT_INFO 130 #define IDS_UNABLE_PATH 131 +#define IDS_APP_AUTHORS 132 /* Tooltips */ diff --git a/base/applications/rapps/lang/bg-BG.rc b/base/applications/rapps/lang/bg-BG.rc index 0d58892311b95..b85c32352cab3 100644 --- a/base/applications/rapps/lang/bg-BG.rc +++ b/base/applications/rapps/lang/bg-BG.rc @@ -104,16 +104,6 @@ BEGIN PUSHBUTTON "Отказ", IDCANCEL, 85, 53, 50, 15, WS_GROUP | WS_TABSTOP END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 210, 66 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -CAPTION "За" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 - LTEXT "Управителят за приложожения на РеактОС\nВъзпроизводствени права (C) 2009\nДмитрий Чапъйшев (dmitry@reactos.org)", IDC_STATIC, 48, 7, 150, 39 - DEFPUSHBUTTON "Затваряне", IDOK, 133, 46, 50, 14 -END - STRINGTABLE BEGIN IDS_TOOLTIP_INSTALL "Слагане" @@ -188,6 +178,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "Управителят за приложения на РеактОС" + IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev" IDS_SEARCH_TEXT "Търсене" IDS_INSTALL "Слагане" IDS_UNINSTALL "Махане" diff --git a/base/applications/rapps/lang/cs-CZ.rc b/base/applications/rapps/lang/cs-CZ.rc index a4843457cc429..936b50825d5c0 100644 --- a/base/applications/rapps/lang/cs-CZ.rc +++ b/base/applications/rapps/lang/cs-CZ.rc @@ -105,16 +105,6 @@ BEGIN PUSHBUTTON "Storno", IDCANCEL, 85, 53, 50, 15, WS_GROUP | WS_TABSTOP END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -CAPTION "O programu" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 - LTEXT "ReactOS Správce aplikací\nCopyright (C) 2009\nDmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39 - DEFPUSHBUTTON "Zavřít", IDOK, 133, 46, 50, 14 -END - STRINGTABLE BEGIN IDS_TOOLTIP_INSTALL "Instalovat" @@ -189,6 +179,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "ReactOS Správce aplikací" + IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev" IDS_SEARCH_TEXT "Hledat…" IDS_INSTALL "Instalovat" IDS_UNINSTALL "Odinstalovat" diff --git a/base/applications/rapps/lang/de-DE.rc b/base/applications/rapps/lang/de-DE.rc index adc081ac0afed..dd412b3089615 100644 --- a/base/applications/rapps/lang/de-DE.rc +++ b/base/applications/rapps/lang/de-DE.rc @@ -100,16 +100,6 @@ BEGIN PUSHBUTTON "Abbrechen", IDCANCEL, 85, 53, 50, 15, WS_GROUP | WS_TABSTOP END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -CAPTION "Über" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 - LTEXT "ReactOS-Anwendungsmanager\nCopyright (C) 2009\nby Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39 - DEFPUSHBUTTON "Schließen", IDOK, 133, 46, 50, 14 -END - STRINGTABLE BEGIN IDS_TOOLTIP_INSTALL "Installieren" @@ -184,6 +174,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "ReactOS-Anwendungsmanager" + IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev" IDS_SEARCH_TEXT "Suche…" IDS_INSTALL "Installieren" IDS_UNINSTALL "Deinstallieren" diff --git a/base/applications/rapps/lang/en-US.rc b/base/applications/rapps/lang/en-US.rc index aa224bf0bd33b..b5c8a70385603 100644 --- a/base/applications/rapps/lang/en-US.rc +++ b/base/applications/rapps/lang/en-US.rc @@ -100,16 +100,6 @@ BEGIN PUSHBUTTON "Cancel", IDCANCEL, 85, 53, 50, 15, WS_GROUP | WS_TABSTOP END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -CAPTION "About" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 - LTEXT "ReactOS Applications Manager\nCopyright (C) 2009\nby Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39 - DEFPUSHBUTTON "Close", IDOK, 133, 46, 50, 14 -END - STRINGTABLE BEGIN IDS_TOOLTIP_INSTALL "Install" @@ -184,6 +174,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "ReactOS Applications Manager" + IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev" IDS_SEARCH_TEXT "Search…" IDS_INSTALL "Install" IDS_UNINSTALL "Uninstall" diff --git a/base/applications/rapps/lang/es-ES.rc b/base/applications/rapps/lang/es-ES.rc index 3c64018eb714b..13eb163c9469c 100644 --- a/base/applications/rapps/lang/es-ES.rc +++ b/base/applications/rapps/lang/es-ES.rc @@ -103,16 +103,6 @@ BEGIN PUSHBUTTON "Cancelar", IDCANCEL, 85, 53, 50, 15, WS_GROUP | WS_TABSTOP END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -CAPTION "Acerca de" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 - LTEXT "Administrador de aplicaciones de ReactOS\nCopyright (C) 2009\nCreado por Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39 - DEFPUSHBUTTON "Cerrar", IDOK, 133, 46, 50, 14 -END - STRINGTABLE BEGIN IDS_TOOLTIP_INSTALL "Instalar" @@ -187,6 +177,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "Administrador de aplicaciones de ReactOS" + IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev" IDS_SEARCH_TEXT "Buscar…" IDS_INSTALL "Instalar" IDS_UNINSTALL "Desinstalar" diff --git a/base/applications/rapps/lang/et-EE.rc b/base/applications/rapps/lang/et-EE.rc index 8a7e2960e0bdf..14edc6d4de88b 100644 --- a/base/applications/rapps/lang/et-EE.rc +++ b/base/applications/rapps/lang/et-EE.rc @@ -108,16 +108,6 @@ BEGIN PUSHBUTTON "Loobu", IDCANCEL, 85, 53, 50, 15, WS_GROUP | WS_TABSTOP END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -CAPTION "Info" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 - LTEXT "ReactOS'i Rakenduste Haldur\nAutoriõigus (C) 2009\nby Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39 - DEFPUSHBUTTON "Sule", IDOK, 133, 46, 50, 14 -END - STRINGTABLE BEGIN IDS_TOOLTIP_INSTALL "Installi" @@ -192,6 +182,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "ReactOS'i Rakenduste Haldur" + IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev" IDS_SEARCH_TEXT "Otsi…" IDS_INSTALL "Installi" IDS_UNINSTALL "Desinstalli" diff --git a/base/applications/rapps/lang/fr-FR.rc b/base/applications/rapps/lang/fr-FR.rc index 998be73d39e86..05975ecd4e128 100644 --- a/base/applications/rapps/lang/fr-FR.rc +++ b/base/applications/rapps/lang/fr-FR.rc @@ -100,16 +100,6 @@ BEGIN PUSHBUTTON "Annuler", IDCANCEL, 85, 53, 50, 15, WS_GROUP | WS_TABSTOP END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -CAPTION "À propos" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 - LTEXT "ReactOS Applications Manager\nCopyright (C) 2009\npar Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39 - DEFPUSHBUTTON "Fermer", IDOK, 133, 46, 50, 14 -END - STRINGTABLE BEGIN IDS_TOOLTIP_INSTALL "Installer" @@ -184,6 +174,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "ReactOS Applications Manager" + IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev" IDS_SEARCH_TEXT "Chercher…" IDS_INSTALL "Installer" IDS_UNINSTALL "Désinstaller" diff --git a/base/applications/rapps/lang/he-IL.rc b/base/applications/rapps/lang/he-IL.rc index 1cf1f5cd98169..c0bb79d3bb843 100644 --- a/base/applications/rapps/lang/he-IL.rc +++ b/base/applications/rapps/lang/he-IL.rc @@ -106,17 +106,6 @@ BEGIN PUSHBUTTON "ביטול", IDCANCEL, 83, 53, 50, 15, WS_GROUP | WS_TABSTOP END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -EXSTYLE WS_EX_LAYOUTRTL -CAPTION "אודות" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 - LTEXT "ReactOS Applications Manager\nCopyright (C) 2009\nby Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39 - DEFPUSHBUTTON "סגירה", IDOK, 133, 46, 50, 14 -END - STRINGTABLE BEGIN IDS_TOOLTIP_INSTALL "התקנה" @@ -191,6 +180,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "מנהל היישומים של ReactOS" + IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev" IDS_SEARCH_TEXT "חפש…" IDS_INSTALL "התקנה" IDS_UNINSTALL "הסרה" diff --git a/base/applications/rapps/lang/id-ID.rc b/base/applications/rapps/lang/id-ID.rc index 186f6316a804c..1a226d86760f6 100644 --- a/base/applications/rapps/lang/id-ID.rc +++ b/base/applications/rapps/lang/id-ID.rc @@ -100,16 +100,6 @@ BEGIN PUSHBUTTON "Batal", IDCANCEL, 85, 53, 50, 15, WS_GROUP | WS_TABSTOP END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -CAPTION "Tentang" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 - LTEXT "Manajer Aplikasi ReactOS\nHak cipta (C) 2009\nby Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39 - DEFPUSHBUTTON "Tutup", IDOK, 133, 46, 50, 14 -END - STRINGTABLE BEGIN IDS_TOOLTIP_INSTALL "Pasang" @@ -184,6 +174,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "Manajer Aplikasi ReactOS" + IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev" IDS_SEARCH_TEXT "Cari…" IDS_INSTALL "Pasang" IDS_UNINSTALL "Bongkar" diff --git a/base/applications/rapps/lang/it-IT.rc b/base/applications/rapps/lang/it-IT.rc index 87156315e7629..8b9807045ab94 100644 --- a/base/applications/rapps/lang/it-IT.rc +++ b/base/applications/rapps/lang/it-IT.rc @@ -100,16 +100,6 @@ BEGIN PUSHBUTTON "Annulla", IDCANCEL, 85, 53, 50, 15, WS_GROUP | WS_TABSTOP END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -CAPTION "Informazioni" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 - LTEXT "Gestione applicazioni di ReactOS\nCopyright (C) 2009\nby Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39 - DEFPUSHBUTTON "Chiudi", IDOK, 133, 46, 50, 14 -END - STRINGTABLE BEGIN IDS_TOOLTIP_INSTALL "Installa" @@ -184,6 +174,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "ReactOS Gestione applicazioni" + IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev" IDS_SEARCH_TEXT "Cerca…" IDS_INSTALL "Installa" IDS_UNINSTALL "Rimuovi" diff --git a/base/applications/rapps/lang/ja-JP.rc b/base/applications/rapps/lang/ja-JP.rc index 103eee5ae1583..73ed8f798f264 100644 --- a/base/applications/rapps/lang/ja-JP.rc +++ b/base/applications/rapps/lang/ja-JP.rc @@ -100,16 +100,6 @@ BEGIN PUSHBUTTON "キャンセル", IDCANCEL, 85, 53, 50, 15, WS_GROUP | WS_TABSTOP END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -CAPTION "バージョン情報" -FONT 9, "MS UI Gothic" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 - LTEXT "ReactOS アプリケーション マネージャ\nCopyright (C) 2009\nby Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39 - DEFPUSHBUTTON "閉じる", IDOK, 133, 46, 50, 14 -END - STRINGTABLE BEGIN IDS_TOOLTIP_INSTALL "インストール" @@ -184,6 +174,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "ReactOS アプリケーション マネージャ" + IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev" IDS_SEARCH_TEXT "検索..." IDS_INSTALL "インストール" IDS_UNINSTALL "アンインストール" diff --git a/base/applications/rapps/lang/no-NO.rc b/base/applications/rapps/lang/no-NO.rc index c2ea98c36c574..c45d87eb9da0f 100644 --- a/base/applications/rapps/lang/no-NO.rc +++ b/base/applications/rapps/lang/no-NO.rc @@ -100,16 +100,6 @@ BEGIN PUSHBUTTON "Avbryt", IDCANCEL, 85, 53, 50, 15, WS_GROUP | WS_TABSTOP END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -CAPTION "Om" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 - LTEXT "ReactOS Programbehandler\nEnerett (C) 2009\nav Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39 - DEFPUSHBUTTON "Lukk", IDOK, 133, 46, 50, 14 -END - STRINGTABLE BEGIN IDS_TOOLTIP_INSTALL "Installere" @@ -184,6 +174,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "ReactOS programbehandler" + IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev" IDS_SEARCH_TEXT "Søk…" IDS_INSTALL "Installere" IDS_UNINSTALL "Avinstallere" diff --git a/base/applications/rapps/lang/pl-PL.rc b/base/applications/rapps/lang/pl-PL.rc index 09e76da27c95d..5a5e40990fb74 100644 --- a/base/applications/rapps/lang/pl-PL.rc +++ b/base/applications/rapps/lang/pl-PL.rc @@ -108,16 +108,6 @@ BEGIN PUSHBUTTON "Anuluj", IDCANCEL, 85, 53, 50, 15, WS_GROUP | WS_TABSTOP END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -CAPTION "O programie" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 - LTEXT "Menedżer aplikacji ReactOS\nCopyright (C) 2009\nby Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39 - DEFPUSHBUTTON "Zamknij", IDOK, 133, 46, 50, 14 -END - STRINGTABLE BEGIN IDS_TOOLTIP_INSTALL "Instaluj" @@ -192,6 +182,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "Menedżer aplikacji ReactOS" + IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev" IDS_SEARCH_TEXT "Szukaj…" IDS_INSTALL "Instaluj" IDS_UNINSTALL "Odinstaluj" diff --git a/base/applications/rapps/lang/pt-BR.rc b/base/applications/rapps/lang/pt-BR.rc index fe68d272fd2cf..885b9f16652ad 100644 --- a/base/applications/rapps/lang/pt-BR.rc +++ b/base/applications/rapps/lang/pt-BR.rc @@ -102,16 +102,6 @@ BEGIN PUSHBUTTON "Cancelar", IDCANCEL, 85, 53, 50, 15, WS_GROUP | WS_TABSTOP END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -CAPTION "Sobre" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 - LTEXT "Central de Aplicativos ReactOS\nCopyright (C) 2009\npor Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39 - DEFPUSHBUTTON "Fechar", IDOK, 133, 46, 50, 14 -END - STRINGTABLE BEGIN IDS_TOOLTIP_INSTALL "Instalar" @@ -186,6 +176,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "Central de Aplicativos ReactOS" + IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev" IDS_SEARCH_TEXT "Procurar…" IDS_INSTALL "Instalar" IDS_UNINSTALL "Desinstalar" diff --git a/base/applications/rapps/lang/pt-PT.rc b/base/applications/rapps/lang/pt-PT.rc index aaee19a06f580..75c9b499d2593 100644 --- a/base/applications/rapps/lang/pt-PT.rc +++ b/base/applications/rapps/lang/pt-PT.rc @@ -102,16 +102,6 @@ BEGIN PUSHBUTTON "Cancelar", IDCANCEL, 85, 53, 50, 15, WS_GROUP | WS_TABSTOP END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -CAPTION "Sobre" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 - LTEXT "Central de Aplicativos ReactOS\nCopyright (C) 2009\npor Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39 - DEFPUSHBUTTON "Fechar", IDOK, 133, 46, 50, 14 -END - STRINGTABLE BEGIN IDS_TOOLTIP_INSTALL "Instalar" @@ -186,6 +176,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "Central de Aplicativos ReactOS" + IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev" IDS_SEARCH_TEXT "Procurar…" IDS_INSTALL "Instalar" IDS_UNINSTALL "Desinstalar" diff --git a/base/applications/rapps/lang/ro-RO.rc b/base/applications/rapps/lang/ro-RO.rc index d89583ff464a1..89142e0a930f6 100644 --- a/base/applications/rapps/lang/ro-RO.rc +++ b/base/applications/rapps/lang/ro-RO.rc @@ -109,16 +109,6 @@ BEGIN PUSHBUTTON "A&nulează", IDCANCEL, 85, 53, 50, 15, WS_GROUP | WS_TABSTOP END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -CAPTION "Despre gestionarul de programe" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 - LTEXT "Gestionar de programe ReactOS\nDrept de autor (C) 2009\nde către Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39 - DEFPUSHBUTTON "Î&nchide", IDOK, 133, 46, 50, 14 -END - STRINGTABLE BEGIN IDS_TOOLTIP_INSTALL "Instalează" @@ -193,6 +183,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "Gestionar de programe" + IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev" IDS_SEARCH_TEXT "Căutare…" IDS_INSTALL "Instalează" IDS_UNINSTALL "Dezinstalează" diff --git a/base/applications/rapps/lang/ru-RU.rc b/base/applications/rapps/lang/ru-RU.rc index 2f945347554c3..375feee754774 100644 --- a/base/applications/rapps/lang/ru-RU.rc +++ b/base/applications/rapps/lang/ru-RU.rc @@ -100,16 +100,6 @@ BEGIN PUSHBUTTON "Отмена", IDCANCEL, 85, 53, 50, 15, WS_GROUP | WS_TABSTOP END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -CAPTION "О программе" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 - LTEXT "Менеджер приложений ReactOS\nАвторские права (C) 2009\nДмитрий Чапышев (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39 - DEFPUSHBUTTON "Закрыть", IDOK, 133, 46, 50, 14 -END - STRINGTABLE BEGIN IDS_TOOLTIP_INSTALL "Установить" @@ -184,6 +174,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "Менеджер приложений ReactOS" + IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev" IDS_SEARCH_TEXT "Поиск…" IDS_INSTALL "Установить" IDS_UNINSTALL "Удалить" diff --git a/base/applications/rapps/lang/sk-SK.rc b/base/applications/rapps/lang/sk-SK.rc index f991dc52995f6..59263fab442bf 100644 --- a/base/applications/rapps/lang/sk-SK.rc +++ b/base/applications/rapps/lang/sk-SK.rc @@ -105,16 +105,6 @@ BEGIN PUSHBUTTON "Zrušiť", IDCANCEL, 85, 53, 50, 15, WS_GROUP | WS_TABSTOP END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -CAPTION "Čo je Manažér aplikácií systému ReactOS" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 - LTEXT "Manažér aplikácií systému ReactOS\nAutorské práva (C) 2009\nod Dmitry Chapyshev (dmitry@reactos.org)\nPreklad: Mário Kačmár (kario@szm.sk)", IDC_STATIC, 48, 7, 130, 39 - DEFPUSHBUTTON "Zavrieť", IDOK, 133, 46, 50, 14 -END - STRINGTABLE BEGIN IDS_TOOLTIP_INSTALL "Inštalovať" @@ -189,6 +179,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "Manažér aplikácií systému ReactOS" + IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev" IDS_SEARCH_TEXT "Hľadať…" IDS_INSTALL "Inštalovať" IDS_UNINSTALL "Odinštalovať" diff --git a/base/applications/rapps/lang/sq-AL.rc b/base/applications/rapps/lang/sq-AL.rc index c6e2fe19c0213..3acc315d3a40d 100644 --- a/base/applications/rapps/lang/sq-AL.rc +++ b/base/applications/rapps/lang/sq-AL.rc @@ -104,16 +104,6 @@ BEGIN PUSHBUTTON "Anulo", IDCANCEL, 85, 53, 50, 15, WS_GROUP | WS_TABSTOP END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -CAPTION "Rreth" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 - LTEXT "ReactOS Applications Manager\nCopyright (C) 2009\nnga Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39 - DEFPUSHBUTTON "Close", IDOK, 133, 46, 50, 14 -END - STRINGTABLE BEGIN IDS_TOOLTIP_INSTALL "Instalo" @@ -188,6 +178,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "ReactOS Applications Manager" + IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev" IDS_SEARCH_TEXT "Kerko…" IDS_INSTALL "Instalo" IDS_UNINSTALL "Uninstall" diff --git a/base/applications/rapps/lang/sv-SE.rc b/base/applications/rapps/lang/sv-SE.rc index 2943417b69c32..4087f73dcae4a 100644 --- a/base/applications/rapps/lang/sv-SE.rc +++ b/base/applications/rapps/lang/sv-SE.rc @@ -107,16 +107,6 @@ BEGIN PUSHBUTTON "Avbryt", IDCANCEL, 85, 53, 50, 15, WS_GROUP | WS_TABSTOP END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -CAPTION "Om" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 - LTEXT "ReactOS Programhanterare\nCopyright (C) 2009\nav Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39 - DEFPUSHBUTTON "Stäng", IDOK, 133, 46, 50, 14 -END - STRINGTABLE BEGIN IDS_TOOLTIP_INSTALL "Installera" @@ -191,6 +181,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "ReactOS programhanterare" + IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev" IDS_SEARCH_TEXT "Sök…" IDS_INSTALL "Installera" IDS_UNINSTALL "Avinstallera" diff --git a/base/applications/rapps/lang/tr-TR.rc b/base/applications/rapps/lang/tr-TR.rc index f3c3691702261..f4a5d710f1ad4 100644 --- a/base/applications/rapps/lang/tr-TR.rc +++ b/base/applications/rapps/lang/tr-TR.rc @@ -102,16 +102,6 @@ BEGIN PUSHBUTTON "İptal", IDCANCEL, 85, 53, 50, 15, WS_GROUP | WS_TABSTOP END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -CAPTION "Hakkında" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 - LTEXT "ReactOS Uygulama Yöneticisi\nTelif Hakkı: 2009\nDmitry Chapyshev (dmitry@reactos.org) ile.", IDC_STATIC, 48, 7, 130, 39 - DEFPUSHBUTTON "Tamam", IDOK, 133, 46, 50, 14 -END - STRINGTABLE BEGIN IDS_TOOLTIP_INSTALL "Kur" @@ -186,6 +176,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "ReactOS Uygulama Yöneticisi" + IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev" IDS_SEARCH_TEXT "Ara" IDS_INSTALL "Kur" IDS_UNINSTALL "Kaldır" diff --git a/base/applications/rapps/lang/uk-UA.rc b/base/applications/rapps/lang/uk-UA.rc index d30f20d63e2c6..e884dd0dfe264 100644 --- a/base/applications/rapps/lang/uk-UA.rc +++ b/base/applications/rapps/lang/uk-UA.rc @@ -108,16 +108,6 @@ BEGIN PUSHBUTTON "Скасувати", IDCANCEL, 85, 53, 50, 15, WS_GROUP | WS_TABSTOP END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -CAPTION "Про програму…" -FONT 8, "MS Shell Dlg" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 - LTEXT "Менеджер додатків ReactOS\nCopyright (C) 2009\nby Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39 - DEFPUSHBUTTON "Закрити", IDOK, 133, 46, 50, 14 -END - STRINGTABLE BEGIN IDS_TOOLTIP_INSTALL "Встановити" @@ -192,6 +182,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "Менеджер додатків ReactOS" + IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev" IDS_SEARCH_TEXT "Пошук…" IDS_INSTALL "Встановити" IDS_UNINSTALL "Видалити" diff --git a/base/applications/rapps/lang/zh-CN.rc b/base/applications/rapps/lang/zh-CN.rc index 42c4ee23a3ef3..464ab93423474 100644 --- a/base/applications/rapps/lang/zh-CN.rc +++ b/base/applications/rapps/lang/zh-CN.rc @@ -63,7 +63,7 @@ BEGIN AUTOCHECKBOX "保存窗口位置(&S)", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12 AUTOCHECKBOX "启动时更新可获得的程序列表(&U)", IDC_UPDATE_AVLIST, 15, 29, 222, 12 AUTOCHECKBOX "将程序的安装和卸载记录到日志(&L)", IDC_LOG_ENABLED, 15, 46, 219, 12 - GROUPBOX "正在下载", -1, 4, 65, 240, 51 + GROUPBOX "下载设置", -1, 4, 65, 240, 51 LTEXT "下载文件夹: ", -1, 16, 75, 100, 9 EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP | ES_AUTOHSCROLL PUSHBUTTON "选择(&C)", IDC_CHOOSE, 187, 85, 50, 14 @@ -72,9 +72,9 @@ BEGIN CONTROL "使用系统代理设置", IDC_PROXY_DEFAULT, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 130, 210, 10 CONTROL "直连 (无代理)", IDC_NO_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 145, 210, 10 CONTROL "代理服务器", IDC_USE_PROXY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 15, 160, 74, 10 - EDITTEXT IDC_PROXY_SERVER, 90, 160, 147, 12, ES_AUTOHSCROLL | WS_DISABLED - LTEXT "为...不使用代理", -1, 27, 175, 64, 10 - EDITTEXT IDC_NO_PROXY_FOR, 90, 175, 147, 12, ES_AUTOHSCROLL | WS_DISABLED + EDITTEXT IDC_PROXY_SERVER, 97, 160, 140, 12, ES_AUTOHSCROLL | WS_DISABLED + LTEXT "不使用代理的地址", -1, 27, 175, 64, 10 + EDITTEXT IDC_NO_PROXY_FOR, 97, 175, 140, 12, ES_AUTOHSCROLL | WS_DISABLED PUSHBUTTON "默认", IDC_DEFAULT_SETTINGS, 8, 195, 60, 14 DEFPUSHBUTTON "确定", IDOK, 116, 195, 60, 14 PUSHBUTTON "取消", IDCANCEL, 181, 195, 60, 14 @@ -102,16 +102,6 @@ BEGIN PUSHBUTTON "取消", IDCANCEL, 85, 53, 50, 15, WS_GROUP | WS_TABSTOP END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -CAPTION "关于" -FONT 9, "宋体" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 - LTEXT "ReactOS 程序管理器\n版权所有 (C) 2009\n作者 Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39 - DEFPUSHBUTTON "关闭", IDOK, 133, 46, 50, 14 -END - STRINGTABLE BEGIN IDS_TOOLTIP_INSTALL "安装" @@ -180,12 +170,13 @@ BEGIN IDS_CAT_SCIENCE "科学" IDS_CAT_TOOLS "工具" IDS_CAT_VIDEO "视频" - IDS_CAT_THEMES "Themes" + IDS_CAT_THEMES "主题" END STRINGTABLE BEGIN IDS_APPTITLE "ReactOS 程序管理器" + IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev" IDS_SEARCH_TEXT "搜索…" IDS_INSTALL "安装" IDS_UNINSTALL "卸载" @@ -215,7 +206,7 @@ BEGIN IDS_INSTALL_SELECTED "安装已选中的" IDS_SELECTEDFORINST "选中以安装" IDS_MISMATCH_CERT_INFO "所使用的证书未知:\n主题: %s\n发行方: %s\n您是否仍然想继续?" - IDS_UNABLE_PATH "Incorrect path format." + IDS_UNABLE_PATH "不正确的URL格式。" END STRINGTABLE diff --git a/base/applications/rapps/lang/zh-TW.rc b/base/applications/rapps/lang/zh-TW.rc index d653c9057adf2..789232569deef 100644 --- a/base/applications/rapps/lang/zh-TW.rc +++ b/base/applications/rapps/lang/zh-TW.rc @@ -102,16 +102,6 @@ BEGIN PUSHBUTTON "取消", IDCANCEL, 85, 53, 50, 15, WS_GROUP | WS_TABSTOP END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -CAPTION "關於" -FONT 9, "新細明體" -BEGIN - ICON IDI_MAIN, IDC_STATIC, 10, 10, 7, 30 - LTEXT "ReactOS 程式管理員 版權所有 (C) 2009\n作者 Dmitry Chapyshev (dmitry@reactos.org)", IDC_STATIC, 48, 7, 130, 39 - DEFPUSHBUTTON "關閉", IDOK, 133, 46, 50, 14 -END - STRINGTABLE BEGIN IDS_TOOLTIP_INSTALL "安裝" @@ -186,6 +176,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "ReactOS 程式管理員" + IDS_APP_AUTHORS "Copyright 2009 Dmitry Chapyshev" IDS_SEARCH_TEXT "搜索…" IDS_INSTALL "安裝" IDS_UNINSTALL "解除安裝" diff --git a/base/applications/rapps/loaddlg.cpp b/base/applications/rapps/loaddlg.cpp index b40d69288f78b..69d4ecdc93b16 100644 --- a/base/applications/rapps/loaddlg.cpp +++ b/base/applications/rapps/loaddlg.cpp @@ -404,7 +404,7 @@ INT_PTR CALLBACK CDownloadManager::DownloadDlgProc(HWND Dlg, UINT uMsg, WPARAM w SendMessageW(Dlg, WM_SETICON, ICON_SMALL, (LPARAM) hIconSm); } - SetWindowLongW(Dlg, GWLP_USERDATA, 0); + SetWindowLongPtrW(Dlg, GWLP_USERDATA, 0); HWND Item = GetDlgItem(Dlg, IDC_DOWNLOAD_PROGRESS); if (Item) { diff --git a/base/applications/regedit/childwnd.c b/base/applications/regedit/childwnd.c index e5c2788da15a7..a10f11ea96d96 100644 --- a/base/applications/regedit/childwnd.c +++ b/base/applications/regedit/childwnd.c @@ -228,11 +228,12 @@ LRESULT CALLBACK AddressBarProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lPar return CallWindowProcW(oldwndproc, hwnd, uMsg, wParam, lParam); } -static VOID +VOID UpdateAddress(HTREEITEM hItem, HKEY hRootKey, LPCWSTR pszPath) { LPCWSTR keyPath, rootName; LPWSTR fullPath; + DWORD cbFullPath; /* Wipe the listview, the status bar and the address bar if the root key was selected */ if (TreeView_GetParent(g_pChildWnd->hTreeWnd, hItem) == NULL) @@ -252,33 +253,36 @@ UpdateAddress(HTREEITEM hItem, HKEY hRootKey, LPCWSTR pszPath) { RefreshListView(g_pChildWnd->hListWnd, hRootKey, keyPath); rootName = get_root_key_name(hRootKey); - fullPath = HeapAlloc(GetProcessHeap(), 0, (wcslen(rootName) + 1 + wcslen(keyPath) + 1) * sizeof(WCHAR)); + cbFullPath = (wcslen(rootName) + 1 + wcslen(keyPath) + 1) * sizeof(WCHAR); + fullPath = HeapAlloc(GetProcessHeap(), 0, cbFullPath); if (fullPath) { /* set (correct) the address bar text */ if (keyPath[0] != L'\0') - swprintf(fullPath, L"%s\\%s", rootName, keyPath); + swprintf(fullPath, L"%s%s%s", rootName, keyPath[0]==L'\\'?L"":L"\\", keyPath); else fullPath = wcscpy(fullPath, rootName); + SendMessageW(hStatusBar, SB_SETTEXTW, 0, (LPARAM)fullPath); SendMessageW(g_pChildWnd->hAddressBarWnd, WM_SETTEXT, 0, (LPARAM)fullPath); HeapFree(GetProcessHeap(), 0, fullPath); + /* disable hive manipulation items temporarily (enable only if necessary) */ - EnableMenuItem(GetSubMenu(hMenuFrame,0), ID_REGISTRY_LOADHIVE, MF_BYCOMMAND | MF_GRAYED); - EnableMenuItem(GetSubMenu(hMenuFrame,0), ID_REGISTRY_UNLOADHIVE, MF_BYCOMMAND | MF_GRAYED); + EnableMenuItem(hMenuFrame, ID_REGISTRY_LOADHIVE, MF_BYCOMMAND | MF_GRAYED); + EnableMenuItem(hMenuFrame, ID_REGISTRY_UNLOADHIVE, MF_BYCOMMAND | MF_GRAYED); /* compare the strings to see if we should enable/disable the "Load Hive" menus accordingly */ - if (!(_wcsicmp(rootName, L"HKEY_LOCAL_MACHINE") && - _wcsicmp(rootName, L"HKEY_USERS"))) + if (_wcsicmp(rootName, L"HKEY_LOCAL_MACHINE") != 0 || + _wcsicmp(rootName, L"HKEY_USERS") != 0) { /* * enable the unload menu item if at the root, otherwise * enable the load menu item if there is no slash in * keyPath (ie. immediate child selected) */ - if(keyPath[0] == L'\0') - EnableMenuItem(GetSubMenu(hMenuFrame,0), ID_REGISTRY_LOADHIVE, MF_BYCOMMAND | MF_ENABLED); - else if(!wcschr(keyPath, L'\\')) - EnableMenuItem(GetSubMenu(hMenuFrame,0), ID_REGISTRY_UNLOADHIVE, MF_BYCOMMAND | MF_ENABLED); + if (keyPath[0] == UNICODE_NULL) + EnableMenuItem(hMenuFrame, ID_REGISTRY_LOADHIVE, MF_BYCOMMAND | MF_ENABLED); + else if (!wcschr(keyPath, L'\\')) + EnableMenuItem(hMenuFrame, ID_REGISTRY_UNLOADHIVE, MF_BYCOMMAND | MF_ENABLED); } } } @@ -472,111 +476,33 @@ LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPa break; case WM_NOTIFY: - if ((int)wParam == TREE_WINDOW && g_pChildWnd != NULL) + if (g_pChildWnd == NULL) break; + + if (((LPNMHDR)lParam)->idFrom == TREE_WINDOW) { - switch (((LPNMHDR)lParam)->code) - { - case TVN_ITEMEXPANDING: - return !OnTreeExpanding(g_pChildWnd->hTreeWnd, (NMTREEVIEW*)lParam); - case TVN_SELCHANGED: - { - NMTREEVIEW* pnmtv = (NMTREEVIEW*)lParam; - /* Get the parent of the current item */ - HTREEITEM hParentItem = TreeView_GetParent(g_pChildWnd->hTreeWnd, pnmtv->itemNew.hItem); - - UpdateAddress(pnmtv->itemNew.hItem, NULL, NULL); - - /* Disable the Permissions menu item for 'My Computer' */ - EnableMenuItem(hMenuFrame , ID_EDIT_PERMISSIONS, MF_BYCOMMAND | ((hParentItem == NULL) ? MF_GRAYED : MF_ENABLED)); - - /* - * Disable Delete/Rename menu options for 'My Computer' (first item so doesn't have any parent) - * and HKEY_* keys (their parent is 'My Computer' and the previous remark applies). - */ - if (!hParentItem || !TreeView_GetParent(g_pChildWnd->hTreeWnd, hParentItem)) - { - EnableMenuItem(hMenuFrame , ID_EDIT_DELETE, MF_BYCOMMAND | MF_GRAYED); - EnableMenuItem(hMenuFrame , ID_EDIT_RENAME, MF_BYCOMMAND | MF_GRAYED); - EnableMenuItem(hPopupMenus, ID_TREE_DELETE, MF_BYCOMMAND | MF_GRAYED); - EnableMenuItem(hPopupMenus, ID_TREE_RENAME, MF_BYCOMMAND | MF_GRAYED); - } - else - { - EnableMenuItem(hMenuFrame , ID_EDIT_DELETE, MF_BYCOMMAND | MF_ENABLED); - EnableMenuItem(hMenuFrame , ID_EDIT_RENAME, MF_BYCOMMAND | MF_ENABLED); - EnableMenuItem(hPopupMenus, ID_TREE_DELETE, MF_BYCOMMAND | MF_ENABLED); - EnableMenuItem(hPopupMenus, ID_TREE_RENAME, MF_BYCOMMAND | MF_ENABLED); - } - - break; - } - case NM_SETFOCUS: - g_pChildWnd->nFocusPanel = 0; - break; - case TVN_BEGINLABELEDIT: + if (!TreeWndNotifyProc(g_pChildWnd->hListWnd, wParam, lParam, &Result)) { - LPNMTVDISPINFO ptvdi; - /* cancel label edit for rootkeys */ - ptvdi = (LPNMTVDISPINFO) lParam; - if (!TreeView_GetParent(g_pChildWnd->hTreeWnd, ptvdi->item.hItem) || - !TreeView_GetParent(g_pChildWnd->hTreeWnd, TreeView_GetParent(g_pChildWnd->hTreeWnd, ptvdi->item.hItem))) - return TRUE; - break; - } - case TVN_ENDLABELEDIT: - { - LPCWSTR keyPath; - HKEY hRootKey; - HKEY hKey = NULL; - LPNMTVDISPINFO ptvdi; - LONG lResult = TRUE; - WCHAR szBuffer[MAX_PATH]; - - ptvdi = (LPNMTVDISPINFO) lParam; - if (ptvdi->item.pszText) - { - keyPath = GetItemPath(g_pChildWnd->hTreeWnd, TreeView_GetParent(g_pChildWnd->hTreeWnd, ptvdi->item.hItem), &hRootKey); - _snwprintf(szBuffer, COUNT_OF(szBuffer), L"%s\\%s", keyPath, ptvdi->item.pszText); - keyPath = GetItemPath(g_pChildWnd->hTreeWnd, ptvdi->item.hItem, &hRootKey); - if (RegOpenKeyExW(hRootKey, szBuffer, 0, KEY_READ, &hKey) == ERROR_SUCCESS) - { - lResult = FALSE; - RegCloseKey(hKey); - TreeView_EditLabel(g_pChildWnd->hTreeWnd, ptvdi->item.hItem); - } - else - { - if (RenameKey(hRootKey, keyPath, ptvdi->item.pszText) != ERROR_SUCCESS) - lResult = FALSE; - else - UpdateAddress(ptvdi->item.hItem, hRootKey, szBuffer); - } - return lResult; - } - } - default: - return 0; + goto def; } + + return Result; } else { - if ((int)wParam == LIST_WINDOW && g_pChildWnd != NULL) + if (((LPNMHDR)lParam)->idFrom == LIST_WINDOW) { - switch (((LPNMHDR)lParam)->code) + if (!ListWndNotifyProc(g_pChildWnd->hListWnd, wParam, lParam, &Result)) { - case NM_SETFOCUS: - g_pChildWnd->nFocusPanel = 1; - break; - default: - if(!ListWndNotifyProc(g_pChildWnd->hListWnd, wParam, lParam, &Result)) - { - goto def; - } - return Result; - break; + goto def; } + + return Result; } - } + else + { + goto def; + } + } break; case WM_CONTEXTMENU: diff --git a/base/applications/regedit/listview.c b/base/applications/regedit/listview.c index 04ed77ffc5987..d7fa0a14f7f8d 100644 --- a/base/applications/regedit/listview.c +++ b/base/applications/regedit/listview.c @@ -563,7 +563,7 @@ BOOL ListWndNotifyProc(HWND hWnd, WPARAM wParam, LPARAM lParam, BOOL *Result) } return TRUE; case NM_SETFOCUS: - g_pChildWnd->nFocusPanel = 0; + g_pChildWnd->nFocusPanel = 1; break; case LVN_BEGINLABELEDIT: Info = (NMLVDISPINFO*)lParam; diff --git a/base/applications/regedit/main.h b/base/applications/regedit/main.h index 12ae68cfa3e2d..01b7541434a27 100644 --- a/base/applications/regedit/main.h +++ b/base/applications/regedit/main.h @@ -27,8 +27,8 @@ #define TREE_WINDOW 2002 #define LIST_WINDOW 2003 -#define SPLIT_WIDTH 5 -#define SPLIT_MIN 30 +#define SPLIT_WIDTH 5 +#define SPLIT_MIN 30 #define COUNT_OF(a) (sizeof(a)/sizeof(a[0])) @@ -94,6 +94,7 @@ extern void ShowAboutBox(HWND hWnd); extern LRESULT CALLBACK ChildWndProc(HWND, UINT, WPARAM, LPARAM); extern void ResizeWnd(int cx, int cy); extern LPCWSTR get_root_key_name(HKEY hRootKey); +VOID UpdateAddress(HTREEITEM hItem, HKEY hRootKey, LPCWSTR pszPath); /* error.c */ extern int ErrorMessageBox(HWND hWnd, LPCWSTR lpTitle, DWORD dwErrorCode, ...); @@ -115,6 +116,7 @@ extern HWND CreateListView(HWND hwndParent, HMENU id, INT cx); extern BOOL RefreshListView(HWND hwndLV, HKEY hKey, LPCWSTR keyPath); extern LPCWSTR GetValueName(HWND hwndLV, int iStartAt); extern BOOL ListWndNotifyProc(HWND hWnd, WPARAM wParam, LPARAM lParam, BOOL *Result); +extern BOOL TreeWndNotifyProc(HWND hWnd, WPARAM wParam, LPARAM lParam, BOOL *Result); extern BOOL IsDefaultValue(HWND hwndLV, int i); /* regedit.c */ diff --git a/base/applications/regedit/regproc.c b/base/applications/regedit/regproc.c index c17221df5ae40..41ac7c6be8b79 100644 --- a/base/applications/regedit/regproc.c +++ b/base/applications/regedit/regproc.c @@ -1392,7 +1392,7 @@ BOOL export_registry_key(WCHAR *file_name, WCHAR *reg_key_name, DWORD format) if (file) { fclose(file); } - HeapFree(GetProcessHeap(), 0, reg_key_name); + HeapFree(GetProcessHeap(), 0, reg_key_name_buf); HeapFree(GetProcessHeap(), 0, val_name_buf); HeapFree(GetProcessHeap(), 0, val_buf); HeapFree(GetProcessHeap(), 0, line_buf); diff --git a/base/applications/regedit/treeview.c b/base/applications/regedit/treeview.c index 0f1a7706839eb..b7b45635b74c7 100644 --- a/base/applications/regedit/treeview.c +++ b/base/applications/regedit/treeview.c @@ -625,6 +625,110 @@ BOOL CreateNewKey(HWND hwndTV, HTREEITEM hItem) return bSuccess; } +BOOL TreeWndNotifyProc(HWND hWnd, WPARAM wParam, LPARAM lParam, BOOL *Result) +{ + UNREFERENCED_PARAMETER(wParam); + *Result = TRUE; + + switch (((LPNMHDR)lParam)->code) + { + case TVN_ITEMEXPANDING: + *Result = !OnTreeExpanding(g_pChildWnd->hTreeWnd, (NMTREEVIEW*)lParam); + return TRUE; + case TVN_SELCHANGED: + { + NMTREEVIEW* pnmtv = (NMTREEVIEW*)lParam; + /* Get the parent of the current item */ + HTREEITEM hParentItem = TreeView_GetParent(g_pChildWnd->hTreeWnd, pnmtv->itemNew.hItem); + + UpdateAddress(pnmtv->itemNew.hItem, NULL, NULL); + + /* Disable the Permissions menu item for 'My Computer' */ + EnableMenuItem(hMenuFrame, ID_EDIT_PERMISSIONS, MF_BYCOMMAND | (hParentItem ? MF_ENABLED : MF_GRAYED)); + + /* + * Disable Delete/Rename menu options for 'My Computer' (first item so doesn't have any parent) + * and HKEY_* keys (their parent is 'My Computer' and the previous remark applies). + */ + if (!hParentItem || !TreeView_GetParent(g_pChildWnd->hTreeWnd, hParentItem)) + { + EnableMenuItem(hMenuFrame , ID_EDIT_DELETE, MF_BYCOMMAND | MF_GRAYED); + EnableMenuItem(hMenuFrame , ID_EDIT_RENAME, MF_BYCOMMAND | MF_GRAYED); + EnableMenuItem(hPopupMenus, ID_TREE_DELETE, MF_BYCOMMAND | MF_GRAYED); + EnableMenuItem(hPopupMenus, ID_TREE_RENAME, MF_BYCOMMAND | MF_GRAYED); + } + else + { + EnableMenuItem(hMenuFrame , ID_EDIT_DELETE, MF_BYCOMMAND | MF_ENABLED); + EnableMenuItem(hMenuFrame , ID_EDIT_RENAME, MF_BYCOMMAND | MF_ENABLED); + EnableMenuItem(hPopupMenus, ID_TREE_DELETE, MF_BYCOMMAND | MF_ENABLED); + EnableMenuItem(hPopupMenus, ID_TREE_RENAME, MF_BYCOMMAND | MF_ENABLED); + } + + return TRUE; + } + case NM_SETFOCUS: + g_pChildWnd->nFocusPanel = 0; + break; + case TVN_BEGINLABELEDIT: + { + LPNMTVDISPINFO ptvdi = (LPNMTVDISPINFO) lParam; + /* cancel label edit for rootkeys */ + if (!TreeView_GetParent(g_pChildWnd->hTreeWnd, ptvdi->item.hItem) || + !TreeView_GetParent(g_pChildWnd->hTreeWnd, TreeView_GetParent(g_pChildWnd->hTreeWnd, ptvdi->item.hItem))) + { + *Result = TRUE; + } + else + { + *Result = FALSE; + } + return TRUE; + } + case TVN_ENDLABELEDIT: + { + LPCWSTR keyPath; + HKEY hRootKey; + HKEY hKey = NULL; + LPNMTVDISPINFO ptvdi = (LPNMTVDISPINFO) lParam; + LONG nRenResult; + LONG lResult = TRUE; + WCHAR szBuffer[MAX_PATH]; + WCHAR Caption[128]; + + if (ptvdi->item.pszText) + { + keyPath = GetItemPath(g_pChildWnd->hTreeWnd, TreeView_GetParent(g_pChildWnd->hTreeWnd, ptvdi->item.hItem), &hRootKey); + if (wcslen(keyPath)) + _snwprintf(szBuffer, COUNT_OF(szBuffer), L"%s\\%s", keyPath, ptvdi->item.pszText); + else + _snwprintf(szBuffer, COUNT_OF(szBuffer), L"%s", ptvdi->item.pszText); + keyPath = GetItemPath(g_pChildWnd->hTreeWnd, ptvdi->item.hItem, &hRootKey); + if (RegOpenKeyExW(hRootKey, szBuffer, 0, KEY_READ, &hKey) == ERROR_SUCCESS) + { + lResult = FALSE; + RegCloseKey(hKey); + TreeView_EditLabel(g_pChildWnd->hTreeWnd, ptvdi->item.hItem); + } + else + { + nRenResult = RenameKey(hRootKey, keyPath, ptvdi->item.pszText); + if (nRenResult != ERROR_SUCCESS) + { + LoadStringW(hInst, IDS_ERROR, Caption, COUNT_OF(Caption)); + ErrorMessageBox(hWnd, Caption, nRenResult); + lResult = FALSE; + } + else + UpdateAddress(ptvdi->item.hItem, hRootKey, szBuffer); + } + *Result = lResult; + } + return TRUE; + } + } + return FALSE; +} /* * CreateTreeView - creates a tree view control. @@ -642,6 +746,8 @@ HWND CreateTreeView(HWND hwndParent, LPWSTR pHostName, HMENU id) WS_VISIBLE | WS_CHILD | WS_TABSTOP | TVS_HASLINES | TVS_HASBUTTONS | TVS_LINESATROOT | TVS_EDITLABELS | TVS_SHOWSELALWAYS, 0, 0, rcClient.right, rcClient.bottom, hwndParent, id, hInst, NULL); + if (!hwndTV) return NULL; + /* Initialize the image list, and add items to the control. */ if (!InitTreeViewImageLists(hwndTV) || !InitTreeViewItems(hwndTV, pHostName)) { diff --git a/base/applications/sndrec32/lang/cs-CZ.rc b/base/applications/sndrec32/lang/cs-CZ.rc index 84ad744583f23..af9008c6bdc4c 100644 --- a/base/applications/sndrec32/lang/cs-CZ.rc +++ b/base/applications/sndrec32/lang/cs-CZ.rc @@ -11,17 +11,6 @@ BEGIN "/", IDM_ABOUT, ASCII, ALT END -IDD_ABOUTBOX DIALOGEX 0, 0, 196, 75 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "ReactOS Záznam zvuku" -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - ICON IDI_SNDREC32, -1, 19, 14, 21, 20 - LTEXT "ReactOS Záznam zvuku, verze 1.0", IDC_STATIC, 56, 16, 114, 8, SS_NOPREFIX - LTEXT "Copyright (C) 2009", IDC_STATIC, 56, 25, 114, 8 - DEFPUSHBUTTON "OK", IDOK, 139, 54, 50, 14, WS_GROUP -END - IDR_MENU1 MENU BEGIN POPUP "Soubor" diff --git a/base/applications/sndrec32/lang/de-DE.rc b/base/applications/sndrec32/lang/de-DE.rc index a72c8b10654bf..d64c7f956082b 100644 --- a/base/applications/sndrec32/lang/de-DE.rc +++ b/base/applications/sndrec32/lang/de-DE.rc @@ -6,17 +6,6 @@ BEGIN "/", IDM_ABOUT, ASCII, ALT END -IDD_ABOUTBOX DIALOGEX 0, 0, 196, 75 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Information zum Audiorecorder" -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - ICON IDI_SNDREC32, -1, 19, 14, 21, 20 - LTEXT "ReactOS Audiorecorder, Version 1.0", IDC_STATIC, 56, 16, 134, 8, SS_NOPREFIX - LTEXT "Copyright (C) 2009", IDC_STATIC, 56, 25, 134, 8 - DEFPUSHBUTTON "OK", IDOK, 139, 54, 50, 14, WS_GROUP -END - IDR_MENU1 MENU BEGIN POPUP "&Datei" diff --git a/base/applications/sndrec32/lang/en-US.rc b/base/applications/sndrec32/lang/en-US.rc index 14982e5e2983c..e3ed264ebf2ed 100644 --- a/base/applications/sndrec32/lang/en-US.rc +++ b/base/applications/sndrec32/lang/en-US.rc @@ -6,17 +6,6 @@ BEGIN "/", IDM_ABOUT, ASCII, ALT END -IDD_ABOUTBOX DIALOGEX 0, 0, 196, 75 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Information about ReactOS Sound Recorder" -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - ICON IDI_SNDREC32, -1, 19, 14, 21, 20 - LTEXT "ReactOS Sound Recorder, version 1.0", IDC_STATIC, 56, 16, 114, 8, SS_NOPREFIX - LTEXT "Copyright (C) 2009", IDC_STATIC, 56, 25, 114, 8 - DEFPUSHBUTTON "OK", IDOK, 139, 54, 50, 14, WS_GROUP -END - IDR_MENU1 MENU BEGIN POPUP "&File" diff --git a/base/applications/sndrec32/lang/es-ES.rc b/base/applications/sndrec32/lang/es-ES.rc index 3e138045970e9..b454cc1d94f07 100644 --- a/base/applications/sndrec32/lang/es-ES.rc +++ b/base/applications/sndrec32/lang/es-ES.rc @@ -9,17 +9,6 @@ BEGIN "/", IDM_ABOUT, ASCII, ALT END -IDD_ABOUTBOX DIALOGEX 0, 0, 196, 75 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Acerca de la Grabadora de sonidos de ReactOS" -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - ICON IDI_SNDREC32, -1, 19, 14, 21, 20 - LTEXT "Grabadora de sonidos de ReactOS, versión 1.0", IDC_STATIC, 56, 16, 114, 8, SS_NOPREFIX - LTEXT "Copyright (C) 2009", IDC_STATIC, 56, 25, 114, 8 - DEFPUSHBUTTON "Aceptar", IDOK, 139, 54, 50, 14, WS_GROUP -END - IDR_MENU1 MENU BEGIN POPUP "&Archivo" diff --git a/base/applications/sndrec32/lang/fr-FR.rc b/base/applications/sndrec32/lang/fr-FR.rc index 3b37303d23b02..3721d64540501 100644 --- a/base/applications/sndrec32/lang/fr-FR.rc +++ b/base/applications/sndrec32/lang/fr-FR.rc @@ -6,58 +6,47 @@ BEGIN "/", IDM_ABOUT, ASCII, ALT END -IDD_ABOUTBOX DIALOGEX 0, 0, 196, 75 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Information à propos de l'Enregistreur de Son ReactOS" -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - ICON IDI_SNDREC32, -1, 19, 14, 21, 20 - LTEXT "Enregistreur de Son ReactOS, version 1.0", IDC_STATIC, 56, 16, 114, 8, SS_NOPREFIX - LTEXT "Copyright (C) 2009", IDC_STATIC, 56, 25, 114, 8 - DEFPUSHBUTTON "Accepter", IDOK, 139, 54, 50, 14, WS_GROUP -END - IDR_MENU1 MENU BEGIN - POPUP "Fichier" + POPUP "&Fichier" BEGIN - MENUITEM "Nouveau", ID_FILE_NEW - MENUITEM "Ouvrir...", ID_FILE_OPEN - MENUITEM "Enregistrer", ID_FILE_SAVE, GRAYED - MENUITEM "Enregistrer sous...", ID_FILE_SAVEAS, GRAYED - MENUITEM "Restorer...", ID_FILE_RESTORE, GRAYED - MENUITEM "Propriétés", ID_FILE_PROPERTIES + MENUITEM "&Nouveau", ID_FILE_NEW + MENUITEM "&Ouvrir...", ID_FILE_OPEN + MENUITEM "&Enregistrer", ID_FILE_SAVE, GRAYED + MENUITEM "Enregistrer &sous...", ID_FILE_SAVEAS, GRAYED + MENUITEM "&Restaurer...", ID_FILE_RESTORE, GRAYED + MENUITEM "&Propriétés", ID_FILE_PROPERTIES MENUITEM SEPARATOR - MENUITEM "Sortir", ID_FILE_EXIT + MENUITEM "&Quitter", ID_FILE_EXIT END POPUP "&Edition" BEGIN - MENUITEM "&Copie", ID_EDIT_COPY - MENUITEM "&Paste Insert", ID_EDIT_PASTE, GRAYED - MENUITEM "Paste Mi&x", ID_EDIT_PASTEMIX, GRAYED + MENUITEM "&Copier", ID_EDIT_COPY + MENUITEM "Coller &Insérer", ID_EDIT_PASTE, GRAYED + MENUITEM "Coller &Mélanger", ID_EDIT_PASTEMIX, GRAYED MENUITEM SEPARATOR - MENUITEM "&Insérer un fichier...", ID_EDIT_INSERTFILE - MENUITEM "&Mix with File...", ID_EDIT_MIXFILE + MENUITEM "Insérer un &fichier...", ID_EDIT_INSERTFILE + MENUITEM "Mé&langer avec un fichier...", ID_EDIT_MIXFILE MENUITEM SEPARATOR - MENUITEM "Delete &Before Current Position",ID_EDIT_DELETEBEFORE, GRAYED - MENUITEM "Delete &After Current Position",ID_EDIT_DELETEAFTER, GRAYED + MENUITEM "Supprimer &avant la position actuelle",ID_EDIT_DELETEBEFORE, GRAYED + MENUITEM "Supprimer a&près la position actuelle",ID_EDIT_DELETEAFTER, GRAYED MENUITEM SEPARATOR MENUITEM "Propriétés A&udio", ID_EDIT_AUDIOPROPS END POPUP "Effet&s" BEGIN - MENUITEM "&Increase Volume (by 25%)", ID_EFFECTS_INCVOL - MENUITEM "&Decrease Volume", ID_EFFECTS_DECVOL + MENUITEM "&Augmenter le volume (de 25%)", ID_EFFECTS_INCVOL + MENUITEM "&Réduire le volume", ID_EFFECTS_DECVOL MENUITEM SEPARATOR - MENUITEM "&Increase Speed (by 100%)", ID_EFFECTS_INCSPD - MENUITEM "&Decrease Speed", ID_EFFECTS_DECSPD + MENUITEM "Aug&menter la vitesse (de 100%)", ID_EFFECTS_INCSPD + MENUITEM "Réd&uire la vitesse", ID_EFFECTS_DECSPD MENUITEM SEPARATOR - MENUITEM "&Add Echo", ID_EFFECTS_ECHO - MENUITEM "&Reverse", ID_EFFECTS_REVERSE + MENUITEM "Aj&outer de l'écho", ID_EFFECTS_ECHO + MENUITEM "&Inverser", ID_EFFECTS_REVERSE END - POPUP "?" + POPUP "&?" BEGIN - MENUITEM "À propos", ID_ABOUT + MENUITEM "À &propos", ID_ABOUT END END @@ -71,7 +60,7 @@ STRINGTABLE BEGIN IDS_STRPOS "Position: %.2f s" IDS_STRDUR "Durée : %.2f s" - IDS_STRBUF "Buffer: %.2f kb" + IDS_STRBUF "Buffer: %.2f Ko" IDS_STRFMT "%.1f kHz %u bits" IDS_STRMONO "mono" IDS_STRSTEREO "stéréo" diff --git a/base/applications/sndrec32/lang/he-IL.rc b/base/applications/sndrec32/lang/he-IL.rc index c5d97251829dc..af8baa59ca482 100644 --- a/base/applications/sndrec32/lang/he-IL.rc +++ b/base/applications/sndrec32/lang/he-IL.rc @@ -6,18 +6,6 @@ BEGIN "/", IDM_ABOUT, ASCII, ALT END -IDD_ABOUTBOX DIALOGEX 0, 0, 196, 75 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -EXSTYLE WS_EX_LAYOUTRTL -CAPTION "אודות הרשמקול של ReactOS" -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - ICON IDI_SNDREC32, -1, 19, 14, 21, 20 - LTEXT "רשמקול של ReactOS גרסה 1.0", IDC_STATIC, 56, 16, 114, 8, SS_NOPREFIX - LTEXT "זכויות יוצרים (C) 2009", IDC_STATIC, 56, 25, 114, 8 - DEFPUSHBUTTON "אישור", IDOK, 139, 54, 50, 14, WS_GROUP -END - IDR_MENU1 MENU BEGIN POPUP "קובץ" diff --git a/base/applications/sndrec32/lang/it-IT.rc b/base/applications/sndrec32/lang/it-IT.rc index 5c3f2e86e4479..610cee811e446 100644 --- a/base/applications/sndrec32/lang/it-IT.rc +++ b/base/applications/sndrec32/lang/it-IT.rc @@ -6,17 +6,6 @@ BEGIN "/", IDM_ABOUT, ASCII, ALT END -IDD_ABOUTBOX DIALOGEX 0, 0, 196, 75 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Informazioni su ReactOS Registratore Audio" -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - ICON IDI_SNDREC32, -1, 19, 14, 21, 20 - LTEXT "ReactOS Registratore Audio, versione 1.0", IDC_STATIC, 56, 16, 114, 8, SS_NOPREFIX - LTEXT "Copyright (C) 2009", IDC_STATIC, 56, 25, 114, 8 - DEFPUSHBUTTON "OK", IDOK, 139, 54, 50, 14, WS_GROUP -END - IDR_MENU1 MENU BEGIN POPUP "File" diff --git a/base/applications/sndrec32/lang/ja-JP.rc b/base/applications/sndrec32/lang/ja-JP.rc index fb1f60b21050b..e39f23cb66fce 100644 --- a/base/applications/sndrec32/lang/ja-JP.rc +++ b/base/applications/sndrec32/lang/ja-JP.rc @@ -6,17 +6,6 @@ BEGIN "/", IDM_ABOUT, ASCII, ALT END -IDD_ABOUTBOX DIALOGEX 0, 0, 196, 75 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "サウンド レコーダ に関する情報" -FONT 9, "MS UI Gothic", 0, 0, 0x1 -BEGIN - ICON IDI_SNDREC32, -1, 19, 14, 21, 20 - LTEXT "サウンド レコーダ, バージョン 1.0", IDC_STATIC, 56, 16, 114, 8, SS_NOPREFIX - LTEXT "Copyright (C) 2009", IDC_STATIC, 56, 25, 114, 8 - DEFPUSHBUTTON "OK", IDOK, 139, 54, 50, 14, WS_GROUP -END - IDR_MENU1 MENU BEGIN POPUP "ファイル" diff --git a/base/applications/sndrec32/lang/pl-PL.rc b/base/applications/sndrec32/lang/pl-PL.rc index f60119bf6aa99..cde78ff1abbe4 100644 --- a/base/applications/sndrec32/lang/pl-PL.rc +++ b/base/applications/sndrec32/lang/pl-PL.rc @@ -15,17 +15,6 @@ BEGIN "/", IDM_ABOUT, ASCII, ALT END -IDD_ABOUTBOX DIALOGEX 0, 0, 196, 75 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Informacje o Rejestratorze Dźwięku ReactOS" -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - ICON IDI_SNDREC32, -1, 19, 14, 21, 20 - LTEXT "Rejestrator Dźwięku ReactOS, wersja 1.0", IDC_STATIC, 56, 16, 114, 8, SS_NOPREFIX - LTEXT "Prawa autorskie (C) 2009", IDC_STATIC, 56, 25, 114, 8 - DEFPUSHBUTTON "OK", IDOK, 139, 54, 50, 14, WS_GROUP -END - IDR_MENU1 MENU BEGIN POPUP "Plik" diff --git a/base/applications/sndrec32/lang/ro-RO.rc b/base/applications/sndrec32/lang/ro-RO.rc index 9d23b1093e1b6..6bf9f73a26732 100644 --- a/base/applications/sndrec32/lang/ro-RO.rc +++ b/base/applications/sndrec32/lang/ro-RO.rc @@ -8,17 +8,6 @@ BEGIN "/", IDM_ABOUT, ASCII, ALT END -IDD_ABOUTBOX DIALOGEX 0, 0, 196, 75 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Despre Înregistratorul audio" -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - ICON IDI_SNDREC32, -1, 19, 14, 21, 20 - LTEXT "Înregistrator audio, versiunea 1.0", IDC_STATIC, 56, 16, 114, 8, SS_NOPREFIX - LTEXT "Drept de autor (C) 2009", IDC_STATIC, 56, 25, 114, 8 - DEFPUSHBUTTON "Î&nchide", IDOK, 139, 54, 50, 14, WS_GROUP -END - IDR_MENU1 MENU BEGIN POPUP "&Fișier" diff --git a/base/applications/sndrec32/lang/ru-RU.rc b/base/applications/sndrec32/lang/ru-RU.rc index e461867cbc17c..6578b7a4d007b 100644 --- a/base/applications/sndrec32/lang/ru-RU.rc +++ b/base/applications/sndrec32/lang/ru-RU.rc @@ -6,17 +6,6 @@ BEGIN "/", IDM_ABOUT, ASCII, ALT END -IDD_ABOUTBOX DIALOGEX 0, 0, 196, 75 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Информация о программе ""Звукозапись для ReactOS""" -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - ICON IDI_SNDREC32, -1, 19, 14, 21, 20 - LTEXT "Звукозапись для ReactOS, версия 1.0", IDC_STATIC, 56, 16, 134, 8, SS_NOPREFIX - LTEXT "Copyright (C) 2009", IDC_STATIC, 56, 25, 114, 8 - DEFPUSHBUTTON "OK", IDOK, 139, 54, 50, 14, WS_GROUP -END - IDR_MENU1 MENU BEGIN POPUP "&Файл" diff --git a/base/applications/sndrec32/lang/sk-SK.rc b/base/applications/sndrec32/lang/sk-SK.rc index 6ce6567311a26..0ee527265d820 100644 --- a/base/applications/sndrec32/lang/sk-SK.rc +++ b/base/applications/sndrec32/lang/sk-SK.rc @@ -11,17 +11,6 @@ BEGIN "/", IDM_ABOUT, ASCII, ALT END -IDD_ABOUTBOX DIALOGEX 0, 0, 196, 75 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Čo je reactOS_sndrec32" -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - ICON IDI_SNDREC32, -1, 19, 14, 21, 20 - LTEXT "reactOS_sndrec32, verzia 1.0", IDC_STATIC, 56, 16, 114, 8, SS_NOPREFIX - LTEXT "Autorské práva (C) 2009", IDC_STATIC, 56, 25, 114, 8 - DEFPUSHBUTTON "OK", IDOK, 139, 54, 50, 14, WS_GROUP -END - IDR_MENU1 MENU BEGIN POPUP "&Súbor" diff --git a/base/applications/sndrec32/lang/sq-AL.rc b/base/applications/sndrec32/lang/sq-AL.rc index c66421ce69b48..c97114f4bbbda 100644 --- a/base/applications/sndrec32/lang/sq-AL.rc +++ b/base/applications/sndrec32/lang/sq-AL.rc @@ -10,17 +10,6 @@ BEGIN "/", IDM_ABOUT, ASCII, ALT END -IDD_ABOUTBOX DIALOGEX 0, 0, 196, 75 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Informacione rreth ReactOS rregjistruesi i zerit" -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - ICON IDI_SNDREC32, -1, 19, 14, 21, 20 - LTEXT "ReactOS Rregjistruesi i Zerit, versioni 1.0", IDC_STATIC, 56, 16, 114, 8, SS_NOPREFIX - LTEXT "T'drejtat (C) 2009", IDC_STATIC, 56, 25, 114, 8 - DEFPUSHBUTTON "OK", IDOK, 139, 54, 50, 14, WS_GROUP -END - IDR_MENU1 MENU BEGIN POPUP "File" diff --git a/base/applications/sndrec32/lang/sv-SE.rc b/base/applications/sndrec32/lang/sv-SE.rc index 028779dd778ba..3aaadedabcb2f 100644 --- a/base/applications/sndrec32/lang/sv-SE.rc +++ b/base/applications/sndrec32/lang/sv-SE.rc @@ -8,17 +8,6 @@ BEGIN "/", IDM_ABOUT, ASCII, ALT END -IDD_ABOUTBOX DIALOGEX 0, 0, 196, 75 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Information om ReactOS_sndrec32" -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - ICON IDI_SNDREC32, -1, 19, 14, 21, 20 - LTEXT "ReactOS_sndrec32, version 1.0", IDC_STATIC, 56, 16, 114, 8, SS_NOPREFIX - LTEXT "Copyright (C) 2009", IDC_STATIC, 56, 25, 114, 8 - DEFPUSHBUTTON "OK", IDOK, 139, 54, 50, 14, WS_GROUP -END - IDR_MENU1 MENU BEGIN POPUP "Arkiv" diff --git a/base/applications/sndrec32/lang/tr-TR.rc b/base/applications/sndrec32/lang/tr-TR.rc index 26d3b012b1f05..61f0a98b57891 100644 --- a/base/applications/sndrec32/lang/tr-TR.rc +++ b/base/applications/sndrec32/lang/tr-TR.rc @@ -8,17 +8,6 @@ BEGIN "/", IDM_ABOUT, ASCII, ALT END -IDD_ABOUTBOX DIALOGEX 0, 0, 196, 75 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "ReactOS Ses Kaydedicisi Hakkında Bilgi" -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - ICON IDI_SNDREC32, -1, 19, 14, 21, 20 - LTEXT "ReactOS Ses Kaydedicisi, sürüm 1.0", IDC_STATIC, 56, 16, 114, 8, SS_NOPREFIX - LTEXT "Tekif Hakkı - 2009", IDC_STATIC, 56, 25, 114, 8 - DEFPUSHBUTTON "Tamam", IDOK, 139, 54, 50, 14, WS_GROUP -END - IDR_MENU1 MENU BEGIN POPUP "&Dosya" diff --git a/base/applications/sndrec32/lang/uk-UA.rc b/base/applications/sndrec32/lang/uk-UA.rc index df6c9b666d0f4..66526e1ff9229 100644 --- a/base/applications/sndrec32/lang/uk-UA.rc +++ b/base/applications/sndrec32/lang/uk-UA.rc @@ -8,17 +8,6 @@ BEGIN "/", IDM_ABOUT, ASCII, ALT END -IDD_ABOUTBOX DIALOGEX 0, 0, 196, 75 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Інформація про reactOS_sndrec32" -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - ICON IDI_SNDREC32, -1, 19, 14, 21, 20 - LTEXT "reactOS_sndrec32, версії 1.0", IDC_STATIC, 56, 16, 114, 8, SS_NOPREFIX - LTEXT "Copyright (C) 2009", IDC_STATIC, 56, 25, 114, 8 - DEFPUSHBUTTON "OK", IDOK, 139, 54, 50, 14, WS_GROUP -END - IDR_MENU1 MENU BEGIN POPUP "Файл" diff --git a/base/applications/sndrec32/lang/zh-CN.rc b/base/applications/sndrec32/lang/zh-CN.rc index 52b6f173f2984..7a267047e84a0 100644 --- a/base/applications/sndrec32/lang/zh-CN.rc +++ b/base/applications/sndrec32/lang/zh-CN.rc @@ -8,17 +8,6 @@ BEGIN "/", IDM_ABOUT, ASCII, ALT END -IDD_ABOUTBOX DIALOGEX 0, 0, 196, 75 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "关于 ReactOS 录音机" -FONT 9, "宋体", 0, 0, 0x1 -BEGIN - ICON IDI_SNDREC32, -1, 19, 14, 21, 20 - LTEXT "ReactOS 录音机,版本 1.0", IDC_STATIC, 56, 16, 114, 8, SS_NOPREFIX - LTEXT "版权所有 (C) 2009", IDC_STATIC, 56, 25, 114, 8 - DEFPUSHBUTTON "确定", IDOK, 139, 54, 50, 14, WS_GROUP -END - IDR_MENU1 MENU BEGIN POPUP "文件" diff --git a/base/applications/sndrec32/lang/zh-TW.rc b/base/applications/sndrec32/lang/zh-TW.rc index 6955f1eac7911..7e5014ac96181 100644 --- a/base/applications/sndrec32/lang/zh-TW.rc +++ b/base/applications/sndrec32/lang/zh-TW.rc @@ -14,17 +14,6 @@ BEGIN "/", IDM_ABOUT, ASCII, ALT END -IDD_ABOUTBOX DIALOGEX 0, 0, 196, 75 -STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "關於 ReactOS 錄音機" -FONT 9, "新細明體", 0, 0, 0x1 -BEGIN - ICON IDI_SNDREC32, -1, 19, 14, 21, 20 - LTEXT "ReactOS 錄音機,版本 1.0", IDC_STATIC, 56, 16, 114, 8, SS_NOPREFIX - LTEXT "版權所有 (C) 2009", IDC_STATIC, 56, 25, 114, 8 - DEFPUSHBUTTON "確定", IDOK, 139, 54, 50, 14, WS_GROUP -END - IDR_MENU1 MENU BEGIN POPUP "檔案" diff --git a/base/applications/sndrec32/resource.h b/base/applications/sndrec32/resource.h index 4da0f67745930..c4efb2318d249 100644 --- a/base/applications/sndrec32/resource.h +++ b/base/applications/sndrec32/resource.h @@ -5,7 +5,6 @@ #define IDD_REACTOS_SNDREC32_DIALOG 102 #define IDS_APP_TITLE 103 -#define IDD_ABOUTBOX 103 #define IDM_ABOUT 104 #define IDI_REACTOS_SNDREC32 107 #define IDI_REACTOS_SNDREC32LL 107 diff --git a/base/applications/sndrec32/sndrec32.cpp b/base/applications/sndrec32/sndrec32.cpp index 18bf8f37d1af4..53c1b49ec8d63 100644 --- a/base/applications/sndrec32/sndrec32.cpp +++ b/base/applications/sndrec32/sndrec32.cpp @@ -78,30 +78,6 @@ RECT text_rect; RECT text2_rect; RECT cli; -INT_PTR -CALLBACK -AboutDlgProc(HWND hWnd, - UINT msg, - WPARAM wp, - LPARAM lp) -{ - switch (msg) - { - case WM_COMMAND: - switch (LOWORD(wp)) - { - case IDOK: - EndDialog(hWnd, 0); - return TRUE; - } - break; - case WM_CLOSE: - EndDialog(hWnd, 0); - return TRUE; - } - return FALSE; -} - int APIENTRY _tWinMain(HINSTANCE hInstance, @@ -118,8 +94,8 @@ _tWinMain(HINSTANCE hInstance, s_info.cbSize = sizeof( NONCLIENTMETRICS ); InitCommonControls(); - - switch (GetUserDefaultUILanguage()) + + switch (GetUserDefaultUILanguage()) { case MAKELANGID(LANG_HEBREW, SUBLANG_DEFAULT): SetProcessDefaultLayout(LAYOUT_RTL); @@ -455,6 +431,8 @@ WndProc(HWND hWnd, HFONT font; HFONT oldfont; long long slid_samp = 0; + WCHAR szAppName[100]; + HICON hIcon; /* Checking for global pointers to buffer and io audio devices */ if ((!AUD_IN) || (!AUD_OUT) || (!AUD_BUF)) @@ -469,7 +447,7 @@ WndProc(HWND hWnd, /* Creating the wave bar */ if (!InitInstance_wave(hWnd, hInst, SW_SHOWNORMAL)) { - MessageBox(0, TEXT("CreateWindow() Error!"), TEXT("ERROR"), MB_ICONERROR); + MessageBox(0, TEXT("InitInstance_wave() Error!"), TEXT("ERROR"), MB_ICONERROR); return FALSE; } @@ -619,8 +597,10 @@ WndProc(HWND hWnd, break; case ID_ABOUT: - DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, AboutDlgProc); - return TRUE; + LoadStringW(hInst, IDS_APP_TITLE, szAppName, _countof(szAppName)); + hIcon = LoadIconW(hInst, MAKEINTRESOURCEW(IDI_REACTOS_SNDREC32)); + ShellAboutW(hWnd, szAppName, L"\0", hIcon); + DestroyIcon(hIcon); break; case ID_FILE_SAVEAS: @@ -820,7 +800,7 @@ WndProc(HWND hWnd, ExtTextOut(hdc, STRPOS_X, STRPOS_Y, - ETO_OPAQUE, + 0, 0, str_tmp, _tcslen(str_tmp), @@ -844,7 +824,7 @@ WndProc(HWND hWnd, ExtTextOut(hdc, STRDUR_X, STRDUR_Y, - ETO_OPAQUE, + 0, 0, str_tmp, _tcslen(str_tmp), @@ -858,7 +838,7 @@ WndProc(HWND hWnd, ExtTextOut(hdc, STRBUF_X, STRBUF_Y, - ETO_OPAQUE, + 0, 0, str_tmp, _tcslen(str_tmp), @@ -874,7 +854,7 @@ WndProc(HWND hWnd, ExtTextOut(hdc, STRFMT_X, STRFMT_Y, - ETO_OPAQUE, + 0, 0, str_tmp, _tcslen(str_tmp), @@ -888,7 +868,7 @@ WndProc(HWND hWnd, ExtTextOut(hdc, STRCHAN_X, STRCHAN_Y, - ETO_OPAQUE, + 0, 0, str_tmp, _tcslen(str_tmp), diff --git a/base/applications/utilman/umandlg/CMakeLists.txt b/base/applications/utilman/umandlg/CMakeLists.txt index e2b0a0a9e4b96..91ae10671669d 100644 --- a/base/applications/utilman/umandlg/CMakeLists.txt +++ b/base/applications/utilman/umandlg/CMakeLists.txt @@ -2,7 +2,6 @@ spec2def(umandlg.dll umandlg.spec) add_library(umandlg MODULE - about.c process.c registry.c umandlg.c diff --git a/base/applications/utilman/umandlg/about.c b/base/applications/utilman/umandlg/about.c deleted file mode 100644 index ea66987296a82..0000000000000 --- a/base/applications/utilman/umandlg/about.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - * PROJECT: ReactOS Utility Manager Resources DLL (UManDlg.dll) - * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+) - * PURPOSE: About dialog file - * COPYRIGHT: Copyright 2019-2020 Bișoc George (fraizeraust99 at gmail dot com) - */ - -/* INCLUDES *******************************************************************/ - -#include "umandlg.h" - -/* GLOBALS ********************************************************************/ - -UTILMAN_GLOBALS Globals; - -/* FUNCTIONS ******************************************************************/ - -/** - * @AboutDlgProc - * - * "About" dialog procedure. - * - * @param hDlg - * The handle object of the dialog. - * - * @param Msg - * Message events (in unsigned int). - * - * @param wParam - * Message parameter (in UINT_PTR). - * - * @param lParam - * Message paramater (in LONG_PTR). - * - * @return - * Return TRUE if the dialog processed messages, - * FALSE otherwise. - * - */ -INT_PTR CALLBACK AboutDlgProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) -{ - switch (Msg) - { - case WM_INITDIALOG: - { - WCHAR szAppPath[MAX_BUFFER]; - - /* Extract the icon resource from the executable process */ - GetModuleFileNameW(NULL, szAppPath, _countof(szAppPath)); - Globals.hIcon = ExtractIconW(Globals.hInstance, szAppPath, 0); - - /* Set the icon within the dialog's title bar */ - if (Globals.hIcon) - { - SendMessageW(hDlg, WM_SETICON, ICON_SMALL, (LPARAM)Globals.hIcon); - } - - return TRUE; - } - - case WM_COMMAND: - { - case IDOK: - case IDCANCEL: - DestroyIcon(Globals.hIcon); - EndDialog(hDlg, FALSE); - break; - } - } - - return FALSE; -} - -/** - * @ShowAboutDlg - * - * Display the "About" dialog. - * - * @param hDlgParent - * The handle object of the parent dialog. - * - * @return - * Nothing. - */ -VOID ShowAboutDlg(HWND hDlgParent) -{ - /* Display the "About" dialog when the user clicks on the "About" menu item */ - DialogBoxW(Globals.hInstance, - MAKEINTRESOURCEW(IDD_ABOUT_DIALOG), - hDlgParent, - AboutDlgProc); -} diff --git a/base/applications/utilman/umandlg/lang/en-US.rc b/base/applications/utilman/umandlg/lang/en-US.rc index dcaa3a2395d9a..d44bc44cd3a8c 100644 --- a/base/applications/utilman/umandlg/lang/en-US.rc +++ b/base/applications/utilman/umandlg/lang/en-US.rc @@ -25,16 +25,6 @@ BEGIN CONTROL "&Help", IDC_HELP_TOPICS, "Button", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_TABSTOP, 98, 161, 50, 14 END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 210, 65 -CAPTION "About Accessibility Utility Manager" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Accessibility Utility Manager\nCopyright 2019 George Bișoc (fraizeraust99 at gmail dot com)", IDC_STATIC, 10, 7, 150, 36 - LTEXT "Copyright 2019 Hermes Belusca-Maito", IDC_STATIC, 10, 33, 150, 36 - PUSHBUTTON "Close", IDOK, 75, 47, 44, 15 -END - STRINGTABLE BEGIN IDS_OSK "On-Screen Keyboard" @@ -51,4 +41,6 @@ END STRINGTABLE BEGIN IDM_ABOUT "About Accessibility Utility Manager..." + IDS_APP_NAME "Accessibility Utility Manager" + IDS_AUTHORS "Copyright 2019 George Bișoc, Hermes Belusca-Maito" END diff --git a/base/applications/utilman/umandlg/lang/es-ES.rc b/base/applications/utilman/umandlg/lang/es-ES.rc index 8b7ade86373f9..bbf3e57d57c25 100644 --- a/base/applications/utilman/umandlg/lang/es-ES.rc +++ b/base/applications/utilman/umandlg/lang/es-ES.rc @@ -26,16 +26,6 @@ BEGIN CONTROL "&Ayuda", IDC_HELP_TOPICS, "Button", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_TABSTOP, 98, 161, 50, 14 END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 210, 65 -CAPTION "Acerca de las Herramientas de Accesibilidad" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Accessibility Utility Manager\nCopyright 2019 George Bișoc (fraizeraust99 at gmail dot com)", IDC_STATIC, 10, 7, 150, 36 - LTEXT "Copyright 2019 Hermes Belusca-Maito", IDC_STATIC, 10, 33, 150, 36 - PUSHBUTTON "Cerrar", IDOK, 75, 47, 44, 15 -END - STRINGTABLE BEGIN IDS_OSK "Teclado en Pantalla" @@ -52,4 +42,6 @@ END STRINGTABLE BEGIN IDM_ABOUT "Acerca de las Herramientas de Accesibilidad..." + IDS_APP_NAME "Herramientas de Accesibilidad" + IDS_AUTHORS "Copyright 2019 George Bișoc, Hermes Belusca-Maito" END diff --git a/base/applications/utilman/umandlg/lang/fr-FR.rc b/base/applications/utilman/umandlg/lang/fr-FR.rc index 71368f2c0d2e6..d80ebc05235b1 100644 --- a/base/applications/utilman/umandlg/lang/fr-FR.rc +++ b/base/applications/utilman/umandlg/lang/fr-FR.rc @@ -25,16 +25,6 @@ BEGIN CONTROL "&Aide", IDC_HELP_TOPICS, "Button", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_TABSTOP, 98, 161, 50, 14 END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 210, 65 -CAPTION "A propos du gestionnaire d'utilitaires d'accessibilité" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Accessibility Utility Manager\nCopyright 2019 George Bișoc (fraizeraust99 at gmail dot com)", IDC_STATIC, 10, 7, 150, 36 - LTEXT "Copyright 2019 Hermes Belusca-Maito", IDC_STATIC, 10, 33, 150, 36 - PUSHBUTTON "Close", IDOK, 75, 47, 44, 15 -END - STRINGTABLE BEGIN IDS_OSK "Clavier visuel" @@ -51,4 +41,6 @@ END STRINGTABLE BEGIN IDM_ABOUT "A propos du gestionnaire d'utilitaires d'accessibilité..." + IDS_APP_NAME "Gestionnaire d'utilitaires d'accessibilité" + IDS_AUTHORS "Copyright 2019 George Bișoc, Hermes Belusca-Maito" END diff --git a/base/applications/utilman/umandlg/lang/he-IL.rc b/base/applications/utilman/umandlg/lang/he-IL.rc index 4f381ba353003..f9f918222e035 100644 --- a/base/applications/utilman/umandlg/lang/he-IL.rc +++ b/base/applications/utilman/umandlg/lang/he-IL.rc @@ -25,16 +25,6 @@ BEGIN CONTROL "&עזרה", IDC_HELP_TOPICS, "Button", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_TABSTOP, 98, 161, 50, 14 END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 210, 65 -CAPTION "אודות מנהל כלי הנגישות" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "מנהל כלי הנגישות\nCopyright 2019 George Bișoc (fraizeraust99 at gmail dot com)", IDC_STATIC, 10, 7, 150, 36 - LTEXT "Copyright 2019 Hermes Belusca-Maito", IDC_STATIC, 10, 33, 150, 36 - PUSHBUTTON "סגור", IDOK, 75, 47, 44, 15 -END - STRINGTABLE BEGIN IDS_OSK "לוח מקשים על התצוגה" @@ -51,4 +41,6 @@ END STRINGTABLE BEGIN IDM_ABOUT "אודות מנהל כלי הנגישות..." + IDS_APP_NAME "מנהל כלי הנגישות" + IDS_AUTHORS "Copyright 2019 George Bișoc, Hermes Belusca-Maito" END diff --git a/base/applications/utilman/umandlg/lang/it-IT.rc b/base/applications/utilman/umandlg/lang/it-IT.rc index b36ec0577e73f..a8ba5478ea441 100644 --- a/base/applications/utilman/umandlg/lang/it-IT.rc +++ b/base/applications/utilman/umandlg/lang/it-IT.rc @@ -25,16 +25,6 @@ BEGIN CONTROL "?", IDC_HELP_TOPICS, "Button", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_TABSTOP, 98, 161, 50, 14 END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 210, 65 -CAPTION "Informazioni su Accessibilità Utility Manager" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Accessibilità Utility Manager\nCopyright 2019 George Bișoc (fraizeraust99 at gmail dot com)", IDC_STATIC, 10, 7, 150, 36 - LTEXT "Copyright 2019 Hermes Belusca-Maito", IDC_STATIC, 10, 33, 150, 36 - PUSHBUTTON "Chiudi", IDOK, 75, 47, 44, 15 -END - STRINGTABLE BEGIN IDS_OSK "Tastiera su schermo" @@ -51,4 +41,6 @@ END STRINGTABLE BEGIN IDM_ABOUT "Informazioni su Accessibilità Utility Manager..." + IDS_APP_NAME "Accessibilità Utility Manager" + IDS_AUTHORS "Copyright 2019 George Bișoc, Hermes Belusca-Maito" END diff --git a/base/applications/utilman/umandlg/lang/pl-PL.rc b/base/applications/utilman/umandlg/lang/pl-PL.rc index 76d82e7551434..10a9d042d9d0d 100644 --- a/base/applications/utilman/umandlg/lang/pl-PL.rc +++ b/base/applications/utilman/umandlg/lang/pl-PL.rc @@ -24,16 +24,6 @@ BEGIN CONTROL "&Pomoc", IDC_HELP_TOPICS, "Button", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_TABSTOP, 98, 161, 50, 14 END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 210, 65 -CAPTION "Menedżer narzędzi ułatwienia dostępu - informacje" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Menedżer narzędzi ułatwienia dostępu\nCopyright 2019 George Bișoc (fraizeraust99 at gmail dot com)", IDC_STATIC, 10, 7, 150, 36 - LTEXT "Copyright 2019 Hermes Belusca-Maito", IDC_STATIC, 10, 33, 150, 36 - PUSHBUTTON "Close", IDOK, 75, 47, 44, 15 -END - STRINGTABLE BEGIN IDS_OSK "Klawiatura ekranowa" @@ -50,4 +40,6 @@ END STRINGTABLE BEGIN IDM_ABOUT "O programie Menedżer narzędzi ułatwienia dostępu..." + IDS_APP_NAME "Menedżer narzędzi ułatwienia dostępu" + IDS_AUTHORS "Copyright 2019 George Bișoc, Hermes Belusca-Maito" END diff --git a/base/applications/utilman/umandlg/lang/ro-RO.rc b/base/applications/utilman/umandlg/lang/ro-RO.rc index 5cb51134aa2df..10f357e9eba69 100644 --- a/base/applications/utilman/umandlg/lang/ro-RO.rc +++ b/base/applications/utilman/umandlg/lang/ro-RO.rc @@ -25,16 +25,6 @@ BEGIN CONTROL "&Ajutor", IDC_HELP_TOPICS, "Button", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_TABSTOP, 98, 161, 50, 14 END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 210, 65 -CAPTION "Despre Managerul utilitare" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Manager utilitare\nDrept de autor 2019 George Bișoc (fraizeraust99 at gmail dot com)", IDC_STATIC, 10, 7, 150, 36 - LTEXT "Drept de autor 2019 Hermes Belusca-Maito", IDC_STATIC, 10, 33, 150, 36 - PUSHBUTTON "Închide", IDOK, 75, 47, 44, 15 -END - STRINGTABLE BEGIN IDS_OSK "Tastatură virtuală" @@ -51,4 +41,6 @@ END STRINGTABLE BEGIN IDM_ABOUT "Despre Managerul utilitare..." + IDS_APP_NAME "Manager utilitare" + IDS_AUTHORS "Drept de autor 2019 George Bișoc, Hermes Belusca-Maito" END diff --git a/base/applications/utilman/umandlg/lang/ru-RU.rc b/base/applications/utilman/umandlg/lang/ru-RU.rc index c57d4be4169f2..a797b13c51730 100644 --- a/base/applications/utilman/umandlg/lang/ru-RU.rc +++ b/base/applications/utilman/umandlg/lang/ru-RU.rc @@ -25,16 +25,6 @@ BEGIN CONTROL "&Справка", IDC_HELP_TOPICS, "Button", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_TABSTOP, 98, 161, 50, 14 END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 210, 65 -CAPTION "О программе" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Диспетчер служебных программ\n© 2019 Джордж Бисок (fraizeraust99 at gmail dot com)", IDC_STATIC, 10, 7, 150, 36 - LTEXT "© 2019 Гермес Белуска-Майто", IDC_STATIC, 10, 33, 150, 36 - PUSHBUTTON "OK", IDOK, 75, 47, 44, 15 -END - STRINGTABLE BEGIN IDS_OSK "Экранная клавиатура" @@ -51,4 +41,6 @@ END STRINGTABLE BEGIN IDM_ABOUT "О программе" + IDS_APP_NAME "Диспетчер служебных программ" + IDS_AUTHORS "© 2019 Джордж Бисок, Гермес Белуска-Майто" END diff --git a/base/applications/utilman/umandlg/lang/uk-UA.rc b/base/applications/utilman/umandlg/lang/uk-UA.rc index d13c862c279d5..0ce31dc1aba1f 100644 --- a/base/applications/utilman/umandlg/lang/uk-UA.rc +++ b/base/applications/utilman/umandlg/lang/uk-UA.rc @@ -25,16 +25,6 @@ BEGIN CONTROL "&Довідка", IDC_HELP_TOPICS, "Button", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_TABSTOP, 98, 161, 50, 14 END -IDD_ABOUT_DIALOG DIALOGEX 22, 16, 210, 65 -CAPTION "Про программу" -FONT 8, "MS Shell Dlg", 0, 0 -STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -BEGIN - LTEXT "Диспетчер службових програм\n© 2019 Джордж Бісок (fraizeraust99 at gmail dot com)", IDC_STATIC, 10, 7, 150, 36 - LTEXT "© 2019 Гермес Белуска-Майто", IDC_STATIC, 10, 33, 150, 36 - PUSHBUTTON "OK", IDOK, 75, 47, 44, 15 -END - STRINGTABLE BEGIN IDS_OSK "Екранна клавіатура" @@ -51,4 +41,6 @@ END STRINGTABLE BEGIN IDM_ABOUT "Про программу" + IDS_APP_NAME "Диспетчер службових програм" + IDS_AUTHORS "© 2019 Джордж Бісок, Гермес Белуска-Майто" END diff --git a/base/applications/utilman/umandlg/resource.h b/base/applications/utilman/umandlg/resource.h index d980b983a7e21..5d04ba3c1c77f 100644 --- a/base/applications/utilman/umandlg/resource.h +++ b/base/applications/utilman/umandlg/resource.h @@ -39,6 +39,9 @@ /* System menu (About) resource */ #define IDM_ABOUT 600 +/* About resource strings */ +#define IDS_APP_NAME 700 +#define IDS_AUTHORS 701 + /* Main dialog resource */ #define IDD_MAIN_DIALOG 1000 -#define IDD_ABOUT_DIALOG 1050 diff --git a/base/applications/utilman/umandlg/umandlg.c b/base/applications/utilman/umandlg/umandlg.c index 0902f3b972f48..f1a9a72ce67ba 100644 --- a/base/applications/utilman/umandlg/umandlg.c +++ b/base/applications/utilman/umandlg/umandlg.c @@ -35,7 +35,7 @@ UTILMAN_STATE EntriesList[] = * @return * Nothing. */ -VOID InitUtilsList(BOOL bInitGui) +VOID InitUtilsList(IN BOOL bInitGui) { UINT i; @@ -152,6 +152,29 @@ BOOL DlgInitHandler(IN HWND hDlg) return TRUE; } +/** + * @ShowAboutDlg + * + * Displays the Shell "About" dialog box. + * + * @param[in] hDlgParent + * A handle to the parent dialog window. + * + * @return + * Nothing. + * + */ +VOID ShowAboutDlg(IN HWND hDlgParent) +{ + WCHAR szApp[MAX_BUFFER]; + WCHAR szAuthors[MAX_BUFFER]; + + LoadStringW(Globals.hInstance, IDS_APP_NAME, szApp, _countof(szApp)); + LoadStringW(Globals.hInstance, IDS_AUTHORS, szAuthors, _countof(szAuthors)); + + ShellAboutW(hDlgParent, szApp, szAuthors, Globals.hIcon); +} + /** * @GroupBoxUpdateTitle * diff --git a/base/applications/utilman/umandlg/umandlg.h b/base/applications/utilman/umandlg/umandlg.h index 6705761239b93..b7548cc972e20 100644 --- a/base/applications/utilman/umandlg/umandlg.h +++ b/base/applications/utilman/umandlg/umandlg.h @@ -90,10 +90,13 @@ typedef enum _WRITE_REGISTRY /* DECLARATIONS ***************************************************************/ /* umandlg.c */ -BOOL DlgInitHandler(HWND hDlg); -INT_PTR APIENTRY DlgProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); +VOID InitUtilsList(IN BOOL bInitGui); +BOOL DlgInitHandler(IN HWND hDlg); +VOID ShowAboutDlg(IN HWND hDlgParent); +VOID GroupBoxUpdateTitle(VOID); +VOID UpdateUtilityState(IN BOOL bUtilState); +INT_PTR APIENTRY DlgProc(IN HWND hDlg, IN UINT Msg, IN WPARAM wParam, IN LPARAM lParam); INT ListBoxRefreshContents(VOID); -VOID CheckUtilityState(BOOL bUtilState); BOOL WINAPI UManStartDlg(VOID); /* process.c */ @@ -102,10 +105,6 @@ BOOL IsProcessRunning(IN LPCWSTR lpszProcessName); BOOL LaunchProcess(IN LPCWSTR lpszProcessName); BOOL CloseProcess(IN LPCWSTR lpszProcessName); -/* about.c */ -VOID ShowAboutDlg(HWND hDlgParent); -INT_PTR CALLBACK AboutDlgProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam); - /* registry.c */ BOOL InitAppRegKey(IN HKEY hPredefinedKey, IN LPCWSTR lpszSubKey, OUT PHKEY phKey, OUT LPDWORD lpdwDisposition); BOOL QueryAppSettings(IN HKEY hKey, IN LPCWSTR lpszSubKey, IN LPCWSTR lpszRegValue, OUT PVOID ReturnedData, IN OUT LPDWORD lpdwSizeData); diff --git a/base/services/umpnpmgr/rpcserver.c b/base/services/umpnpmgr/rpcserver.c index 313ca1c8076c9..e88d3cc123d82 100644 --- a/base/services/umpnpmgr/rpcserver.c +++ b/base/services/umpnpmgr/rpcserver.c @@ -410,6 +410,131 @@ IsRootDeviceInstanceID( } +static +CONFIGRET +OpenConfigurationKey( + _In_ LPCWSTR pszDeviceID, + _Out_ PHKEY phKey) +{ + WCHAR szKeyName[MAX_PATH]; + HKEY hInstanceKey; + DWORD dwError; + + /* Build the full device instance key name */ + wcscpy(szKeyName, L"System\\CurrentControlSet\\Enum\\"); + wcscat(szKeyName, pszDeviceID); + + /* Open the device instance key */ + dwError = RegOpenKeyExW(HKEY_LOCAL_MACHINE, + szKeyName, + 0, + KEY_QUERY_VALUE | KEY_SET_VALUE | KEY_CREATE_SUB_KEY, + &hInstanceKey); + if (dwError != ERROR_SUCCESS) + return CR_INVALID_DEVINST; + + /* Create or open the LogConf key */ + dwError = RegCreateKeyExW(hInstanceKey, + L"LogConf", + 0, + NULL, + REG_OPTION_NON_VOLATILE, + KEY_ALL_ACCESS, + NULL, + phKey, + NULL); + + /* Close the device instance key */ + RegCloseKey(hInstanceKey); + + if (dwError != ERROR_SUCCESS) + return CR_REGISTRY_ERROR; + + return CR_SUCCESS; +} + + +static +CONFIGRET +GetConfigurationData( + _In_ HKEY hKey, + _In_ ULONG ulLogConfType, + _Out_ PULONG pulRegDataType, + _Out_ PULONG pulDataSize, + _Out_ LPBYTE *ppBuffer) +{ + LPCWSTR pszValueName; + + switch (ulLogConfType) + { + case BOOT_LOG_CONF: + pszValueName = L"BootConfig"; + *pulRegDataType = REG_RESOURCE_LIST; + break; + + case ALLOC_LOG_CONF: + pszValueName = L"AllocConfig"; + *pulRegDataType = REG_RESOURCE_LIST; + break; + + case FORCED_LOG_CONF: + pszValueName = L"ForcedConfig"; + *pulRegDataType = REG_RESOURCE_LIST; + break; + + case FILTERED_LOG_CONF: + pszValueName = L"FilteredConfigVector"; + *pulRegDataType = REG_RESOURCE_REQUIREMENTS_LIST; + break; + + case BASIC_LOG_CONF: + pszValueName = L"BasicConfigVector"; + *pulRegDataType = REG_RESOURCE_REQUIREMENTS_LIST; + break; + + case OVERRIDE_LOG_CONF: + pszValueName = L"OverrideConfigVector"; + *pulRegDataType = REG_RESOURCE_REQUIREMENTS_LIST; + break; + + default: + DPRINT1("Unsupported configuration type!\n"); + return CR_FAILURE; + } + + /* Get the configuration data size */ + if (RegQueryValueExW(hKey, + pszValueName, + NULL, + NULL, + NULL, + pulDataSize) != ERROR_SUCCESS) + { + return CR_INVALID_LOG_CONF; + } + + /* Allocate the buffer */ + *ppBuffer = HeapAlloc(GetProcessHeap(), 0, *pulDataSize); + if (*ppBuffer == NULL) + { + return CR_OUT_OF_MEMORY; + } + + /* Retrieve the configuration data */ + if (RegQueryValueExW(hKey, + pszValueName, + NULL, + NULL, + (LPBYTE)*ppBuffer, + pulDataSize) != ERROR_SUCCESS) + { + return CR_INVALID_LOG_CONF; + } + + return CR_SUCCESS; +} + + /* PUBLIC FUNCTIONS **********************************************************/ /* Function 0 */ @@ -3732,8 +3857,92 @@ PNP_GetFirstLogConf( DWORD *pulLogConfTag, DWORD ulFlags) { - UNIMPLEMENTED; - return CR_CALL_NOT_IMPLEMENTED; + HKEY hConfigKey = NULL; + DWORD RegDataType = 0; + ULONG ulDataSize = 0; + LPBYTE lpData = NULL; + CONFIGRET ret = CR_SUCCESS; + + DPRINT("PNP_GetFirstLogConf(%p %S %lu %p 0x%08lx)\n", + hBinding, pDeviceID, ulLogConfType, pulLogConfTag, ulFlags); + + if (pulLogConfTag == NULL) + return CR_INVALID_POINTER; + + *pulLogConfTag = (DWORD)0; + + if (ulFlags & ~LOG_CONF_BITS) + return CR_INVALID_FLAG; + + if (!IsValidDeviceInstanceID(pDeviceID)) + return CR_INVALID_DEVINST; + + ret = OpenConfigurationKey(pDeviceID, + &hConfigKey); + if (ret != CR_SUCCESS) + { + DPRINT1("OpenConfigurationKey() failed (Error %lu)\n", ret); + ret = CR_NO_MORE_LOG_CONF; + goto done; + } + + ret = GetConfigurationData(hConfigKey, + ulLogConfType, + &RegDataType, + &ulDataSize, + &lpData); + if (ret != CR_SUCCESS) + { + DPRINT1("GetConfigurationData() failed (Error %lu)\n", ret); + ret = CR_NO_MORE_LOG_CONF; + goto done; + } + + DPRINT("Data size %lu\n", ulDataSize); + if (ulDataSize == 0 || lpData == NULL) + { + DPRINT1("No config data available!\n"); + ret = CR_NO_MORE_LOG_CONF; + goto done; + } + + /* Get the first tag */ + if (RegDataType == REG_RESOURCE_LIST) + { + DPRINT("REG_RESOURCE_LIST\n"); + + DPRINT("ResourceList->Count %lu\n", ((PCM_RESOURCE_LIST)lpData)->Count); + if (((PCM_RESOURCE_LIST)lpData)->Count == 0) + { + DPRINT1("No resource descriptors!\n"); + ret = CR_NO_MORE_LOG_CONF; + goto done; + } + + DPRINT("lpData %p\n", lpData); + DPRINT("&List[0] %p\n", &(((PCM_RESOURCE_LIST)lpData)->List[0])); + + *pulLogConfTag = (DWORD)((DWORD_PTR)&(((PCM_RESOURCE_LIST)lpData)->List[0]) - (DWORD_PTR)lpData); + DPRINT("Offset (Tag): 0x%08lx\n", *pulLogConfTag); + } + else if (RegDataType == REG_RESOURCE_REQUIREMENTS_LIST) + { + DPRINT1("FIXME: REG_RESOURCE_REQUIREMENTS_LIST\n"); + /* FIXME */ + ret = CR_NO_MORE_LOG_CONF; + goto done; + } + +done: + if (lpData != NULL) + HeapFree(GetProcessHeap(), 0, lpData); + + if (hConfigKey != NULL) + RegCloseKey(hConfigKey); + + DPRINT("PNP_GetFirstLogConf() returns %lu\n", ret); + + return ret; } @@ -3748,8 +3957,82 @@ PNP_GetNextLogConf( DWORD *pulNextTag, DWORD ulFlags) { - UNIMPLEMENTED; - return CR_CALL_NOT_IMPLEMENTED; + HKEY hConfigKey = NULL; + DWORD RegDataType = 0; + ULONG ulDataSize = 0; + LPBYTE lpData = NULL; + CONFIGRET ret = CR_SUCCESS; + + DPRINT("PNP_GetNextLogConf(%p %S %lu %ul %p 0x%08lx)\n", + hBinding, pDeviceID, ulLogConfType, ulCurrentTag, pulNextTag, ulFlags); + + if (pulNextTag == NULL) + return CR_INVALID_POINTER; + + *pulNextTag = (DWORD)0; + + if (ulFlags != 0) + return CR_INVALID_FLAG; + + if (!IsValidDeviceInstanceID(pDeviceID)) + return CR_INVALID_DEVINST; + + ret = OpenConfigurationKey(pDeviceID, + &hConfigKey); + if (ret != CR_SUCCESS) + { + DPRINT1("OpenConfigurationKey() failed (Error %lu)\n", ret); + ret = CR_NO_MORE_LOG_CONF; + goto done; + } + + ret = GetConfigurationData(hConfigKey, + ulLogConfType, + &RegDataType, + &ulDataSize, + &lpData); + if (ret != CR_SUCCESS) + { + DPRINT1("GetConfigurationData() failed (Error %lu)\n", ret); + ret = CR_NO_MORE_LOG_CONF; + goto done; + } + + DPRINT("Data size %lu\n", ulDataSize); + + if (ulDataSize == 0 || lpData == NULL) + { + DPRINT1("No config data available!\n"); + ret = CR_NO_MORE_LOG_CONF; + goto done; + } + + /* FIXME: Get the next tag */ + if (RegDataType == REG_RESOURCE_LIST) + { + DPRINT1("FIXME: REG_RESOURCE_LIST\n"); + /* FIXME */ + ret = CR_NO_MORE_LOG_CONF; + goto done; + } + else if (RegDataType == REG_RESOURCE_REQUIREMENTS_LIST) + { + DPRINT1("FIXME: REG_RESOURCE_REQUIREMENTS_LIST\n"); + /* FIXME */ + ret = CR_NO_MORE_LOG_CONF; + goto done; + } + +done: + if (lpData != NULL) + HeapFree(GetProcessHeap(), 0, lpData); + + if (hConfigKey != NULL) + RegCloseKey(hConfigKey); + + DPRINT("PNP_GetNextLogConf() returns %lu\n", ret); + + return ret; } diff --git a/base/shell/cmd/parser.c b/base/shell/cmd/parser.c index cdea54a8f08a9..abf2353d56371 100644 --- a/base/shell/cmd/parser.c +++ b/base/shell/cmd/parser.c @@ -575,9 +575,10 @@ static PARSED_COMMAND *ParseFor(void) /* Parse a REM command */ static PARSED_COMMAND *ParseRem(void) { - /* Just ignore the rest of the line */ - while (CurChar && CurChar != _T('\n')) - ParseChar(); + /* "Ignore" the rest of the line. + * (Line continuations will still be parsed, though.) */ + while (ParseToken(0, NULL) != TOK_END) + ; return NULL; } diff --git a/base/system/userinit/livecd.c b/base/system/userinit/livecd.c index 86d3eb70fc2a7..e4940bcade030 100644 --- a/base/system/userinit/livecd.c +++ b/base/system/userinit/livecd.c @@ -11,6 +11,13 @@ HWND hList; HWND hLocaleList; BOOL bSpain = FALSE; +typedef struct _LIVECD_UNATTEND +{ + BOOL bEnabled; + LCID LocaleID; +} LIVECD_UNATTEND; + + /* * Taken and adapted from dll/cpl/sysdm/general.c */ @@ -27,6 +34,9 @@ InitLogo(PIMGINFO pImgInfo, HWND hwndDlg) COLORREF *pBits; INT line, column; + if (hDC == NULL || hDCLogo == NULL || hDCMask == NULL) + goto Cleanup; + ZeroMemory(pImgInfo, sizeof(*pImgInfo)); ZeroMemory(&bmpi, sizeof(bmpi)); @@ -69,7 +79,7 @@ InitLogo(PIMGINFO pImgInfo, HWND hwndDlg) g = GetGValue(Color) * alpha / 255; b = GetBValue(Color) * alpha / 255; - *pBits++ = b | g << 8 | r << 16 | alpha << 24; + *pBits++ = b | (g << 8) | (r << 16) | (alpha << 24); } } @@ -81,10 +91,11 @@ InitLogo(PIMGINFO pImgInfo, HWND hwndDlg) } Cleanup: - DeleteObject(hMask); - DeleteObject(hLogo); - DeleteDC(hDCMask); - DeleteDC(hDCLogo); + if (hMask != NULL) DeleteObject(hMask); + if (hLogo != NULL) DeleteObject(hLogo); + if (hDCMask != NULL) DeleteDC(hDCMask); + if (hDCLogo != NULL) DeleteDC(hDCLogo); + if (hDC != NULL) ReleaseDC(hwndDlg, hDC); } @@ -158,6 +169,7 @@ LocalesEnumProc(LPTSTR lpLocale) if (!IsValidLocale(lcid, LCID_INSTALLED)) return TRUE; + // See http://archives.miloush.net/michkap/archive/2006/09/23/768178.html for why we handle spain differently if (lcid == MAKELCID(MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH), SORT_DEFAULT) || lcid == MAKELCID(MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH_MODERN), SORT_DEFAULT)) { @@ -194,17 +206,25 @@ LocalesEnumProc(LPTSTR lpLocale) static VOID -CreateLanguagesList(HWND hwnd) +CreateLanguagesList(HWND hwnd, PSTATE pState) { WCHAR langSel[255]; + LCID Locale = 0; hList = hwnd; bSpain = FALSE; EnumSystemLocalesW(LocalesEnumProc, LCID_SUPPORTED); - /* Select current locale */ - /* or should it be System and not user? */ - GetLocaleInfoW(GetUserDefaultLCID(), LOCALE_SLANGUAGE, langSel, ARRAYSIZE(langSel)); + if (pState->Unattend->bEnabled) + Locale = pState->Unattend->LocaleID; + + if (!Locale) + { + /* Select current locale */ + /* or should it be System and not user? */ + Locale = GetUserDefaultLCID(); + } + GetLocaleInfoW(Locale, LOCALE_SLANGUAGE, langSel, ARRAYSIZE(langSel)); SendMessageW(hList, CB_SELECTSTRING, @@ -618,8 +638,13 @@ LocaleDlgProc( CenterWindow(hwndDlg); /* Fill the language and keyboard layout lists */ - CreateLanguagesList(GetDlgItem(hwndDlg, IDC_LANGUAGELIST)); + CreateLanguagesList(GetDlgItem(hwndDlg, IDC_LANGUAGELIST), pState); CreateKeyboardLayoutList(GetDlgItem(hwndDlg, IDC_LAYOUTLIST)); + if (pState->Unattend->bEnabled) + { + // Advance to the next page + PostMessageW(hwndDlg, WM_COMMAND, MAKELONG(IDOK, BN_CLICKED), 0L); + } return FALSE; case WM_DRAWITEM: @@ -746,6 +771,13 @@ StartDlgProc( /* Center the dialog window */ CenterWindow(hwndDlg); + + if (pState->Unattend->bEnabled) + { + // Click on the 'Run' button + PostMessageW(hwndDlg, WM_COMMAND, MAKELONG(IDC_RUN, BN_CLICKED), 0L); + } + return FALSE; case WM_DRAWITEM: @@ -805,13 +837,59 @@ StartDlgProc( return FALSE; } +VOID ParseUnattend(LPCWSTR UnattendInf, LIVECD_UNATTEND* pUnattend) +{ + WCHAR Buffer[MAX_PATH]; + + pUnattend->bEnabled = FALSE; + + if (!GetPrivateProfileStringW(L"Unattend", L"Signature", L"", Buffer, _countof(Buffer), UnattendInf)) + { + ERR("Unable to parse Signature\n"); + return; + } + + if (_wcsicmp(Buffer, L"$ReactOS$") && _wcsicmp(Buffer, L"$Windows NT$")) + { + TRACE("Unknown signature: %S\n", Buffer); + return; + } + + if (!GetPrivateProfileStringW(L"Unattend", L"UnattendSetupEnabled", L"", Buffer, _countof(Buffer), UnattendInf)) + { + ERR("Unable to parse UnattendSetupEnabled\n"); + return; + } + + if (_wcsicmp(Buffer, L"yes")) + { + TRACE("Unattended setup is not enabled\n", Buffer); + return; + } + + pUnattend->bEnabled = TRUE; + pUnattend->LocaleID = 0; + + if (GetPrivateProfileStringW(L"Unattend", L"LocaleID", L"", Buffer, _countof(Buffer), UnattendInf) && Buffer[0]) + { + pUnattend->LocaleID = wcstol(Buffer, NULL, 16); + } +} VOID RunLiveCD( PSTATE pState) { + LIVECD_UNATTEND Unattend = {0}; + WCHAR UnattendInf[MAX_PATH]; + InitLogo(&pState->ImageInfo, NULL); + GetWindowsDirectoryW(UnattendInf, _countof(UnattendInf)); + wcscat(UnattendInf, L"\\unattend.inf"); + ParseUnattend(UnattendInf, &Unattend); + pState->Unattend = &Unattend; + while (pState->NextPage != DONE) { switch (pState->NextPage) diff --git a/base/system/userinit/userinit.h b/base/system/userinit/userinit.h index 46079756a6c96..c34f287d09cb3 100644 --- a/base/system/userinit/userinit.h +++ b/base/system/userinit/userinit.h @@ -58,6 +58,7 @@ typedef struct PAGESTATE NextPage; RUN Run; IMGINFO ImageInfo; + struct _LIVECD_UNATTEND* Unattend; } STATE, *PSTATE; diff --git a/boot/bootdata/CMakeLists.txt b/boot/bootdata/CMakeLists.txt index fd5696b46fe98..f1e6153f8a788 100644 --- a/boot/bootdata/CMakeLists.txt +++ b/boot/bootdata/CMakeLists.txt @@ -62,6 +62,7 @@ add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hybridcd.ini DESTINATION root NAME_ # Unattend add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/bootcdregtest/unattend.inf DESTINATION reactos NO_CAB FOR regtest) add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/bootcd/unattend.inf DESTINATION reactos NO_CAB FOR bootcd) +add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/livecd/unattend.inf DESTINATION reactos NO_CAB FOR livecd) # LiveCD shortcuts macro(add_livecd_shortcut name app dest) diff --git a/boot/bootdata/hivedef.inf b/boot/bootdata/hivedef.inf index 7877b89194e4f..56416fd453797 100644 --- a/boot/bootdata/hivedef.inf +++ b/boot/bootdata/hivedef.inf @@ -3659,71 +3659,71 @@ TEMP_DIR="%USERPROFILE%\การตั้งค่าตั้งต้น\เ ; LANG_TURKISH SUBLANG_NEUTRAL [Strings.001F] -EVENT_LABEL_0 = "Default Beep" -EVENT_LABEL_1 = "Program error" -EVENT_LABEL_2 = "Close program" -EVENT_LABEL_3 = "Critical Battery Alarm" -EVENT_LABEL_4 = "Device Connect" -EVENT_LABEL_5 = "Device Disconnect" -EVENT_LABEL_6 = "Device Failed to Connect" -EVENT_LABEL_7 = "Empty Recycle Bin" -EVENT_LABEL_8 = "Low Battery Alarm" -EVENT_LABEL_9 = "Maximize" -EVENT_LABEL_10 = "Menu command" -EVENT_LABEL_11 = "Menu popup" -EVENT_LABEL_12 = "Minimize" -EVENT_LABEL_13 = "New Mail Notification" -EVENT_LABEL_14 = "Start Navigation" -EVENT_LABEL_15 = "Open program" -EVENT_LABEL_16 = "Print Complete" -EVENT_LABEL_17 = "Restore Down" -EVENT_LABEL_18 = "Restore Up" -EVENT_LABEL_19 = "Asterisk" -EVENT_LABEL_20 = "Exclamation" -EVENT_LABEL_21 = "Exit ReactOS" -EVENT_LABEL_22 = "Critical Stop" -EVENT_LABEL_23 = "System Notification" -EVENT_LABEL_24 = "Question" -EVENT_LABEL_25 = "Start ReactOS" -EVENT_LABEL_26 = "ReactOS Logoff" -EVENT_LABEL_27 = "ReactOS Logon" -POWERCFG_NAME_0="Home/Office Desk" -POWERCFG_DESC_0="This scheme is suited to most home or desktop computers that are left plugged in all the time." -POWERCFG_NAME_1="Portable/Laptop" -POWERCFG_DESC_1="This scheme is designed for extended battery life for portable computers on the road." -POWERCFG_NAME_2="Presentation" -POWERCFG_DESC_2="This scheme keeps the monitor on for doing presentations." -POWERCFG_NAME_3="Always On" -POWERCFG_DESC_3="This scheme keeps the computer running so that it can be accessed from the network. Use this scheme if you do not have network wakeup hardware." -POWERCFG_NAME_4="Minimal Power Management" -POWERCFG_DESC_4="This scheme keeps the computer on and optimizes it for high performance." -POWERCFG_NAME_5="Max Battery" -POWERCFG_DESC_5="This scheme is extremely aggressive for saving power." -DESKTOP_SCHEME_0="ReactOS Standard" -DESKTOP_SCHEME_1="Brick" -DESKTOP_SCHEME_2="Eggplant" -DESKTOP_SCHEME_3="Green Olive" -DESKTOP_SCHEME_4="High Contrast 1" -DESKTOP_SCHEME_5="High Contrast 2" -DESKTOP_SCHEME_6="High Contrast Black" -DESKTOP_SCHEME_7="High Contrast White" -DESKTOP_SCHEME_8="Lilac" -DESKTOP_SCHEME_9="Maple" -DESKTOP_SCHEME_10="Marine" -DESKTOP_SCHEME_11="Plum" -DESKTOP_SCHEME_12="Pumpkin" -DESKTOP_SCHEME_13="Rainy Day" -DESKTOP_SCHEME_14="ReactOS Classic" -DESKTOP_SCHEME_15="Rose" -DESKTOP_SCHEME_16="Sand" -DESKTOP_SCHEME_17="Sky" -DESKTOP_SCHEME_18="Slate" -DESKTOP_SCHEME_19="Storm" -DESKTOP_SCHEME_20="Teal" -DESKTOP_SCHEME_21="Wheat" -DESKTOP_SCHEME_22="Red, White, and Blue" -DESKTOP_SCHEME_SIZE_0="Default size" -TEMP_DIR="%USERPROFILE%\Yerli Ayarlar\Geçici" +EVENT_LABEL_0 = "Ön Tanımlı Bipleme" +EVENT_LABEL_1 = "Program Hatası" +EVENT_LABEL_2 = "Programı Kapat" +EVENT_LABEL_3 = "Kritik Pil Alarmı" +EVENT_LABEL_4 = "Aygıt Bağlandı" +EVENT_LABEL_5 = "Aygıt Çıkarıldı" +EVENT_LABEL_6 = "Aygıt Bağlamada Başarısız Oldu" +EVENT_LABEL_7 = "Boş Geri Dönüşüm Kutusu" +EVENT_LABEL_8 = "Düşük Pil Alarmı" +EVENT_LABEL_9 = "En Büyük Haline Getir" +EVENT_LABEL_10 = "Menü Komutu" +EVENT_LABEL_11 = "Menü Açılması" +EVENT_LABEL_12 = "Simge Durumuna Küçült" +EVENT_LABEL_13 = "Yeni Mail Bildirimi" +EVENT_LABEL_14 = "Gezinmeyi Başlat" +EVENT_LABEL_15 = "Program Aç" +EVENT_LABEL_16 = "Yazdırma Bitti" +EVENT_LABEL_17 = "Aşağı Geri Getir" +EVENT_LABEL_18 = "Yukarı Geri Getir" +EVENT_LABEL_19 = "Yıldız İşareti" +EVENT_LABEL_20 = "Ünlem İşareti" +EVENT_LABEL_21 = "ReactOS'tan Çık" +EVENT_LABEL_22 = "Kritik Durma" +EVENT_LABEL_23 = "Sistem Bildirimi" +EVENT_LABEL_24 = "Soru" +EVENT_LABEL_25 = "ReactOS'u Başlat" +EVENT_LABEL_26 = "ReactOS Oturum Kapat" +EVENT_LABEL_27 = "ReactOS Oturum Aç" +POWERCFG_NAME_0="Ev/İş Masası" +POWERCFG_DESC_0="Bu düzen, her zaman fişte takılı ev veya dizüstü bilgisayarlar için uygundur." +POWERCFG_NAME_1="Taşınabilir/Dizüstü" +POWERCFG_DESC_1="Bu düzen, seyahat sırasında taşınabilir bilgisayarların uzun pil ömrü için tasarlanmıştır." +POWERCFG_NAME_2="Sunum" +POWERCFG_DESC_2="Bu düzen, sunumlar yapmak için monitörü açık tutar." +POWERCFG_NAME_3="Her Zaman Açık" +POWERCFG_DESC_3="Bu düzen, bilgisayarı çalışır tutar, böylece o ağdan erişilebilir. Eğer ağdan uyandırmalı donanımınız yoksa bu düzeni kullanınız." +POWERCFG_NAME_4="En Düşük Güç Yönetimi" +POWERCFG_DESC_4="Bu düzen, bilgisayarı açık tutar ve onu yüksek performans için eniyiler." +POWERCFG_NAME_5="En Yüksek Pil Ömrü" +POWERCFG_DESC_5="Bu düzen, güç tasarrufu için aşırı bir şekilde agresiftir." +DESKTOP_SCHEME_0="ReactOS Standart" +DESKTOP_SCHEME_1="Tuğla" +DESKTOP_SCHEME_2="Patlıcan" +DESKTOP_SCHEME_3="Yeşil Zeytin" +DESKTOP_SCHEME_4="Yüksek Karşıtlık 1" +DESKTOP_SCHEME_5="Yüksek Karşıtlık 2" +DESKTOP_SCHEME_6="Yüksek Karşıtlık Siyah" +DESKTOP_SCHEME_7="Yüksek Karşıtlık Beyaz" +DESKTOP_SCHEME_8="Leylak" +DESKTOP_SCHEME_9="Akçaağaç" +DESKTOP_SCHEME_10="Deniz" +DESKTOP_SCHEME_11="Erik" +DESKTOP_SCHEME_12="Kabak" +DESKTOP_SCHEME_13="Yağmurlu Gün" +DESKTOP_SCHEME_14="ReactOS Klasik" +DESKTOP_SCHEME_15="Gül" +DESKTOP_SCHEME_16="Kum" +DESKTOP_SCHEME_17="Gökyüzü" +DESKTOP_SCHEME_18="Arduvaz" +DESKTOP_SCHEME_19="Fırtına" +DESKTOP_SCHEME_20="Camgöbeği" +DESKTOP_SCHEME_21="Buğday" +DESKTOP_SCHEME_22="Kırmızı, Beyaz, ve Mavi" +DESKTOP_SCHEME_SIZE_0="Ön Tanımlı Boyut" +TEMP_DIR="%USERPROFILE%\Yerel Ayarlar\Geçici" ; LANG_INDONESIAN SUBLANG_NEUTRAL [Strings.0021] diff --git a/boot/bootdata/livecd/.keep b/boot/bootdata/livecd/.keep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/boot/bootdata/livecd/unattend.inf b/boot/bootdata/livecd/unattend.inf new file mode 100644 index 0000000000000..9336b0ff791c1 --- /dev/null +++ b/boot/bootdata/livecd/unattend.inf @@ -0,0 +1,13 @@ +[Unattend] +Signature = "$ReactOS$" + +; Set UnattendSetupEnabled to yes in order to boot the livecd immediately to desktop +; yes - unattend setup enabled +; no - unattend setup disabled +UnattendSetupEnabled = no + +; set this option to automatically +; specify language in the language setup +; see hivesys.inf for available languages +LocaleID = 409 + diff --git a/boot/bootdata/txtsetup.sif b/boot/bootdata/txtsetup.sif index 02116f3e0399f..9c1bcc410ebe6 100644 --- a/boot/bootdata/txtsetup.sif +++ b/boot/bootdata/txtsetup.sif @@ -148,11 +148,11 @@ mountmgr.sys = 1,,,,,,x,4,,,,1,4 [SystemPartitionFiles] [HardwareIdsDatabase] -;*PNP0A00 = isapnp +*PNP0A00 = isapnp *PNP0A03 = pci *PNP0A08 = pci *PNP0C08 = acpi -;PCI\CC_0601 = isapnp +PCI\CC_0601 = isapnp PCI\CC_0604 = pci PCI\VEN_104B&CC_0100 = buslogic PCI\CC_0101 = pciide diff --git a/boot/freeldr/freeldr/arch/i386/pc/pcdisk.c b/boot/freeldr/freeldr/arch/i386/pc/pcdisk.c index 37058bced70ad..550c424d15d6e 100644 --- a/boot/freeldr/freeldr/arch/i386/pc/pcdisk.c +++ b/boot/freeldr/freeldr/arch/i386/pc/pcdisk.c @@ -790,7 +790,7 @@ PcDiskReadLogicalSectors( #if defined(__i386__) || defined(_M_AMD64) VOID __cdecl DiskStopFloppyMotor(VOID) { - WRITE_PORT_UCHAR((PUCHAR)0x3F2, 0x0C); // DOR_FDC_ENABLE | DOR_DMA_IO_INTERFACE_ENABLE + WRITE_PORT_UCHAR((PUCHAR)0x3F2, 0); // DOR_FDC_ENABLE | DOR_DMA_IO_INTERFACE_ENABLE 0x0C // we changed 0x0C->0 to workaround CORE-16469 } #endif // defined __i386__ || defined(_M_AMD64) diff --git a/boot/freeldr/freeldr/arch/i386/pc98/machpc98.c b/boot/freeldr/freeldr/arch/i386/pc98/machpc98.c index ca94ea54976b3..38ddf378378ca 100644 --- a/boot/freeldr/freeldr/arch/i386/pc98/machpc98.c +++ b/boot/freeldr/freeldr/arch/i386/pc98/machpc98.c @@ -37,6 +37,7 @@ Pc98PrepareForReactOS(VOID) Pc98DiskPrepareForReactOS(); Pc98VideoPrepareForReactOS(); DiskStopFloppyMotor(); + DebugDisableScreenPort(); } ULONG diff --git a/boot/freeldr/freeldr/arch/i386/xbox/machxbox.c b/boot/freeldr/freeldr/arch/i386/xbox/machxbox.c index 438e887d059c3..3735f18982bb7 100644 --- a/boot/freeldr/freeldr/arch/i386/xbox/machxbox.c +++ b/boot/freeldr/freeldr/arch/i386/xbox/machxbox.c @@ -261,8 +261,8 @@ MachInit(const char *CmdLine) /* Check for Xbox by identifying device at PCI 0:0:0, if it's * 0x10DE/0x02A5 then we're running on an Xbox */ - WRITE_PORT_ULONG((ULONG *)0xCF8, CONFIG_CMD(0, 0, 0)); - PciId = READ_PORT_ULONG((ULONG *)0xCFC); + WRITE_PORT_ULONG((PULONG)0xCF8, CONFIG_CMD(0, 0, 0)); + PciId = READ_PORT_ULONG((PULONG)0xCFC); if (PciId != 0x02A510DE) { ERR("This is not original Xbox!\n"); @@ -277,10 +277,6 @@ MachInit(const char *CmdLine) /* Set LEDs to red before anything is initialized */ XboxSetLED("rrrr"); - /* Initialize our stuff */ - XboxMemInit(); - XboxVideoInit(); - /* Setup vtbl */ MachVtbl.ConsPutChar = XboxConsPutChar; MachVtbl.ConsKbHit = XboxConsKbHit; @@ -311,6 +307,10 @@ MachInit(const char *CmdLine) MachVtbl.HwDetect = XboxHwDetect; MachVtbl.HwIdle = XboxHwIdle; + /* Initialize our stuff */ + XboxMemInit(); + XboxVideoInit(); + /* Set LEDs to orange after init */ XboxSetLED("oooo"); @@ -324,6 +324,9 @@ XboxPrepareForReactOS(VOID) XboxVideoPrepareForReactOS(); XboxDiskInit(FALSE); DiskStopFloppyMotor(); + + /* Turn off debug messages to screen */ + DebugDisableScreenPort(); } /* EOF */ diff --git a/boot/freeldr/freeldr/arch/i386/xbox/xboxcons.c b/boot/freeldr/freeldr/arch/i386/xbox/xboxcons.c index 8baba25b5cc46..ed5d55c5b090b 100644 --- a/boot/freeldr/freeldr/arch/i386/xbox/xboxcons.c +++ b/boot/freeldr/freeldr/arch/i386/xbox/xboxcons.c @@ -25,7 +25,17 @@ static unsigned CurrentAttr = 0x0f; VOID XboxConsPutChar(int c) { - ULONG Width, Unused; + ULONG Width, Height, Unused; + BOOLEAN NeedScroll; + + XboxVideoGetDisplaySize(&Width, &Height, &Unused); + + NeedScroll = (CurrentCursorY >= Height); + if (NeedScroll) + { + XboxVideoScrollUp(); + --CurrentCursorY; + } if (c == '\r') { @@ -34,7 +44,9 @@ XboxConsPutChar(int c) else if (c == '\n') { CurrentCursorX = 0; - CurrentCursorY++; + + if (!NeedScroll) + ++CurrentCursorY; } else if (c == '\t') { @@ -46,13 +58,11 @@ XboxConsPutChar(int c) CurrentCursorX++; } - XboxVideoGetDisplaySize(&Width, &Unused, &Unused); if (CurrentCursorX >= Width) { CurrentCursorX = 0; CurrentCursorY++; } - // FIXME: Implement vertical screen scrolling if we are at the end of the screen. } BOOLEAN diff --git a/boot/freeldr/freeldr/arch/i386/xbox/xboxmem.c b/boot/freeldr/freeldr/arch/i386/xbox/xboxmem.c index e8ea7b016eaa6..29e1382be18fc 100644 --- a/boot/freeldr/freeldr/arch/i386/xbox/xboxmem.c +++ b/boot/freeldr/freeldr/arch/i386/xbox/xboxmem.c @@ -60,11 +60,12 @@ XboxMemInit(VOID) PVOID MembaseTop = (PVOID)(64 * 1024 * 1024); PVOID MembaseLow = (PVOID)0; - (*(PULONG)(0xfd000000 + 0x100200)) = 0x03070103; - (*(PULONG)(0xfd000000 + 0x100204)) = 0x11448000; + WRITE_REGISTER_ULONG((PULONG)NV2A_FB_CFG0, 0x03070103); + WRITE_REGISTER_ULONG((PULONG)NV2A_FB_CFG0 + 4, 0x11448000); - WRITE_PORT_ULONG((ULONG*) 0xcf8, CONFIG_CMD(0, 0, 0x84)); - WRITE_PORT_ULONG((ULONG*) 0xcfc, 0x7ffffff); /* Prep hardware for 128 Mb */ + /* Prep hardware for 128 Mb */ + WRITE_PORT_ULONG((PULONG)0xCF8, CONFIG_CMD(0, 0, 0x84)); + WRITE_PORT_ULONG((PULONG)0xCFC, 0x7FFFFFF); InstalledMemoryMb = 64; memset(ControlRegion, TEST_PATTERN1, TEST_SIZE); @@ -93,8 +94,8 @@ XboxMemInit(VOID) } /* Set hardware for amount of memory detected */ - WRITE_PORT_ULONG((ULONG*) 0xcf8, CONFIG_CMD(0, 0, 0x84)); - WRITE_PORT_ULONG((ULONG*) 0xcfc, InstalledMemoryMb * 1024 * 1024 - 1); + WRITE_PORT_ULONG((PULONG)0xCF8, CONFIG_CMD(0, 0, 0x84)); + WRITE_PORT_ULONG((PULONG)0xCFC, InstalledMemoryMb * 1024 * 1024 - 1); AvailableMemoryMb = InstalledMemoryMb; } diff --git a/boot/freeldr/freeldr/arch/i386/xbox/xboxvideo.c b/boot/freeldr/freeldr/arch/i386/xbox/xboxvideo.c index 261f455066489..0d6e3b2c70b7b 100644 --- a/boot/freeldr/freeldr/arch/i386/xbox/xboxvideo.c +++ b/boot/freeldr/freeldr/arch/i386/xbox/xboxvideo.c @@ -20,8 +20,8 @@ */ #include -#include +#include DBG_DEFAULT_CHANNEL(UI); PVOID FrameBuffer; @@ -101,6 +101,24 @@ XboxVideoClearScreenColor(ULONG Color, BOOLEAN FullScreen) } } +VOID +XboxVideoScrollUp(VOID) +{ + ULONG BgColor, Dummy; + ULONG PixelCount = ScreenWidth * CHAR_HEIGHT * + (((ScreenHeight - 2 * TOP_BOTTOM_LINES) / CHAR_HEIGHT) - 1); + PULONG Src = (PULONG)((PUCHAR)FrameBuffer + (CHAR_HEIGHT + TOP_BOTTOM_LINES) * Delta); + PULONG Dst = (PULONG)((PUCHAR)FrameBuffer + TOP_BOTTOM_LINES * Delta); + + XboxVideoAttrToColors(ATTR(COLOR_WHITE, COLOR_BLACK), &Dummy, &BgColor); + + while (PixelCount--) + *Dst++ = *Src++; + + for (PixelCount = 0; PixelCount < ScreenWidth * CHAR_HEIGHT; PixelCount++) + *Dst++ = BgColor; +} + VOID XboxVideoClearScreen(UCHAR Attr) { diff --git a/boot/freeldr/freeldr/include/arch/i386/machxbox.h b/boot/freeldr/freeldr/include/arch/i386/machxbox.h index 6a95fe6025d38..d4342de4a0f90 100644 --- a/boot/freeldr/freeldr/include/arch/i386/machxbox.h +++ b/boot/freeldr/freeldr/include/arch/i386/machxbox.h @@ -38,6 +38,8 @@ #define LPC_CONFIG_DEVICE_INTERRUPT 0x70 #define NV2A_CONTROL_OFFSET 0xFD000000 +#define NV2A_FB_OFFSET (0x100000 + NV2A_CONTROL_OFFSET) +#define NV2A_FB_CFG0 (0x200 + NV2A_FB_OFFSET) #define NV2A_CRTC_OFFSET (0x600000 + NV2A_CONTROL_OFFSET) #define NV2A_CRTC_FRAMEBUFFER_START (0x800 + NV2A_CRTC_OFFSET) #define NV2A_CRTC_REGISTER_INDEX (0x13D4 + NV2A_CRTC_OFFSET) @@ -67,6 +69,7 @@ VOID XboxVideoSetPaletteColor(UCHAR Color, UCHAR Red, UCHAR Green, UCHAR Blue); VOID XboxVideoGetPaletteColor(UCHAR Color, UCHAR* Red, UCHAR* Green, UCHAR* Blue); VOID XboxVideoSync(VOID); VOID XboxVideoPrepareForReactOS(VOID); +VOID XboxVideoScrollUp(VOID); VOID XboxPrepareForReactOS(VOID); VOID XboxMemInit(VOID); diff --git a/boot/freeldr/freeldr/include/debug.h b/boot/freeldr/freeldr/include/debug.h index 1862220fb822b..3ab9392b28ebe 100644 --- a/boot/freeldr/freeldr/include/debug.h +++ b/boot/freeldr/freeldr/include/debug.h @@ -44,6 +44,7 @@ ULONG DbgPrint(const char *Format, ...); VOID DbgPrint2(ULONG Mask, ULONG Level, const char *File, ULONG Line, char *Format, ...); VOID DebugDumpBuffer(ULONG Mask, PVOID Buffer, ULONG Length); + VOID DebugDisableScreenPort(); VOID DbgParseDebugChannels(PCHAR Value); #define ERR_LEVEL 0x1 diff --git a/boot/freeldr/freeldr/lib/debug.c b/boot/freeldr/freeldr/lib/debug.c index abc2545f7eac8..e68df9af9cfab 100644 --- a/boot/freeldr/freeldr/lib/debug.c +++ b/boot/freeldr/freeldr/lib/debug.c @@ -327,6 +327,12 @@ DebugDumpBuffer(ULONG Mask, PVOID Buffer, ULONG Length) } } +VOID +DebugDisableScreenPort(VOID) +{ + DebugPort &= ~SCREEN; +} + static BOOLEAN DbgAddDebugChannel(CHAR* channel, CHAR* level, CHAR op) { diff --git a/dll/apisets/api-ms-win-core-winrt-l1-1-0.spec b/dll/apisets/api-ms-win-core-winrt-l1-1-0.spec index 5d906d8bd683d..1c4aa69143f75 100644 --- a/dll/apisets/api-ms-win-core-winrt-l1-1-0.spec +++ b/dll/apisets/api-ms-win-core-winrt-l1-1-0.spec @@ -1,12 +1,12 @@ # This file is autogenerated by update.py -@ stub RoActivateInstance -@ stub RoGetActivationFactory -@ stub RoGetApartmentIdentifier -@ stub RoInitialize -@ stub RoRegisterActivationFactories -@ stub RoRegisterForApartmentShutdown -@ stub RoRevokeActivationFactories -@ stub RoUninitialize -@ stub RoUnregisterForApartmentShutdown +@ stub -version=0x602+ RoActivateInstance +@ stub -version=0x602+ RoGetActivationFactory +@ stub -version=0x602+ RoGetApartmentIdentifier +@ stub -version=0x602+ RoInitialize +@ stub -version=0x602+ RoRegisterActivationFactories +@ stub -version=0x602+ RoRegisterForApartmentShutdown +@ stub -version=0x602+ RoRevokeActivationFactories +@ stub -version=0x602+ RoUninitialize +@ stub -version=0x602+ RoUnregisterForApartmentShutdown diff --git a/dll/apisets/api-ms-win-crt-private-l1-1-0.spec b/dll/apisets/api-ms-win-crt-private-l1-1-0.spec index aa89729e4d01e..7cdd75c7979f1 100644 --- a/dll/apisets/api-ms-win-crt-private-l1-1-0.spec +++ b/dll/apisets/api-ms-win-crt-private-l1-1-0.spec @@ -641,6 +641,8 @@ @ stub _o__scalbf @ stub _o__searchenv @ stub _o__searchenv_s +@ cdecl -version=0x600+ _o__seh_filter_dll() msvcrt.__CppXcptFilter +@ cdecl -version=0x600+ _o__seh_filter_exe() msvcrt._XcptFilter @ stub _o__set_abort_behavior @ stub _o__set_doserrno @ stub _o__set_errno diff --git a/dll/apisets/api-ms-win-crt-runtime-l1-1-0.spec b/dll/apisets/api-ms-win-crt-runtime-l1-1-0.spec index 168f5b949af80..261d49ff79ce7 100644 --- a/dll/apisets/api-ms-win-crt-runtime-l1-1-0.spec +++ b/dll/apisets/api-ms-win-crt-runtime-l1-1-0.spec @@ -66,8 +66,8 @@ @ stub _register_onexit_function @ stub _register_thread_local_exe_atexit_callback @ stdcall _resetstkoflw() msvcrt._resetstkoflw -@ cdecl _seh_filter_dll(long ptr) msvcrt.__CppXcptFilter -@ cdecl _seh_filter_exe(long ptr) msvcrt._XcptFilter +@ cdecl -version=0x600+ _seh_filter_dll() msvcrt.__CppXcptFilter +@ cdecl -version=0x600+ _seh_filter_exe() msvcrt._XcptFilter @ stub _set_abort_behavior @ stub _set_app_type @ stub _set_controlfp diff --git a/dll/cpl/desk/lang/tr-TR.rc b/dll/cpl/desk/lang/tr-TR.rc index 3e67344fc8c60..ce79d9c91eebb 100644 --- a/dll/cpl/desk/lang/tr-TR.rc +++ b/dll/cpl/desk/lang/tr-TR.rc @@ -1,17 +1,17 @@ -/* TRANSLATOR: 2013, 2014, 2016 Erdem Ersoy (eersoy93) (erdemersoy [at] erdemersoy [dot] net) */ +/* TRANSLATOR: 2013, 2014, 2016, 2020 Erdem Ersoy (eersoy93) (erdemersoy [at] erdemersoy [dot] net) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT IDD_THEMES DIALOGEX 0, 0, 246, 210 -CAPTION "Themes" +CAPTION "Temalar" STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION FONT 8, "MS Shell Dlg" BEGIN - LTEXT "A theme is a background plus a set of sounds, icons, and other elements to help you personalize your computer with one click.", IDC_STATIC, 5, 5, 235, 30 - LTEXT "Theme:", IDC_STATIC, 5, 42, 55, 10 + LTEXT "Bir tema; bir tıklamayla bilgisayarınızı kişiselleştirmenize yardımcı olmak için bir arka planla birlikte sesler, simgeler ve diğer ögeler setidir.", IDC_STATIC, 5, 5, 235, 30 + LTEXT "Tema:", IDC_STATIC, 5, 42, 55, 10 COMBOBOX IDC_THEMES_COMBOBOX, 5, 52, 160, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Save &As...", IDC_THEMES_SAVE_AS, 170, 52, 70, 14 - PUSHBUTTON "&Delete", IDC_THEMES_DELETE, 170, 70, 70, 14 + PUSHBUTTON "&Farklı Kaydet...", IDC_THEMES_SAVE_AS, 170, 52, 70, 14 + PUSHBUTTON "&Sil", IDC_THEMES_DELETE, 170, 70, 70, 14 CONTROL "", IDC_THEMES_PREVIEW, "STATIC", SS_BITMAP, 5, 90, 235, 115, WS_EX_CLIENTEDGE END @@ -32,11 +32,11 @@ END IDD_SCREENSAVER DIALOGEX 0, 0, 246, 202 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Görüntülük Koruyucu" +CAPTION "Ekran Koruyucu" FONT 8, "MS Shell Dlg", 0, 0 BEGIN CONTROL "", IDC_SCREENS_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 70, WS_EX_STATICEDGE - GROUPBOX "&Görüntülük Koruyucu", IDC_SCREENS_DUMMY, 8, 92, 230, 52 + GROUPBOX "Ekran Koruyucu", IDC_SCREENS_DUMMY, 8, 92, 230, 52 COMBOBOX IDC_SCREENS_LIST, 14, 103, 100, 100, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "&Ayarlar", IDC_SCREENS_SETTINGS, 120, 102, 50, 15, WS_GROUP PUSHBUTTON "&Ön İzleme", IDC_SCREENS_TESTSC, 175, 102, 50, 15 @@ -44,11 +44,11 @@ BEGIN EDITTEXT IDC_SCREENS_TIMEDELAY, 36, 123, 32, 13, ES_RIGHT | WS_GROUP CONTROL "", IDC_SCREENS_TIME, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | WS_BORDER | WS_GROUP, 56, 123, 12, 13 - LTEXT "Dakîka", IDC_MINTEXT, 70, 125, 26, 9 - CONTROL "&Çıkışta Şifre Sor", IDC_SCREENS_USEPASSCHK, "button", + LTEXT "dakika", IDC_MINTEXT, 70, 125, 26, 9 + CONTROL "&Çıkışta Parola Sor", IDC_SCREENS_USEPASSCHK, "button", BS_AUTOCHECKBOX | WS_TABSTOP, 108, 120, 117, 19 - GROUPBOX "Göstergecin Erke Tutumu Husûsiyetleri", IDC_SCREENS_DUMMY2, 8, 150, 230, 41 - LTEXT "Göstergeciniz için güç ayarlarını düzenlemek için ""Güç""e tıklayınız.", IDC_STATIC, 16, 161, 146, 27 + GROUPBOX "Monitörün Güç Tasarrufu Özellikleri", IDC_SCREENS_DUMMY2, 8, 150, 230, 41 + LTEXT "Monitörünüzün güç ayarlarını düzenlemek için ""Güç Ayarları""na tıklayınız.", IDC_STATIC, 16, 161, 146, 27 PUSHBUTTON "G&üç...", IDC_SCREENS_POWER_BUTTON, 167, 165, 61, 15 END @@ -58,13 +58,13 @@ CAPTION "Görünüm" FONT 8, "MS Shell Dlg" BEGIN CONTROL "", IDC_APPEARANCE_PREVIEW, "PreviewWndClass", WS_VISIBLE | WS_BORDER, 7, 7, 232, 120 - LTEXT "G&örmelik Biçem", IDC_STATIC, 7, 130, 104, 9 + LTEXT "G&örsel Tarz", IDC_STATIC, 7, 130, 104, 9 COMBOBOX IDC_APPEARANCE_VISUAL_STYLE, 7, 140, 134, 90, CBS_DROPDOWNLIST | CBS_HASSTRINGS | CBS_SORT | WS_VSCROLL | WS_TABSTOP LTEXT "&Renk Düzeni:", IDC_STATIC, 7, 157, 104, 9 COMBOBOX IDC_APPEARANCE_COLORSCHEME, 7, 167, 134, 90, CBS_DROPDOWNLIST | CBS_HASSTRINGS | CBS_SORT | WS_VSCROLL | WS_TABSTOP - LTEXT "B&oyut:", IDC_STATIC, 7, 184, 104, 9 + LTEXT "&Yazı Tipi Boyutu:", IDC_STATIC, 7, 184, 104, 9 COMBOBOX IDC_APPEARANCE_SIZE, 7, 194, 134, 90, CBS_DROPDOWNLIST | CBS_HASSTRINGS | CBS_SORT | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "&Etkiler...", IDC_APPEARANCE_EFFECTS, 182, 150, 56, 15 @@ -78,8 +78,8 @@ CAPTION "Gelişmiş Görünüm" FONT 8, "MS Shell Dlg" BEGIN CONTROL "", IDC_APPEARANCE_PREVIEW, "PreviewWndClass", WS_VISIBLE | WS_BORDER, 7, 7, 232, 120 - LTEXT "If you select a theme other than ReactOS classic, it will override the following settings, except in some older programs.", IDC_ADVAPPEARANCE_DISCLAIMER, 7, 133, 232, 30, BS_MULTILINE - LTEXT "&Öğe", 8, 5, 160, 50, 9 + LTEXT "ReactOS Klasik'ten başka bir tema seçerseniz seçtiğiniz tema bazı eski programlardakiler dışında aşağıdaki ayarları hükümsüz kılacaktır.", IDC_ADVAPPEARANCE_DISCLAIMER, 7, 133, 232, 30, BS_MULTILINE + LTEXT "&Öge", 8, 5, 160, 50, 9 COMBOBOX IDC_ADVAPPEARANCE_ELEMENT, 5, 170, 130, 90, CBS_DROPDOWNLIST | CBS_HASSTRINGS | CBS_SORT | WS_CHILD | WS_VSCROLL | WS_TABSTOP LTEXT "&Boyut", IDC_ADVAPPEARANCE_SIZE_T, 142, 160, 39, 9 @@ -109,23 +109,23 @@ EXSTYLE WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE CAPTION "Etkiler" FONT 8, "MS Shell Dlg" BEGIN - CONTROL "&Araç İpuçları ve Seçkeler İçin Aşağıdaki Geçiş Etkisi Kullan:", + CONTROL "&Araç ipuçları ve menüler için aşağıdaki geçiş etkisini kullan", IDC_EFFAPPEARANCE_ANIMATION, "button", BS_AUTOCHECKBOX | WS_TABSTOP, 10, 5, 267, 19 COMBOBOX IDC_EFFAPPEARANCE_ANIMATIONTYPE, 20, 25, 95, 19, CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_CHILD | WS_VSCROLL | WS_TABSTOP - CONTROL "&Görüntülük Yazı Tiplerinin Kıyılarını Yumuşatmak İçin Aşağıdaki Yöntemi Kullan:", IDC_EFFAPPEARANCE_SMOOTHING, + CONTROL "&Ekran yazı tiplerinin kenarlarını yumuşatmak için aşağıdaki yöntemi kullan", IDC_EFFAPPEARANCE_SMOOTHING, "button", BS_AUTOCHECKBOX | WS_TABSTOP, 10, 42, 267, 19 COMBOBOX IDC_EFFAPPEARANCE_SMOOTHINGTYPE, 20, 62, 95, 19, CBS_DROPDOWNLIST | CBS_HASSTRINGS | CBS_SORT | WS_VSCROLL | WS_TABSTOP - CONTROL "&Büyük Simgeler Kullan", IDC_EFFAPPEARANCE_LARGEICONS, "button", + CONTROL "&Büyük simgeler kullan", IDC_EFFAPPEARANCE_LARGEICONS, "button", BS_AUTOCHECKBOX | WS_TABSTOP | WS_DISABLED, 10, 80, 267, 19 - CONTROL "&Seçkeler Altında Gölge Göster", IDC_EFFAPPEARANCE_SETDROPSHADOW, + CONTROL "&Menüler altında gölge göster", IDC_EFFAPPEARANCE_SETDROPSHADOW, "button", BS_AUTOCHECKBOX | WS_TABSTOP, 10, 95, 267, 19 - CONTROL "S&ürüklerken Pencere İçeriğini Göster", IDC_EFFAPPEARANCE_DRAGFULLWINDOWS, + CONTROL "&Sürüklerken pencere içeriğini göster", IDC_EFFAPPEARANCE_DRAGFULLWINDOWS, "button", BS_AUTOCHECKBOX | WS_TABSTOP, 10, 110, 267, 19 - CONTROL "S&eçenek Düğmesine Basana Dek Düğme Takımıyla Gezinme İçin Altı Çizili Harfleri Gizle", + CONTROL "A< düğmesine basana kadar klavyeyle gezinme için altı çizili harfleri gizle", IDC_EFFAPPEARANCE_KEYBOARDCUES, "button", BS_AUTOCHECKBOX | WS_TABSTOP, 10, 125, 267, 19 - CONTROL "Use &flat menus", IDC_EFFAPPEARANCE_FLATMENUS, + CONTROL "&Düz menüler kullan", IDC_EFFAPPEARANCE_FLATMENUS, "button", BS_AUTOCHECKBOX | WS_TABSTOP, 10, 140, 267, 19 PUSHBUTTON "İptal", IDCANCEL, 226, 165, 50, 14 DEFPUSHBUTTON "Tamam", IDOK, 172, 165, 50, 14 @@ -136,10 +136,10 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Ayarlar" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Göstergeçlerinizin fizîkî düzenlenmesini karşılaştırmak için göstergeç simgelerini sürükleyiniz.", -1, 3, 3, 240, 20 + LTEXT "Monitörlerinizin fiziksel düzenlenmesini karşılaştırmak için monitör simgelerini sürükleyiniz.", -1, 3, 3, 240, 20 CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE - LTEXT "Görüntü:", 1820, 3, 107, 70, 9 + LTEXT "Görü&ntü:", 1820, 3, 107, 70, 9 LTEXT "", IDC_SETTINGS_DEVICE, 3, 116, 224, 9 GROUPBOX "G&örüntülük Alanı", 1818, 3, 127, 115, 43 CONTROL "", IDC_SETTINGS_RESOLUTION, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 30, 137, 58, 17 @@ -154,7 +154,7 @@ END IDD_ADVANCED_GENERAL DIALOGEX 0, 0, 253, 204 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Umûmî" +CAPTION "Genel" FONT 8, "MS Shell Dlg" BEGIN GROUPBOX "Görüntü", -1, 7, 6, 237, 56, WS_GROUP @@ -162,27 +162,27 @@ BEGIN COMBOBOX IDC_FONTSIZE_COMBO, 14, 30, 223, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP LTEXT "", IDC_FONTSIZE_CUSTOM, 14, 46, 223, 12 GROUPBOX "Uyumluluk", -1, 7, 67, 237, 97 - LTEXT "Eğer renk ayarlarını değiştirdiğinizden sonra bilgisayarınızı yeniden başlatmazsanız birtakım izlenceler yanlış çalışır.\r\n\nRenk ayarlarını değiştirdikten sonra:", -1, 12, 78, 228, 34 - AUTORADIOBUTTON "¥i renk ayarları uygulanmadan önce bilgisayarı yeniden başlat.", IDC_RESTART_RB, 14, 116, 228, 10 - AUTORADIOBUTTON "y&eniden başlatmadan yeni renk ayarlarını uygula.", IDC_WITHOUTREBOOT_RB, 14, 131, 228, 10 - AUTORADIOBUTTON "ye&ni renk ayarlarıuygulanmadan önce bana sor.", IDC_ASKME_RB, 14, 146, 228, 10 + LTEXT "Eğer renk ayarlarını değiştirdiğinizden sonra bilgisayarınızı yeniden başlatmazsanız bazı programlar yanlış çalışır.\r\n\nRenk ayarlarını değiştirdikten sonra:", -1, 12, 78, 228, 34 + AUTORADIOBUTTON "Y&eni renk ayarları uygulanmadan önce bilgisayarı yeniden başlat.", IDC_RESTART_RB, 14, 116, 228, 10 + AUTORADIOBUTTON "Ye&niden başlatmadan yeni renk ayarlarını uygula.", IDC_WITHOUTREBOOT_RB, 14, 131, 228, 10 + AUTORADIOBUTTON "Yeni &renk ayarları uygulanmadan önce bana sor.", IDC_ASKME_RB, 14, 146, 228, 10 END IDD_CONFIRMSETTINGS DIALOGEX 20, 30, 233, 57 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU -CAPTION "Display Settings" +CAPTION "Görüntü Ayarları" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Do you want to keep these display settings?", IDC_STATIC, 7, 7, 219, 8 + LTEXT "Bu görüntü ayarlarını korumak ister misiniz?", IDC_STATIC, 7, 7, 219, 8 LTEXT "", IDC_TIMEOUTTEXT, 7, 20, 219, 8 - PUSHBUTTON "&Yes", IDYES, 121, 36, 50, 14 - DEFPUSHBUTTON "&No", IDNO, 175, 36, 50, 14 + PUSHBUTTON "&Evet", IDYES, 121, 36, 50, 14 + DEFPUSHBUTTON "&Hayır", IDNO, 175, 36, 50, 14 END IDR_PREVIEW_MENU MENU BEGIN - MENUITEM "Düzgülü", ID_MENU_NORMAL - MENUITEM "Edilgin", ID_MENU_DISABLED + MENUITEM "Normal", ID_MENU_NORMAL + MENUITEM "Pasif", ID_MENU_DISABLED MENUITEM "Seçili", ID_MENU_SELECTED END @@ -190,43 +190,43 @@ IDM_MONITOR_MENU MENU BEGIN POPUP "" BEGIN - MENUITEM "&İliştirilmiş", ID_MENU_ATTACHED + MENUITEM "İ&liştirilmiş", ID_MENU_ATTACHED MENUITEM "&Birinci", ID_MENU_PRIMARY MENUITEM SEPARATOR MENUITEM "&Tanıla", ID_MENU_IDENTIFY - MENUITEM "&Husûsiyetler", ID_MENU_PROPERTIES + MENUITEM "Ö&zellikler", ID_MENU_PROPERTIES END END STRINGTABLE BEGIN - IDS_SLIDEEFFECT "Kayma Etkisi" - IDS_FADEEFFECT "Solma Etkisi" + IDS_SLIDEEFFECT "Kayma etkisi" + IDS_FADEEFFECT "Solma etkisi" END STRINGTABLE BEGIN - IDS_STANDARDEFFECT "Ölçünlü" - IDS_CLEARTYPEEFFECT "FreeType Düzeltmesi" + IDS_STANDARDEFFECT "Standart" + IDS_CLEARTYPEEFFECT "FreeType Örtüşme Önlemesi" END STRINGTABLE BEGIN - IDS_MULTIPLEMONITORS "(Çoklu Göstergeç)" - IDS_UNKNOWNMONITOR "(Bilinmeyen Göstergeç)" + IDS_MULTIPLEMONITORS "(Çoklu Monitör)" + IDS_UNKNOWNMONITOR "(Bilinmeyen Monitör)" IDS_ADVANCEDTITLEFMT "%s ve %s" END STRINGTABLE BEGIN IDS_CPLNAME "Görüntü" - IDS_CPLDESCRIPTION "Masaüstü görünümünü ve görüntülük koruyucuyu husûsileştirir." + IDS_CPLDESCRIPTION "Masaüstü görünümünü ve ekran koruyucuyu özelleştirir." IDS_NONE "(Yok)" IDS_CENTER "Ortala" IDS_STRETCH "Uzat" IDS_TILE "Döşe" - IDS_FIT "Fit" - IDS_FILL "Fill" + IDS_FIT "Sığdır" + IDS_FILL "Doldur" END STRINGTABLE @@ -236,7 +236,7 @@ BEGIN IDS_COLOR_16BIT "Yüksek Renk (16 Bitlik)" IDS_COLOR_24BIT "Gerçek Renk (24 Bitlik)" IDS_COLOR_32BIT "Gerçek Renk (32 Bitlik)" - IDS_PIXEL "%lux%lu Nokta" + IDS_PIXEL "%lux%lu Noktacık" END STRINGTABLE @@ -246,42 +246,42 @@ END STRINGTABLE BEGIN - IDS_INACTWIN "Edilgin Pencere" + IDS_INACTWIN "Pasif Pencere" IDS_ACTWIN "Etkin Pencere" IDS_WINTEXT "Pencere Metni" IDS_MESSBOX "İleti Penceresi" IDS_MESSTEXT "İleti Metni" IDS_BUTTEXT "Tamam" - IDS_CLASSIC_THEME "Kökleşik Tema" + IDS_CLASSIC_THEME "Klasik Tema" END STRINGTABLE BEGIN IDS_ELEMENT_0 "Masaüstü" - IDS_ELEMENT_1 "Edilgin Pencere Başlığı" - IDS_ELEMENT_2 "Edilgin Pencere Kıyılığı" - IDS_ELEMENT_3 "Etkin Pencere Başlığı" - IDS_ELEMENT_4 "Etkin Pencere Kıyılığı" - IDS_ELEMENT_5 "Seçke" - IDS_ELEMENT_6 "Seçili Öğeler" + IDS_ELEMENT_1 "Pasif pencere başlığı" + IDS_ELEMENT_2 "Pasif pencere kenarı" + IDS_ELEMENT_3 "Pasif pencere başlığı" + IDS_ELEMENT_4 "Pasif pencere kenarı" + IDS_ELEMENT_5 "Menü" + IDS_ELEMENT_6 "Seçili ögeler" IDS_ELEMENT_7 "Pencereler" - IDS_ELEMENT_8 "Kaydırma Çubukları" - IDS_ELEMENT_9 "3D Nesneler" - IDS_ELEMENT_10 "Renklik Etiketi" - IDS_ELEMENT_11 "Başlık Çubuğu" - IDS_ELEMENT_12 "İletişim Penceresi" - IDS_ELEMENT_13 "Uygulama Arka Planı" - IDS_ELEMENT_14 "Simge Aralığı (Yatay)" - IDS_ELEMENT_15 "Simge Aralığı (Dikey)" - IDS_ELEMENT_16 "Çabuk Yardım" + IDS_ELEMENT_8 "Kaydırma çubukları" + IDS_ELEMENT_9 "3D nesneler" + IDS_ELEMENT_10 "Palet başlığı" + IDS_ELEMENT_11 "Başlık çubuğu düğmeleri" + IDS_ELEMENT_12 "İletişim kutusu" + IDS_ELEMENT_13 "Uygulama arka planı" + IDS_ELEMENT_14 "Simge aralığı (yatay)" + IDS_ELEMENT_15 "Simge aralığı (dikey)" + IDS_ELEMENT_16 "Çabuk yardım" IDS_ELEMENT_17 "Simge" -// IDS_ELEMENT_18 "Edilgin Seçke Öğeleri" +// IDS_ELEMENT_18 "Pasif menü ögeleri" END STRINGTABLE BEGIN - IDS_DISPLAY_SETTINGS "Görüntü Ayarları" + IDS_DISPLAY_SETTINGS "Görüntü ayarları" IDS_APPLY_FAILED "Yeni ayarların uygulanması başarısız oldu." IDS_APPLY_NEEDS_RESTART "Değişiklikleri uygulamak için bilgisayarınızı yeniden başlatmanız gerekir." - IDS_TIMEOUTTEXT "Revert to previous settings in %d seconds." + IDS_TIMEOUTTEXT "%d saniyede önceki ayarlara geri dönülecek." END diff --git a/dll/cpl/desk/settings.c b/dll/cpl/desk/settings.c index c8d4761a05a7a..300ef61685371 100644 --- a/dll/cpl/desk/settings.c +++ b/dll/cpl/desk/settings.c @@ -5,7 +5,7 @@ * PURPOSE: Settings property page * * PROGRAMMERS: Trevor McCort (lycan359@gmail.com) - * Herv Poussineau (hpoussin@reactos.org) + * Hervé Poussineau (hpoussin@reactos.org) */ #include "desk.h" @@ -472,8 +472,12 @@ OnBPPChanged(IN HWND hwndDlg, IN PSETTINGS_DATA pData) /* Show a new spectrum bitmap */ hSpectrumControl = GetDlgItem(hwndDlg, IDC_SETTINGS_SPECTRUM); hSpectrumDC = GetDC(hSpectrumControl); + if (hSpectrumDC == NULL) + return; + GetClientRect(hSpectrumControl, &client); ShowColorSpectrum(hSpectrumDC, &client, dmNewBitsPerPel, pData); + ReleaseDC(hSpectrumControl, hSpectrumDC); /* Find if new parameters are valid */ Current = pData->CurrentDisplayDevice->CurrentSettings; diff --git a/dll/cpl/intl/lang/pl-PL.rc b/dll/cpl/intl/lang/pl-PL.rc index 29817e01e8e6d..971b5daf414e6 100644 --- a/dll/cpl/intl/lang/pl-PL.rc +++ b/dll/cpl/intl/lang/pl-PL.rc @@ -4,6 +4,7 @@ * http://www.reactos.org * IRC: irc.freenode.net #reactos-pl; * UTF-8 conversion by Caemyr (May, 2011) + * Polish translation updated by pithwz - Piotr Hetnarowicz (piotrhwz@gmail.com) (May, 2020) */ LANGUAGE LANG_POLISH, SUBLANG_DEFAULT @@ -60,7 +61,7 @@ BEGIN GROUPBOX "Tabele konwersji stron kodowych", -1, 5, 101, 234, 88 CONTROL "", IDC_CONV_TABLES, "SysListView32", LVS_REPORT | LVS_SORTASCENDING | LVS_NOCOLUMNHEADER | WS_BORDER | WS_TABSTOP, 14, 114, 217, 70 GROUPBOX "Domyślne ustawienia konta użytkownika", -1, 5, 193, 234, 32 - CHECKBOX "Zastosuj wszystkie ustawienia do bieżącego konta użytkownika i do domyślnego profilu użytkownika.", IDC_APPLY_CUR_USER_DEF_PROFILE, 12, 201, 220, 22, BS_MULTILINE | BS_TOP + CHECKBOX "Zastosuj wszystkie ustawienia do bieżącego konta użytkownika i do domyślnego profilu użytkownika.", IDC_APPLY_CUR_USER_DEF_PROFILE, 12, 202, 220, 22, BS_MULTILINE | BS_TOP END IDD_NUMBERSPAGE DIALOGEX 0, 0, 246, 234 @@ -99,10 +100,10 @@ CAPTION "Waluta" FONT 8, "MS Shell Dlg" BEGIN GROUPBOX "Przykład", -1, 7, 7, 230, 33, WS_CHILD | WS_VISIBLE - LTEXT "Dodatnie:", -1, 13, 21, 31, 10, WS_CHILD | WS_VISIBLE | WS_GROUP - EDITTEXT IDC_CURRENCYPOSSAMPLE, 43, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP | NOT WS_TABSTOP - LTEXT "Ujemne:", -1, 120, 21, 31, 10, WS_CHILD | WS_VISIBLE | WS_GROUP - EDITTEXT IDC_CURRENCYNEGSAMPLE, 154, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP | NOT WS_TABSTOP + LTEXT "Dodatnie:", -1, 12, 21, 31, 10, WS_CHILD | WS_VISIBLE | WS_GROUP + EDITTEXT IDC_CURRENCYPOSSAMPLE, 45, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP | NOT WS_TABSTOP + LTEXT "Ujemne:", -1, 123, 21, 31, 10, WS_CHILD | WS_VISIBLE | WS_GROUP + EDITTEXT IDC_CURRENCYNEGSAMPLE, 156, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP | NOT WS_TABSTOP LTEXT "Symbol &waluty:", -1, 10, 51, 111, 10, WS_CHILD | WS_VISIBLE | WS_GROUP COMBOBOX IDC_CURRENCYSYMBOL, 134, 49, 100, 83, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL LTEXT "F&ormat liczb dodatnich:", -1, 10, 68, 111, 10, WS_CHILD | WS_VISIBLE | WS_GROUP @@ -147,8 +148,8 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Data" FONT 8, "MS Shell Dlg" BEGIN - GROUPBOX "Kalendarz", -1, 7, 7, 230, 74 - LTEXT "&Jeżeli wprowadzony zostanie rok w postaci dwóch cyfr, interpretuj go jako rok z zakresu od:", -1, 13, 18, 215, 8 + GROUPBOX "Kalendarz", -1, 7, 2, 230, 80 + LTEXT "&Jeżeli wprowadzony zostanie rok w postaci dwóch cyfr, interpretuj go jako rok z zakresu od:", -1, 13, 11, 215, 16 EDITTEXT IDC_FIRSTYEAR_EDIT, 13, 30, 36, 12, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_DISABLED LTEXT "do", -1, 55, 32, 17, 8 EDITTEXT IDC_SECONDYEAR_EDIT, 77, 30, 36, 12, ES_LEFT | ES_NUMBER | WS_GROUP @@ -157,7 +158,7 @@ BEGIN COMBOBOX IDC_CALTYPE_COMBO, 77, 46, 153, 100, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP | WS_DISABLED LTEXT "Kalendarz muzułmański:", -1, 13, 62, 60, 16 COMBOBOX IDC_HIJCHRON_COMBO, 77, 64, 153, 100, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP | WS_DISABLED - GROUPBOX "Format daty krótkiej", -1, 7, 83, 230, 81 + GROUPBOX "Data krótka", -1, 7, 83, 230, 81 LTEXT "Przykład:", -1, 13, 95, 63, 10 EDITTEXT IDC_SHRTDATESAMPLE_EDIT, 77, 93, 153, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP | NOT WS_TABSTOP LTEXT "Przykład - z prawej do lewej:", -1, 13, 109, 60, 16 @@ -166,7 +167,7 @@ BEGIN COMBOBOX IDC_SHRTDATEFMT_COMBO, 77, 129, 153, 100, CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP | WS_VISIBLE LTEXT "Separator daty:", -1, 13, 148, 113, 10 COMBOBOX IDC_SHRTDATESEP_COMBO, 180, 146, 51, 100, CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP | WS_VISIBLE - GROUPBOX "Format daty długiej", -1, 7, 167, 230, 64 + GROUPBOX "Data długa", -1, 7, 167, 230, 64 LTEXT "Przykład:", -1, 13, 179, 61, 10 EDITTEXT IDC_LONGDATESAMPLE_EDIT, 77, 177, 153, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP | NOT WS_TABSTOP LTEXT "Przykład - z prawej do lewej:", -1, 13, 193, 61, 16 @@ -181,8 +182,8 @@ CAPTION "Sortowanie" FONT 8, "MS Shell Dlg" BEGIN GROUPBOX "Sortowanie", -1, 7, 7, 230, 74 - LTEXT "Metody sortowania określają porządek znaków, słów, plików i katalogów.", -1, 14, 17, 220, 25 - LTEXT "Wybierz metodę sortowania dla twojego języka:", -1, 14, 37, 220, 22 + LTEXT "Metody sortowania określają porządek, w jaki programy sortują znaki, słowa, pliki i katalogi.", -1, 14, 17, 220, 20 + LTEXT "Wybierz metodę sortowania dla twojego języka:", -1, 14, 46, 220, 8 COMBOBOX IDC_SORTLIST_COMBO, 14, 56, 217, 83, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL END diff --git a/dll/cpl/main/lang/pl-PL.rc b/dll/cpl/main/lang/pl-PL.rc index c9bb7b122469b..aa34d51b732e6 100644 --- a/dll/cpl/main/lang/pl-PL.rc +++ b/dll/cpl/main/lang/pl-PL.rc @@ -3,6 +3,7 @@ * xxrogers@users.sourceforge.net * https://sourceforge.net/projects/reactospl * UTF-8 conversion by Caemyr (May, 2011) + * Polish translation updated by pithwz - Piotr Hetnarowicz (piotrhwz@gmail.com) (May, 2020) */ LANGUAGE LANG_POLISH, SUBLANG_DEFAULT @@ -12,20 +13,20 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Szybkość" FONT 8, "MS Shell Dlg" BEGIN - GROUPBOX "Powtarzanie znaku", -1, 5, 5, 230, 140 + GROUPBOX "Powtarzanie znaku", -1, 5, 5, 230, 146 ICON IDI_REPEAT_DELAY, IDC_ICON_REPEAT_DELAY, 15, 15, 15, 15 - LTEXT "&Opóźnienie powtarzania:", -1, 40, 15, 50, 10 + LTEXT "&Opóźnienie powtarzania:", -1, 40, 15, 78, 10 LTEXT "Duże", -1, 40, 30, 20, 10 LTEXT "Małe", -1, 200, 30, 20, 10 CONTROL "", IDC_SLIDER_REPEAT_DELAY, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 30, 130, 17 ICON IDI_REPEAT_RATE, IDC_ICON_REPEAT_RATE, 15, 70, 15, 15 - LTEXT "&Częstotliwość powtarzania", -1, 40, 70, 50, 10 + LTEXT "&Częstotliwość powtarzania:", -1, 40, 70, 86, 10 LTEXT "Mała", -1, 40, 85, 20, 10 LTEXT "Duża", -1, 200, 85, 20, 10 CONTROL "", IDC_SLIDER_REPEAT_RATE, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 65, 85, 130, 17 LTEXT "&Kliknij tutaj i przytrzymaj klawisz, aby sprawdzić szybkość powtarzania:", -1, 15, 108, 200, 20 EDITTEXT IDC_EDIT_REPEAT_RATE, 15, 125, 200, 15, WS_CHILD | WS_VISIBLE | WS_GROUP - GROUPBOX "Częstotliwość &migania kursora", -1, 5, 145, 230, 50 + GROUPBOX "Częstotliwość &migania kursora", -1, 5, 157, 230, 50 LTEXT "", IDC_TEXT_CURSOR_BLINK, 20, 165, 1, 8 LTEXT "Brak", -1, 40, 165, 30, 10 LTEXT "Duża", -1, 200, 165, 30, 10 @@ -81,14 +82,14 @@ FONT 8, "MS Shell Dlg" BEGIN GROUPBOX "&Schemat", -1, 5, 5, 170, 45 COMBOBOX IDC_COMBO_CURSOR_SCHEME, 10, 15, 145, 200, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Z&apisz jako...", IDC_BUTTON_SAVEAS_SCHEME, 70, 30, 50, 15 - PUSHBUTTON "&Usuń", IDC_BUTTON_DELETE_SCHEME, 125, 30, 40, 15 + PUSHBUTTON "Z&apisz jako...", IDC_BUTTON_SAVEAS_SCHEME, 70, 31, 50, 14 + PUSHBUTTON "&Usuń", IDC_BUTTON_DELETE_SCHEME, 125, 31, 40, 14 CONTROL "", IDC_IMAGE_CURRENT_CURSOR, "Static", SS_ICON | SS_CENTERIMAGE | WS_VISIBLE, 190, 9, 45, 41, WS_EX_STATICEDGE LTEXT "&Dostosuj:", -1, 5, 60, 40, 10 LISTBOX IDC_LISTBOX_CURSOR, 5, 70, 230, 120, WS_VISIBLE | WS_BORDER | WS_TABSTOP | WS_VSCROLL | LBS_OWNERDRAWFIXED | LBS_NOTIFY CHECKBOX "&Włącz cień wskaźnika", IDC_CHECK_CURSOR_SHADOW, 5, 200, 100, 10 - PUSHBUTTON "Użyj d&omyślnego", IDC_BUTTON_USE_DEFAULT_CURSOR, 90, 200, 70, 15 - PUSHBUTTON "&Przeglądaj...", IDC_BUTTON_BROWSE_CURSOR, 170, 200, 70, 15 + PUSHBUTTON "Użyj d&omyślnego", IDC_BUTTON_USE_DEFAULT_CURSOR, 90, 200, 70, 14 + PUSHBUTTON "&Przeglądaj...", IDC_BUTTON_BROWSE_CURSOR, 170, 200, 70, 14 END IDD_CURSOR_SCHEME_SAVEAS DIALOGEX 0, 0, 200, 75 @@ -96,10 +97,10 @@ STYLE DS_SHELLFONT | WS_CAPTION | WS_SYSMENU CAPTION "Zapisz schemat" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Zapisz ten schemat kursorów jako:", -1, 5, 5, 100, 10 + LTEXT "Zapisz ten schemat kursorów jako:", -1, 5, 5, 144, 9 EDITTEXT IDC_EDIT_SCHEME_NAME, 5, 15, 180, 15, WS_CHILD | WS_VISIBLE | WS_GROUP - PUSHBUTTON "&Ok", IDOK, 60, 45, 50, 15 - PUSHBUTTON "&Anuluj", IDCANCEL, 115, 45, 50, 15 + PUSHBUTTON "&Ok", IDOK, 60, 45, 50, 14 + PUSHBUTTON "&Anuluj", IDCANCEL, 115, 45, 50, 14 END IDD_PAGE_OPTION DIALOGEX 0, 0, 246, 228 @@ -113,7 +114,7 @@ BEGIN CONTROL "", IDC_SLIDER_MOUSE_SPEED, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 90, 30, 70, 17 LTEXT "Szybko", -1, 170, 30, 30, 10 ICON IDI_MOUSE_SPEED, IDC_ICON_MOUSE_SPEED, 15, 15, 15, 15 - CHECKBOX "Zwiększ pr&ecyzję wskaźnika", IDC_CHECK_POINTER_PRECISION, 60, 50, 100, 10 + CHECKBOX "Zwiększ pr&ecyzję wskaźnika", IDC_CHECK_POINTER_PRECISION, 60, 50, 151, 10 GROUPBOX "Przyciąganie do", -1, 5, 65, 230, 40 CHECKBOX "&Automatycznie przenieś wskaźnik na domyślny przycisk w oknie dialogowym", IDC_CHECK_SNAP_TO, 60, 80, 170, 20, BS_MULTILINE | BS_TOP @@ -137,20 +138,20 @@ CAPTION "Kółko" FONT 8, "MS Shell Dlg" BEGIN GROUPBOX "Przewijanie", -1, 5, 5, 230, 80 - ICON IDI_MOUSE_WHEEL, IDC_ICON_WHEEL, 20, 20, 32, 32 - LTEXT "Obrócenie kółkiem o jeden skok powoduje przewinięcie:", -1, 60, 15, 150, 10 - RADIOBUTTON "&O tyle linii naraz:", IDC_RADIO_WHEEL_SCROLL_LINES, 60, 30, 150, 10, WS_VISIBLE | WS_GROUP | WS_TABSTOP - RADIOBUTTON "O jeden &ekran", IDC_RADIO_WHEEL_SCROLL_PAGE, 60, 65, 90, 10 - EDITTEXT IDC_EDIT_WHEEL_SCROLL_LINES, 70, 45, 60, 15, ES_RIGHT | WS_VISIBLE | WS_GROUP | WS_TABSTOP - CONTROL "", IDC_UPDOWN_WHEEL_SCROLL_LINES, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | WS_BORDER, 125, 45, 12, 12 + ICON IDI_MOUSE_WHEEL, IDC_ICON_WHEEL, 13, 20, 32, 32 + LTEXT "Obrócenie kółkiem o jeden skok powoduje przewinięcie:", -1, 42, 15, 179, 10 + RADIOBUTTON "&O tyle linii naraz:", IDC_RADIO_WHEEL_SCROLL_LINES, 42, 30, 150, 10, WS_VISIBLE | WS_GROUP | WS_TABSTOP + RADIOBUTTON "O jeden &ekran", IDC_RADIO_WHEEL_SCROLL_PAGE, 42, 65, 90, 10 + EDITTEXT IDC_EDIT_WHEEL_SCROLL_LINES, 69, 45, 37, 15, ES_RIGHT | WS_VISIBLE | WS_GROUP | WS_TABSTOP + CONTROL "", IDC_UPDOWN_WHEEL_SCROLL_LINES, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | WS_BORDER, 105, 45, 11, 12 END STRINGTABLE BEGIN IDS_CPLNAME_1 "Mysz" - IDS_CPLDESCRIPTION_1 "Dostosowuje ustawienia myszy." + IDS_CPLDESCRIPTION_1 "Dostosowuje ustawienia myszy, takie jak konfiguracja przycisków, szybkość dwukrotnego kliknięcia, wskaźniki myszy i szybkość ruchu." IDS_CPLNAME_2 "Klawiatura" - IDS_CPLDESCRIPTION_2 "Dostosowuje ustawienia klawiatury." + IDS_CPLDESCRIPTION_2 "Dostosowuje ustawienia klawiatury, takie jak częstotliwość migania kursora i częstotliwość powtarzania znaku." IDS_ARROW "Wybór normalny" IDS_HELP "Wybór pomocy" IDS_APPSTARTING "Praca w tle" @@ -164,7 +165,7 @@ BEGIN IDS_SIZENWSE "Zmiana wymiarów po przekątnej 1" IDS_SIZENESW "Zmiana wymiarów po przekątnej 2" IDS_SIZEALL "Przenieś" - IDS_UPARROW "Alternatywny wybór" + IDS_UPARROW "Wybór alternatywny" IDS_HAND "Wybór łącza" IDS_NONE "(brak)" IDS_SYSTEM_SCHEME "(schemat systemu)" diff --git a/dll/cpl/openglcfg/general.c b/dll/cpl/openglcfg/general.c index 3f228da19b9f1..115d374880e52 100644 --- a/dll/cpl/openglcfg/general.c +++ b/dll/cpl/openglcfg/general.c @@ -10,20 +10,11 @@ static VOID InitSettings(HWND hWndDlg) { HKEY hKeyRenderer; HKEY hKeyDrivers; + DWORD dwType = 0; + DWORD dwSize = MAX_KEY_LENGTH; WCHAR szBuffer[MAX_KEY_LENGTH]; WCHAR szBultin[MAX_KEY_LENGTH]; WCHAR szDriver[MAX_KEY_LENGTH]; - DWORD dwType = 0; - DWORD dwSize = MAX_KEY_LENGTH; - - if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, KEY_DRIVERS, 0, KEY_READ, &hKeyDrivers) != ERROR_SUCCESS) - return; - - if (RegCreateKeyExW(HKEY_CURRENT_USER, KEY_RENDERER, 0, NULL, 0, MAXIMUM_ALLOWED, NULL, &hKeyRenderer, NULL) != ERROR_SUCCESS) - { - RegCloseKey(hKeyDrivers); - return; - } LoadString(hApplet, IDS_DEBUG_DNM, (LPTSTR)szBultin, 127); SendDlgItemMessageW(hWndDlg, IDC_DEBUG_OUTPUT, CB_ADDSTRING, 0, (LPARAM)szBultin); @@ -42,9 +33,14 @@ static VOID InitSettings(HWND hWndDlg) LoadString(hApplet, IDS_RENDERER_RSWR, (LPTSTR)szBultin, 127); SendDlgItemMessageW(hWndDlg, IDC_RENDERER, CB_ADDSTRING, 0, (LPARAM)szBultin); + if (RegCreateKeyExW(HKEY_CURRENT_USER, KEY_RENDERER, 0, NULL, 0, MAXIMUM_ALLOWED, NULL, &hKeyRenderer, NULL) != ERROR_SUCCESS) + return; + if (RegQueryValueExW(hKeyRenderer, NULL, NULL, &dwType, (LPBYTE)szDriver, &dwSize) != ERROR_SUCCESS || dwSize == sizeof(WCHAR)) SendDlgItemMessageW(hWndDlg, IDC_RENDERER, CB_SETCURSEL, RENDERER_DEFAULT, 0); + RegCloseKey(hKeyRenderer); + if (dwType == REG_SZ) { DWORD ret; @@ -53,12 +49,14 @@ static VOID InitSettings(HWND hWndDlg) if (wcsncmp(szBultin, szDriver, MAX_KEY_LENGTH) == 0) SendDlgItemMessageW(hWndDlg, IDC_RENDERER, CB_SETCURSEL, RENDERER_RSWR, 0); + if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, KEY_DRIVERS, 0, KEY_READ, &hKeyDrivers) != ERROR_SUCCESS) + return; + ret = RegQueryInfoKeyW(hKeyDrivers, NULL, NULL, NULL, &dwNumDrivers, NULL, NULL, NULL, NULL, NULL, NULL, NULL); if (ret != ERROR_SUCCESS || dwNumDrivers == 0) { RegCloseKey(hKeyDrivers); - RegCloseKey(hKeyRenderer); return; } @@ -90,10 +88,9 @@ static VOID InitSettings(HWND hWndDlg) if (wcsncmp(szBuffer, szDriver, MAX_KEY_LENGTH) == 0) SendDlgItemMessageW(hWndDlg, IDC_RENDERER, CB_SETCURSEL, iKey + 2, 0); } - } - RegCloseKey(hKeyDrivers); - RegCloseKey(hKeyRenderer); + RegCloseKey(hKeyDrivers); + } return; } diff --git a/dll/cpl/sysdm/general.c b/dll/cpl/sysdm/general.c index 68436639e19dc..d56677574fe1f 100644 --- a/dll/cpl/sysdm/general.c +++ b/dll/cpl/sysdm/general.c @@ -69,22 +69,22 @@ static VOID InitLogo(HWND hwndDlg) COLORREF *pBits; INT line, column; + if (hDC == NULL || hDCLogo == NULL || hDCMask == NULL) + goto Cleanup; + ZeroMemory(pImgInfo, sizeof(*pImgInfo)); ZeroMemory(&bmpi, sizeof(bmpi)); - hLogo = (HBITMAP)LoadImage(hApplet, MAKEINTRESOURCE(IDB_ROSBMP), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR); - hMask = (HBITMAP)LoadImage(hApplet, MAKEINTRESOURCE(IDB_ROSMASK), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR); + hLogo = (HBITMAP)LoadImageW(hApplet, MAKEINTRESOURCEW(IDB_ROSBMP), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR); + hMask = (HBITMAP)LoadImageW(hApplet, MAKEINTRESOURCEW(IDB_ROSMASK), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR); if (hLogo != NULL && hMask != NULL) { - GetObject(hLogo, sizeof(BITMAP), &logoBitmap); - GetObject(hMask, sizeof(BITMAP), &maskBitmap); + GetObject(hLogo, sizeof(logoBitmap), &logoBitmap); + GetObject(hMask, sizeof(maskBitmap), &maskBitmap); - if(logoBitmap.bmHeight != maskBitmap.bmHeight || logoBitmap.bmWidth != maskBitmap.bmWidth) - return; - - pImgInfo->cxSource = logoBitmap.bmWidth; - pImgInfo->cySource = logoBitmap.bmHeight; + if (logoBitmap.bmHeight != maskBitmap.bmHeight || logoBitmap.bmWidth != maskBitmap.bmWidth) + goto Cleanup; bmpi.bmiHeader.biSize = sizeof(BITMAPINFO); bmpi.bmiHeader.biWidth = logoBitmap.bmWidth; @@ -94,17 +94,17 @@ static VOID InitLogo(HWND hwndDlg) bmpi.bmiHeader.biCompression = BI_RGB; bmpi.bmiHeader.biSizeImage = 4 * logoBitmap.bmWidth * logoBitmap.bmHeight; + /* Create a premultiplied bitmap */ hAlphaLogo = CreateDIBSection(hDC, &bmpi, DIB_RGB_COLORS, (PVOID*)&pBits, 0, 0); - - if(!hAlphaLogo) - return; + if (!hAlphaLogo) + goto Cleanup; SelectObject(hDCLogo, hLogo); SelectObject(hDCMask, hMask); - for(line = logoBitmap.bmHeight - 1; line >= 0; line--) + for (line = logoBitmap.bmHeight - 1; line >= 0; line--) { - for(column = 0; column < logoBitmap.bmWidth; column++) + for (column = 0; column < logoBitmap.bmWidth; column++) { COLORREF alpha = GetPixel(hDCMask, column, line) & 0xFF; COLORREF Color = GetPixel(hDCLogo, column, line); @@ -114,22 +114,23 @@ static VOID InitLogo(HWND hwndDlg) g = GetGValue(Color) * alpha / 255; b = GetBValue(Color) * alpha / 255; - *pBits++ = b | g << 8 | r << 16 | alpha << 24; + *pBits++ = b | (g << 8) | (r << 16) | (alpha << 24); } - } - } - - pImgInfo->hBitmap = hAlphaLogo; - pImgInfo->cxSource = logoBitmap.bmWidth; - pImgInfo->cySource = logoBitmap.bmHeight; - pImgInfo->iBits = logoBitmap.bmBitsPixel; - pImgInfo->iPlanes = logoBitmap.bmPlanes; + } - DeleteObject(hLogo); - DeleteObject(hMask); - DeleteDC(hDCLogo); - DeleteDC(hDCMask); + pImgInfo->hBitmap = hAlphaLogo; + pImgInfo->cxSource = logoBitmap.bmWidth; + pImgInfo->cySource = logoBitmap.bmHeight; + pImgInfo->iBits = logoBitmap.bmBitsPixel; + pImgInfo->iPlanes = logoBitmap.bmPlanes; + } +Cleanup: + if (hMask != NULL) DeleteObject(hMask); + if (hLogo != NULL) DeleteObject(hLogo); + if (hDCMask != NULL) DeleteDC(hDCMask); + if (hDCLogo != NULL) DeleteDC(hDCLogo); + if (hDC != NULL) ReleaseDC(hwndDlg, hDC); } LRESULT CALLBACK RosImageProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) @@ -145,19 +146,23 @@ LRESULT CALLBACK RosImageProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam if (timerid == 0) { HDC hCreditsDC, hLogoDC; - HFONT hFont; + HDC hDC = GetDC(NULL); + HFONT hFont = NULL; NONCLIENTMETRICS ncm; RECT rcCredits; TCHAR szCredits[2048]; INT iDevsHeight; - top = 0; + if (hDC == NULL) + goto Cleanup; + + top = 0; offset = 0; - hCreditsDC = CreateCompatibleDC(GetDC(NULL)); + hCreditsDC = CreateCompatibleDC(hDC); hLogoDC = CreateCompatibleDC(hCreditsDC); if (hCreditsDC == NULL || hLogoDC == NULL) - break; + goto Cleanup; SetRect(&rcCredits, 0, 0, 0, 0); @@ -165,6 +170,8 @@ LRESULT CALLBACK RosImageProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), &ncm, 0); hFont = CreateFontIndirect(&ncm.lfMessageFont); + if (!hFont) + goto Cleanup; SelectObject(hCreditsDC, hFont); LoadString(hApplet, IDS_DEVS, szCredits, sizeof(szCredits) / sizeof(TCHAR)); @@ -174,8 +181,8 @@ LRESULT CALLBACK RosImageProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam hCreditsBitmap = CreateBitmap(pImgInfo->cxSource, (2 * pImgInfo->cySource) + iDevsHeight + 1, pImgInfo->iPlanes, pImgInfo->iBits, NULL); - if(!hCreditsBitmap) - break; + if (!hCreditsBitmap) + goto Cleanup; SelectObject(hLogoDC, pImgInfo->hBitmap); SelectObject(hCreditsDC, hCreditsBitmap); @@ -201,10 +208,13 @@ LRESULT CALLBACK RosImageProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam AlphaBlend(hCreditsDC, 0, 0, pImgInfo->cxSource, pImgInfo->cySource, hLogoDC, 0, 0, pImgInfo->cxSource, pImgInfo->cySource, BlendFunc); AlphaBlend(hCreditsDC, 0, offset, pImgInfo->cxSource, pImgInfo->cySource, hLogoDC, 0, 0, pImgInfo->cxSource, pImgInfo->cySource, BlendFunc); - DeleteDC(hLogoDC); - DeleteDC(hCreditsDC); - timerid = SetTimer(hwnd, 1, ANIM_TIME, NULL); + +Cleanup: + if (hFont != NULL) DeleteObject(hFont); + if (hLogoDC != NULL) DeleteDC(hLogoDC); + if (hCreditsDC != NULL) DeleteDC(hCreditsDC); + if (hDC != NULL) ReleaseDC(NULL, hDC); } } break; @@ -213,18 +223,22 @@ LRESULT CALLBACK RosImageProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam { RECT rcCredits; HDC hDC = GetDC(hwnd); - - GetClientRect(hwnd, &rcCredits); - SetRect(&rcCredits, 0, 0, rcCredits.right, pImgInfo->cySource); - FillRect(hDC, &rcCredits, GetSysColorBrush(COLOR_3DFACE)); - + if (hDC != NULL) + { + GetClientRect(hwnd, &rcCredits); + SetRect(&rcCredits, 0, 0, rcCredits.right, pImgInfo->cySource); + FillRect(hDC, &rcCredits, GetSysColorBrush(COLOR_3DFACE)); + ReleaseDC(hwnd, hDC); + } KillTimer(hwnd, timerid); - DeleteObject(hCreditsBitmap); - InvalidateRect(hwnd, NULL, FALSE); + if (hCreditsBitmap != NULL) + DeleteObject(hCreditsBitmap); top = 0; timerid = 0; } + + InvalidateRect(hwnd, NULL, FALSE); break; case WM_TIMER: top += ANIM_STEP; @@ -233,13 +247,16 @@ LRESULT CALLBACK RosImageProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam { RECT rcCredits; HDC hDC = GetDC(hwnd); - - GetClientRect(hwnd, &rcCredits); - SetRect(&rcCredits, 0, 0, rcCredits.right, pImgInfo->cySource); - FillRect(hDC, &rcCredits, GetSysColorBrush(COLOR_3DFACE)); - + if (hDC != NULL) + { + GetClientRect(hwnd, &rcCredits); + SetRect(&rcCredits, 0, 0, rcCredits.right, pImgInfo->cySource); + FillRect(hDC, &rcCredits, GetSysColorBrush(COLOR_3DFACE)); + ReleaseDC(hwnd, hDC); + } KillTimer(hwnd, timerid); - DeleteObject(hCreditsBitmap); + if (hCreditsBitmap != NULL) + DeleteObject(hCreditsBitmap); top = 0; timerid = 0; diff --git a/dll/cpl/sysdm/lang/fr-FR.rc b/dll/cpl/sysdm/lang/fr-FR.rc index 1204f4e167604..0f4b67e561e3f 100644 --- a/dll/cpl/sysdm/lang/fr-FR.rc +++ b/dll/cpl/sysdm/lang/fr-FR.rc @@ -102,22 +102,22 @@ END IDD_HARDWAREPROFILE DIALOGEX 0, 0, 212, 188 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "General" +CAPTION "Général" FONT 8, "MS Shell Dlg" BEGIN ICON IDI_HARDPROF, IDC_STATIC, 10, 10, 18, 20, SS_ICON LTEXT "", IDC_HWPPROP_PROFILE, 48, 16, 150, 8 - LTEXT "Dock ID:", IDC_STATIC, 10, 42, 43, 8 - LTEXT "", IDC_HWPPROP_DOCKID, 64, 42, 135, 8 - LTEXT "Serial Number:", IDC_STATIC, 10, 55, 52, 8 - LTEXT "", IDC_HWPPROP_SERIAL, 64, 55, 135, 8 + LTEXT "ID de la station d'accueil :", IDC_STATIC, 10, 42, 93, 8 + LTEXT "", IDC_HWPPROP_DOCKID, 103, 42, 135, 8 + LTEXT "Numéro de série :", IDC_STATIC, 10, 55, 93, 8 + LTEXT "", IDC_HWPPROP_SERIAL, 103, 55, 135, 8 GROUPBOX "", IDC_STATIC, 10, 69, 192, 61 - AUTOCHECKBOX "This is a &portable computer", IDC_HWPPROP_PORTABLE, 17, 68, 115, 10, WS_GROUP | WS_TABSTOP - AUTORADIOBUTTON "The docking &state is unknown", IDC_HWPPROP_UNKNOWN, 22, 85, 160, 10, WS_GROUP | WS_TABSTOP - AUTORADIOBUTTON "The computer is &docked", IDC_HWPPROP_DOCKED, 22, 97, 160, 10 - AUTORADIOBUTTON "The computer is &undocked", IDC_HWPPROP_UNDOCKED, 22, 109, 160, 10 - GROUPBOX "Hardware profiles selection", IDC_STATIC, 10, 138, 192, 42 - AUTOCHECKBOX "Always &include this profile as an option when ReactOS starts", IDC_HWPPROP_INCLUDE, 17, 150, 164, 20, WS_GROUP | WS_TABSTOP | BS_MULTILINE + AUTOCHECKBOX "Ceci est un ordinteur &portable", IDC_HWPPROP_PORTABLE, 17, 68, 115, 10, WS_GROUP | WS_TABSTOP + AUTORADIOBUTTON "L'état de la &station d'accueil est inconnu", IDC_HWPPROP_UNKNOWN, 22, 85, 160, 10, WS_GROUP | WS_TABSTOP + AUTORADIOBUTTON "L'ordinateur est &connecté à sa station d'accueil", IDC_HWPPROP_DOCKED, 22, 97, 160, 10 + AUTORADIOBUTTON "L'ordinateur est &retiré de sa station d'accueil", IDC_HWPPROP_UNDOCKED, 22, 109, 160, 10 + GROUPBOX "Sélection de profils matériels", IDC_STATIC, 10, 138, 192, 42 + AUTOCHECKBOX "Toujours &inclure ce profil en tant qu'option lors du démarrage de ReactOS", IDC_HWPPROP_INCLUDE, 17, 150, 164, 20, WS_GROUP | WS_TABSTOP | BS_MULTILINE END IDD_COPYPROFILE DIALOGEX 12, 26, 256, 52 @@ -167,29 +167,29 @@ END IDD_USERPROFILE_TYPE DIALOGEX 6, 18, 225, 103 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Change Profile Type" +CAPTION "Modifier le type de profil" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "", IDC_USERPROFILE_TYPE_TEXT, 7, 11, 206, 28 - AUTORADIOBUTTON "&Roaming profile", IDC_USERPROFILE_TYPE_ROAMING, 60, 49, 145, 10 - AUTORADIOBUTTON "&Local profile", IDC_USERPROFILE_TYPE_LOCAL, 60, 63, 145, 10 + LTEXT "", IDC_USERPROFILE_TYPE_TEXT, 7, 11, 206, 32 + AUTORADIOBUTTON "Profil &itinérant", IDC_USERPROFILE_TYPE_ROAMING, 60, 49, 145, 10 + AUTORADIOBUTTON "Profil &local", IDC_USERPROFILE_TYPE_LOCAL, 60, 63, 145, 10 DEFPUSHBUTTON "OK", IDOK, 60, 82, 50, 14 - PUSHBUTTON "Cancel", IDCANCEL, 122, 82, 50, 14 + PUSHBUTTON "Annuler", IDCANCEL, 122, 82, 50, 14 END IDD_USERPROFILE_COPY DIALOGEX 6, 18, 261, 133 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Copy To" +CAPTION "Copier vers" FONT 8, "MS Shell Dlg" BEGIN - GROUPBOX "Copy &profile to", -1, 8, 9, 185, 52 + GROUPBOX "Copier le &profil vers", -1, 8, 9, 185, 52 EDITTEXT IDC_USERPROFILE_COPY_PATH, 15, 23, 167, 12, ES_AUTOHSCROLL - PUSHBUTTON "&Browse", IDC_USERPROFILE_COPY_BROWSE, 15, 41, 50, 14 - GROUPBOX "Permitted to use", -1, 8, 77, 185, 48 + PUSHBUTTON "&Parcourir", IDC_USERPROFILE_COPY_BROWSE, 15, 41, 50, 14 + GROUPBOX "Utilisation possible", -1, 8, 77, 185, 48 LTEXT "", IDC_USERPROFILE_COPY_USER, 15, 91, 167, 8 - PUSHBUTTON "&Change", IDC_USERPROFILE_COPY_CHANGE, 15, 105, 50, 14 + PUSHBUTTON "&Modifier", IDC_USERPROFILE_COPY_CHANGE, 15, 105, 50, 14 DEFPUSHBUTTON "OK", IDOK, 204, 13, 50, 14 - PUSHBUTTON "Cancel", IDCANCEL, 204, 30, 50, 14 + PUSHBUTTON "Annuler", IDCANCEL, 204, 30, 50, 14 END IDD_STARTUPRECOVERY DIALOGEX 6, 18, 252, 280 @@ -323,13 +323,13 @@ BEGIN IDS_USERPROFILE_STATUS "Statut" IDS_USERPROFILE_MODIFIED "Modifié" IDS_USERPROFILE_LOCAL "Local" - IDS_USERPROFILE_ROAMING "Roaming" - IDS_USERPROFILE_MANDATORY "Mandatory" - IDS_USERPROFILE_CONFIRM_DELETE "Are you sure you want to delete %s's profile?" - IDS_USERPROFILE_CONFIRM_DELETE_TITLE "Confirm Delete" - IDS_USERPROFILE_ACCOUNT_UNKNOWN "Account Unknown" - IDS_USERPROFILE_ACCOUNT_DELETED "Account Deleted" - IDS_USERPROFILE_TYPE_TEXT "When %s logs onto this computer, should the operating system use the roaming profile or just the locally cached copy of the roaming profile." + IDS_USERPROFILE_ROAMING "Itinérant" + IDS_USERPROFILE_MANDATORY "Obligatoire" + IDS_USERPROFILE_CONFIRM_DELETE "Voulez-vous supprimer le profil de %s ?" + IDS_USERPROFILE_CONFIRM_DELETE_TITLE "Confirmer la suppression" + IDS_USERPROFILE_ACCOUNT_UNKNOWN "Compte inconnu" + IDS_USERPROFILE_ACCOUNT_DELETED "Compte supprimé" + IDS_USERPROFILE_TYPE_TEXT "Quand %s ouvre une session sur cet ordinateur, le système d'exploitation doit-il utiliser le profil itinérant, ou simplement la copie mise en cache localement du profil itinérant ?" IDS_MESSAGEBOXTITLE "Application Système du Panneau de configuration" IDS_WARNINITIALSIZE "Entrez une valeur numérique pour la taille initiale du fichier d'échange." IDS_WARNMAXIMUMSIZE "Entrez une valeur numérique pour la taille maximale du fichier d'échange." diff --git a/dll/cpl/usrmgr/lang/fr-FR.rc b/dll/cpl/usrmgr/lang/fr-FR.rc index f95042f2abe42..0b6f9f321c639 100644 --- a/dll/cpl/usrmgr/lang/fr-FR.rc +++ b/dll/cpl/usrmgr/lang/fr-FR.rc @@ -9,11 +9,11 @@ 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 "A&dd...", IDC_USERS_ADD, 87, 98, 50, 14 - PUSHBUTTON "&Remove", IDC_USERS_REMOVE, 141, 98, 50, 14 - PUSHBUTTON "Pr&operties", IDC_USERS_PROPERTIES, 195, 98, 50, 14 - AUTOCHECKBOX "Require user name and password on system startup.", IDC_USERS_STARTUP_REQUIRE, 10, 118, 200, 14, WS_DISABLED - PUSHBUTTON "Reset Password", IDC_USERS_RESET, 165, 200, 80, 14, WS_DISABLED + PUSHBUTTON "A&jouter...", IDC_USERS_ADD, 87, 98, 50, 14 + PUSHBUTTON "&Retirer", IDC_USERS_REMOVE, 141, 98, 50, 14 + PUSHBUTTON "Pr&opriétés", IDC_USERS_PROPERTIES, 195, 98, 50, 14 + AUTOCHECKBOX "Nécessite un identifiant et mot de passe au démarrage du système.", IDC_USERS_STARTUP_REQUIRE, 10, 118, 235, 14, WS_DISABLED + PUSHBUTTON "Réinitialiser le &mot de passe", IDC_USERS_RESET, 145, 200, 100, 14, WS_DISABLED END IDD_GROUPS DIALOGEX 0, 0, 252, 223 @@ -23,9 +23,9 @@ 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 "A&dd...", IDC_GROUPS_ADD, 87, 98, 50, 14 - PUSHBUTTON "&Remove", IDC_GROUPS_REMOVE, 141, 98, 50, 14 - PUSHBUTTON "Pr&operties", IDC_GROUPS_PROPERTIES, 195, 98, 50, 14 + PUSHBUTTON "A&jouter...", IDC_GROUPS_ADD, 87, 98, 50, 14 + PUSHBUTTON "&Retirer", IDC_GROUPS_REMOVE, 141, 98, 50, 14 + PUSHBUTTON "Pr&opriétés", IDC_GROUPS_PROPERTIES, 195, 98, 50, 14 END IDD_EXTRA DIALOGEX 0, 0, 252, 223 diff --git a/dll/win32/CMakeLists.txt b/dll/win32/CMakeLists.txt index e69b50bc8779a..533d1dcf24327 100644 --- a/dll/win32/CMakeLists.txt +++ b/dll/win32/CMakeLists.txt @@ -157,7 +157,6 @@ add_subdirectory(olethk32) add_subdirectory(pdh) add_subdirectory(pidgen) add_subdirectory(powrprof) -add_subdirectory(printui) add_subdirectory(profmap) add_subdirectory(propsys) add_subdirectory(psapi) @@ -169,6 +168,7 @@ add_subdirectory(rasadhlp) add_subdirectory(rasapi32) add_subdirectory(rasdlg) add_subdirectory(rasman) +add_subdirectory(regapi) add_subdirectory(resutils) add_subdirectory(riched20) add_subdirectory(riched32) diff --git a/dll/win32/advapi32/reg/hkcr.c b/dll/win32/advapi32/reg/hkcr.c index 2756685d5fbfa..65fc9e7c92d4b 100644 --- a/dll/win32/advapi32/reg/hkcr.c +++ b/dll/win32/advapi32/reg/hkcr.c @@ -960,8 +960,8 @@ EnumHKCRValue( NULL); if (ErrorCode != ERROR_SUCCESS) { - /* Most likely ERROR_NO_MORE_ITEMS */ - ERR("Returning %d.\n", ErrorCode); + if (ErrorCode != ERROR_NO_MORE_ITEMS) + ERR("Returning %d.\n", ErrorCode); goto Exit; } FallbackValueName[FallbackValueNameLen] = L'\0'; diff --git a/dll/win32/browseui/lang/pl-PL.rc b/dll/win32/browseui/lang/pl-PL.rc index 22f3ac244444c..a801406ce052a 100644 --- a/dll/win32/browseui/lang/pl-PL.rc +++ b/dll/win32/browseui/lang/pl-PL.rc @@ -4,6 +4,7 @@ * http://www.reactos.org * IRC: irc.freenode.net #reactos-pl; * UTF-8 conversion by Caemyr (May, 2011) + * Polish translation updated by pithwz - Piotr Hetnarowicz (piotrhwz@gmail.com) (May, 2020) */ LANGUAGE LANG_POLISH, SUBLANG_DEFAULT @@ -43,7 +44,7 @@ BEGIN MENUITEM "", -1, MFT_SEPARATOR END MENUITEM "Pasek sta&nu", IDM_VIEW_STATUSBAR - POPUP "Pasek &exploratora", IDM_VIEW_EXPLORERBAR + POPUP "Pasek &eksploratora", IDM_VIEW_EXPLORERBAR BEGIN MENUITEM "W&yszukaj\tCtrl+E", IDM_EXPLORERBAR_SEARCH MENUITEM "&Ulubione\tCtrl+I", IDM_EXPLORERBAR_FAVORITES @@ -158,7 +159,7 @@ BEGIN DEFPUSHBUTTON "Wy&szukaj", IDC_SEARCH_BUTTON, 80, 110, 40, 15, WS_GROUP | WS_TABSTOP | WS_VISIBLE PUSHBUTTON "&Zatrzymaj", IDC_SEARCH_STOP_BUTTON, 80, 110, 40, 15, WS_GROUP | WS_TABSTOP - AUTOCHECKBOX "Search Hidden Files and Folders", + AUTOCHECKBOX "Przeszukaj ukryte pliki i foldery", IDC_SEARCH_HIDDEN, 4, 130, 130, 8, WS_VISIBLE | WS_GROUP | WS_TABSTOP CONTROL "", IDC_PROGRESS_BAR, PROGRESS_CLASSA, WS_BORDER | PBS_MARQUEE, 10, 155, 200, 8 @@ -226,7 +227,7 @@ END STRINGTABLE BEGIN 9121 "Podłącza dysk sieciowy." - 9122 "Odłącza dysk sieciowy." + 9122 "Odłącza wybrany dysk sieciowy." END STRINGTABLE @@ -245,8 +246,8 @@ END STRINGTABLE BEGIN - 9362 "Otwiera katalog Ulubionych." - 9363 "Dodaje bierzącą stronę do listy ulubionych." + 9362 "Otwiera katalog Ulubione." + 9363 "Dodaje bieżącą stronę do listy ulubione." END STRINGTABLE @@ -335,10 +336,10 @@ END STRINGTABLE BEGIN - IDS_SEARCH_RESULTS "Search Results" + IDS_SEARCH_RESULTS "Wyniki wyszukiwania" IDS_SEARCHINVALID "Folder '%1' jest nieprawidłowy." - IDS_SEARCH_FOLDER "Trwa wyszukiwanie %s" - IDS_SEARCH_FILES_FOUND "Znaleziono %u plików" + IDS_SEARCH_FOLDER "Trwa wyszukiwanie... %s" + IDS_SEARCH_FILES_FOUND "Znaleziono: %u plików" IDS_SEARCH_OPEN_FOLDER "O&twórz folder zawierający" IDS_COL_NAME "Nazwa" IDS_COL_LOCATION "W folderze" @@ -347,6 +348,6 @@ END STRINGTABLE BEGIN - IDS_PARSE_ADDR_ERR_TITLE "ReactOS Explorer" - IDS_PARSE_ADDR_ERR_TEXT "ReactOS Explorer cannot find '%1'. Check the spelling and try again." + IDS_PARSE_ADDR_ERR_TITLE "Eksplorator ReactOS" + IDS_PARSE_ADDR_ERR_TEXT "Eksplorator systemu ReactOS nie może znaleźć elementu '%1'. Sprawdź pisownię i ponów próbę." END diff --git a/dll/win32/comctl32/propsheet.c b/dll/win32/comctl32/propsheet.c index 4dd355a78c82d..543372fbb7f63 100644 --- a/dll/win32/comctl32/propsheet.c +++ b/dll/win32/comctl32/propsheet.c @@ -3580,6 +3580,30 @@ PROPSHEET_DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) } SetFocus(GetDlgItem(hwnd, IDOK)); } +#ifdef __REACTOS__ + { /* + try to fit it into the desktop + user32 positions the dialog based on the IDD_PROPSHEET template, + but we've since made it larger by adding controls + */ + RECT rcWork; + RECT rcDlg; + int dx, dy; + + if (GetWindowRect(hwnd, &rcDlg) && SystemParametersInfo(SPI_GETWORKAREA, 0, &rcWork, 0)) + { + dx = rcDlg.right - rcWork.right; + dy = rcDlg.bottom - rcWork.bottom; + + if (rcDlg.right > rcWork.right) + rcDlg.left -= dx; + if (rcDlg.bottom > rcWork.bottom) + rcDlg.top -= dy; + + SetWindowPos(hwnd, HWND_TOPMOST, rcDlg.left, rcDlg.top, 0, 0, SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOREDRAW | SWP_NOSIZE); + } + } +#endif if (IS_INTRESOURCE(psInfo->ppshheader.pszCaption) && psInfo->ppshheader.hInstance) diff --git a/dll/win32/comctl32/treeview.c b/dll/win32/comctl32/treeview.c index 9e5eb43894fbd..e4a30d381030f 100644 --- a/dll/win32/comctl32/treeview.c +++ b/dll/win32/comctl32/treeview.c @@ -5825,7 +5825,9 @@ TREEVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) return TREEVIEW_HScroll(infoPtr, wParam); case WM_KEYDOWN: +#ifndef __REACTOS__ case WM_SYSKEYDOWN: +#endif return TREEVIEW_KeyDown(infoPtr, wParam); case WM_KILLFOCUS: diff --git a/dll/win32/comdlg32/filedlg.c b/dll/win32/comdlg32/filedlg.c index 1847d837c09b7..af3c5c4a3ac40 100644 --- a/dll/win32/comdlg32/filedlg.c +++ b/dll/win32/comdlg32/filedlg.c @@ -305,9 +305,17 @@ static void filedlg_collect_places_pidls(FileOpenDlgInfos *fodInfos) { static const int default_places[] = { +#ifdef __REACTOS__ + CSIDL_RECENT, CSIDL_DESKTOP, CSIDL_MYDOCUMENTS, CSIDL_DRIVES, + CSIDL_NETWORK, +#else + CSIDL_DESKTOP, + CSIDL_MYDOCUMENTS, + CSIDL_DRIVES, +#endif }; unsigned int i; HKEY hkey; diff --git a/dll/win32/crtdll/crtdll.spec b/dll/win32/crtdll/crtdll.spec index 38f2fb36b7b44..749140e7faae7 100644 --- a/dll/win32/crtdll/crtdll.spec +++ b/dll/win32/crtdll/crtdll.spec @@ -20,7 +20,7 @@ @ cdecl _CItan() msvcrt._CItan @ cdecl _CItanh() msvcrt._CItanh @ extern _HUGE_dll msvcrt._HUGE - @ cdecl _XcptFilter(long ptr) msvcrt._XcptFilter + @ cdecl _XcptFilter() msvcrt._XcptFilter @ cdecl __GetMainArgs(ptr ptr ptr long) @ extern __argc_dll msvcrt.__argc @ extern __argv_dll msvcrt.__argv diff --git a/dll/win32/kernel32/winnls/string/lcformat.c b/dll/win32/kernel32/winnls/string/lcformat.c index 441c41b22118c..5e5b529df9e6f 100644 --- a/dll/win32/kernel32/winnls/string/lcformat.c +++ b/dll/win32/kernel32/winnls/string/lcformat.c @@ -1762,7 +1762,7 @@ INT WINAPI GetCurrencyFormatW(LCID lcid, DWORD dwFlags, *szOut-- = *lpszDec--; /* Write decimal separator */ } - dwGroupCount = lpFormat->Grouping; + dwGroupCount = lpFormat->Grouping == 32 ? 3 : lpFormat->Grouping; /* Write the remaining whole number digits, including grouping chars */ while (szSrc >= lpszValue && *szSrc >= '0' && *szSrc <= '9') @@ -1791,6 +1791,8 @@ INT WINAPI GetCurrencyFormatW(LCID lcid, DWORD dwFlags, *szOut-- = *lpszGrp--; /* Write grouping char */ dwCurrentGroupCount = 0; + if (lpFormat->Grouping == 32) + dwGroupCount = 2; /* Indic grouping: 3 then 2 */ } } if (dwState & NF_ROUND) diff --git a/dll/win32/msafd/misc/dllmain.c b/dll/win32/msafd/misc/dllmain.c index 4f8e76c10a368..52d71e702fe18 100644 --- a/dll/win32/msafd/misc/dllmain.c +++ b/dll/win32/msafd/misc/dllmain.c @@ -2890,6 +2890,10 @@ WSPSetSockOpt( return SOCKET_ERROR; } + /* FIXME: We should not have to limit the packet receive buffer size like this. workaround for CORE-15804 */ + if (*(PULONG)optval > 0x2000) + *(PULONG)optval = 0x2000; + SetSocketInformation(Socket, AFD_INFO_RECEIVE_WINDOW_SIZE, NULL, diff --git a/dll/win32/netid/lang/pl-PL.rc b/dll/win32/netid/lang/pl-PL.rc index f190c528bc1c4..14d93dedc08d6 100644 --- a/dll/win32/netid/lang/pl-PL.rc +++ b/dll/win32/netid/lang/pl-PL.rc @@ -28,7 +28,7 @@ BEGIN PUSHBUTTON "Z&mień...", IDC_NETWORK_PROPERTY, 167, 149, 82, 14 LTEXT "", IDC_MESSAGETEXT, 7, 179, 242, 46 ICON IDI_WARNINGICO, IDC_RESTARTICON, 7, 194, 20, 20, SS_ICON | SS_REALSIZEIMAGE - LTEXT "Changes will take effect after you restart this computer.", IDC_RESTARTTEXT, 25, 195, 209, 8 + LTEXT "Zmiany zostaną zastosowane po ponownym uruchomieniu komputera.", IDC_RESTARTTEXT, 25, 195, 209, 8 END IDD_PROPPAGECOMPNAMECHENGE DIALOGEX 0, 0, 232, 222 diff --git a/dll/win32/regapi/CMakeLists.txt b/dll/win32/regapi/CMakeLists.txt new file mode 100644 index 0000000000000..c5d45a10bb544 --- /dev/null +++ b/dll/win32/regapi/CMakeLists.txt @@ -0,0 +1,15 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/wine) +spec2def(regapi.dll regapi.spec) + +list(APPEND SOURCE + main.c + ${CMAKE_CURRENT_BINARY_DIR}/regapi_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/regapi.def) + +add_library(regapi MODULE ${SOURCE}) +set_module_type(regapi win32dll) +target_link_libraries(regapi wine) +add_importlibs(regapi advapi32 msvcrt kernel32 ntdll) +add_cd_file(TARGET regapi DESTINATION reactos/system32 FOR all) diff --git a/dll/win32/regapi/main.c b/dll/win32/regapi/main.c new file mode 100644 index 0000000000000..1164e92102a60 --- /dev/null +++ b/dll/win32/regapi/main.c @@ -0,0 +1,44 @@ +/* + * regapi implementation + * + * Copyright 2011 Austin English + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ +#include + +#include "windef.h" +#include "winbase.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(regapi); + +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) +{ + TRACE("(0x%p, %d, %p)\n", hinstDLL, fdwReason, lpvReserved); + + switch (fdwReason) + { + case DLL_WINE_PREATTACH: + return FALSE; /* prefer native version */ + case DLL_PROCESS_ATTACH: + DisableThreadLibraryCalls(hinstDLL); + break; + default: + break; + } + + return TRUE; +} diff --git a/dll/win32/regapi/regapi.spec b/dll/win32/regapi/regapi.spec new file mode 100644 index 0000000000000..717939e124a3f --- /dev/null +++ b/dll/win32/regapi/regapi.spec @@ -0,0 +1,84 @@ +# GetDomainName +# QueryUserProperty +@ stub RegBuildNumberQuery +@ stub RegCdCreateA +@ stub RegCdCreateW +@ stub RegCdDeleteA +@ stub RegCdDeleteW +@ stub RegCdEnumerateA +@ stub RegCdEnumerateW +@ stub RegCdQueryA +@ stub RegCdQueryW +@ stub RegCloseServer +@ stub RegConsoleShadowQueryA +@ stub RegConsoleShadowQueryW +# RegCreateUserConfigW +@ stub RegDefaultUserConfigQueryA +@ stub RegDefaultUserConfigQueryW +@ stub RegDenyTSConnectionsPolicy +@ stub RegFreeUtilityCommandList +# RegGetLicensingModePolicy +@ stub RegGetMachinePolicy +@ stub RegGetMachinePolicyEx +# RegGetMachinePolicyNew +@ stub RegGetTServerVersion +@ stub RegGetUserConfigFromUserParameters +@ stub RegGetUserPolicy +@ stub RegIsMachineInHelpMode +@ stub RegIsMachinePolicyAllowHelp +# RegIsTimeZoneRedirectionEnabled +@ stub RegIsTServer +@ stub RegMergeUserConfigWithUserParameters +@ stub RegOpenServerA +@ stub RegOpenServerW +@ stub RegPdCreateA +@ stub RegPdCreateW +@ stub RegPdDeleteA +@ stub RegPdDeleteW +@ stub RegPdEnumerateA +@ stub RegPdEnumerateW +@ stub RegPdQueryA +@ stub RegPdQueryW +@ stub RegQueryOEMId +@ stub RegQueryUtilityCommandList +@ stub RegSAMUserConfig +@ stub RegUserConfigDelete +@ stub RegUserConfigQuery +@ stub RegUserConfigRename +@ stub RegUserConfigSet +@ stub RegWdCreateA +@ stub RegWdCreateW +@ stub RegWdDeleteA +@ stub RegWdDeleteW +@ stub RegWdEnumerateA +@ stub RegWdEnumerateW +@ stub RegWdQueryA +@ stub RegWdQueryW +@ stub RegWinStationAccessCheck +@ stub RegWinStationCreateA +@ stub RegWinStationCreateW +@ stub RegWinStationDeleteA +@ stub RegWinStationDeleteW +@ stub RegWinStationEnumerateA +@ stub RegWinStationEnumerateW +@ stub RegWinStationQueryA +@ stub RegWinStationQueryDefaultSecurity +@ stub RegWinStationQueryEx +# RegWinStationQueryExNew +@ stub RegWinStationQueryNumValueW +@ stub RegWinStationQuerySecurityA +# RegWinstationQuerySecurityConfig_Machine +# RegWinstationQuerySecurityConfig_Merged +@ stub RegWinStationQuerySecurityW +@ stub RegWinStationQueryValueW +@ stub RegWinStationQueryW +@ stub RegWinStationSetNumValueW +@ stub RegWinStationSetSecurityA +# RegWinstationSetSecurityConfig +@ stub RegWinStationSetSecurityW +# SetUserProperty +# UsrPropGetString +# UsrPropGetValue +# UsrPropSetString +# UsrPropSetValue +@ stub WaitForTSConnectionsPolicyChanges diff --git a/dll/win32/shell32/dialogs/drvdefext.cpp b/dll/win32/shell32/dialogs/drvdefext.cpp index f65091f55ccea..82e8764e83591 100644 --- a/dll/win32/shell32/dialogs/drvdefext.cpp +++ b/dll/win32/shell32/dialogs/drvdefext.cpp @@ -3,6 +3,7 @@ * * Copyright 2005 Johannes Anderwald * Copyright 2012 Rafal Harabien + * Copyright 2020 Katayama Hirofumi MZ * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -24,6 +25,10 @@ #define _USE_MATH_DEFINES #include +#define NTOS_MODE_USER +#include +#include + WINE_DEFAULT_DEBUG_CHANNEL(shell); static const GUID GUID_DEVCLASS_DISKDRIVE = {0x4d36e967L, 0xe325, 0x11ce, {0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}}; @@ -278,6 +283,100 @@ CDrvDefExt::PaintStaticControls(HWND hwndDlg, LPDRAWITEMSTRUCT pDrawItem) } } +// https://stackoverflow.com/questions/3098696/get-information-about-disk-drives-result-on-windows7-32-bit-system/3100268#3100268 +static BOOL +GetDriveTypeAndCharacteristics(HANDLE hDevice, DEVICE_TYPE *pDeviceType, ULONG *pCharacteristics) +{ + NTSTATUS Status; + IO_STATUS_BLOCK IoStatusBlock; + FILE_FS_DEVICE_INFORMATION DeviceInfo; + + Status = NtQueryVolumeInformationFile(hDevice, &IoStatusBlock, + &DeviceInfo, sizeof(DeviceInfo), + FileFsDeviceInformation); + if (Status == NO_ERROR) + { + *pDeviceType = DeviceInfo.DeviceType; + *pCharacteristics = DeviceInfo.Characteristics; + return TRUE; + } + + return FALSE; +} + +BOOL IsDriveFloppyW(LPCWSTR pszDriveRoot) +{ + LPCWSTR RootPath = pszDriveRoot; + WCHAR szRoot[16], szDeviceName[16]; + UINT uType; + HANDLE hDevice; + DEVICE_TYPE DeviceType; + ULONG ulCharacteristics; + BOOL ret; + + lstrcpynW(szRoot, RootPath, _countof(szRoot)); + + if (L'a' <= szRoot[0] && szRoot[0] <= 'z') + { + szRoot[0] += ('A' - 'a'); + } + + if ('A' <= szRoot[0] && szRoot[0] <= L'Z' && + szRoot[1] == L':' && szRoot[2] == 0) + { + // 'C:' --> 'C:\' + szRoot[2] = L'\\'; + szRoot[3] = 0; + } + + if (!PathIsRootW(szRoot)) + { + return FALSE; + } + + uType = GetDriveTypeW(szRoot); + if (uType == DRIVE_REMOVABLE) + { + if (szRoot[0] == L'A' || szRoot[0] == L'B') + return TRUE; + } + else + { + return FALSE; + } + + lstrcpynW(szDeviceName, L"\\\\.\\", _countof(szDeviceName)); + szDeviceName[4] = szRoot[0]; + szDeviceName[5] = L':'; + szDeviceName[6] = UNICODE_NULL; + + hDevice = CreateFileW(szDeviceName, FILE_READ_ATTRIBUTES, + FILE_SHARE_READ | FILE_SHARE_WRITE, + NULL, OPEN_EXISTING, 0, NULL); + if (hDevice == INVALID_HANDLE_VALUE) + { + return FALSE; + } + + ret = FALSE; + if (GetDriveTypeAndCharacteristics(hDevice, &DeviceType, &ulCharacteristics)) + { + if ((ulCharacteristics & FILE_FLOPPY_DISKETTE) == FILE_FLOPPY_DISKETTE) + ret = TRUE; + } + + CloseHandle(hDevice); + + return ret; +} + +BOOL IsDriveFloppyA(LPCSTR pszDriveRoot) +{ + WCHAR szRoot[8]; + MultiByteToWideChar(CP_ACP, 0, pszDriveRoot, -1, szRoot, _countof(szRoot)); + return IsDriveFloppyW(szRoot); +} + VOID CDrvDefExt::InitGeneralPage(HWND hwndDlg) { @@ -304,7 +403,12 @@ CDrvDefExt::InitGeneralPage(HWND hwndDlg) UINT IconId, TypeStrId = 0; switch (DriveType) { - case DRIVE_REMOVABLE: IconId = IDI_SHELL_3_14_FLOPPY; break; + case DRIVE_REMOVABLE: + if (IsDriveFloppyW(m_wszDrive)) + IconId = IDI_SHELL_3_14_FLOPPY; + else + IconId = IDI_SHELL_REMOVEABLE; + break; case DRIVE_CDROM: IconId = IDI_SHELL_CDROM; TypeStrId = IDS_DRIVE_CDROM; break; case DRIVE_REMOTE: IconId = IDI_SHELL_NETDRIVE; TypeStrId = IDS_DRIVE_NETWORK; break; case DRIVE_RAMDISK: IconId = IDI_SHELL_RAMDISK; break; diff --git a/dll/win32/shell32/folders/CDrivesFolder.cpp b/dll/win32/shell32/folders/CDrivesFolder.cpp index 53c1b94dbaa4f..d7246a459bb99 100644 --- a/dll/win32/shell32/folders/CDrivesFolder.cpp +++ b/dll/win32/shell32/folders/CDrivesFolder.cpp @@ -449,6 +449,8 @@ getIconLocationForDrive(IShellFolder *psf, PCITEMID_CHILD pidl, UINT uFlags, return E_FAIL; } +BOOL IsDriveFloppyA(LPCSTR pszDriveRoot); + HRESULT CDrivesExtractIcon_CreateInstance(IShellFolder * psf, LPCITEMIDLIST pidl, REFIID riid, LPVOID * ppvOut) { CComPtr initIcon; @@ -476,7 +478,14 @@ HRESULT CDrivesExtractIcon_CreateInstance(IShellFolder * psf, LPCITEMIDLIST pidl } else { - icon_idx = iDriveIconIds[DriveType]; + if (DriveType == DRIVE_REMOVABLE && !IsDriveFloppyA(pszDrive)) + { + icon_idx = IDI_SHELL_REMOVEABLE; + } + else + { + icon_idx = iDriveIconIds[DriveType]; + } initIcon->SetNormalIcon(swShell32Name, -icon_idx); } @@ -573,6 +582,7 @@ HRESULT WINAPI CDrivesFolder::ParseDisplayName(HWND hwndOwner, LPBC pbc, LPOLEST HRESULT hr = E_INVALIDARG; LPCWSTR szNext = NULL; LPITEMIDLIST pidlTemp = NULL; + WCHAR volumePathName[MAX_PATH]; TRACE("(%p)->(HWND=%p,%p,%p=%s,%p,pidl=%p,%p)\n", this, hwndOwner, pbc, lpszDisplayName, debugstr_w (lpszDisplayName), @@ -589,6 +599,13 @@ HRESULT WINAPI CDrivesFolder::ParseDisplayName(HWND hwndOwner, LPBC pbc, LPOLEST if (PathGetDriveNumberW(lpszDisplayName) < 0) return E_INVALIDARG; + /* check if this drive actually exists */ + if (!GetVolumePathNameW(lpszDisplayName, volumePathName, _countof(volumePathName)) || + GetDriveTypeW(volumePathName) < DRIVE_REMOVABLE) + { + return HRESULT_FROM_WIN32(ERROR_INVALID_DRIVE); + } + pidlTemp = _ILCreateDrive(lpszDisplayName); if (!pidlTemp) return E_OUTOFMEMORY; @@ -1117,7 +1134,10 @@ HRESULT WINAPI CDrivesFolder::GetDetailsOf(PCUITEMID_CHILD pidl, UINT iColumn, S hr = SHSetStrRet(&psd->str, ""); break; case 2: /* type */ - hr = SHSetStrRet(&psd->str, iDriveTypeIds[DriveType]); + if (DriveType == DRIVE_REMOVABLE && !IsDriveFloppyA(pszDrive)) + hr = SHSetStrRet(&psd->str, IDS_DRIVE_REMOVABLE); + else + hr = SHSetStrRet(&psd->str, iDriveTypeIds[DriveType]); break; case 3: /* total size */ case 4: /* free size */ diff --git a/dll/win32/shell32/folders/CRecycleBin.cpp b/dll/win32/shell32/folders/CRecycleBin.cpp index a62696a2628f3..dbf03672ceeac 100644 --- a/dll/win32/shell32/folders/CRecycleBin.cpp +++ b/dll/win32/shell32/folders/CRecycleBin.cpp @@ -191,13 +191,19 @@ CRecycleBinEnum::~CRecycleBinEnum() HRESULT WINAPI CRecycleBinEnum::Initialize(DWORD dwFlags) { - static LPCWSTR szDrive = L"C:\\"; + WCHAR szDrive[8]; + if (!GetEnvironmentVariableW(L"SystemDrive", szDrive, _countof(szDrive) - 1)) + { + ERR("GetEnvironmentVariableW failed\n"); + return E_FAIL; + } + PathAddBackslashW(szDrive); if (dwFlags & SHCONTF_NONFOLDERS) { TRACE("Starting Enumeration\n"); - if (!EnumerateRecycleBinW(szDrive /* FIXME */ , CBEnumRecycleBin, (PVOID)this)) + if (!EnumerateRecycleBinW(szDrive, CBEnumRecycleBin, this)) { WARN("Error: EnumerateCRecycleBinW failed\n"); return E_FAIL; @@ -354,7 +360,7 @@ HRESULT WINAPI CRecycleBinItemContextMenu::QueryContextMenu(HMENU hMenu, UINT in HRESULT WINAPI CRecycleBinItemContextMenu::InvokeCommand(LPCMINVOKECOMMANDINFO lpcmi) { SEARCH_CONTEXT Context; - static LPCWSTR szDrive = L"C:\\"; + WCHAR szDrive[8]; TRACE("(%p)->(invcom=%p verb=%p wnd=%p)\n", this, lpcmi, lpcmi->lpVerb, lpcmi->hwnd); @@ -363,6 +369,13 @@ HRESULT WINAPI CRecycleBinItemContextMenu::InvokeCommand(LPCMINVOKECOMMANDINFO l Context.pFileDetails = _ILGetRecycleStruct(apidl); Context.bFound = FALSE; + if (!GetEnvironmentVariableW(L"SystemDrive", szDrive, _countof(szDrive) - 1)) + { + ERR("GetEnvironmentVariableW failed\n"); + return E_FAIL; + } + PathAddBackslashW(szDrive); + EnumerateRecycleBinW(szDrive, CBSearchRecycleBin, (PVOID)&Context); if (!Context.bFound) return E_FAIL; @@ -814,14 +827,20 @@ HRESULT WINAPI CRecycleBin::InvokeCommand(LPCMINVOKECOMMANDINFO lpcmi) HRESULT hr; LPSHELLBROWSER lpSB; IShellView * lpSV = NULL; + WCHAR szDrive[8]; TRACE("%p %p verb %p\n", this, lpcmi, lpcmi->lpVerb); if (LOWORD(lpcmi->lpVerb) == iIdEmpty) { - // FIXME - // path & flags - hr = SHEmptyRecycleBinW(lpcmi->hwnd, L"C:\\", 0); + if (!GetEnvironmentVariableW(L"SystemDrive", szDrive, _countof(szDrive) - 1)) + { + ERR("GetEnvironmentVariableW failed\n"); + return E_FAIL; + } + PathAddBackslashW(szDrive); + + hr = SHEmptyRecycleBinW(lpcmi->hwnd, szDrive, 0); TRACE("result %x\n", hr); if (hr != S_OK) return hr; diff --git a/dll/win32/shell32/lang/pl-PL.rc b/dll/win32/shell32/lang/pl-PL.rc index 86e87f196ad0d..125fcb9662e1a 100644 --- a/dll/win32/shell32/lang/pl-PL.rc +++ b/dll/win32/shell32/lang/pl-PL.rc @@ -1,7 +1,7 @@ /* * Updated by Saibamen (July, 2015) * Updated by BlackDragonDv (January, 2018) - * Updated by Piotr Hetnarowicz (February, 2020) + * Updated by Piotr Hetnarowicz (May, 2020) */ LANGUAGE LANG_POLISH, SUBLANG_DEFAULT @@ -99,8 +99,8 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU CAPTION "Wybierz folder" FONT 8, "MS Shell Dlg" BEGIN - DEFPUSHBUTTON "OK", 1, 80, 176, 50, 12, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP - PUSHBUTTON "Anuluj", 2, 134, 176, 50, 12, WS_GROUP | WS_TABSTOP + DEFPUSHBUTTON "OK", 1, 80, 170, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP + PUSHBUTTON "Anuluj", 2, 134, 170, 50, 14, WS_GROUP | WS_TABSTOP LTEXT "", IDC_BROWSE_FOR_FOLDER_TITLE, 4, 4, 180, 24 LTEXT "", IDC_BROWSE_FOR_FOLDER_STATUS, 4, 25, 180, 12 CONTROL "", IDC_BROWSE_FOR_FOLDER_TREEVIEW, "SysTreeView32", TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | WS_BORDER | WS_TABSTOP, 4, 40, 180, 120 @@ -188,7 +188,7 @@ BEGIN LTEXT "", -1, 8, 31, 223, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE LTEXT "Typ docelowy:", IDC_SHORTCUT_TYPE, 8, 38, 68, 10 EDITTEXT IDC_SHORTCUT_TYPE_EDIT, 79, 37, 150, 12, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL - LTEXT "Lokalizacja docelowa:", IDC_SHORTCUT_LOCATION, 8, 55, 78, 10 + LTEXT "Lokalizacja docelowa:", IDC_SHORTCUT_LOCATION, 8, 55, 71, 10 EDITTEXT IDC_SHORTCUT_LOCATION_EDIT, 79, 53, 150, 12, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL LTEXT "&Element docelowy:", IDC_SHORTCUT_TARGET, 8, 71, 68, 10 EDITTEXT IDC_SHORTCUT_TARGET_TEXT, 79, 69, 150, 14, ES_AUTOHSCROLL @@ -201,8 +201,8 @@ BEGIN COMBOBOX IDC_SHORTCUT_RUN_COMBO, 79, 134, 150, 14, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP LTEXT "K&omentarz:", IDC_SHORTCUT_COMMENT, 8, 154, 68, 10 EDITTEXT IDC_SHORTCUT_COMMENT_EDIT, 79, 152, 150, 14, ES_AUTOHSCROLL - PUSHBUTTON "&Znajdź element docelowy...", IDC_SHORTCUT_FIND, 5, 172, 93, 14, ES_LEFT - PUSHBUTTON "Zmień &ikonę...", IDC_SHORTCUT_CHANGE_ICON, 103, 172, 58, 14, ES_LEFT + PUSHBUTTON "&Znajdź element docelowy...", IDC_SHORTCUT_FIND, 5, 172, 96, 14, ES_LEFT + PUSHBUTTON "Zmień &ikonę...", IDC_SHORTCUT_CHANGE_ICON, 106, 172, 55, 14, ES_LEFT PUSHBUTTON "Z&aawansowane...", IDC_SHORTCUT_ADVANCED, 166, 172, 63, 14, ES_LEFT END @@ -259,10 +259,10 @@ BEGIN LTEXT "", -1, 8, 29, 221, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE LTEXT "Typ pliku:", 14004, 8, 35, 50, 10 CONTROL "Plik", 14005, "edit", ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP, 58, 35, 170, 10 - LTEXT "Otwierany za pomocą:", 14006, 8, 53, 75, 10 + LTEXT "Otwierany za pomocą:", 14006, 8, 48, 40, 16 ICON "", 14025, 88, 52, 11, 10, NOT WS_VISIBLE PUSHBUTTON "&Zmień...", 14024, 178, 50, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP - EDITTEXT 14007, 88, 53, 80, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL | NOT WS_TABSTOP + EDITTEXT 14007, 58, 48, 115, 16, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL | NOT WS_TABSTOP LTEXT "", -1, 8, 68, 221, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE LTEXT "Lokalizacja:", 14008, 8, 75, 45, 10 EDITTEXT 14009, 73, 75, 155, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL | NOT WS_TABSTOP @@ -282,7 +282,7 @@ BEGIN AUTOCHECKBOX "&Tylko do odczytu", 14021, 58, 188, 67, 10 AUTOCHECKBOX "&Ukryty", 14022, 130, 188, 50, 10 AUTOCHECKBOX "&Archiwalny", 14023, 181, 188, 49, 10 - PUSHBUTTON "Zaawa&nsowane...", 14028, 165, 205, 70, 15, WS_TABSTOP + PUSHBUTTON "Zaawa&nsowane...", 14028, 168, 205, 67, 15, WS_TABSTOP END IDD_FILE_VERSION DIALOGEX 0, 0, 235, 215 @@ -343,16 +343,16 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "Sprawdzanie błędów", -1, 5, 5, 230, 60 ICON IDI_SHELL_TOOLS_CHKDSK, IDC_STATIC, 13, 25, 21, 20 - LTEXT "Ta opcja sprawdzi wolumin w poszukiwaniu błędów.", -1, 40, 25, 160, 20 + LTEXT "Ta opcja sprawdzi wolumin w poszukiwaniu błędów.", -1, 40, 25, 160, 17 PUSHBUTTON "&Sprawdź...", 14000, 130, 45, 100, 15, WS_TABSTOP - GROUPBOX "Defragmentacja", -1, 5, 65, 230, 60 - ICON IDI_SHELL_TOOLS_DEFRAG, IDC_STATIC, 13, 85, 21, 20 - LTEXT "Ta opcja dokona defragmentacji plików woluminu.", -1, 40, 85, 160, 20 - PUSHBUTTON "&Defragmentuj...", 14001, 130, 105, 100, 15, WS_TABSTOP - GROUPBOX "&Kopia zapasowa", -1, 5, 130, 230, 60 - ICON IDI_SHELL_TOOLS_BACKUP, IDC_STATIC, 13, 150, 21, 20 - LTEXT "Ta opcja wykona kopię zapasową plików tego woluminu.", -1, 40, 150, 160, 20 - PUSHBUTTON "Wykonaj kopię zapasową...", 14002, 130, 170, 100, 15, WS_TABSTOP + GROUPBOX "Defragmentacja", -1, 5, 69, 230, 60 + ICON IDI_SHELL_TOOLS_DEFRAG, IDC_STATIC, 13, 89, 21, 20 + LTEXT "Ta opcja dokona defragmentacji plików woluminu.", -1, 40, 89, 160, 17 + PUSHBUTTON "&Defragmentuj...", 14001, 130, 109, 100, 15, WS_TABSTOP + GROUPBOX "&Kopia zapasowa", -1, 5, 133, 230, 60 + ICON IDI_SHELL_TOOLS_BACKUP, IDC_STATIC, 13, 153, 21, 20 + LTEXT "Ta opcja wykona kopię zapasową plików tego woluminu.", -1, 40, 153, 160, 17 + PUSHBUTTON "Wykonaj kopię zapasową...", 14002, 130, 173, 100, 15, WS_TABSTOP END IDD_DRIVE_HARDWARE DIALOGEX 0, 0, 240, 230 @@ -367,17 +367,17 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Uruchom jako" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - LTEXT "Które konto użytkownika chcesz użyć do uruchomienia tego programu?", -1, 10, 20, 220, 20 - CHECKBOX "Bieżący użytkownik %s", 14000, 10, 45, 150, 10 - LTEXT "Zabezpiecz mój komputer i dane przed nieautoryzowanym działaniem programów", -1, 25, 57, 200, 10, WS_DISABLED - CHECKBOX "Ta opcja może zabezpieczyć twój komputer lub dane na nim przed szkodliwymi programami, ale użycie jej może spowodować nieprawidłowe działanie programów.", 14001, 25, 68, 200, 30, WS_DISABLED | BS_MULTILINE - CHECKBOX "Następujący użytkownik:", 14002, 10, 100, 90, 10 - LTEXT "Nazwa użytkownika:", -1, 20, 118, 74, 10 - COMBOBOX 14003, 95, 115, 80, 15, CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "...", 14004, 180, 115, 30, 14, WS_TABSTOP - LTEXT "Hasło:", -1, 20, 143, 53, 10 - EDITTEXT 14005, 95, 140, 80, 14, ES_LEFT | WS_BORDER | WS_GROUP - PUSHBUTTON "...", 14006, 180, 140, 30, 14, WS_TABSTOP + LTEXT "Które konto użytkownika chcesz użyć do uruchomienia tego programu?", -1, 10, 15, 220, 16 + CHECKBOX "Bieżący użytkownik %s", 14000, 10, 40, 178, 10 + LTEXT "Zabezpiecz mój komputer i dane przed nieautoryzowanym działaniem programów.", -1, 25, 52, 200, 16, WS_DISABLED + CHECKBOX "Ta opcja może zabezpieczyć twój komputer lub dane na nim przed szkodliwymi programami, ale użycie jej może spowodować nieprawidłowe działanie programów.", 14001, 25, 69, 200, 30, WS_DISABLED | BS_MULTILINE + CHECKBOX "Następujący użytkownik:", 14002, 10, 101, 97, 10 + LTEXT "Nazwa użytkownika:", -1, 20, 119, 74, 10 + COMBOBOX 14003, 95, 116, 80, 15, CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP + PUSHBUTTON "...", 14004, 180, 116, 30, 14, WS_TABSTOP + LTEXT "Hasło:", -1, 20, 144, 53, 10 + EDITTEXT 14005, 95, 141, 80, 14, ES_LEFT | WS_BORDER | WS_GROUP + PUSHBUTTON "...", 14006, 180, 141, 30, 14, WS_TABSTOP PUSHBUTTON "OK", 14007, 57, 170, 60, 14, WS_TABSTOP PUSHBUTTON "Anuluj", 14008, 122, 170, 60, 14, WS_TABSTOP END @@ -389,7 +389,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN CONTROL "", 14000, "SysListView32", LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SHAREIMAGELISTS | WS_BORDER | WS_TABSTOP, 10, 10, 220, 50 GROUPBOX "Ustawienia dla wybranej lokalizacji", -1, 10, 72, 220, 70 - RADIOBUTTON "&Rozmiar niestandardowy", 14001, 20, 90, 80, 10, WS_TABSTOP + RADIOBUTTON "&Rozmiar niestandardowy", 14001, 20, 90, 100, 10, WS_TABSTOP EDITTEXT 14002, 116, 103, 50, 14, WS_TABSTOP | ES_NUMBER LTEXT "R&ozmiar maksymalny (MB):", -1, 20, 105, 90, 10 RADIOBUTTON "Nie przenoś plików do &Kosza. Usuń pliki natychmiast", 14003, 20, 117, 170, 20, BS_MULTILINE | WS_TABSTOP @@ -401,13 +401,13 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUPWINDOW | WS_CAPTION CAPTION "Otwieranie za pomocą" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - ICON IDI_SHELL_OPEN_WITH, -1, 8, 12, 21, 20 - LTEXT "Wybierz program, którego chcesz użyć do otwarcia tego pliku:", -1, 44, 12, 211, 10 - LTEXT "Plik: ", 14001, 44, 25, 188, 20 - GROUPBOX "&Programy", -1, 7, 42, 249, 187 - CONTROL "Programy", 14002, WC_TREEVIEW, WS_BORDER | WS_TABSTOP | TVS_SHOWSELALWAYS, 16 ,57, 230, 130 - AUTOCHECKBOX "&Zawsze używaj wybranego programu do otwierania tego typu plików", 14003, 16, 193, 232, 10 - PUSHBUTTON "&Przeglądaj...", 14004, 188, 207, 60, 14 + ICON IDI_SHELL_OPEN_WITH, -1, 7, 7, 21, 20 + LTEXT "Wybierz program, którego chcesz użyć do otwarcia tego pliku:", -1, 36, 7, 215, 10 + LTEXT "Plik: ", 14001, 36, 19, 212, 16 + GROUPBOX "&Programy", -1, 7, 36, 249, 192 + CONTROL "Programy", 14002, WC_TREEVIEW, WS_BORDER | WS_TABSTOP | TVS_SHOWSELALWAYS, 16 ,54, 230, 130 + AUTOCHECKBOX "&Zawsze używaj wybranego programu do otwierania tego typu plików", 14003, 16, 192, 234, 10 + PUSHBUTTON "&Przeglądaj...", 14004, 188, 208, 60, 14 DEFPUSHBUTTON "OK", IDOK, 150, 236, 50, 14 PUSHBUTTON "Anuluj", IDCANCEL, 206, 236, 50, 14 END @@ -423,15 +423,15 @@ BEGIN AUTORADIOBUTTON "Użyj klasycznych katalogów systemu &ReactOS", IDC_FOLDER_OPTIONS_CLASSICFOLDERS, 40, 37, 180, 10 GROUPBOX "Przeglądanie katalogów", -1, 7, 60, 249, 45, WS_TABSTOP CONTROL "", IDC_FOLDER_OPTIONS_FOLDERICON, "Static", SS_ICON | WS_CHILD | WS_VISIBLE, 14, 70, 21, 20 - AUTORADIOBUTTON "Otwórz każdy katalog w tym &samym oknie", IDC_FOLDER_OPTIONS_SAMEWINDOW, 40, 70, 180, 10, WS_TABSTOP | WS_GROUP - AUTORADIOBUTTON "Otwórz każdy katalog w &osobnym oknie", IDC_FOLDER_OPTIONS_OWNWINDOW, 40, 82, 180, 10 + AUTORADIOBUTTON "Otwórz każdy katalog w tym &samym oknie", IDC_FOLDER_OPTIONS_SAMEWINDOW, 40, 75, 180, 10, WS_TABSTOP | WS_GROUP + AUTORADIOBUTTON "Otwórz każdy katalog w &osobnym oknie", IDC_FOLDER_OPTIONS_OWNWINDOW, 40, 87, 180, 10 GROUPBOX "Działanie przycisków myszki", -1, 7, 110, 249, 60 CONTROL "", IDC_FOLDER_OPTIONS_CLICKICON, "Static", SS_ICON | WS_CHILD | WS_VISIBLE, 14, 120, 21, 20 - AUTORADIOBUTTON "&Pojedyncze kliknięcie by otworzyć cel (najechanie by wskazać)", IDC_FOLDER_OPTIONS_SINGLECLICK, 40, 120, 210, 10, WS_TABSTOP | WS_GROUP + AUTORADIOBUTTON "&Pojedyncze kliknięcie by otworzyć cel (najechanie by wskazać)", IDC_FOLDER_OPTIONS_SINGLECLICK, 40, 120, 214, 10, WS_TABSTOP | WS_GROUP AUTORADIOBUTTON "&Dwukrotne kliknięcie by otworzyć (pojedyncze by wskazać)", IDC_FOLDER_OPTIONS_DOUBLECLICK, 40, 156, 210, 10 - AUTORADIOBUTTON "Podkreśl tytuły ikon zgodnych z używ&aną przeglądarką", IDC_FOLDER_OPTIONS_ULBROWSER, 50, 132, 185, 10, WS_TABSTOP | WS_GROUP + AUTORADIOBUTTON "Podkreśl tytuły ikon zgodnych z używ&aną przeglądarką", IDC_FOLDER_OPTIONS_ULBROWSER, 50, 132, 189, 10, WS_TABSTOP | WS_GROUP AUTORADIOBUTTON "Podkreślaj &tytuły ikon tylko po ich wskazaniu", IDC_FOLDER_OPTIONS_ULPOINT, 50, 144, 200, 10 - PUSHBUTTON "Przywróć &domyślne", IDC_FOLDER_OPTIONS_RESTORE, 167, 175, 90, 14, WS_TABSTOP + PUSHBUTTON "Przywróć &domyślne", IDC_FOLDER_OPTIONS_RESTORE, 167, 179, 90, 14, WS_TABSTOP END IDD_FOLDER_OPTIONS_VIEW DIALOGEX 0, 0, 264, 256 @@ -454,17 +454,17 @@ STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION CAPTION "Typy plików" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - LTEXT "Zarejestrowane &typy plików:", -1, 7, 10, 180, 10 - CONTROL "", IDC_FILETYPES_LISTVIEW, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 7, 20, 249, 115 - PUSHBUTTON "&Nowy", IDC_FILETYPES_NEW, 130, 140, 55, 14, WS_TABSTOP - PUSHBUTTON "&Usuń", IDC_FILETYPES_DELETE, 190, 140, 65, 14, WS_TABSTOP - GROUPBOX "Szczegóły dla rozszerzenia '%s'", IDC_FILETYPES_DETAILS_GROUPBOX, 7, 170, 249, 70 - LTEXT "Otwierane za pomocą:", -1, 12, 180, 40, 10 - CONTROL "", IDC_FILETYPES_ICON, "STATIC", SS_BITMAP | SS_REALSIZEIMAGE, 85, 180, 10, 10 - LTEXT "Nazwa Aplikacji", IDC_FILETYPES_APPNAME, 100, 180, 80, 10 - PUSHBUTTON "Z&mień", IDC_FILETYPES_CHANGE, 190, 180, 60, 14, WS_TABSTOP - LTEXT "", IDC_FILETYPES_DESCRIPTION, 12, 195, 160, 40 - PUSHBUTTON "Zaawa&nsowane", IDC_FILETYPES_ADVANCED, 190, 215, 60, 14, WS_TABSTOP + LTEXT "Zarejestrowane &typy plików:", -1, 7, 8, 110, 8 + CONTROL "", IDC_FILETYPES_LISTVIEW, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 7, 18, 251, 115 + PUSHBUTTON "&Nowy", IDC_FILETYPES_NEW, 132, 140, 55, 14, WS_TABSTOP + PUSHBUTTON "&Usuń", IDC_FILETYPES_DELETE, 192, 140, 65, 14, WS_TABSTOP + GROUPBOX "Szczegóły dla rozszerzenia '%s'", IDC_FILETYPES_DETAILS_GROUPBOX, 7, 165, 251, 80 + LTEXT "Otwierane za pomocą:", -1, 14, 175, 40, 16 + CONTROL "", IDC_FILETYPES_ICON, "STATIC", SS_BITMAP | SS_REALSIZEIMAGE, 87, 175, 10, 10 + LTEXT "Nazwa Aplikacji", IDC_FILETYPES_APPNAME, 102, 175, 80, 14 + PUSHBUTTON "Z&mień", IDC_FILETYPES_CHANGE, 190, 175, 60, 14, WS_TABSTOP + LTEXT "", IDC_FILETYPES_DESCRIPTION, 14, 196, 160, 40 + PUSHBUTTON "Zaawa&nsowane", IDC_FILETYPES_ADVANCED, 192, 210, 60, 14, WS_TABSTOP END IDD_CONFIRM_FILE_REPLACE DIALOGEX 0, 0, 282, 143 @@ -533,8 +533,8 @@ BEGIN LTEXT "Ten dysk lub urządzenie zawiera więcej niż jeden typ zawartości.", 1001, 32, 7, 191, 20 LTEXT "Co ma zrobić system ReactOS?", 1002, 32, 31, 188, 8 CONTROL "", 1003, "SYSLISTVIEW32", WS_BORDER | WS_TABSTOP | 0x0000C04D, 32, 43, 188, 139 - DEFPUSHBUTTON "OK", IDOK, 96, 186, 60, 14 - PUSHBUTTON "Anuluj", IDCANCEL, 160, 186, 60, 14 + DEFPUSHBUTTON "OK", IDOK, 96, 187, 60, 14 + PUSHBUTTON "Anuluj", IDCANCEL, 160, 187, 60, 14 END IDD_MIXED_CONTENT2 DIALOGEX 0, 0, 227, 206 @@ -573,12 +573,12 @@ CAPTION "Zamykanie systemu ReactOS" FONT 8, "MS Shell Dlg" BEGIN ICON 8240, -1, 6, 6, 21, 20, SS_REALSIZECONTROL | WS_GROUP - LTEXT "Jaką czynność komputer ma wykonać?", -1, 39, 7, 167, 10 + LTEXT "Jaką czynność komputer ma wykonać?", -1, 39, 7, 153, 10 COMBOBOX 8224, 39, 20, 165, 200, CBS_DROPDOWNLIST | WS_VSCROLL - LTEXT "Podtrzymuje sesję, utrzymując komputer uruchomiony przy niskim stanie zasilania i z danymi nadal znajdującymi się w pamięci. Praca komputera zostanie wznowiona po naciśnięciu klawisza lub poruszeniu myszą.", 8225, 39, 38, 167, 40 - DEFPUSHBUTTON "OK", 1, 7, 82, 60, 14, WS_GROUP - PUSHBUTTON "Anuluj", IDCANCEL, 75, 82, 60, 14 - PUSHBUTTON "&Pomoc", IDHELP, 144, 82, 60, 14 + LTEXT "Podtrzymuje sesję, utrzymując komputer uruchomiony przy niskim stanie zasilania i z danymi nadal znajdującymi się w pamięci. Praca komputera zostanie wznowiona po naciśnięciu klawisza lub poruszeniu myszą.", 8225, 39, 37, 167, 40 + DEFPUSHBUTTON "OK", 1, 39, 85, 50, 14, WS_GROUP + PUSHBUTTON "Anuluj", IDCANCEL, 94, 85, 50, 14 + PUSHBUTTON "&Pomoc", IDHELP, 149, 85, 50, 14 END IDD_FORMAT_DRIVE DIALOGEX 50, 50, 184, 218 @@ -602,18 +602,18 @@ BEGIN AUTOCHECKBOX "&Włącz kompresję", 28675, 16, 152, 155, 10 END -IDD_CHECK_DISK DIALOGEX 50, 50, 194, 115 +IDD_CHECK_DISK DIALOGEX 50, 50, 197, 115 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION CAPTION "Sprawdzanie dysku" FONT 8, "MS Shell Dlg" BEGIN - DEFPUSHBUTTON "&Rozpocznij", IDOK, 63, 95, 60, 14 - GROUPBOX "Opcje sprawdzania dysku", -1, 7, 6, 179, 40 - PUSHBUTTON "Anuluj", IDCANCEL, 128, 95, 60, 14 - AUTOCHECKBOX "Automatycznie naprawiaj błędy systemu plików", 14000, 16, 18, 165, 10 - AUTOCHECKBOX "&Skanuj dysk i próbuj odzyskać uszkodzone sektory", 14001, 16, 30, 165, 10 - CONTROL "", 14002, "MSCTLS_PROGRESS32", 16, 7, 50, 179, 8 - LTEXT "", 14003, 60, 80, 170, 10 + DEFPUSHBUTTON "&Rozpocznij", IDOK, 66, 95, 60, 14 + GROUPBOX "Opcje sprawdzania dysku", -1, 7, 7, 183, 40 + PUSHBUTTON "Anuluj", IDCANCEL, 131, 95, 60, 14 + AUTOCHECKBOX "Automatycznie napraw błędy systemu plików", 14000, 12, 20, 157, 10 + AUTOCHECKBOX "&Skanuj dysk i próbuj odzyskać uszkodzone sektory", 14001, 12, 31, 176, 10 + CONTROL "", 14002, "MSCTLS_PROGRESS32", 16, 7, 57, 183, 8 + LTEXT "", 14003, 60, 79, 170, 12 END IDD_PICK_ICON DIALOGEX 0, 0, 193, 200 diff --git a/dll/win32/shell32/lang/tr-TR.rc b/dll/win32/shell32/lang/tr-TR.rc index 5980461b72517..3a4faa12e0a24 100644 --- a/dll/win32/shell32/lang/tr-TR.rc +++ b/dll/win32/shell32/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATORS: 2006 Fatih Aşıcı, 2012 Arda Tanrıkulu (ardatan) (ardatanrikulu [at] gmail [dot] com), 2015-2016 Erdem Ersoy (eersoy93) (erdemersoy [at] erdemersoy [dot] net) */ +/* TRANSLATORS: 2006 Fatih Aşıcı, 2012 Arda Tanrıkulu (ardatan) (ardatanrikulu [at] gmail [dot] com), 2015-2016, 2020 Erdem Ersoy (eersoy93) (erdemersoy [at] erdemersoy [dot] net) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT @@ -6,14 +6,14 @@ MENU_001 MENUEX BEGIN MENUITEM "&Büyük Simgeler", FCIDM_SHVIEW_BIGICON MENUITEM "&Küçük Simgeler", FCIDM_SHVIEW_SMALLICON - MENUITEM "&Dizelge", FCIDM_SHVIEW_LISTVIEW + MENUITEM "&Liste", FCIDM_SHVIEW_LISTVIEW MENUITEM "&Ayrıntılar", FCIDM_SHVIEW_REPORTVIEW MENUITEM "", -1, MFT_SEPARATOR POPUP "&Simgeleri Düzenle", FCIDM_SHVIEW_ARRANGE BEGIN MENUITEM "", -1, MFT_SEPARATOR MENUITEM "&Kendiliğinden Düzenle", FCIDM_SHVIEW_AUTOARRANGE - MENUITEM "Align to &Grid", FCIDM_SHVIEW_ALIGNTOGRID + MENUITEM "I&zgaraya Uydur", FCIDM_SHVIEW_ALIGNTOGRID END END @@ -26,7 +26,7 @@ BEGIN BEGIN MENUITEM "&Büyük Simgeler", FCIDM_SHVIEW_BIGICON MENUITEM "&Küçük Simgeler", FCIDM_SHVIEW_SMALLICON - MENUITEM "&Dizelge", FCIDM_SHVIEW_LISTVIEW + MENUITEM "&Liste", FCIDM_SHVIEW_LISTVIEW MENUITEM "&Ayrıntılar", FCIDM_SHVIEW_REPORTVIEW END MENUITEM "", -1, MFT_SEPARATOR @@ -34,30 +34,30 @@ BEGIN BEGIN MENUITEM "", -1, MFT_SEPARATOR MENUITEM "&Kendiliğinden Düzenle", FCIDM_SHVIEW_AUTOARRANGE - MENUITEM "Align to &Grid", FCIDM_SHVIEW_ALIGNTOGRID + MENUITEM "I&zgaraya Uydur", FCIDM_SHVIEW_ALIGNTOGRID END MENUITEM "&Yenile", FCIDM_SHVIEW_REFRESH MENUITEM "", -1, MFT_SEPARATOR MENUITEM "Y&apıştır", FCIDM_SHVIEW_INSERT - MENUITEM "K&ısayol Yapıştır", FCIDM_SHVIEW_INSERTLINK + MENUITEM "&Kısayol Yapıştır", FCIDM_SHVIEW_INSERTLINK END END /* menubar EDIT menu */ MENU_003 MENU BEGIN - MENUITEM "&Geri Al\tDenetim+Z", FCIDM_SHVIEW_UNDO + MENUITEM "&Geri Al\tCtrl+Z", FCIDM_SHVIEW_UNDO MENUITEM SEPARATOR - MENUITEM "&Kes\tDenetim+X", FCIDM_SHVIEW_CUT - MENUITEM "&Çoğalt\tDenetim+C", FCIDM_SHVIEW_COPY - MENUITEM "&Yapıştır\tDenetim+V", FCIDM_SHVIEW_INSERT - MENUITEM "K&ısayol Yapıştır", FCIDM_SHVIEW_INSERTLINK + MENUITEM "&Kes\tCtrl+X", FCIDM_SHVIEW_CUT + MENUITEM "K&opyala\tCtrl+C", FCIDM_SHVIEW_COPY + MENUITEM "&Yapıştır\tCtrl+V", FCIDM_SHVIEW_INSERT + MENUITEM "Kı&sayol Yapıştır", FCIDM_SHVIEW_INSERTLINK MENUITEM SEPARATOR - MENUITEM "&Dizine Çoğalt...", FCIDM_SHVIEW_COPYTO - MENUITEM "D&izine Taşı...", FCIDM_SHVIEW_MOVETO + MENUITEM "&Dizine Kopyala...", FCIDM_SHVIEW_COPYTO + MENUITEM "Di&zine Taşı...", FCIDM_SHVIEW_MOVETO MENUITEM SEPARATOR - MENUITEM "&Tümünü Seç\tDenetim+A", FCIDM_SHVIEW_SELECTALL - MENUITEM "&Seçimi Evir", FCIDM_SHVIEW_INVERTSELECTION + MENUITEM "&Tümünü Seç\tCtrl+A", FCIDM_SHVIEW_SELECTALL + MENUITEM "S&eçimi Tersine Çevir", FCIDM_SHVIEW_INVERTSELECTION END /* shellview item menu */ @@ -67,14 +67,14 @@ BEGIN BEGIN MENUITEM SEPARATOR MENUITEM "&Kes", IDM_CUT - MENUITEM "&Çoğalt", IDM_COPY - MENUITEM "Paste", IDM_INSERT + MENUITEM "K&opyala", IDM_COPY + MENUITEM "&Yapıştır", IDM_INSERT MENUITEM SEPARATOR - MENUITEM "K&ısayol Oluştur", IDM_CREATELINK - MENUITEM "&Sil", IDM_DELETE - MENUITEM "&Yeniden Adlandır", IDM_RENAME + MENUITEM "Kı&sayol Oluştur", IDM_CREATELINK + MENUITEM "Si&l", IDM_DELETE + MENUITEM "Y&eniden Adlandır", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "&Husûsîyetler", IDM_PROPERTIES + MENUITEM "Ö&zellikler", IDM_PROPERTIES END END @@ -82,11 +82,11 @@ IDM_DRAGFILE MENU BEGIN POPUP "" BEGIN - MENUITEM "&Copy here", IDM_COPYHERE - MENUITEM "&Move here", IDM_MOVEHERE - MENUITEM "Create &shortcuts here", IDM_LINKHERE + MENUITEM "&Buraya Kopyala", IDM_COPYHERE + MENUITEM "B&uraya Taşı", IDM_MOVEHERE + MENUITEM "Kı&sayolları Burada Oluştur", IDM_LINKHERE MENUITEM SEPARATOR - MENUITEM "Cancel", 0 + MENUITEM "İptal", 0 END END @@ -132,7 +132,7 @@ END IDD_ABOUT DIALOGEX 0, 0, 275, 198 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "%s Üzerine" +CAPTION "%s Hakkında" FONT 8, "MS Shell Dlg" BEGIN ICON "", IDC_ABOUT_ICON, 7, 55, 21, 20 @@ -146,7 +146,7 @@ BEGIN LTEXT "", IDC_ABOUT_REG_USERNAME, 45, 125, 180, 10 LTEXT "", IDC_ABOUT_REG_ORGNAME, 45, 135, 180, 10 LTEXT "", IDC_STATIC, 35, 147, 235, 1, SS_ETCHEDHORZ - LTEXT "Yüklenen fizîkî bellek:", IDC_STATIC, 35, 152, 130, 10 + LTEXT "Yüklenen fiziksel bellek:", IDC_STATIC, 35, 152, 130, 10 LTEXT "", IDC_ABOUT_PHYSMEM, 167, 152, 88, 10 DEFPUSHBUTTON "Tamam", IDOK, 220, 178, 50, 14 PUSHBUTTON "", IDC_ABOUT_AUTHORS, 5, 178, 70, 14 @@ -166,7 +166,7 @@ CAPTION "Çalıştır" FONT 8, "MS Shell Dlg" BEGIN ICON "", IDC_RUNDLG_ICON, 7, 11, 18, 20, WS_VISIBLE - LTEXT "Bir izlencenin, dizinin, belgenin veyâ Umûmî Ağ kaynağının adını yazınız, ReactOS onu sizin için açacaktır.", 12289, 36, 11, 185, 18 + LTEXT "Bir programın, klasörün, belgenin ya da İnternet kaynağının adını yazınız, ReactOS onu sizin için açacaktır.", 12289, 36, 11, 185, 18 LTEXT "&Aç:", 12305, 7, 39, 24, 10 CONTROL "", IDC_RUNDLG_EDITPATH, "COMBOBOX", WS_TABSTOP | WS_GROUP | WS_VSCROLL | WS_VISIBLE | CBS_AUTOHSCROLL | CBS_DROPDOWN, 36, 37, 184, 100 DEFPUSHBUTTON "Tamam", IDOK, 62, 70, 50, 14, WS_TABSTOP @@ -182,14 +182,14 @@ BEGIN ICON "", IDC_SHORTCUT_ICON, 8, 8, 21, 20, WS_VISIBLE EDITTEXT IDC_SHORTCUT_TEXT, 49, 10, 180, 14, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL LTEXT "", -1, 8, 31, 223, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE - LTEXT "Varış Türü:", IDC_SHORTCUT_TYPE, 8, 38, 68, 10 + LTEXT "Hedef Türü:", IDC_SHORTCUT_TYPE, 8, 38, 68, 10 EDITTEXT IDC_SHORTCUT_TYPE_EDIT, 79, 37, 150, 12, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL - LTEXT "Varış Konumu:", IDC_SHORTCUT_LOCATION, 8, 55, 68, 10 + LTEXT "Hedef Konumu:", IDC_SHORTCUT_LOCATION, 8, 55, 68, 10 EDITTEXT IDC_SHORTCUT_LOCATION_EDIT, 79, 53, 150, 12, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL - LTEXT "&Varış:", IDC_SHORTCUT_TARGET, 8, 71, 68, 10 + LTEXT "&Hedef:", IDC_SHORTCUT_TARGET, 8, 71, 68, 10 EDITTEXT IDC_SHORTCUT_TARGET_TEXT, 79, 69, 150, 14, ES_AUTOHSCROLL LTEXT "", -1, 8, 88, 223, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE - LTEXT "&Başlama Yeri:", IDC_SHORTCUT_START_IN, 8, 98, 68, 10 + LTEXT "&Başlama Dizini:", IDC_SHORTCUT_START_IN, 8, 98, 68, 10 EDITTEXT IDC_SHORTCUT_START_IN_EDIT, 79, 96, 150, 14, ES_AUTOHSCROLL LTEXT "&Kısayol Düğmesi:", IDC_SHORTCUT_KEY, 8, 117, 68, 10 CONTROL "", IDC_SHORTCUT_KEY_HOTKEY, "msctls_hotkey32", WS_VISIBLE | WS_CHILD | WS_BORDER | WS_TABSTOP, 79, 115, 150, 14 @@ -197,34 +197,34 @@ BEGIN COMBOBOX IDC_SHORTCUT_RUN_COMBO, 79, 134, 150, 14, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP LTEXT "&Açıklama:", IDC_SHORTCUT_COMMENT, 8, 154, 68, 10 EDITTEXT IDC_SHORTCUT_COMMENT_EDIT, 79, 152, 150, 14, ES_AUTOHSCROLL - PUSHBUTTON "Va&rış Bul...", IDC_SHORTCUT_FIND, 9, 172, 70, 14, ES_LEFT + PUSHBUTTON "H&edef Bul...", IDC_SHORTCUT_FIND, 9, 172, 70, 14, ES_LEFT PUSHBUTTON "&Simge Değiştir...", IDC_SHORTCUT_CHANGE_ICON, 84, 172, 70, 14, ES_LEFT PUSHBUTTON "&Gelişmiş...", IDC_SHORTCUT_ADVANCED, 159, 172, 70, 14, ES_LEFT END IDD_SHORTCUT_EXTENDED_PROPERTIES DIALOGEX 0, 0, 230, 150 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION -CAPTION "Gelişmiş Husûsîyetler" +CAPTION "Gelişmiş Özellikler" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN ICON IDI_SHELL_EXTENDED_PROPERTIES, IDI_SHELL_EXTENDED_PROPERTIES, 5, 5, 21, 20, SS_ICON - LTEXT "Bu kısayol için istediğiniz gelişmiş husûsîyetleri seçiniz.", -1, 5, 30, 210, 10 - CHECKBOX "&Ayrı Kimlik Bilgileriyle Çalıştır", IDC_SHORTEX_RUN_DIFFERENT, 25, 50, 150, 10 - LTEXT "Bu seçenek, bu kısayolu başka bir kullanıcı olarak çalıştırmanızı veyâ yetkilendirilmemiş izlence etkinliğinden bilgisayarınızı ve verinizi koruyarak kendiniz olarak sürdürmenizi sağlayabilir.", -1, 50, 60, 175, 40 - CHECKBOX "A&yrı Bellek Alanında Çalıştır", IDC_SHORTEX_RUN_SEPARATE, 25, 100, 150, 10, WS_DISABLED + LTEXT "Bu kısayol için istediğiniz gelişmiş özellikleri seçiniz.", -1, 5, 30, 210, 10 + CHECKBOX "&Farklı Kimlik Bilgileriyle Çalıştır", IDC_SHORTEX_RUN_DIFFERENT, 25, 50, 150, 10 + LTEXT "Bu seçenek, bu kısayolu başka bir kullanıcı olarak çalıştırmanızı veya yetkilendirilmemiş program etkinliğinden bilgisayarınızı ve verinizi koruyarak kendiniz olarak devam etmenizi sağlayabilir.", -1, 50, 60, 175, 40 + CHECKBOX "F&arklı Bellek Alanında Çalıştır", IDC_SHORTEX_RUN_SEPARATE, 25, 100, 150, 10, WS_DISABLED PUSHBUTTON "Tamam", IDOK, 63, 124, 50, 15, WS_VISIBLE PUSHBUTTON "İptal", IDCANCEL, 120, 124, 50, 15, WS_VISIBLE END IDD_FOLDER_PROPERTIES DIALOGEX 0, 0, 240, 205 STYLE DS_SHELLFONT | WS_CHILD | WS_CAPTION -CAPTION "Umûmî" +CAPTION "Genel" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN ICON "", 14000, 16, 7, 32, 32, WS_VISIBLE EDITTEXT 14001, 58, 9, 170, 14, ES_LEFT - LTEXT "Kütüğün Türü:", 14004, 8, 40, 55, 10 - CONTROL "Dizin", 14005, "edit", ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL, 58, 40, 170, 10 + LTEXT "Dosya Türü:", 14004, 8, 40, 55, 10 + CONTROL "Klasör", 14005, "edit", ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL, 58, 40, 170, 10 LTEXT "", -1, 8, 31, 221, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE LTEXT "Konum:", 14008, 8, 56, 55, 10 EDITTEXT 14009, 58, 56, 170, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL | NOT WS_TABSTOP @@ -232,30 +232,30 @@ BEGIN EDITTEXT 14011, 58, 72, 170, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL LTEXT "Diskteki boyut:", 140101, 8, 88, 55, 10 EDITTEXT 14012, 58, 88, 170, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL - LTEXT "İçerik:", 14026, 8, 104, 55, 10 + LTEXT "İçerir:", 14026, 8, 104, 55, 10 EDITTEXT 14027, 58, 104, 170, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL LTEXT "", -1, 8, 120, 221, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE LTEXT "Oluşturuldu:", 14014, 8, 128, 55, 10 EDITTEXT 14015, 58, 128, 170, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL LTEXT "", -1, 8, 144, 221, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE LTEXT "Öz Nitelikler:", 14020, 8, 152, 46, 10 - AUTOCHECKBOX "&Yalnızca Okunur", 14021, 58, 151, 70, 10 + AUTOCHECKBOX "&Salt Okunur", 14021, 58, 151, 70, 10 AUTOCHECKBOX "&Gizli", 14022, 126, 151, 70, 10 - AUTOCHECKBOX "&Belgelik", 14023, 181, 151, 70, 10 + AUTOCHECKBOX "&Arşiv", 14023, 181, 151, 70, 10 PUSHBUTTON "G&elişmiş...", 14028, 158, 150, 70, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP END IDD_FILE_PROPERTIES DIALOGEX 0, 0, 240, 205 STYLE DS_SHELLFONT | WS_CHILD | WS_CAPTION -CAPTION "Umûmî" +CAPTION "Genel" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN ICON "", 14000, 16, 7, 32, 32, WS_VISIBLE EDITTEXT 14001, 58, 9, 170, 14, ES_LEFT | WS_TABSTOP LTEXT "", -1, 8, 29, 221, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE - LTEXT "Kütüğün Türü:", 14004, 8, 35, 50, 10 + LTEXT "Dosya Türü:", 14004, 8, 35, 50, 10 CONTROL "Dosya", 14005, "edit", ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP, 58, 35, 170, 10 - LTEXT "Birlikte Açılır:", 14006, 8, 53, 50, 10 + LTEXT "Birlikte Aç:", 14006, 8, 53, 50, 10 ICON "", 14025, 58, 52, 11, 10, NOT WS_VISIBLE PUSHBUTTON "&Değiştir...", 14024, 168, 50, 60, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP EDITTEXT 14007, 58, 53, 100, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | ES_AUTOHSCROLL | NOT WS_TABSTOP @@ -275,9 +275,9 @@ BEGIN EDITTEXT 14019, 58, 163, 170, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP LTEXT "", -1, 8, 179, 221, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE LTEXT "Öz Nitelikler:", 14020, 8, 189, 45, 10 - AUTOCHECKBOX "&Yalnızca Okunur", 14021, 58, 188, 67, 10 + AUTOCHECKBOX "&Salt Okunur", 14021, 58, 188, 67, 10 AUTOCHECKBOX "&Gizli", 14022, 126, 188, 50, 10 - AUTOCHECKBOX "&Belgelik", 14023, 181, 188, 49, 10 + AUTOCHECKBOX "&Arşiv", 14023, 181, 188, 49, 10 PUSHBUTTON "G&elişmiş...", 14028, 180, 185, 50, 15, WS_TABSTOP END @@ -286,14 +286,14 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Sürüm" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - LTEXT "Kütüğün sürümü: ", 14000, 10, 10, 55, 10 + LTEXT "Dosya sürümü: ", 14000, 10, 10, 55, 10 EDITTEXT 14001, 77, 10, 152, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Tanım: ", 14002, 10, 27, 45, 10 EDITTEXT 14003, 77, 27, 152, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER LTEXT "Telif Hakkı: ", 14004, 10, 46, 66, 10 EDITTEXT 14005, 77, 46, 152, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER - GROUPBOX "Diğer sürüm bilgileri ", 14006, 6, 70, 222, 115 - LTEXT "Öge Adı: ", 14007, 13, 82, 50, 10 + GROUPBOX "Diğer sürüm bilgileri: ", 14006, 6, 70, 222, 115 + LTEXT "Öge adı: ", 14007, 13, 82, 50, 10 LTEXT "Değer: ", 14008, 112, 82, 45, 10 LISTBOX 14009, 12, 94, 94, 83, LBS_STANDARD | WS_TABSTOP | LBS_NOTIFY EDITTEXT 14010, 112, 93, 109, 83, ES_LEFT | WS_BORDER | WS_VSCROLL | WS_GROUP | ES_MULTILINE | ES_READONLY @@ -301,7 +301,7 @@ END IDD_DRIVE_PROPERTIES DIALOGEX 0, 0, 240, 230 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Umûmî" +CAPTION "Genel" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN ICON "", 14016, 10, 9, 32, 32, WS_VISIBLE @@ -309,7 +309,7 @@ BEGIN LTEXT "", -1, 8, 32, 223, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE LTEXT "Tür:", -1, 8, 38, 95, 10 EDITTEXT 14001, 110, 38, 120, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL - LTEXT "Kütük Dizgesi:", -1, 8, 51, 95, 10 + LTEXT "Dosya Sistemi:", -1, 8, 51, 95, 10 EDITTEXT 14002, 110, 51, 120, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP LTEXT "", -1, 8, 64, 223, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE CONTROL "", 14013, "Static", SS_SUNKEN | SS_OWNERDRAW, 8, 69, 10, 10 @@ -321,15 +321,15 @@ BEGIN EDITTEXT 14005, 110, 82, 86, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL EDITTEXT 14006, 197, 82, 33, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL LTEXT "", -1, 8, 97, 223, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE - LTEXT "Sığa:", -1, 25, 103, 80, 10 + LTEXT "Kapasite:", -1, 25, 103, 80, 10 EDITTEXT 14007, 110, 103, 86, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL EDITTEXT 14008, 197, 103, 33, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL CONTROL "", 14015, "Static", SS_OWNERDRAW, 70, 116, 100, 30 LTEXT "Sürücü %c", 14009, 100, 150, 70, 10 PUSHBUTTON "&Disk Temizleme", 14010, 160, 154, 70, 15, WS_TABSTOP LTEXT "", -1, 8, 171, 223, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE - CHECKBOX "D&isk Alanını Arttırmak İçin Sürücüyü Sıkıştır", 14011, 8, 191, 222, 10, WS_DISABLED - CHECKBOX "&Hızlı Kütük Araması İçin Bu Diski Dizinlemeye Dizinleme Hizmeti'ne İzin Ver", 14012, 8, 205, 222, 10, WS_DISABLED + CHECKBOX "Di&sk alanını arttırmak için sürücüyü sıkıştır", 14011, 8, 191, 222, 10, WS_DISABLED + CHECKBOX "&Hızlı dosya araması için, bu diski dizinlemek için Dizinleme Hizmeti'ne izin ver", 14012, 8, 205, 222, 10, WS_DISABLED END IDD_DRIVE_TOOLS DIALOGEX 0, 0, 240, 230 @@ -337,18 +337,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Araçlar" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - GROUPBOX "Yanlışlık Denetleme", -1, 5, 5, 230, 60 + GROUPBOX "Hata Denetleme", -1, 5, 5, 230, 60 ICON IDI_SHELL_TOOLS_CHKDSK, IDC_STATIC, 13, 25, 21, 20 - LTEXT "Bu seçenek, yanlışlıklar için bölümdeki bölümü denetleyecektir.", -1, 40, 25, 160, 20 - PUSHBUTTON "&Şimdi Denetle...", 14000, 130, 45, 90, 15, WS_TABSTOP + LTEXT "Bu seçenek, hatalar için bölümü denetleyecektir.", -1, 40, 25, 160, 20 + PUSHBUTTON "Şimdi &Denetle...", 14000, 130, 45, 90, 15, WS_TABSTOP GROUPBOX "Birleştirme", -1, 5, 65, 230, 60 ICON IDI_SHELL_TOOLS_DEFRAG, IDC_STATIC, 13, 85, 21, 20 - LTEXT "Bu seçenek, bölümdeki kütükleri birleştirecektir.", -1, 40, 85, 160, 20 - PUSHBUTTON "Ş&imdi Birleştir...", 14001, 130, 105, 90, 15, WS_TABSTOP + LTEXT "Bu seçenek, bölümdeki dosyaları birleştirecektir.", -1, 40, 85, 160, 20 + PUSHBUTTON "Şimdi &Birleştir...", 14001, 130, 105, 90, 15, WS_TABSTOP GROUPBOX "Yedekleme", -1, 5, 130, 230, 60 ICON IDI_SHELL_TOOLS_BACKUP, IDC_STATIC, 13, 150, 21, 20 - LTEXT "Bu seçenek, bölümdeki kütükleri yedekleyecektir.", -1, 40, 150, 160, 20 - PUSHBUTTON "Şi&mdi Yedekle...", 14002, 130, 170, 90, 15, WS_TABSTOP + LTEXT "Bu seçenek, bölümdeki dosyaları yedekleyecektir.", -1, 40, 150, 160, 20 + PUSHBUTTON "Şimdi &Yedekle...", 14002, 130, 170, 90, 15, WS_TABSTOP END IDD_DRIVE_HARDWARE DIALOGEX 0, 0, 240, 230 @@ -360,18 +360,18 @@ END IDD_RUN_AS DIALOGEX 0, 0, 240, 190 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Ayrı Çalıştır" +CAPTION "Farklı Çalıştır" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - LTEXT "Bu izlenceyi çalıştırmak için hangi kullanıcı hesâbını kullanmak istiyorsunuz?", -1, 10, 20, 220, 20 - CHECKBOX "&Şimdiki Kullanıcı (%s)", 14000, 10, 45, 150, 10 - LTEXT "&Bilgisayarımı ve Verimi Yetkilendirilmemiş İzlence Etkinliğinden Koru", -1, 25, 57, 200, 10, WS_DISABLED - CHECKBOX "Bu seçenek, bilgisayarınıza ya da şahsî verinize zarar vermesinden bilgisayar zararlılarını önleyebilir, ancak onu seçmek izlencenin düzgün çalışmamasına neden olabilir.", 14001, 25, 68, 200, 30, WS_DISABLED | BS_MULTILINE - CHECKBOX "Aşağıdaki Kullanıcı:", 14002, 10, 100, 90, 10 - LTEXT "Kullanıcı Adı:", -1, 20, 118, 54, 10 + LTEXT "Bu programı çalıştırmak için hangi kullanıcı hesabını kullanmak istiyorsunuz?", -1, 10, 20, 220, 20 + CHECKBOX "Şi&mdiki Kullanıcı (%s)", 14000, 10, 45, 150, 10 + LTEXT "&Bilgisayarımı ve verimi yetkilendirilmemiş program etkinliğinden koru", -1, 25, 57, 200, 10, WS_DISABLED + CHECKBOX "Bu seçenek, bilgisayarınızı ya da kişisel verilerinizi zarar vermesinden bilgisayar virüslerini önleyebilir ancak onu seçmek programın düzgün çalışmamasına neden olabilir.", 14001, 25, 68, 200, 30, WS_DISABLED | BS_MULTILINE + CHECKBOX "Aşağıdaki kullanıcı:", 14002, 10, 100, 90, 10 + LTEXT "Kullanıcı adı:", -1, 20, 118, 54, 10 COMBOBOX 14003, 75, 115, 100, 15, CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP PUSHBUTTON "...", 14004, 180, 115, 30, 14, WS_TABSTOP - LTEXT "Şifre:", -1, 20, 143, 53, 10 + LTEXT "Parola:", -1, 20, 143, 53, 10 EDITTEXT 14005, 74, 140, 100, 14, ES_LEFT | WS_BORDER | WS_GROUP PUSHBUTTON "...", 14006, 180, 140, 30, 14, WS_TABSTOP PUSHBUTTON "Tamam", 14007, 57, 170, 60, 14, WS_TABSTOP @@ -380,16 +380,16 @@ END IDD_RECYCLE_BIN_PROPERTIES DIALOGEX 0, 0, 240, 190 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Geri Dönüşüm Kutusu Seçenekleri" +CAPTION "Geri Dönüşüm Kutusu Özellikleri" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN CONTROL "", 14000, "SysListView32", LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SHAREIMAGELISTS | WS_BORDER | WS_TABSTOP, 10, 10, 220, 50 GROUPBOX "Seçili Konum İçin Ayarlar", -1, 10, 72, 220, 70 - RADIOBUTTON "&Husûsî Boyut:", 14001, 20, 90, 80, 10, WS_TABSTOP + RADIOBUTTON "Ö&zel Boyut:", 14001, 20, 90, 80, 10, WS_TABSTOP EDITTEXT 14002, 116, 103, 50, 14, WS_TABSTOP | ES_NUMBER - LTEXT "&Boyut En Çok (MB):", -1, 20, 105, 70, 10 - RADIOBUTTON "&Kütükleri Geri Dönüşüm Kutusu'na taşıma. Silindiğinde kütükleri hemen kaldır.", 14003, 20, 117, 170, 20, BS_MULTILINE | WS_TABSTOP - AUTOCHECKBOX "&Silme Onay İletişim Kutusunu Göster", 14004, 20, 155, 140, 10, WS_TABSTOP + LTEXT "&En Çok Boyut (MB):", -1, 20, 105, 70, 10 + RADIOBUTTON "&Dosyaları Geri Dönüşüm Kutusu'na taşıma. Silindiğinde dosyaları hemen kaldır.", 14003, 20, 117, 170, 20, BS_MULTILINE | WS_TABSTOP + AUTOCHECKBOX "&Silme onay iletişim kutusunu göster", 14004, 20, 155, 140, 10, WS_TABSTOP END IDD_OPEN_WITH DIALOGEX 0, 0, 264, 256 @@ -398,11 +398,11 @@ CAPTION "Birlikte Aç" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN ICON IDI_SHELL_OPEN_WITH, -1, 8, 12, 21, 20 - LTEXT "Bu kütüğü açmak için kullanmak istediğiniz izlenceyi seçiniz:", -1, 44, 12, 211, 10 - LTEXT "Kütük: ", 14001, 44, 25, 188, 20 - GROUPBOX "&İzlenceler", -1, 7, 42, 249, 187 - CONTROL "İzlenceler", 14002, WC_TREEVIEW, WS_BORDER | WS_TABSTOP | TVS_SHOWSELALWAYS, 16 ,57, 230, 130 - AUTOCHECKBOX "&Kütüğün Bu Türünü Açmak İçin Tüm Zamanlarda Seçili İzlenceyi Kullan", 14003, 16, 193, 232, 10 + LTEXT "Bu dosyayı açmak için kullanmak istediğiniz programı seçiniz:", -1, 44, 12, 211, 10 + LTEXT "Dosya: ", 14001, 44, 25, 188, 20 + GROUPBOX "&Programlar", -1, 7, 42, 249, 187 + CONTROL "Programlar", 14002, WC_TREEVIEW, WS_BORDER | WS_TABSTOP | TVS_SHOWSELALWAYS, 16 ,57, 230, 130 + AUTOCHECKBOX "&Bu dosya türünü açmak için her zaman seçili programı kullan", 14003, 16, 193, 232, 10 PUSHBUTTON "&Göz At...", 14004, 188, 207, 60, 14 DEFPUSHBUTTON "Tamam", IDOK, 150, 236, 50, 14 PUSHBUTTON "İptal", IDCANCEL, 206, 236, 50, 14 @@ -410,24 +410,24 @@ END IDD_FOLDER_OPTIONS_GENERAL DIALOGEX 0, 0, 264, 256 STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION -CAPTION "Umûmî" +CAPTION "Genel" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "Görevler", -1, 7, 10, 249, 45 CONTROL "", IDC_FOLDER_OPTIONS_TASKICON, "Static", SS_ICON | WS_CHILD | WS_VISIBLE, 14, 25, 21, 20 - AUTORADIOBUTTON "&Dizinlerde Ortak Görevleri Göster", IDC_FOLDER_OPTIONS_COMMONTASKS, 40, 25, 120, 10, WS_TABSTOP | WS_GROUP | WS_GROUP - AUTORADIOBUTTON "&ReactOS Kökleşik Dizinleri Kullan", IDC_FOLDER_OPTIONS_CLASSICFOLDERS, 40, 37, 120, 10 - GROUPBOX "Dizinlere Göz At", -1, 7, 60, 249, 45, WS_TABSTOP + AUTORADIOBUTTON "&Klasörlerde ortak görevleri göster", IDC_FOLDER_OPTIONS_COMMONTASKS, 40, 25, 120, 10, WS_TABSTOP | WS_GROUP | WS_GROUP + AUTORADIOBUTTON "React&OS klasik klasörleri kullan", IDC_FOLDER_OPTIONS_CLASSICFOLDERS, 40, 37, 120, 10 + GROUPBOX "Klasörlere Göz At", -1, 7, 60, 249, 45, WS_TABSTOP CONTROL "", IDC_FOLDER_OPTIONS_FOLDERICON, "Static", SS_ICON | WS_CHILD | WS_VISIBLE, 14, 70, 21, 20 - AUTORADIOBUTTON "&Tüm Dizinleri Aynı Pencerede Aç", IDC_FOLDER_OPTIONS_SAMEWINDOW, 40, 70, 140, 10, WS_TABSTOP | WS_GROUP | WS_GROUP - AUTORADIOBUTTON "T&üm Dizinleri Kendi Penceresinde Aç", IDC_FOLDER_OPTIONS_OWNWINDOW, 40, 82, 140, 10 + AUTORADIOBUTTON "&Tüm klasörleri aynı pencerede aç", IDC_FOLDER_OPTIONS_SAMEWINDOW, 40, 70, 140, 10, WS_TABSTOP | WS_GROUP | WS_GROUP + AUTORADIOBUTTON "Tü&m klasörleri kendi penceresinde aç", IDC_FOLDER_OPTIONS_OWNWINDOW, 40, 82, 140, 10 GROUPBOX "Aşağıdaki Gibi Ögelere Tıkla", -1, 7, 110, 249, 60 CONTROL "", IDC_FOLDER_OPTIONS_CLICKICON, "Static", SS_ICON | WS_CHILD | WS_VISIBLE, 14, 120, 21, 20 - AUTORADIOBUTTON "&Bir Öge Açmak İçin Tek Tıkla (Seçmek İçin Üzerine Git)", IDC_FOLDER_OPTIONS_SINGLECLICK, 40, 120, 170, 10, WS_TABSTOP | WS_GROUP - AUTORADIOBUTTON "B&ir Ögeyi Açmak İçin Çift Tıkla (Seçmek İçin Tek Tıkla)", IDC_FOLDER_OPTIONS_DOUBLECLICK, 40, 156, 170, 10 - AUTORADIOBUTTON "T&arayıcımla Uyumlu Olarak Simge Başlıklarının Altını Çiz", IDC_FOLDER_OPTIONS_ULBROWSER, 50, 132, 170, 10, WS_TABSTOP | WS_GROUP - AUTORADIOBUTTON "&Simge Başlıklarının Yalnızca Onların Üzerine Gittiğimde Altını Çiz", IDC_FOLDER_OPTIONS_ULPOINT, 50, 144, 170, 10 - PUSHBUTTON "&Ön Tanımlıları Geri Getir", IDC_FOLDER_OPTIONS_RESTORE, 167, 175, 90, 14, WS_TABSTOP + AUTORADIOBUTTON "&Bir öge açmak için tek tıkla (seçmek için üzerine git)", IDC_FOLDER_OPTIONS_SINGLECLICK, 40, 120, 170, 10, WS_TABSTOP | WS_GROUP + AUTORADIOBUTTON "Bi&r ögeyi açmak için çift tıkla (seçmek için tek tıkla)", IDC_FOLDER_OPTIONS_DOUBLECLICK, 40, 156, 170, 10 + AUTORADIOBUTTON "T&arayıcımla uyumlu olarak simge etiketlerinin altını çiz", IDC_FOLDER_OPTIONS_ULBROWSER, 50, 132, 170, 10, WS_TABSTOP | WS_GROUP + AUTORADIOBUTTON "&Yalnızca onların üzerine gittiğimde simge etiketlerinin altını çiz", IDC_FOLDER_OPTIONS_ULPOINT, 50, 144, 170, 10 + PUSHBUTTON "Ö&n Tanımlıları Geri Getir", IDC_FOLDER_OPTIONS_RESTORE, 167, 175, 90, 14, WS_TABSTOP END IDD_FOLDER_OPTIONS_VIEW DIALOGEX 0, 0, 264, 256 @@ -435,27 +435,27 @@ STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION CAPTION "Görünüm" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - GROUPBOX "Dizin Görünümleri", -1, 7, 10, 249, 60 + GROUPBOX "Klasör Görünümleri", -1, 7, 10, 249, 60 ICON IDI_SHELL_PROGRAMS_FOLDER2, IDC_STATIC, 20, 20, 21, 20 - LTEXT "Bu dizin için kullandığınız görünümü (ayrıntılar ya da döşemeler gibi)\n tüm dizinlere uygulayabilirsiniz.", -1, 60, 20, 180, 20 + LTEXT "Bu klasör için kullandığınız görünümü (ayrıntılar ya da döşemeler gibi)\n tüm dizinlere uygulayabilirsiniz.", -1, 60, 20, 180, 20 PUSHBUTTON "&Tüm Dizinlere Uygula", IDC_VIEW_APPLY_TO_ALL, 60, 50, 80, 14, WS_TABSTOP - PUSHBUTTON "T&üm Dizinleri Sıfırla", IDC_VIEW_RESET_ALL, 150, 50, 80, 14, WS_TABSTOP - LTEXT "Gelişmiş Ayarlar:", -1, 7, 80, 100, 10 + PUSHBUTTON "Tü&m Dizinleri Sıfırla", IDC_VIEW_RESET_ALL, 150, 50, 80, 14, WS_TABSTOP + LTEXT "Gelişmiş ayarlar:", -1, 7, 80, 100, 10 CONTROL "", IDC_VIEW_TREEVIEW, "SysTreeView32", WS_BORDER | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | TVS_DISABLEDRAGDROP | TVS_LINESATROOT, 7, 90, 249, 120 - PUSHBUTTON "&Ön Tanımlıları Geri Getir", IDC_VIEW_RESTORE_DEFAULTS, 177, 215, 80, 14, WS_TABSTOP + PUSHBUTTON "Ö&n Tanımlıları Geri Getir", IDC_VIEW_RESTORE_DEFAULTS, 177, 215, 80, 14, WS_TABSTOP END IDD_FOLDER_OPTIONS_FILETYPES DIALOGEX 0, 0, 264, 256 STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION -CAPTION "Kütük Türleri" +CAPTION "Dosya Türleri" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - LTEXT "&Kayıtlı Kütük Türleri:", -1, 7, 10, 180, 10 + LTEXT "&Kayıtlı dosya türleri:", -1, 7, 10, 180, 10 CONTROL "", IDC_FILETYPES_LISTVIEW, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 7, 20, 249, 115 PUSHBUTTON "&Yeni", IDC_FILETYPES_NEW, 140, 140, 55, 14, WS_TABSTOP PUSHBUTTON "&Sil", IDC_FILETYPES_DELETE, 200, 140, 55, 14, WS_TABSTOP GROUPBOX """%s"" Uzantısı İçin Ayrıntılar", IDC_FILETYPES_DETAILS_GROUPBOX, 7, 170, 249, 70 - LTEXT "Birlikte Açılır:", -1, 12, 180, 40, 10 + LTEXT "Birlikte Aç:", -1, 12, 180, 40, 10 CONTROL "", IDC_FILETYPES_ICON, "STATIC", SS_BITMAP | SS_REALSIZEIMAGE, 85, 180, 10, 10 LTEXT "Uygulama Adı", IDC_FILETYPES_APPNAME, 100, 180, 80, 10 PUSHBUTTON "&Değiştir...", IDC_FILETYPES_CHANGE, 200, 180, 50, 14, WS_TABSTOP @@ -465,7 +465,7 @@ END IDD_CONFIRM_FILE_REPLACE DIALOGEX 0, 0, 282, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_CENTER | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION -CAPTION "Kütüğün Yenisiyle Değişimini Onayla" +CAPTION "Dosyanın Yenisiyle Değişimini Onayla" FONT 8, "MS Shell Dlg" BEGIN DEFPUSHBUTTON "&Evet", IDYES, 20, 122, 60, 14 @@ -473,10 +473,10 @@ BEGIN PUSHBUTTON "&Hayır", IDNO, 150, 122, 60, 14 PUSHBUTTON "İptal", IDCANCEL, 215, 122, 60, 14 ICON 146, -1, 11, 10, 21, 20, SS_REALSIZECONTROL - LTEXT "Bu dizin önceden ""%2"" adlı bir kütük içeriyor.", 12291, 44, 10, 231, 22, SS_NOPREFIX - LTEXT "Bu dizin önceden ""%2"" adlı bir yalnızca okunur kütük içeriyor.", 12292, 41, 10, 222, 22, SS_NOPREFIX - LTEXT "Bu dizin önceden ""%2"" adlı bir dizge kütüğü içeriyor.", 12293, 41, 10, 222, 22, SS_NOPREFIX - LTEXT "Var olan kütüğü", -1, 44, 35, 228, 10, SS_NOPREFIX + LTEXT "Bu klasör önceden ""%2"" adlı bir dosya içeriyor.", 12291, 44, 10, 231, 22, SS_NOPREFIX + LTEXT "Bu klasör önceden ""%2"" adlı bir salt okunur dosya içeriyor.", 12292, 41, 10, 222, 22, SS_NOPREFIX + LTEXT "Bu klasör önceden ""%2"" adlı bir sistem dosyası içeriyor.", 12293, 41, 10, 222, 22, SS_NOPREFIX + LTEXT "Var olan dosyayı", -1, 44, 35, 228, 10, SS_NOPREFIX LTEXT "(bilinmeyen zaman ve boyut)", 12302, 79, 51, 198, 20, SS_NOPREFIX ICON "", 12300, 50, 49, 21, 20, SS_REALSIZECONTROL LTEXT "bununla değiştirmek istiyor musunuz?", -1, 44, 75, 228, 10, SS_NOPREFIX @@ -508,16 +508,16 @@ END IDD_AUTOPLAY1 DIALOGEX 0, 0, 227, 218 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CAPTION -CAPTION "Kendiliğinden Kullan" +CAPTION "Otomatik Kullan" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Bir içerik türü seçiniz, sonra şu tür bu aygıtta kullanıldığında kendliğinden yapmaya ReactOS için bir eylem seçiniz:", 1000, 7, 7, 215, 20 + LTEXT "&Bir içerik türü seçiniz, sonra şu tür bu aygıtta kullanıldığında otomatik yapmaya ReactOS için bir eylem seçiniz:", 1000, 7, 7, 215, 20 CONTROL "", 1001, "COMBOBOXEX32", WS_TABSTOP | 0x00000043, 7, 27, 212, 200 GROUPBOX "Eylemler", -1, 7, 45, 212, 146 - AUTORADIOBUTTON "&Yapmak İçin Bir Eylem Seç:", 1005, 14, 54, 202, 10, WS_GROUP + AUTORADIOBUTTON "&Yapmak için bir eylem seç:", 1005, 14, 54, 202, 10, WS_GROUP CONTROL "LIST2", 1002, "SYSLISTVIEW32", WS_BORDER | WS_TABSTOP | 0x0000C04D, 22, 66, 192, 107 - AUTORADIOBUTTON "&Tüm Zamanlarda Bir Eylem Seçmek İçin Sor", 1006, 14, 177, 202, 10 - PUSHBUTTON "&Ön Tanımlıları Geri Getir", 1008, 108, 197, 110, 14, WS_DISABLED + AUTORADIOBUTTON "&Her zaman bir eylem seçmek için sor", 1006, 14, 177, 202, 10 + PUSHBUTTON "Ö&n Tanımlıları Geri Getir", 1008, 108, 197, 110, 14, WS_DISABLED END IDD_MIXED_CONTENT1 DIALOGEX 0, 0, 227, 207 @@ -539,39 +539,39 @@ CAPTION "Karışık İçerik" FONT 8, "MS Shell Dlg" BEGIN ICON "", 1000, 5, 7, 21, 20 - LTEXT "ReactOS, bu kütük türüyle bir disk taktığınız ya da bir aygıt bağladığınız tüm zamanlarda aynı eylemi uygulayabilir:", 1001, 30, 7, 193, 20 + LTEXT "ReactOS, bu dosya türüyle bir disk taktığınız ya da bir aygıt bağladığınız her zaman aynı eylemi uygulayabilir:", 1001, 30, 7, 193, 20 ICON "", 1005, 32, 27, 11, 10, SS_REALSIZECONTROL EDITTEXT 1006, 49, 28, 177, 14, ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP LTEXT "ReactOS'un ne yapmasını istersiniz?", 1002, 32, 41, 190, 8 CONTROL "", 1003, "SYSLISTVIEW32", WS_BORDER | WS_TABSTOP | 0x0000C04D, 32, 55, 188, 112 - AUTOCHECKBOX "Tüm Zamanlarda Seçili Eylemi Yap", 1004, 32, 171, 190, 10 + AUTOCHECKBOX "Her zaman seçili eylemi yap", 1004, 32, 171, 190, 10 DEFPUSHBUTTON "Tamam", IDOK, 96, 185, 60, 14 PUSHBUTTON "İptal", IDCANCEL, 160, 185, 60, 14 END IDD_AUTOPLAY2 DIALOGEX 0, 0, 227, 181 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUPWINDOW | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CAPTION -CAPTION "Kendiliğinden Kullan" +CAPTION "Otomatik Kullan" FONT 8, "MS Shell Dlg" BEGIN ICON "", 1000, 5, 7, 21, 20 - LTEXT "ReactOS, bu aygıta bağlandığınız tüm zamanlarda aynı eylemi uygulayabilir.", 1001, 32, 7, 190, 22 + LTEXT "ReactOS, bu aygıta bağlandığınız her zaman aynı eylemi uygulayabilir.", 1001, 32, 7, 190, 22 LTEXT "&ReactOS'un ne yapmasını istersiniz?", 1002, 32, 31, 190, 8 CONTROL "", 1003, "SYSLISTVIEW32", WS_BORDER | WS_TABSTOP | 0x0000C04D, 32, 43, 187, 96 - AUTOCHECKBOX "&Tüm Zamanlarda Seçili Eylemi Yap", 1004, 32, 143, 190, 8 + AUTOCHECKBOX "&Her zaman seçili eylemi yap", 1004, 32, 143, 190, 8 DEFPUSHBUTTON "Tamam", IDOK, 94, 160, 60, 14 PUSHBUTTON "İptal", IDCANCEL, 159, 160, 60, 14 END IDD_SHUTDOWN DIALOGEX 0, 0, 211, 103 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUPWINDOW | WS_CAPTION -CAPTION "Bilgisayarı Kapat" +CAPTION "ReactOS'u Kapat" FONT 8, "MS Shell Dlg" BEGIN ICON 8240, -1, 6, 6, 21, 20, SS_REALSIZECONTROL | WS_GROUP LTEXT "Bilgisayarınızın ne yapmasını istersiniz?", -1, 39, 7, 167, 10 COMBOBOX 8224, 39, 20, 165, 200, CBS_DROPDOWNLIST | WS_VSCROLL - LTEXT "Oturumunuzu sürdürür, bilgisayarı bellekteki veriyle düşük güçte çalışmada tutar. Bir düğmeye bastığınızda veyâ fâreyi oynattığınızda bilgisayar uyanır.", 8225, 39, 40, 167, 37 + LTEXT "Oturumunuzu sürdürür, bilgisayarı bellekte duran veriyle düşük güçte çalışmada tutar. Bir düğmeye bastığınızda veya fareyi oynattığınızda bilgisayar uyanır.", 8225, 39, 40, 167, 37 DEFPUSHBUTTON "Tamam", 1, 7, 82, 60, 14, WS_GROUP PUSHBUTTON "İptal", IDCANCEL, 75, 82, 60, 14 PUSHBUTTON "&Yardım", IDHELP, 144, 82, 60, 14 @@ -584,30 +584,30 @@ FONT 8, "MS Shell Dlg" BEGIN DEFPUSHBUTTON "&Başlat", IDOK, 53, 198, 60, 14 PUSHBUTTON "&Kapat", IDCANCEL, 118, 198, 60, 14 - LTEXT "&Sığa:", -1, 7, 6, 169, 9 + LTEXT "K&apasite:", -1, 7, 6, 169, 9 COMBOBOX 28673, 7, 17, 170, 200, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP - LTEXT "K&ütük Dizgesi", -1, 7, 35, 170, 9 + LTEXT "&Dosya sistemi", -1, 7, 35, 170, 9 COMBOBOX 28677, 7, 46, 170, 200, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP CONTROL "", 28678, "MSCTLS_PROGRESS32", 0, 7, 181, 170, 8 - LTEXT "&Ayırma Birimi Boyutu", -1, 7, 64, 170, 9 + LTEXT "Ayı&rma birimi boyutu", -1, 7, 64, 170, 9 COMBOBOX 28680, 7, 75, 170, 200, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP - LTEXT "B&ölüm Etiketi", -1, 7, 93, 170, 9 + LTEXT "Bölü&m etiketi", -1, 7, 93, 170, 9 EDITTEXT 28679, 7, 103, 170, 13, ES_AUTOHSCROLL - GROUPBOX "Biçimlendirme Seçenekleri", 4610, 7, 121, 170, 49 + GROUPBOX "Biçimlendirme seçenekleri", 4610, 7, 121, 170, 49 AUTOCHECKBOX "&Hızlı Biçimlendir", 28674, 16, 135, 155, 10 - AUTOCHECKBOX "S&ıkıştırmayı Etkinleştir", 28675, 16, 152, 155, 10 + AUTOCHECKBOX "&Sıkıştırmayı Etkinleştir", 28675, 16, 152, 155, 10 END IDD_CHECK_DISK DIALOGEX 50, 50, 194, 115 STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION -CAPTION "Disk Denetle" +CAPTION "Diski Denetle" FONT 8, "MS Shell Dlg" BEGIN DEFPUSHBUTTON "&Başlat", IDOK, 63, 95, 60, 14 - GROUPBOX "Disk Denetleme Seçenekleri", -1, 7, 6, 179, 40 + GROUPBOX "Diski Denetleme Seçenekleri", -1, 7, 6, 179, 40 PUSHBUTTON "İptal", IDCANCEL, 128, 95, 60, 14 - AUTOCHECKBOX "&Kütük Dizgesi Yanlışlıklarını Kendiliğinden Düzelt", 14000, 12, 15, 155, 10 - AUTOCHECKBOX "B&ozuk Bölümler İçin Tara ve Bozuk Bölümlerin Kurtarılmasına Çalış", 14001, 16, 30, 165, 10 + AUTOCHECKBOX "&Dosya sistemi hatalarını otomatik düzelt", 14000, 12, 15, 155, 10 + AUTOCHECKBOX "B&ozuk bölümler için tara ve bozuk bölümleri kurtarmaya çalış", 14001, 16, 30, 165, 10 CONTROL "", 14002, "MSCTLS_PROGRESS32", 16, 7, 50, 179, 8 LTEXT "", 14003, 60, 80, 170, 10 END @@ -617,10 +617,10 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBL CAPTION "Simge Değiştir" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN - LTEXT "Bu kütükteki simgelere bak:", -1, 7, 7, 179, 10 + LTEXT "Bu dosyadaki simgelere bak:", -1, 7, 7, 179, 10 PUSHBUTTON "Göz At...", IDC_BUTTON_PATH, 135, 17, 50, 14 EDITTEXT IDC_EDIT_PATH, 7, 17, 123, 14, ES_AUTOHSCROLL - LTEXT "Aşağıdaki dizelgeden bir simge seç:", -1, 7, 36, 179, 10 + LTEXT "Aşağıdaki listeden bir simge seç:", -1, 7, 36, 179, 10 LISTBOX IDC_PICKICON_LIST, 7, 47, 181, 122, LBS_OWNERDRAWFIXED | LBS_NOINTEGRALHEIGHT | LBS_MULTICOLUMN | LBS_DISABLENOSCROLL | WS_HSCROLL | WS_TABSTOP DEFPUSHBUTTON "Tamam", IDOK, 81, 179, 50, 14 PUSHBUTTON "İptal", IDCANCEL, 135, 179, 50, 14 @@ -632,83 +632,83 @@ CAPTION "Uyarı" FONT 8, "MS Shell Dlg" BEGIN ICON IDI_SHELL_SYSTEM_FILE, IDI_SHELL_SYSTEM_FILE, 5, 5, 21, 20 - LTEXT "Bu kütük, işletim dizgesi eliyle veyâ başka bir uygulama\n\ -eliyle kullanılıyor olabilir. Bu kütüğü değiştirmek dizgenize zarar\n\ -verebilir veyâ daha az işlevli yapabilir.\n\n\ -Bu kütüğü açmak istediğinizden emin misiniz?", IDC_STATIC, 35, 5, 230, 60 + LTEXT "Bu dosya, işletim sistemi veya başka bir uygulama tarafından\n\ +kullanılıyor olabilir. Bu dosyayı değiştirmek sisteme zarar\n\ +verebilir veya sistemi daha az fonksiyonel yapabilir.\n\n\ +Bu dosyayı açmak istediğinizden emin misiniz?", IDC_STATIC, 35, 5, 230, 60 DEFPUSHBUTTON "Evet", IDYES, 125, 55, 50, 14 PUSHBUTTON "Hayır", IDNO, 180, 55, 50, 14 END IDD_NEWEXTENSION DIALOGEX 0, 0, 260, 75 -CAPTION "Create New Extension" +CAPTION "Yeni Dosya Uzantısı Oluştur" STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&File Extension:", -1, 10, 10, 85, 14 + LTEXT "&Dosya Uzantısı:", -1, 10, 10, 85, 14 EDITTEXT IDC_NEWEXT_EDIT, 105, 8, 60, 14 - PUSHBUTTON "<< Ad&vanced", IDC_NEWEXT_ADVANCED, 185, 8, 65, 15 - LTEXT "&Associated File Type:", IDC_NEWEXT_ASSOC, 10, 34, 85, 14 + PUSHBUTTON "<< &Gelişmiş", IDC_NEWEXT_ADVANCED, 185, 8, 65, 15 + LTEXT "&İlişkili Dosya Türü:", IDC_NEWEXT_ASSOC, 10, 34, 85, 14 COMBOBOX IDC_NEWEXT_COMBOBOX, 105, 32, 145, 120, CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_GROUP | WS_TABSTOP - DEFPUSHBUTTON "OK", IDOK, 125, 55, 60, 14 - PUSHBUTTON "Cancel", IDCANCEL, 190, 55, 60, 14 + DEFPUSHBUTTON "Tamam", IDOK, 125, 55, 60, 14 + PUSHBUTTON "İptal", IDCANCEL, 190, 55, 60, 14 END IDD_EDITTYPE DIALOG 0, 0, 225, 190 -CAPTION "Edit File Type" +CAPTION "Dosya Türünü Değiştir" STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU FONT 8, "MS Shell Dlg" BEGIN ICON "", IDC_EDITTYPE_ICON, 5, 8, 20, 20 EDITTEXT IDC_EDITTYPE_TEXT, 30, 10, 115, 14, ES_AUTOHSCROLL - PUSHBUTTON "Change &Icon...", IDC_EDITTYPE_CHANGE_ICON, 150, 10, 70, 14 - LTEXT "&Actions:", -1, 5, 37, 70, 10 + PUSHBUTTON "Si&mge Değiştir...", IDC_EDITTYPE_CHANGE_ICON, 150, 10, 70, 14 + LTEXT "&Eylemler:", -1, 5, 37, 70, 10 LISTBOX IDC_EDITTYPE_LISTBOX, 5, 50, 140, 60, LBS_NOINTEGRALHEIGHT | LBS_HASSTRINGS | LBS_OWNERDRAWFIXED | LBS_NOTIFY | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "&New...", IDC_EDITTYPE_NEW, 150, 50, 70, 14 - PUSHBUTTON "&Edit...", IDC_EDITTYPE_EDIT_BUTTON, 150, 65, 70, 14 - PUSHBUTTON "&Remove", IDC_EDITTYPE_REMOVE, 150, 80, 70, 14 - PUSHBUTTON "&Set Default", IDC_EDITTYPE_SET_DEFAULT, 150, 95, 70, 14 - AUTOCHECKBOX "Confirm &open after download", IDC_EDITTYPE_CONFIRM_OPEN, 5, 115, 150, 14 - AUTOCHECKBOX "Al&ways show extension", IDC_EDITTYPE_SHOW_EXT, 5, 130, 150, 14 - AUTOCHECKBOX "&Browse in same window", IDC_EDITTYPE_SAME_WINDOW, 5, 145, 150, 14 - DEFPUSHBUTTON "OK", IDOK, 95, 170, 60, 14 - PUSHBUTTON "Cancel", IDCANCEL, 160, 170, 60, 14 + PUSHBUTTON "&Yeni...", IDC_EDITTYPE_NEW, 150, 50, 70, 14 + PUSHBUTTON "&Düzenle...", IDC_EDITTYPE_EDIT_BUTTON, 150, 65, 70, 14 + PUSHBUTTON "&Sil", IDC_EDITTYPE_REMOVE, 150, 80, 70, 14 + PUSHBUTTON "Ön &Tanımlı Yap", IDC_EDITTYPE_SET_DEFAULT, 150, 95, 70, 14 + AUTOCHECKBOX "İ&ndirdikten sonra açmayı onayla", IDC_EDITTYPE_CONFIRM_OPEN, 5, 115, 150, 14 + AUTOCHECKBOX "&Her zaman uzantıyı göster", IDC_EDITTYPE_SHOW_EXT, 5, 130, 150, 14 + AUTOCHECKBOX "&Aynı pencere içinde göz at", IDC_EDITTYPE_SAME_WINDOW, 5, 145, 150, 14 + DEFPUSHBUTTON "Tamam", IDOK, 95, 170, 60, 14 + PUSHBUTTON "İptal", IDCANCEL, 160, 170, 60, 14 END IDD_ACTION DIALOG 0, 0, 225, 95 -CAPTION "New Action" +CAPTION "Yeni Eylem" STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Action:", -1, 5, 7, 150, 10 + LTEXT "&Eylem:", -1, 5, 7, 150, 10 EDITTEXT IDC_ACTION_ACTION, 5, 20, 150, 14, ES_AUTOHSCROLL - LTEXT "App&lication used to perform action:", -1, 5, 42, 150, 10 + LTEXT "Eyle&mi gerçekleştirmek için kullanılan uygulama:", -1, 5, 42, 150, 10 EDITTEXT IDC_ACTION_APP, 5, 55, 150, 14, ES_AUTOHSCROLL - PUSHBUTTON "B&rowse...", IDC_ACTION_BROWSE, 160, 60, 60, 14 - AUTOCHECKBOX "&Use DDE", IDC_ACTION_USE_DDE, 10, 75, 103, 14 - DEFPUSHBUTTON "OK", IDOK, 160, 20, 60, 14 - PUSHBUTTON "Cancel", IDCANCEL, 160, 40, 60, 14 + PUSHBUTTON "&Göz At...", IDC_ACTION_BROWSE, 160, 60, 60, 14 + AUTOCHECKBOX "&DDE Kullan", IDC_ACTION_USE_DDE, 10, 75, 103, 14 + DEFPUSHBUTTON "Tamam", IDOK, 160, 20, 60, 14 + PUSHBUTTON "İptal", IDCANCEL, 160, 40, 60, 14 END IDD_FOLDER_CUSTOMIZE DIALOGEX 0, 0, 240, 250 -CAPTION "Customize" +CAPTION "Özelleştir" STYLE DS_SHELLFONT | WS_CHILD | WS_CAPTION FONT 8, "MS Shell Dlg" BEGIN - GROUPBOX "What kind of folder do you want?", IDC_STATIC, 5, 5, 230, 65, WS_TABSTOP - LTEXT "Use this &folder type as a template:", IDC_STATIC, 15, 20, 210, 12 + GROUPBOX "Ne klasör türü istersiniz?", IDC_STATIC, 5, 5, 230, 65, WS_TABSTOP + LTEXT "&Bu klasörü bir şablon olarak kullan:", IDC_STATIC, 15, 20, 210, 12 COMBOBOX IDC_FOLDERCUST_COMBOBOX, 15, 35, 210, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - AUTOCHECKBOX "Also apply this template to all &subfolders", IDC_FOLDERCUST_CHECKBOX, 15, 50, 210, 15 - GROUPBOX "Folder pictures", IDC_STATIC, 5, 75, 230, 90, WS_TABSTOP - LTEXT "For Thumbnails view, you can put a picture on this folder to remind you of the contents.", IDC_STATIC, 15, 87, 115, 33 - PUSHBUTTON "Choose &Picture...", IDC_FOLDERCUST_CHOOSE_PIC, 15, 125, 115, 15 - PUSHBUTTON "&Restore Default", IDC_FOLDERCUST_RESTORE_DEFAULTS, 15, 144, 115, 15 - LTEXT "Preview:", IDC_STATIC, 139, 85, 81, 11 + AUTOCHECKBOX "Bu şablonu tüm &alt klasörlere de uygula", IDC_FOLDERCUST_CHECKBOX, 15, 50, 210, 15 + GROUPBOX "Klasör resimleri", IDC_STATIC, 5, 75, 230, 90, WS_TABSTOP + LTEXT "Küçük Resimler görünümü için, içerikleri hatırlamanız için bu klasör üzerine bir resim yerleştirebilirsiniz.", IDC_STATIC, 15, 87, 115, 33 + PUSHBUTTON "&Resim Seç...", IDC_FOLDERCUST_CHOOSE_PIC, 15, 125, 115, 15 + PUSHBUTTON "Ö&n Tanımlıyı Geri Getir", IDC_FOLDERCUST_RESTORE_DEFAULTS, 15, 144, 115, 15 + LTEXT "Ön İzleme:", IDC_STATIC, 139, 85, 81, 11 CONTROL "", IDC_FOLDERCUST_PREVIEW_BITMAP, "STATIC", SS_BITMAP | WS_GROUP, 150, 100, 60, 60 - GROUPBOX "Folder icons", IDC_STATIC, 5, 170, 230, 65, WS_TABSTOP - LTEXT "For all views except Thumbnails, you can change the standard ""folder"" icon to another icon.", IDC_STATIC, 15, 180, 210, 25 + GROUPBOX "Klasör Simgeleri", IDC_STATIC, 5, 170, 230, 65, WS_TABSTOP + LTEXT "Küçük Resimler görünümü dışında tüm görünümler için standart ""klasör"" simgesini başka bir simgeyle değiştirebilirsiniz.", IDC_STATIC, 15, 180, 210, 25 ICON 0, IDC_FOLDERCUST_ICON, 175, 209, 32, 30 - PUSHBUTTON "Change &Icon...", IDC_FOLDERCUST_CHANGE_ICON, 15, 210, 75, 15 + PUSHBUTTON "&Simge Değiştir...", IDC_FOLDERCUST_CHANGE_ICON, 15, 210, 75, 15 END STRINGTABLE @@ -721,12 +721,12 @@ BEGIN IDS_SHV_COLUMN_ATTRIBUTES "Öz Nitelikler" IDS_SHV_COLUMN_DISK_CAPACITY "Boyut" IDS_SHV_COLUMN_DISK_AVAILABLE "Kullanılabilir Boyut" - IDS_SHV_COLUMN_OWNER "İye" - IDS_SHV_COLUMN_GROUP "Öbek" - IDS_SHV_COLUMN_FILENAME "Kütük Adı" - IDS_SHV_COLUMN_CATEGORY "Ulam" + IDS_SHV_COLUMN_OWNER "Sahip" + IDS_SHV_COLUMN_GROUP "Grup" + IDS_SHV_COLUMN_FILENAME "Dosya Adı" + IDS_SHV_COLUMN_CATEGORY "Kategori" IDS_SHV_COLUMN_DELFROM "Özgün Konum" - IDS_SHV_COLUMN_DELDATE "Silinme Zamânı" + IDS_SHV_COLUMN_DELDATE "Silinme Zamanı" IDS_SHV_COLUMN_FONTTYPE "Yazı Tipi Türü" IDS_SHV_COLUMN_WORKGROUP "Çalışma Takımı" IDS_SHV_COLUMN_NETLOCATION "Ağ Konumu" @@ -734,7 +734,7 @@ BEGIN IDS_SHV_COLUMN_STATUS "Durum" IDS_SHV_COLUMN_COMMENTS "Açıklamalar" IDS_SHV_COLUMN_LOCATION "Konum" - IDS_SHV_COLUMN_MODEL "Biçim" + IDS_SHV_COLUMN_MODEL "Model" /* special folders */ IDS_DESKTOP "Masaüstü" @@ -745,33 +745,33 @@ BEGIN /* special folders descriptions */ IDS_ADMINISTRATIVETOOLS_DESCRIPTION "Bilgisayarınız için yönetim ayarlarını yapılandır." - IDS_FOLDER_OPTIONS_DESCRIPTION "Kütüklerin ve dizinlerin görünümünü husûsileştir ve kütük ilişkilendirmelerini değiştir." - IDS_FONTS_DESCRIPTION "Bilgisayarınızda yazı tiplerini ekle, değiştir ve yönet." - IDS_PRINTERS_DESCRIPTION "Kurulu yazıcıları ve belgegeçer yazıcılarını gösterir ve yenilerini eklemene yardımcı olur." + IDS_FOLDER_OPTIONS_DESCRIPTION "Dosyaların ve klasörlerin görünümünü özelleştir ve dosya ilişkilendirmelerini değiştir." + IDS_FONTS_DESCRIPTION "Bilgisayarınızdaki yazı tiplerini ekle, değiştir ve yönet." + IDS_PRINTERS_DESCRIPTION "Kurulu yazıcıları ve faks yazıcılarını gösterir ve bunların yenilerini eklemenize yardımcı olur." /* About shell dialog version string */ IDS_ABOUT_VERSION_STRING "Sürüm %S (%S)" /* context menus */ - IDS_VIEW_LARGE "&Büyük Simgeler" - IDS_VIEW_SMALL "&Küçük Simgeler" - IDS_VIEW_LIST "&Dizelge" + IDS_VIEW_LARGE "&Büyük simgeler" + IDS_VIEW_SMALL "&Küçük simgeler" + IDS_VIEW_LIST "&Liste" IDS_VIEW_DETAILS "&Ayrıntılar" IDS_SELECT "Seç" IDS_OPEN "Aç" - IDS_CREATELINK "K&ısayol Oluştur" - IDS_COPY "&Çoğalt" + IDS_CREATELINK "Kısayol &oluştur" + IDS_COPY "&Kopyala" IDS_DELETE "&Sil" - IDS_PROPERTIES "&Husûsîyetler" + IDS_PROPERTIES "Ö&zellikler" IDS_CUT "K&es" - IDS_RESTORE "Geri Getir" + IDS_RESTORE "Geri getir" IDS_FORMATDRIVE "Biçimlendir..." - IDS_RENAME "Yeniden Adlandır" + IDS_RENAME "Yeniden adlandır" IDS_PASTE "Yapıştır" - IDS_EJECT "Eject" - IDS_DISCONNECT "Disconnect" - IDS_OPENFILELOCATION "Open f&ile location" - IDS_SENDTO_MENU "Se&nd To" + IDS_EJECT "Çıkar" + IDS_DISCONNECT "Bağlantıyı Kes" + IDS_OPENFILELOCATION "&Dosya konumunu aç" + IDS_SENDTO_MENU "&Gönder" IDS_MOVEERRORTITLE "Error Moving File or Folder" IDS_COPYERRORTITLE "Error Copying File or Folder" @@ -821,34 +821,34 @@ BEGIN IDS_RUNDLG_BROWSE_FILTER "Çalıştırılabilir Kütükler (*.exe)\0*.exe\0Tüm Kütükler (*.*)\0*.*\0" /* Shell folder path default values. See also: dll/win32/userenv/lang */ - IDS_PROGRAMS "Başlat Seçkesi\\İzlenceler" + IDS_PROGRAMS "Başlat Menüsü\\Programlar" IDS_PERSONAL "Belgelerim" IDS_FAVORITES "Yer İmleri" - IDS_STARTUP "Başlat Seçkesi\\İzlenceler\\Başlangıç" + IDS_STARTUP "Başlat Menüsü\\Programlar\\Başlangıç" IDS_RECENT "En Son" IDS_SENDTO "Gönder" - IDS_STARTMENU "Başlat Seçkesi" - IDS_MYMUSIC "Mûsikilerim" - IDS_MYVIDEO "Vidyolarım" + IDS_STARTMENU "Başlat Menüsü" + IDS_MYMUSIC "Müziklerim" + IDS_MYVIDEO "Videolarım" IDS_DESKTOPDIRECTORY "Masaüstü" - IDS_NETHOOD "Sunucular" - IDS_TEMPLATES "Kalıplar" - IDS_APPDATA "Uygulama Verisi" + IDS_NETHOOD "Ağ Komşuları" + IDS_TEMPLATES "Şablonlar" + IDS_APPDATA "Uygulama Verileri" IDS_PRINTHOOD "Yazıcılar" - IDS_LOCAL_APPDATA "Yerli Ayarlar\\Uygulama Verisi" - IDS_INTERNET_CACHE "Yerli Ayarlar\\Geçici Umûmî Ağ Kütükleri" + IDS_LOCAL_APPDATA "Yerel Ayarlar\\Uygulama Verileri" + IDS_INTERNET_CACHE "Yerel Ayarlar\\Geçici İnternet Dosyaları" IDS_COOKIES "Tanımlama Bilgileri" - IDS_HISTORY "Yerli Ayarlar\\Geçmiş" - IDS_PROGRAM_FILES "İzlence Kütükleri" + IDS_HISTORY "Yerel Ayarlar\\Geçmiş" + IDS_PROGRAM_FILES "Program Dosyaları" IDS_MYPICTURES "Resimlerim" - IDS_PROGRAM_FILES_COMMON "İzlence Kütükleri\\Ortak Kütükler" + IDS_PROGRAM_FILES_COMMON "Program Dosyaları\\Ortak Dosyalar" IDS_COMMON_DOCUMENTS "Belgeler" - IDS_ADMINTOOLS "Başlat Seçkesi\\İzlenceler\\Yönetim Araçları" - IDS_COMMON_MUSIC "Belgeler\\Mûsikilerim" + IDS_ADMINTOOLS "Başlat Menüsü\\Programlar\\Yönetim Araçları" + IDS_COMMON_MUSIC "Belgeler\\Müziklerim" IDS_COMMON_PICTURES "Belgeler\\Resimlerim" - IDS_COMMON_VIDEO "Belgeler\\Vidyolarım" - IDS_CDBURN_AREA "Yerli Ayarlar\\Uygulama Verisi\\Microsoft\\CD Yazma" - IDS_NETWORKPLACE "Ağ Komşularım" + IDS_COMMON_VIDEO "Belgeler\\Videolarım" + IDS_CDBURN_AREA "Yerel Ayarlar\\Uygulama Verileri\\Microsoft\\CD Yazma" + IDS_NETWORKPLACE "Ağ Bağlantılarım" IDS_NEWFOLDER "Yeni Dizin" diff --git a/dll/win32/shell32/stubs.cpp b/dll/win32/shell32/stubs.cpp index 3be6d2ec3b510..ebba2f3b298c8 100644 --- a/dll/win32/shell32/stubs.cpp +++ b/dll/win32/shell32/stubs.cpp @@ -171,9 +171,12 @@ EXTERN_C BOOL WINAPI MakeShellURLFromPathA(LPCSTR lpPath, LPSTR lpUrl, INT cchMax) { - FIXME("MakeShellURLFromPathA() stub\n"); - lpUrl = NULL; - return FALSE; + WCHAR szPath[MAX_PATH], szURL[MAX_PATH]; + BOOL ret; + SHAnsiToUnicode(lpPath, szPath, _countof(szPath)); + ret = MakeShellURLFromPathW(szPath, szURL, _countof(szURL)); + SHUnicodeToAnsi(szURL, lpUrl, cchMax); + return ret; } /* @@ -450,8 +453,12 @@ EXTERN_C BOOL WINAPI SheShortenPathA(LPSTR lpPath, BOOL bShorten) { - FIXME("SheShortenPathA() stub\n"); - return FALSE; + BOOL ret; + WCHAR szPath[MAX_PATH]; + MultiByteToWideChar(CP_ACP, 0, lpPath, -1, szPath, _countof(szPath)); + ret = SheShortenPathW(szPath, bShorten); + WideCharToMultiByte(CP_ACP, 0, szPath, -1, lpPath, MAX_PATH, NULL, NULL); + return ret; } /* diff --git a/dll/win32/shell32/wine/shellord.c b/dll/win32/shell32/wine/shellord.c index f634c33665dd9..8cbdb2a4da48f 100644 --- a/dll/win32/shell32/wine/shellord.c +++ b/dll/win32/shell32/wine/shellord.c @@ -1369,9 +1369,18 @@ HRESULT WINAPI SHCreateShellFolderViewEx( * SHWinHelp [SHELL32.127] * */ -HRESULT WINAPI SHWinHelp (DWORD v, DWORD w, DWORD x, DWORD z) -{ FIXME("0x%08x 0x%08x 0x%08x 0x%08x stub\n",v,w,x,z); - return 0; +HRESULT WINAPI SHWinHelp(HWND hwnd, LPCWSTR pszHelp, UINT uCommand, ULONG_PTR dwData) +{ + TRACE("(%p, %s, 0x%08x, %p)\n", hwnd, debugstr_w(pszHelp), uCommand, dwData); + if (!WinHelpW(hwnd, pszHelp, uCommand, dwData)) + { +#if 0 + ShellMessageBoxW(shell32_hInstance, hwnd, MAKEINTRESOURCEW(9115), + MAKEINTRESOURCEW(9116), MB_ICONSTOP); +#endif + return FALSE; + } + return TRUE; } /************************************************************************* * SHRunControlPanel [SHELL32.161] diff --git a/dll/win32/shlwapi/ordinal.c b/dll/win32/shlwapi/ordinal.c index db932c7932e86..84234865b2824 100644 --- a/dll/win32/shlwapi/ordinal.c +++ b/dll/win32/shlwapi/ordinal.c @@ -4324,16 +4324,28 @@ HRESULT WINAPI SHGetInverseCMAP(LPDWORD dest, DWORD dwSize) * Determine if the current computer has low memory. * * PARAMS - * x [I] FIXME + * dwType [I] Zero. * * RETURNS * TRUE if the users machine has 16 Megabytes of memory or less, * FALSE otherwise. */ -BOOL WINAPI SHIsLowMemoryMachine (DWORD x) +BOOL WINAPI SHIsLowMemoryMachine(DWORD dwType) { - FIXME("(0x%08x) stub\n", x); +#ifdef __REACTOS__ + MEMORYSTATUS status; + static int is_low = -1; + TRACE("(0x%08x)\n", dwType); + if (dwType == 0 && is_low == -1) + { + GlobalMemoryStatus(&status); + is_low = (status.dwTotalPhys <= 0x1000000); + } + return is_low; +#else + FIXME("(0x%08x) stub\n", dwType); return FALSE; +#endif } /************************************************************************* diff --git a/dll/win32/syssetup/lang/tr-TR.rc b/dll/win32/syssetup/lang/tr-TR.rc index bee503a876c67..a768dbbefccbd 100644 --- a/dll/win32/syssetup/lang/tr-TR.rc +++ b/dll/win32/syssetup/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATORS: 2012 Arda Tanrıkulu (ardatan) (ardatanrikulu [at] gmail [dot] com), 2016 Erdem Ersoy (eersoy93) (erdemersoy [at] erdemersoy [dot] net) */ +/* TRANSLATORS: 2012 Arda Tanrıkulu (ardatan) (ardatanrikulu [at] gmail [dot] com), 2016, 2020 Erdem Ersoy (eersoy93) (erdemersoy [at] erdemersoy [dot] net) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT @@ -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 Kurulum Yardımcısı'na Hoşgeldiniz.", IDC_WELCOMETITLE, 115, 8, 195, 24 - LTEXT "Bu yardımcı ReactOS'u bilgisayarınıza kurar. Yardımcı, ReactOS'u düzgünce kurmak için siz ve bilgisayarınız üzerine biraz bilgi toplamaya gerek duyuyor.", IDC_STATIC, 115, 40, 195, 100 - LTEXT "Kur'la sürdürmek için İleri'ye tıklayınız.", IDC_STATIC, 115, 169, 195, 17 + LTEXT "ReactOS Kurulum Sihirbazı'na Hoşgeldiniz.", IDC_WELCOMETITLE, 115, 8, 195, 24 + LTEXT "Bu sihirbaz ReactOS'u bilgisayarınıza kurar. Sihirbaz, ReactOS'u düzgünce kurmak için siz ve bilgisayarınız hakkında bazı bilgiler toplamaya gerek duyuyor.", IDC_STATIC, 115, 40, 195, 100 + LTEXT "Kur'la devam etmek için İleri'ye tıklayınız.", IDC_STATIC, 115, 169, 195, 17 END IDD_ACKPAGE DIALOGEX 0, 0, 317, 145 @@ -17,28 +17,28 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "ReactOS Kur" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - LTEXT "ReactOS geliştiricileri, (parçaları) ReactOS'u oluşturmak için kullanılmış aşağıdaki açık kaynak tasarılara teşekkür etmek istiyorlar:", IDC_STATIC, 15, 7, 286, 19 + LTEXT "ReactOS geliştiricileri, (parçaları) ReactOS'u oluşturmak için kullanılmış aşağıdaki Açık Kaynak projelerine teşekkür etmek istiyorlar:", IDC_STATIC, 15, 7, 286, 19 LISTBOX IDC_PROJECTS, 15, 30, 286, 75, LBS_NOSEL | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL - LTEXT "ReactOS, GPL altında ruhsatlanmıştır, bu yüzden onu (onun parçalarını) yeniden kullanmak veyâ yeniden dağıtmak isterseniz GPL'ye uymalısınız.", IDC_STATIC, 15, 110, 220, 25 + LTEXT "ReactOS, GPL altında lisanslanmıştır, bu yüzden onu (onun parçalarını) yeniden kullanmak veya yeniden dağıtmak isterseniz GPL'ye uymalısınız.", IDC_STATIC, 15, 110, 220, 25 PUSHBUTTON "&GPL'yi Görüntüle...", IDC_VIEWGPL, 236, 110, 65, 19 - LTEXT "Kur'la sürdürmek için İleri'ye tıklayınız.", IDC_STATIC, 15, 136, 195, 17 + LTEXT "Kur'la devam etmek için İleri'ye tıklayınız.", IDC_STATIC, 15, 136, 195, 17 END IDD_PRODUCT DIALOGEX 0, 0, 317, 143 -CAPTION "ReactOS Setup" +CAPTION "ReactOS Kur" STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE FONT 8, "MS Shell Dlg" BEGIN ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20 - LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12 - LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10 + LTEXT "Lütfen bir ürün seçeneği seçiniz:", IDC_STATIC, 35, 7, 230, 12 + LTEXT "Ü&rün seçenekleri:", IDC_STATIC, 5, 32, 85, 10 COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 170, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85 - LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10 + GROUPBOX "Ürün Bilgisi", IDC_STATIC, 5, 50, 305, 85 + LTEXT "Ürün Takımı:", IDC_STATIC, 20, 62, 70, 10 EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL - LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10 + LTEXT "Ürün Türü:", IDC_STATIC, 20, 82, 70, 10 EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL - LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10 + LTEXT "Tanım:", IDC_STATIC, 20, 102, 70, 10 EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL END @@ -48,10 +48,10 @@ CAPTION "ReactOS Kur" FONT 8, "MS Shell Dlg" BEGIN ICON IDI_ICON2, IDC_STATIC, 21, 7, 20, 20 - LTEXT "Tüm adınızı ve ortaklık ya da kuruluşunuzun adını yazınız.", IDC_STATIC, 54, 7, 242, 21 + LTEXT "Tam adınızı ve şirketinizin ya da organizasyonunuzun adını yazınız.", IDC_STATIC, 54, 7, 242, 21 LTEXT "&Ad:", IDC_STATIC, 54, 37, 44, 8 EDITTEXT IDC_OWNERNAME, 132, 35, 163, 14, WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL - LTEXT "&Kuruluş:", IDC_STATIC, 54, 57, 44, 8 + LTEXT "&Organizasyon:", IDC_STATIC, 54, 57, 44, 8 EDITTEXT IDC_OWNERORGANIZATION, 132, 55, 163, 14, WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL END @@ -61,15 +61,15 @@ CAPTION "ReactOS Kur" FONT 8, "MS Shell Dlg" BEGIN ICON IDI_ICON1, IDC_STATIC, 21, 7, 20, 20 - LTEXT "Bilgisayarınız için 15 ya da daha az damgadan olan bir ad yazınız. Bir ağ üzerindeyseniz bilgisayarınızın adı eşsiz olmalıdır.", IDC_STATIC, 54, 7, 250, 24 + LTEXT "Bilgisayarınız için 15 ya da daha az karakterlik bir ad yazınız. Bir ağ üzerindeyseniz bilgisayarınızın adı eşsiz olmalıdır.", IDC_STATIC, 54, 7, 250, 24 LTEXT "&Bilgisayar Adı:", IDC_STATIC, 54, 38, 75, 8 EDITTEXT IDC_COMPUTERNAME, 165, 35, 148, 14, WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL | ES_UPPERCASE ICON IDI_ICON5, IDC_STATIC, 21, 57, 20, 20 - LTEXT "Kur, bilgisayarınızda ""Yönetici"" olarak adlandırılan bir kullanıcı hesabı oluşturacaktır. Bilgisayarınıza tüm erişime gerek duyarsanız bu hesâbı kullanabilirsiniz.", IDC_STATIC, 54, 57, 250, 25 - LTEXT "127 ya da daha az damgadan olan bir Yönetici şifresi yazınız.", IDC_STATIC, 54, 87, 250, 8 - LTEXT "&Yönetici Şifresi:", IDC_STATIC, 54, 104, 105, 8 + LTEXT "Kur, bilgisayarınızda Yönetici adlı bir kullanıcı hesabı oluşturacaktır. Bilgisayarınıza tam erişime gerek duyarsanız bu hesabı kullanabilirsiniz.", IDC_STATIC, 54, 57, 250, 25 + LTEXT "127 ya da daha az karakterlik bir Yönetici parolası yazınız.", IDC_STATIC, 54, 87, 250, 8 + LTEXT "&Yönetici Parolası:", IDC_STATIC, 54, 104, 105, 8 EDITTEXT IDC_ADMINPASSWORD1, 165, 101, 148, 14, WS_VISIBLE | WS_TABSTOP | ES_PASSWORD - LTEXT "&Şifreyi Doğrula:", IDC_STATIC, 54, 123, 105, 8 + LTEXT "&Parolayı Doğrula:", IDC_STATIC, 54, 123, 105, 8 EDITTEXT IDC_ADMINPASSWORD2, 165, 120, 148, 14, WS_VISIBLE | WS_TABSTOP | ES_PASSWORD END @@ -79,14 +79,14 @@ CAPTION "ReactOS Kur" FONT 8, "MS Shell Dlg" BEGIN ICON IDI_ICON4, IDC_STATIC, 21, 7, 20, 20 - LTEXT "Dizge yerli ayârı, kullanmak istediğiniz uygulamaların diliyle eşleşmelidir. Kullanıcı yerli ayârı; sayıların, para birimlerinin ve zamanların nasıl görüneceğini denetler.", IDC_STATIC, 53, 7, 253, 20 + LTEXT "Sistem yerel ayarı, kullanmak istediğiniz uygulamaların diliyle eşleşmelidir. Kullanıcı yerel ayarı; sayıların, para birimlerinin ve zamanların nasıl görüneceğini denetler.", IDC_STATIC, 53, 7, 253, 20 LTEXT "", IDC_LOCALETEXT, 53, 29, 250, 16 - LTEXT "Dizge veyâ kullanıcı yerli ayarlarını değiştirmek için Husûsîleştir'e tıklayınız.", IDC_STATIC, 53, 60, 196, 8 - PUSHBUTTON "&Husûsîleştir...", IDC_CUSTOMLOCALE, 250, 57, 50, 14 - LTEXT "Düğme takımı düzeni yazdığınızda gözüken damgaları denetler.", IDC_STATIC, 53, 86, 253, 8 + LTEXT "Sistem veya kullanıcı yerel ayarlarını değiştirmek için Özelleştir'e tıklayınız.", IDC_STATIC, 53, 60, 196, 8 + PUSHBUTTON "Ö&zelleştir...", IDC_CUSTOMLOCALE, 250, 57, 50, 14 + LTEXT "Klavye düzeni, yazdığınızda gözüken karakterleri denetler.", IDC_STATIC, 53, 86, 253, 8 LTEXT "", IDC_LAYOUTTEXT, 53, 100, 250, 16 - LTEXT "Düğme takımı düzenini değiştirmek için Husûsîleştir'e tıklayınız.", IDC_STATIC, 53, 126, 184, 8 - PUSHBUTTON "H&usûsîleştir...", IDC_CUSTOMLAYOUT, 250, 122, 50, 14 + LTEXT "Klavye düzenini değiştirmek için Özelleştir'e tıklayınız.", IDC_STATIC, 53, 126, 184, 8 + PUSHBUTTON "Öz&elleştir...", IDC_CUSTOMLAYOUT, 250, 122, 50, 14 END IDD_DATETIMEPAGE DIALOGEX 0, 0, 317, 143 @@ -95,12 +95,12 @@ CAPTION "ReactOS Kur" FONT 8, "MS Shell Dlg" BEGIN ICON IDI_ICON3, IDC_STATIC, 21, 10, 20, 20 - LTEXT "Târih ve Saat:", IDC_STATIC, 53, 7, 253, 8 + LTEXT "Tarih ve Saat:", 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 "Zaman Dilimi:", IDC_STATIC, 53, 42, 253, 8 + LTEXT "Saat Dilimi:", IDC_STATIC, 53, 42, 253, 8 COMBOBOX IDC_TIMEZONELIST, 53, 52, 201, 93, CBS_DROPDOWNLIST | CBS_NOINTEGRALHEIGHT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL - AUTOCHECKBOX "&Gün ışığı tutum değişiklikleri için saati kendiliğinden ayarla.", IDC_AUTODAYLIGHT, 53, 124, 201, 10 + AUTOCHECKBOX "&Gün ışığı tasarruf değişiklikleri için saati kendiliğinden ayarla.", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 @@ -123,18 +123,18 @@ END IDD_FINISHPAGE DIALOGEX 0, 0, 317, 193 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "ReactOS Kur'un Bitirilmesi" +CAPTION "ReactOS Kur'un Tamamlanması" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "ReactOS Kurulum Yardımcısı'nın Bitirilmesi", IDC_FINISHTITLE, 115, 8, 195, 24 - LTEXT "ReactOS Kur'u başarıyla bitirdiniz.\n\nBitir'e tıkladığınızda, bilgisayarınız yeniden başlatılacaktır.", IDC_STATIC, 115, 40, 195, 100 + LTEXT "ReactOS Kurulum Sihirbazı'nın Tamamlanması", IDC_FINISHTITLE, 115, 8, 195, 24 + LTEXT "ReactOS Kur'u başarıyla tamamladınız.\n\nBitir'e tıkladığınızda bilgisayarınız yeniden başlatılacaktır.", IDC_STATIC, 115, 40, 195, 100 CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 115, 138, 188, 12 LTEXT "Eğer bir sürücüde bir CD varsa, onu çıkarınız. Sonra bilgisayarınızı yeniden başlatmak için Bitir'e tıklayınız.", IDC_STATIC, 115, 169, 195, 17 END IDD_GPL DIALOGEX 0, 0, 333, 230 STYLE DS_SHELLFONT | DS_CENTER | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "GNU Umûmî Kamu Ruhsatı" +CAPTION "GNU Genel Kamu Lisansı" FONT 8, "MS Shell Dlg" BEGIN EDITTEXT IDC_GPL_TEXT, 7, 7, 319, 190, ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL @@ -152,50 +152,50 @@ END IDD_PS2MOUSEPROPERTIES DIALOGEX 0, 0, 252, 218 STYLE WS_CHILD | WS_VISIBLE | WS_CAPTION -CAPTION "Advanced Settings" +CAPTION "Gelişmiş Ayarlar" FONT 8, "MS Shell Dlg" BEGIN - RTEXT "&Sample Rate:", -1, 27, 35, 90, 8 - LTEXT "reports per second", -1, 169, 35, 76, 8 + RTEXT "Ö&rnekleme hızı:", -1, 27, 35, 90, 8 + LTEXT "saniyede bildirme", -1, 169, 35, 76, 8 COMBOBOX IDC_PS2MOUSESAMPLERATE, 124, 33, 42, 41, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL - RTEXT "&Wheel Detection:", -1, 27, 55, 90, 8 + RTEXT "&Tekerlek algılaması:", -1, 27, 55, 90, 8 COMBOBOX IDC_PS2MOUSEWHEEL, 124, 53, 95, 46, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL - RTEXT "&Input buffer length:", -1, 27, 75, 90, 8 - LTEXT "packets", -1, 169, 75, 26, 8 + RTEXT "&Girdi tampon uzunluğu:", -1, 27, 75, 90, 8 + LTEXT "paket", -1, 169, 75, 26, 8 EDITTEXT IDC_PS2MOUSEINPUTLEN, 124, 72, 40, 14, ES_LEFT | ES_AUTOHSCROLL | ES_READONLY | ES_NUMBER | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER CONTROL "", IDC_PS2MOUSEINPUTUPDN, "msctls_updown32", UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | WS_CHILD | WS_VISIBLE, 168, 70, 10, 14 - AUTOCHECKBOX "&Fast Initialization", IDC_PS2MOUSEFASTINIT, 124, 97, 90, 10 - PUSHBUTTON "&Defaults", IDC_PS2MOUSEDEFAULTS, 195, 188, 50, 14 + AUTOCHECKBOX "&Hızlı Başlatma", IDC_PS2MOUSEFASTINIT, 124, 97, 90, 10 + PUSHBUTTON "Ö&n Tanımlılar", IDC_PS2MOUSEDEFAULTS, 195, 188, 50, 14 END STRINGTABLE BEGIN IDS_ACKTITLE "Teşekkürler" - IDS_ACKSUBTITLE "ReactOS'a dayanan destekler ve ruhsat bilgisi:" - IDS_OWNERTITLE "Yazılım'ınızı Şahsîleştirin" - IDS_OWNERSUBTITLE "Kur, ReactOS'u şahsîleştirmek için kendiniz üzerine bu bilgiyi kullanır." - IDS_COMPUTERTITLE "Bilgisayar Adı ve Yönetici Şifresi" - IDS_COMPUTERSUBTITLE "Bilgisayarınız için bir ad ve bir Yönetici şifresi sağlamalısınız." - IDS_LOCALETITLE "Yerli Ayarlar" - IDS_LOCALESUBTITLE "Ayrı bölgeler ve diller için ReactOS'u husûsîleştirebilirsiniz." - IDS_DATETIMETITLE "Târih ve Saat" - IDS_DATETIMESUBTITLE "Bilgisayarınız için doğru zamânı ayarlayınız." + IDS_ACKSUBTITLE "ReactOS'u ayakta tutanlar ve lisans bilgisi:" + IDS_OWNERTITLE "Yazılım'ınızı Kişiselleştirin" + IDS_OWNERSUBTITLE "Kur, ReactOS'u kişiselleştirmek için kendiniz üzerine bu bilgiyi kullanır." + IDS_COMPUTERTITLE "Bilgisayar Adı ve Yönetici Parolası" + IDS_COMPUTERSUBTITLE "Bilgisayarınız için bir ad ve bir Yönetici Parolası sağlamalısınız." + IDS_LOCALETITLE "Yerel Ayarlar" + IDS_LOCALESUBTITLE "Ayrı bölgeler ve diller için ReactOS'u özelleştirebilirsiniz." + IDS_DATETIMETITLE "Tarih ve Saat" + IDS_DATETIMESUBTITLE "Bilgisayarınız için doğru zamanı ayarlayınız." IDS_PROCESSTITLE "Bileşenler Kaydediliyor" IDS_PROCESSSUBTITLE "Lütfen bekleyiniz..." - IDS_THEMESELECTIONTITLE "Appearance" - IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer." + IDS_THEMESELECTIONTITLE "Görünüm" + IDS_THEMESELECTIONSUBTITLE "Tercih ettiğiniz temayı seçiniz." END STRINGTABLE BEGIN IDS_REACTOS_SETUP "ReactOS Kur" - IDS_UNKNOWN_ERROR "Bilinmeyen Yanlışlık" + IDS_UNKNOWN_ERROR "Bilinmeyen hata" IDS_REGISTERING_COMPONENTS "Bileşenler kaydediliyor..." IDS_LOADLIBRARY_FAILED "LoadLibrary başarısız oldu: " IDS_GETPROCADDR_FAILED "GetProcAddr başarısız oldu: " IDS_REGSVR_FAILED "DllRegisterServer başarısız oldu: " IDS_DLLINSTALL_FAILED "DllInstall başarısız oldu: " - IDS_TIMEOUT "Kayıt sırasında süre aşımı." + IDS_TIMEOUT "Kayıt sırasında süre aşımı oldu." IDS_REASON_UNKNOWN "" /* * ATTENTION: @@ -204,18 +204,18 @@ BEGIN * Also check the IDD_COMPUTERPAGE dialog. */ IDS_ADMINISTRATOR_NAME "Yönetici" - IDS_MACHINE_OWNER_NAME "İye" + IDS_MACHINE_OWNER_NAME "Sahip" END STRINGTABLE BEGIN - IDS_WZD_NAME "Kur, adınızı girene dek sürdüremez." + IDS_WZD_NAME "Kur, adınızı girene kadar devam edemez." IDS_WZD_SETCOMPUTERNAME "Kur, bilgisayar adını ayarlamada başarısız oldu." - IDS_WZD_COMPUTERNAME "Kur, bilgisayarınızın adını girene dek sürdüremez." - IDS_WZD_PASSWORDEMPTY "Bir şifre girmelisiniz!" - IDS_WZD_PASSWORDMATCH "Girdiğiniz şifreler uyuşmuyor. Lütfen istenen şifreyi yeniden giriniz." - IDS_WZD_PASSWORDCHAR "Girdiğiniz şifre geçersiz damgalar içeriyor. Lütfen arı bir şifre giriniz." - IDS_WZD_LOCALTIME "Kur, yerli zamânı ayarlayamadı." + IDS_WZD_COMPUTERNAME "Kur, bilgisayarınızın adını girene kadar devam edemez." + IDS_WZD_PASSWORDEMPTY "Bir parola girmelisiniz!" + IDS_WZD_PASSWORDMATCH "Girdiğiniz parolalar uyuşmuyor. Lütfen istenen parolayı yeniden giriniz." + IDS_WZD_PASSWORDCHAR "Girdiğiniz parola geçersiz karakterler içeriyor. Lütfen geçersiz karakter içermeyen bir şifre giriniz." + IDS_WZD_LOCALTIME "Kur, yerel saati ayarlayamadı." END STRINGTABLE @@ -226,31 +226,31 @@ END /* ATTENTION: Synchronize these strings with dll/win32/shell32/lang */ STRINGTABLE BEGIN - IDS_PROGRAMFILES "%SystemDrive%\\İzlence Kütükleri" - IDS_COMMONFILES "Ortak Kütükler" + IDS_PROGRAMFILES "%SystemDrive%\\Program Dosyaları" + IDS_COMMONFILES "Ortak Dosyalar" END STRINGTABLE BEGIN - IDS_DETECTIONDISABLED "Detection disabled" - IDS_LOOKFORWHEEL "Look for wheel" - IDS_ASSUMEPRESENT "Assume wheel is present" + IDS_DETECTIONDISABLED "Algılama pasif" + IDS_LOOKFORWHEEL "Tekerlek için bakınız" + IDS_ASSUMEPRESENT "Tekerleği var say" END STRINGTABLE BEGIN - IDS_CLASSIC "Classic" + IDS_CLASSIC "Klasik" IDS_LAUTUS "Lautus" - IDS_LUNAR "Lunar" + IDS_LUNAR "Ay" IDS_MIZU "Mizu" END STRINGTABLE BEGIN - IDS_PRODUCTTITLE "Product Options" - IDS_PRODUCTSUBTITLE "You can choose a product option that affects the behaviour of the system." - IDS_PRODUCTSERVERNAME "ReactOS Server" - IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation (Default)" - IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from ""My Documents""." - IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" are in ""My Documents""." + IDS_PRODUCTTITLE "Ürün Seçenekleri" + IDS_PRODUCTSUBTITLE "Sisteminizin davranışını etkileyen bir ürün seçeneği seçebilirsiniz." + IDS_PRODUCTSERVERNAME "ReactOS Sunucu" + IDS_PRODUCTWORKSTATIONNAME "ReactOS İş İstasyonu (Ön Tanımlı)" + IDS_PRODUCTSERVERINFO "Sistem bir sunucu olarak tanınacaktır. ""Resimlerim"", ""Videolarım"" and ""Müziklerim"" özel klasörleri ""Belgelerim""den bağımsızdır." + IDS_PRODUCTWORKSTATIONINFO "Sistem bir iş istasyonu olarak tanınacaktır. ""Resimlerim"", ""Videolarım"" and ""Müziklerim"" özel klasörleri ""Belgelerim""in içindedir." END diff --git a/dll/win32/syssetup/lang/uk-UA.rc b/dll/win32/syssetup/lang/uk-UA.rc index 0708330b63b53..65f07117587ad 100644 --- a/dll/win32/syssetup/lang/uk-UA.rc +++ b/dll/win32/syssetup/lang/uk-UA.rc @@ -3,7 +3,7 @@ * LICENSE: GPL - See COPYING in the top level directory * FILE: dll/win32/syssetup/lang/uk-UA.rc * PURPOSE: Ukraianian Language File for syssetup - * TRANSLATORS: Artem Reznikov, Igor Paliychuk + * TRANSLATORS: Artem Reznikov, Igor Paliychuk, Yaroslav Kibysh */ LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT @@ -14,7 +14,7 @@ CAPTION "Встановлення ReactOS" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Ласкаво просимо до майстра встановлення ReactOS.", IDC_WELCOMETITLE, 115, 8, 195, 24 - LTEXT "Цей майстер встановлює ReactOS на Ваш комп'ютер. Йому потрібно зібрати деякі відомості про Вас і Ваш комп'ютер щоб установити ReactOS належним чином.", IDC_STATIC, 115, 40, 195, 100 + LTEXT "Цей майстер встановлює ReactOS на Ваш комп'ютер. Йому потрібно зібрати деякі відомості про Вас і Ваш комп'ютер щоб встановити ReactOS належним чином.", IDC_STATIC, 115, 40, 195, 100 LTEXT "Натисніть ""Далі"", щоб продовжити встановлення.", IDC_STATIC, 115, 169, 195, 17 END @@ -31,20 +31,20 @@ BEGIN END IDD_PRODUCT DIALOGEX 0, 0, 317, 143 -CAPTION "ReactOS Setup" +CAPTION "Встановлення ReactOS" STYLE DS_MODALFRAME | DS_SHELLFONT | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE FONT 8, "MS Shell Dlg" BEGIN ICON "", IDC_PRODUCT_ICON, 5, 5, 20, 20 - LTEXT "Please choose a product option:", IDC_STATIC, 35, 7, 230, 12 - LTEXT "Product &Options:", IDC_STATIC, 5, 32, 85, 10 + LTEXT "Будь ласка, виберіть тип продукту:", IDC_STATIC, 35, 7, 230, 12 + LTEXT "Тип &продукту:", IDC_STATIC, 5, 32, 85, 10 COMBOBOX IDC_PRODUCT_OPTIONS, 95, 30, 170, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Product Information", IDC_STATIC, 5, 50, 305, 85 + GROUPBOX "Інформація про продукт", IDC_STATIC, 5, 50, 305, 85 LTEXT "ProductSuite:", IDC_STATIC, 20, 62, 70, 10 EDITTEXT IDC_PRODUCT_SUITE, 95, 60, 175, 14, ES_READONLY | ES_AUTOHSCROLL LTEXT "ProductType:", IDC_STATIC, 20, 82, 70, 10 EDITTEXT IDC_PRODUCT_TYPE, 95, 80, 110, 14, ES_READONLY | ES_AUTOHSCROLL - LTEXT "Description:", IDC_STATIC, 20, 102, 70, 10 + LTEXT "Опис:", IDC_STATIC, 20, 102, 70, 10 EDITTEXT IDC_PRODUCT_DESCRIPTION, 95, 99, 205, 30, ES_READONLY | ES_AUTOVSCROLL | ES_MULTILINE | WS_VSCROLL END @@ -54,7 +54,7 @@ CAPTION "Встановлення ReactOS" FONT 8, "MS Shell Dlg" BEGIN ICON IDI_ICON2, IDC_STATIC, 21, 7, 20, 20 - LTEXT "Введіть своє повне ім'я і назву вашої компанії або організації.", IDC_STATIC, 54, 7, 242, 21 + LTEXT "Введіть своє повне ім'я та назву вашої організації.", IDC_STATIC, 54, 7, 242, 21 LTEXT "&Ім'я:", IDC_STATIC, 54, 37, 44, 8 EDITTEXT IDC_OWNERNAME, 132, 35, 163, 14, WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL LTEXT "&Організація:", IDC_STATIC, 54, 57, 44, 8 @@ -135,7 +135,7 @@ BEGIN LTEXT "Завершення встановлення ReactOS", IDC_FINISHTITLE, 115, 8, 195, 24 LTEXT "Ви успішно завершили встановлення ReactOS.\n\nПісля натиснення кнопки ""Завершити"" комп'ютер буде перезавантажений.", IDC_STATIC, 115, 40, 195, 100 CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 115, 138, 188, 12 - LTEXT "Якщо в дисковод вставлений компакт-диск, вийміть його. Потім для перезавантаження Вашого комп'ютера натистніть ""Завершити"".", IDC_STATIC, 115, 163, 195, 25 + LTEXT "Якщо в дисковод вставлений компакт-диск, вийміть його. Для перезавантаження комп'ютера натистніть ""Завершити"".", IDC_STATIC, 115, 163, 195, 25 END IDD_GPL DIALOGEX 0, 0, 333, 230 @@ -253,10 +253,10 @@ END STRINGTABLE BEGIN - IDS_PRODUCTTITLE "Product Options" - IDS_PRODUCTSUBTITLE "You can choose a product option that affects the behaviour of the system." - IDS_PRODUCTSERVERNAME "ReactOS Server" - IDS_PRODUCTWORKSTATIONNAME "ReactOS Workstation (Default)" - IDS_PRODUCTSERVERINFO "The system will be recognized as a server. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" are independent from ""My Documents""." - IDS_PRODUCTWORKSTATIONINFO "The system will be recognized as a workstation. Private folders ""My Pictures"", ""My Videos"" and ""My Music"" are in ""My Documents""." + IDS_PRODUCTTITLE "Тип продукту" + IDS_PRODUCTSUBTITLE "Ви можете вибрати тип продукту. Це вплине на поведінку системи." + IDS_PRODUCTSERVERNAME "Сервер ReactOS" + IDS_PRODUCTWORKSTATIONNAME "Робоча станція ReactOS (за замовчуванням)" + IDS_PRODUCTSERVERINFO "Система буде розпізнаватися як сервер. Особисті папки ""Мої зображення"", ""Мої відео"" та ""Моя музика"" не будуть залежати від папки ""Мої документи""." + IDS_PRODUCTWORKSTATIONINFO "Система буде розпізнаватися як робоча станція. Особисті папки ""Мої зображення"", ""Мої відео"" та ""Моя музика"" будуть в папці ""Мої документи""." END diff --git a/dll/win32/userenv/lang/tr-TR.rc b/dll/win32/userenv/lang/tr-TR.rc index c36781f7120e9..7dbb107a363b3 100644 --- a/dll/win32/userenv/lang/tr-TR.rc +++ b/dll/win32/userenv/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2014 Erdem Ersoy (eersoy93) (erdemersoy [at] erdemersoy [dot] net) */ +/* TRANSLATOR: 2014, 2020 Erdem Ersoy (eersoy93) (erdemersoy [at] erdemersoy [dot] net) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT @@ -6,22 +6,22 @@ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT STRINGTABLE BEGIN IDS_PROFILEPATH "%SystemDrive%\\Belgeler ve Ayarlar" - IDS_APPDATA "Uygulama Verisi" + IDS_APPDATA "Uygulama Verileri" IDS_DESKTOP "Masaüstü" IDS_FAVORITES "Yer İmleri" IDS_MYDOCUMENTS "Belgelerim" - IDS_NETHOOD "Sunucular" + IDS_NETHOOD "Ağ Komşuları" IDS_PRINTHOOD "Yazıcılar" IDS_RECENT "En Son" IDS_SENDTO "Gönder" - IDS_TEMPLATES "Kalıplar" - IDS_STARTMENU "Başlat Seçkesi" - IDS_PROGRAMS "Başlat Seçkesi\\İzlenceler" - IDS_STARTUP "Başlat Seçkesi\\İzlenceler\\Başlangıç" - IDS_LOCALSETTINGS "Yerli Ayarlar" - IDS_LOCALAPPDATA "Yerli Ayarlar\\Uygulama Verisi" - IDS_TEMP "Yerli Ayarlar\\Geçici" /* See also TEMP_DIR in boot/bootdata/hivedef.inf */ - IDS_CACHE "Yerli Ayarlar\\Geçici Umûmî Ağ Kütükleri" - IDS_HISTORY "Yerli Ayarlar\\Geçmiş" + IDS_TEMPLATES "Şablonlar" + IDS_STARTMENU "Başlat Menüsü" + IDS_PROGRAMS "Başlat Menüsü\\Programlar" + IDS_STARTUP "Başlat Menüsü\\Programlar\\Başlangıç" + IDS_LOCALSETTINGS "Yerel Ayarlar" + IDS_LOCALAPPDATA "Yerel Ayarlar\\Uygulama Verileri" + IDS_TEMP "Yerel Ayarlar\\Geçici" /* See also TEMP_DIR in boot/bootdata/hivedef.inf */ + IDS_CACHE "Yerel Ayarlar\\Geçici İnternet Dosyaları" + IDS_HISTORY "Yerel Ayarlar\\Geçmiş" IDS_COOKIES "Tanımlama Bilgileri" END diff --git a/drivers/base/bootvid/CMakeLists.txt b/drivers/base/bootvid/CMakeLists.txt index 10052eb2128fd..033a37c53efee 100644 --- a/drivers/base/bootvid/CMakeLists.txt +++ b/drivers/base/bootvid/CMakeLists.txt @@ -2,10 +2,15 @@ spec2def(bootvid.dll bootvid.spec ADD_IMPORTLIB) if((ARCH STREQUAL "i386") OR (ARCH STREQUAL "amd64")) - list(APPEND SOURCE - i386/pc/bootvid.c - i386/pc/bootdata.c - i386/pc/vga.c) + if(SARCH STREQUAL "pc98") + list(APPEND SOURCE + i386/pc98/bootvid.c) + else() + list(APPEND SOURCE + i386/pc/bootvid.c + i386/pc/bootdata.c + i386/pc/vga.c) + endif() elseif(ARCH STREQUAL "arm") list(APPEND SOURCE arm/bootvid.c) diff --git a/drivers/base/bootvid/arm/arm.h b/drivers/base/bootvid/arm/arm.h index 2f46aa8fff64d..7c3801c059461 100644 --- a/drivers/base/bootvid/arm/arm.h +++ b/drivers/base/bootvid/arm/arm.h @@ -23,41 +23,28 @@ extern PUSHORT VgaArmBase; #define READ_REGISTER_USHORT(r) (*(volatile USHORT * const)(r)) #define WRITE_REGISTER_USHORT(r, v) (*(volatile USHORT *)(r) = (v)) -PALETTE_ENTRY VidpVga8To16BitTransform[16] = -{ - {0x00, 0x00, 0x00}, // Black - {0x00, 0x00, 0x08}, // Blue - {0x00, 0x08, 0x00}, // Green - {0x00, 0x08, 0x08}, // Cyan - {0x08, 0x00, 0x00}, // Red - {0x08, 0x00, 0x08}, // Magenta - {0x0B, 0x0D, 0x0F}, // Brown - {0x10, 0x10, 0x10}, // Light Gray - {0x08, 0x08, 0x08}, // Dark Gray - {0x00, 0x00, 0x1F}, // Light Blue - {0x00, 0x1F, 0x00}, // Light Green - {0x00, 0x1F, 0x1F}, // Light Cyan - {0x1F, 0x00, 0x00}, // Light Red - {0x1F, 0x00, 0x1F}, // Light Magenta - {0x1F, 0x1F, 0x00}, // Yellow - {0x1F, 0x1F, 0x1F}, // White -}; - FORCEINLINE USHORT -VidpBuildColor(_In_ UCHAR Color) +VidpBuildColor( + _In_ UCHAR Color) { UCHAR Red, Green, Blue; /* Extract color components */ - Red = VidpVga8To16BitTransform[Color].Red; - Green = VidpVga8To16BitTransform[Color].Green; - Blue = VidpVga8To16BitTransform[Color].Blue; + Red = GetRValue(DefaultPalette[Color]) >> 3; + Green = GetGValue(DefaultPalette[Color]) >> 3; + Blue = GetBValue(DefaultPalette[Color]) >> 3; /* Build the 16-bit color mask */ return ((Red & 0x1F) << 11) | ((Green & 0x1F) << 6) | ((Blue & 0x1F)); } +VOID +NTAPI +InitPaletteWithTable( + _In_ PULONG Table, + _In_ ULONG Count); + FORCEINLINE VOID SetPixel( @@ -73,3 +60,24 @@ SetPixel( /* Set our color */ WRITE_REGISTER_USHORT(PixelPosition, VidpBuildColor(Color)); } + +VOID +NTAPI +PreserveRow( + _In_ ULONG CurrentTop, + _In_ ULONG TopDelta, + _In_ BOOLEAN Restore); + +VOID +NTAPI +DoScroll( + _In_ ULONG Scroll); + +VOID +NTAPI +DisplayCharacter( + _In_ CHAR Character, + _In_ ULONG Left, + _In_ ULONG Top, + _In_ ULONG TextColor, + _In_ ULONG BackColor); diff --git a/drivers/base/bootvid/arm/bootvid.c b/drivers/base/bootvid/arm/bootvid.c index c21ec620c9b11..d34f08140a56e 100644 --- a/drivers/base/bootvid/arm/bootvid.c +++ b/drivers/base/bootvid/arm/bootvid.c @@ -5,23 +5,23 @@ PUSHORT VgaArmBase; PHYSICAL_ADDRESS VgaPhysical; -BOOLEAN ClearRow = FALSE; /* PRIVATE FUNCTIONS *********************************************************/ VOID NTAPI -DisplayCharacter(IN CHAR Character, - IN ULONG Left, - IN ULONG Top, - IN ULONG TextColor, - IN ULONG BackColor) +DisplayCharacter( + _In_ CHAR Character, + _In_ ULONG Left, + _In_ ULONG Top, + _In_ ULONG TextColor, + _In_ ULONG BackColor) { PUCHAR FontChar; ULONG i, j, XOffset; /* Get the font line for this character */ - FontChar = &FontData[Character * BOOTCHAR_HEIGHT - Top]; + FontChar = &VidpFontData[Character * BOOTCHAR_HEIGHT - Top]; /* Loop each pixel height */ for (i = BOOTCHAR_HEIGHT; i > 0; --i) @@ -36,7 +36,7 @@ DisplayCharacter(IN CHAR Character, /* We do, use the given Text Color */ SetPixel(XOffset, Top, (UCHAR)TextColor); } - else if (BackColor < 16) + else if (BackColor < BV_COLOR_NONE) { /* * This is a background pixel. We're drawing it @@ -56,7 +56,8 @@ DisplayCharacter(IN CHAR Character, VOID NTAPI -VgaScroll(IN ULONG Scroll) +DoScroll( + _In_ ULONG Scroll) { ULONG Top, Offset; PUSHORT SourceOffset, DestOffset; @@ -103,9 +104,10 @@ VgaScroll(IN ULONG Scroll) VOID NTAPI -PreserveRow(IN ULONG CurrentTop, - IN ULONG TopDelta, - IN BOOLEAN Restore) +PreserveRow( + _In_ ULONG CurrentTop, + _In_ ULONG TopDelta, + _In_ BOOLEAN Restore) { PUSHORT Position1, Position2; ULONG Count; @@ -179,7 +181,8 @@ InitPaletteWithTable( */ BOOLEAN NTAPI -VidInitialize(IN BOOLEAN SetMode) +VidInitialize( + _In_ BOOLEAN SetMode) { DPRINT1("bv-arm v0.1\n"); @@ -214,7 +217,8 @@ VidInitialize(IN BOOLEAN SetMode) */ VOID NTAPI -VidResetDisplay(IN BOOLEAN HalReset) +VidResetDisplay( + _In_ BOOLEAN HalReset) { // // Clear the current position @@ -230,29 +234,8 @@ VidResetDisplay(IN BOOLEAN HalReset) // // Re-initialize the palette and fill the screen black // - //InitializePalette(); - VidSolidColorFill(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, 0); -} - -/* - * @implemented - */ -ULONG -NTAPI -VidSetTextColor(IN ULONG Color) -{ - UCHAR OldColor; - - // - // Save the old, set the new - // - OldColor = VidpTextColor; - VidpTextColor = Color; - - // - // Return the old text color - // - return OldColor; + InitializePalette(); + VidSolidColorFill(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, BV_COLOR_BLACK); } /* @@ -271,98 +254,13 @@ VidCleanUp(VOID) */ VOID NTAPI -VidDisplayString(IN PUCHAR String) -{ - ULONG TopDelta = BOOTCHAR_HEIGHT + 1; - - /* Start looping the string */ - for (; *String; ++String) - { - /* Treat new-line separately */ - if (*String == '\n') - { - /* Modify Y position */ - VidpCurrentY += TopDelta; - if (VidpCurrentY + TopDelta - 1 > VidpScrollRegion[3]) - { - /* Scroll the view and clear the current row */ - VgaScroll(TopDelta); - VidpCurrentY -= TopDelta; - PreserveRow(VidpCurrentY, TopDelta, TRUE); - } - else - { - /* Preserve the current row */ - PreserveRow(VidpCurrentY, TopDelta, FALSE); - } - - /* Update current X */ - VidpCurrentX = VidpScrollRegion[0]; - - /* No need to clear this row */ - ClearRow = FALSE; - } - else if (*String == '\r') - { - /* Update current X */ - VidpCurrentX = VidpScrollRegion[0]; - - /* If a new-line does not follow we will clear the current row */ - if (String[1] != '\n') ClearRow = TRUE; - } - else - { - /* Clear the current row if we had a return-carriage without a new-line */ - if (ClearRow) - { - PreserveRow(VidpCurrentY, TopDelta, TRUE); - ClearRow = FALSE; - } - - /* Display this character */ - DisplayCharacter(*String, - VidpCurrentX, - VidpCurrentY, - VidpTextColor, - 16); - VidpCurrentX += 8; - - /* Check if we should scroll */ - if (VidpCurrentX + 7 > VidpScrollRegion[2]) - { - /* Update Y position and check if we should scroll it */ - VidpCurrentY += TopDelta; - if (VidpCurrentY + TopDelta - 1 > VidpScrollRegion[3]) - { - /* Scroll the view and clear the current row */ - VgaScroll(TopDelta); - VidpCurrentY -= TopDelta; - PreserveRow(VidpCurrentY, TopDelta, TRUE); - } - else - { - /* Preserve the current row */ - PreserveRow(VidpCurrentY, TopDelta, FALSE); - } - - /* Update current X */ - VidpCurrentX = VidpScrollRegion[0]; - } - } - } -} - -/* - * @implemented - */ -VOID -NTAPI -VidScreenToBufferBlt(OUT PUCHAR Buffer, - IN ULONG Left, - IN ULONG Top, - IN ULONG Width, - IN ULONG Height, - IN ULONG Delta) +VidScreenToBufferBlt( + _Out_ PUCHAR Buffer, + _In_ ULONG Left, + _In_ ULONG Top, + _In_ ULONG Width, + _In_ ULONG Height, + _In_ ULONG Delta) { UNIMPLEMENTED; while (TRUE); @@ -373,11 +271,12 @@ VidScreenToBufferBlt(OUT PUCHAR Buffer, */ VOID NTAPI -VidSolidColorFill(IN ULONG Left, - IN ULONG Top, - IN ULONG Right, - IN ULONG Bottom, - IN UCHAR Color) +VidSolidColorFill( + _In_ ULONG Left, + _In_ ULONG Top, + _In_ ULONG Right, + _In_ ULONG Bottom, + _In_ UCHAR Color) { int y, x; diff --git a/drivers/base/bootvid/bootvid.rc b/drivers/base/bootvid/bootvid.rc index 34ea530979633..18d91d146509d 100644 --- a/drivers/base/bootvid/bootvid.rc +++ b/drivers/base/bootvid/bootvid.rc @@ -1,5 +1,11 @@ #define REACTOS_VERSION_DLL + +#if defined(SARCH_PC98) +#define REACTOS_STR_FILE_DESCRIPTION "NEC PC-98 Boot Video Driver" +#else #define REACTOS_STR_FILE_DESCRIPTION "VGA Boot Driver" +#endif + #define REACTOS_STR_INTERNAL_NAME "bootvid.dll" #define REACTOS_STR_ORIGINAL_FILENAME "bootvid.dll" #include diff --git a/drivers/base/bootvid/common.c b/drivers/base/bootvid/common.c index 07e98eced0aee..7979ea42a0481 100644 --- a/drivers/base/bootvid/common.c +++ b/drivers/base/bootvid/common.c @@ -2,7 +2,7 @@ /* GLOBALS ********************************************************************/ -UCHAR VidpTextColor = 0x0F; +UCHAR VidpTextColor = BV_COLOR_WHITE; ULONG VidpCurrentX = 0; ULONG VidpCurrentY = 0; @@ -15,6 +15,33 @@ ULONG VidpScrollRegion[4] = SCREEN_HEIGHT - 1 }; +/* + * Boot video driver default palette is similar to the standard 16-color + * CGA palette, but it has Red and Blue channels swapped, and also dark + * and light gray colors swapped. + */ +const RGBQUAD VidpDefaultPalette[BV_MAX_COLORS] = +{ + RGB( 0, 0, 0), /* Black */ + RGB(128, 0, 0), /* Red */ + RGB( 0, 128, 0), /* Green */ + RGB(128, 128, 0), /* Brown */ + RGB( 0, 0, 128), /* Blue */ + RGB(128, 0, 128), /* Magenta */ + RGB( 0, 128, 128), /* Cyan */ + RGB(128, 128, 128), /* Dark Gray */ + RGB(192, 192, 192), /* Light Gray */ + RGB(255, 0, 0), /* Light Red */ + RGB( 0, 255, 0), /* Light Green */ + RGB(255, 255, 0), /* Yellow */ + RGB( 0, 0, 255), /* Light Blue */ + RGB(255, 0, 255), /* Light Magenta */ + RGB( 0, 255, 255), /* Light Cyan */ + RGB(255, 255, 255), /* White */ +}; + +static BOOLEAN ClearRow = FALSE; + /* PRIVATE FUNCTIONS **********************************************************/ static VOID @@ -272,6 +299,22 @@ RleBitBlt( /* PUBLIC FUNCTIONS ***********************************************************/ +/* + * @implemented + */ +ULONG +NTAPI +VidSetTextColor( + _In_ ULONG Color) +{ + ULONG OldColor; + + /* Save the old color and set the new one */ + OldColor = VidpTextColor; + VidpTextColor = Color; + return OldColor; +} + VOID NTAPI VidDisplayStringXY( @@ -286,13 +329,13 @@ VidDisplayStringXY( * If the caller wanted transparent, then send the special value (16), * else use our default and call the helper routine. */ - BackColor = Transparent ? 16 : 14; + BackColor = Transparent ? BV_COLOR_NONE : BV_COLOR_LIGHT_CYAN; /* Loop every character and adjust the position */ - for (; *String; ++String, Left += 8) + for (; *String; ++String, Left += BOOTCHAR_WIDTH) { /* Display a character */ - DisplayCharacter(*String, Left, Top, 12, BackColor); + DisplayCharacter(*String, Left, Top, BV_COLOR_LIGHT_BLUE, BackColor); } } @@ -305,8 +348,8 @@ VidSetScrollRegion( _In_ ULONG Bottom) { /* Assert alignment */ - ASSERT((Left & 0x7) == 0); - ASSERT((Right & 0x7) == 7); + ASSERT((Left % BOOTCHAR_WIDTH) == 0); + ASSERT((Right % BOOTCHAR_WIDTH) == BOOTCHAR_WIDTH - 1); /* Set Scroll Region */ VidpScrollRegion[0] = Left; @@ -319,6 +362,87 @@ VidSetScrollRegion( VidpCurrentY = Top; } +/* + * @implemented + */ +VOID +NTAPI +VidDisplayString( + _In_ PUCHAR String) +{ + /* Start looping the string */ + for (; *String; ++String) + { + /* Treat new-line separately */ + if (*String == '\n') + { + /* Modify Y position */ + VidpCurrentY += BOOTCHAR_HEIGHT + 1; + if (VidpCurrentY + BOOTCHAR_HEIGHT > VidpScrollRegion[3]) + { + /* Scroll the view and clear the current row */ + DoScroll(BOOTCHAR_HEIGHT + 1); + VidpCurrentY -= BOOTCHAR_HEIGHT + 1; + PreserveRow(VidpCurrentY, BOOTCHAR_HEIGHT + 1, TRUE); + } + else + { + /* Preserve the current row */ + PreserveRow(VidpCurrentY, BOOTCHAR_HEIGHT + 1, FALSE); + } + + /* Update current X */ + VidpCurrentX = VidpScrollRegion[0]; + + /* No need to clear this row */ + ClearRow = FALSE; + } + else if (*String == '\r') + { + /* Update current X */ + VidpCurrentX = VidpScrollRegion[0]; + + /* If a new-line does not follow we will clear the current row */ + if (String[1] != '\n') ClearRow = TRUE; + } + else + { + /* Clear the current row if we had a return-carriage without a new-line */ + if (ClearRow) + { + PreserveRow(VidpCurrentY, BOOTCHAR_HEIGHT + 1, TRUE); + ClearRow = FALSE; + } + + /* Display this character */ + DisplayCharacter(*String, VidpCurrentX, VidpCurrentY, VidpTextColor, BV_COLOR_NONE); + VidpCurrentX += BOOTCHAR_WIDTH; + + /* Check if we should scroll */ + if (VidpCurrentX + BOOTCHAR_WIDTH - 1 > VidpScrollRegion[2]) + { + /* Update Y position and check if we should scroll it */ + VidpCurrentY += BOOTCHAR_HEIGHT + 1; + if (VidpCurrentY + BOOTCHAR_HEIGHT > VidpScrollRegion[3]) + { + /* Scroll the view and clear the current row */ + DoScroll(BOOTCHAR_HEIGHT + 1); + VidpCurrentY -= BOOTCHAR_HEIGHT + 1; + PreserveRow(VidpCurrentY, BOOTCHAR_HEIGHT + 1, TRUE); + } + else + { + /* Preserve the current row */ + PreserveRow(VidpCurrentY, BOOTCHAR_HEIGHT + 1, FALSE); + } + + /* Update current X */ + VidpCurrentX = VidpScrollRegion[0]; + } + } + } +} + VOID NTAPI VidBufferToScreenBlt( @@ -347,14 +471,16 @@ VidBitBlt( PBITMAPINFOHEADER BitmapInfoHeader; LONG Delta; PUCHAR BitmapOffset; + ULONG PaletteCount; /* Get the Bitmap Header */ BitmapInfoHeader = (PBITMAPINFOHEADER)Buffer; /* Initialize the palette */ + PaletteCount = BitmapInfoHeader->biClrUsed ? + BitmapInfoHeader->biClrUsed : BV_MAX_COLORS; InitPaletteWithTable((PULONG)(Buffer + BitmapInfoHeader->biSize), - (BitmapInfoHeader->biClrUsed) ? - BitmapInfoHeader->biClrUsed : 16); + PaletteCount); /* Make sure we can support this bitmap */ ASSERT((BitmapInfoHeader->biBitCount * BitmapInfoHeader->biPlanes) <= 4); @@ -366,7 +492,7 @@ VidBitBlt( Delta = (BitmapInfoHeader->biBitCount * BitmapInfoHeader->biWidth) + 31; Delta >>= 3; Delta &= ~3; - BitmapOffset = Buffer + sizeof(BITMAPINFOHEADER) + 16 * sizeof(ULONG); + BitmapOffset = Buffer + sizeof(BITMAPINFOHEADER) + PaletteCount * sizeof(ULONG); /* Check the compression of the bitmap */ if (BitmapInfoHeader->biCompression == BI_RLE4) diff --git a/drivers/base/bootvid/fontdata.c b/drivers/base/bootvid/fontdata.c index 12f4a1dfe8451..e4a6922bbbf23 100644 --- a/drivers/base/bootvid/fontdata.c +++ b/drivers/base/bootvid/fontdata.c @@ -6,7 +6,7 @@ // Available from http://mirtchovski.com/p9/fonts/ // FontData Array generated by bootvid_font_generator. // -UCHAR FontData[256 * BOOTCHAR_HEIGHT] = +UCHAR VidpFontData[256 * BOOTCHAR_HEIGHT] = { 0x00, 0x00, 0x00, 0x00, 0xFE, 0x82, 0x82, 0x82, 0x82, 0x82, 0xFE, 0x00, 0x00, // 0 0x00, 0x00, 0x00, 0x00, 0xFE, 0x82, 0x82, 0x82, 0x82, 0x82, 0xFE, 0x00, 0x00, // 13 diff --git a/drivers/base/bootvid/i386/pc/bootvid.c b/drivers/base/bootvid/i386/pc/bootvid.c index c80911d1ababd..f3336527d4a19 100644 --- a/drivers/base/bootvid/i386/pc/bootvid.c +++ b/drivers/base/bootvid/i386/pc/bootvid.c @@ -4,7 +4,8 @@ static BOOLEAN NTAPI -VgaInterpretCmdStream(IN PUSHORT CmdStream) +VgaInterpretCmdStream( + _In_ PUSHORT CmdStream) { USHORT Cmd; UCHAR Major, Minor; @@ -358,7 +359,8 @@ VgaIsPresent(VOID) */ BOOLEAN NTAPI -VidInitialize(IN BOOLEAN SetMode) +VidInitialize( + _In_ BOOLEAN SetMode) { ULONG_PTR Context = 0; PHYSICAL_ADDRESS TranslatedAddress; @@ -464,7 +466,8 @@ VidInitialize(IN BOOLEAN SetMode) */ VOID NTAPI -VidResetDisplay(IN BOOLEAN HalReset) +VidResetDisplay( + _In_ BOOLEAN HalReset) { /* Clear the current position */ VidpCurrentX = 0; @@ -485,5 +488,5 @@ VidResetDisplay(IN BOOLEAN HalReset) /* Re-initialize the palette and fill the screen black */ InitializePalette(); - VidSolidColorFill(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, 0); + VidSolidColorFill(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, BV_COLOR_BLACK); } diff --git a/drivers/base/bootvid/i386/pc/pc.h b/drivers/base/bootvid/i386/pc/pc.h index fef2324f8b4bc..c1a96e797a6d3 100644 --- a/drivers/base/bootvid/i386/pc/pc.h +++ b/drivers/base/bootvid/i386/pc/pc.h @@ -19,6 +19,15 @@ extern UCHAR PixelMask[8]; #define __outpw(Port, Value) \ WRITE_PORT_USHORT((PUSHORT)(VgaRegisterBase + (Port)), (USHORT)(Value)) +VOID +NTAPI +InitPaletteWithTable( + _In_ PULONG Table, + _In_ ULONG Count); + +VOID +PrepareForSetPixel(VOID); + FORCEINLINE VOID SetPixel( @@ -37,3 +46,24 @@ SetPixel( /* Read the current pixel value and add our color */ WRITE_REGISTER_UCHAR(PixelPosition, READ_REGISTER_UCHAR(PixelPosition) & Color); } + +VOID +NTAPI +PreserveRow( + _In_ ULONG CurrentTop, + _In_ ULONG TopDelta, + _In_ BOOLEAN Restore); + +VOID +NTAPI +DoScroll( + _In_ ULONG Scroll); + +VOID +NTAPI +DisplayCharacter( + _In_ CHAR Character, + _In_ ULONG Left, + _In_ ULONG Top, + _In_ ULONG TextColor, + _In_ ULONG BackColor); diff --git a/drivers/base/bootvid/i386/pc/vga.c b/drivers/base/bootvid/i386/pc/vga.c index b2d003657ee93..b985bc68eb185 100644 --- a/drivers/base/bootvid/i386/pc/vga.c +++ b/drivers/base/bootvid/i386/pc/vga.c @@ -57,13 +57,13 @@ static ULONG lookup[16] = ULONG_PTR VgaRegisterBase = 0; ULONG_PTR VgaBase = 0; -static BOOLEAN ClearRow = FALSE; /* PRIVATE FUNCTIONS *********************************************************/ static VOID NTAPI -ReadWriteMode(IN UCHAR Mode) +ReadWriteMode( + _In_ UCHAR Mode) { UCHAR Value; @@ -98,14 +98,6 @@ do { \ WRITE_REGISTER_UCHAR((_PixelPtr), (UCHAR)(_TextColor)); \ } while (0); -#ifdef CHAR_GEN_UPSIDE_DOWN -# define GetFontPtr(_Char) &FontData[_Char * BOOTCHAR_HEIGHT] + BOOTCHAR_HEIGHT - 1; -# define FONT_PTR_DELTA (-1) -#else -# define GetFontPtr(_Char) &FontData[_Char * BOOTCHAR_HEIGHT]; -# define FONT_PTR_DELTA (1) -#endif - VOID NTAPI DisplayCharacter( @@ -156,7 +148,7 @@ DisplayCharacter( } /* Check if the background color is transparent */ - if (BackColor >= 16) + if (BackColor >= BV_COLOR_NONE) { /* We are done */ return; @@ -199,18 +191,17 @@ DisplayCharacter( static VOID NTAPI -SetPaletteEntryRGB(IN ULONG Id, - IN ULONG Rgb) +SetPaletteEntryRGB( + _In_ ULONG Id, + _In_ RGBQUAD Rgb) { - PCHAR Colors = (PCHAR)&Rgb; - /* Set the palette index */ __outpb(VGA_BASE_IO_PORT + DAC_ADDRESS_WRITE_PORT, (UCHAR)Id); /* Set RGB colors */ - __outpb(VGA_BASE_IO_PORT + DAC_DATA_REG_PORT, Colors[2] >> 2); - __outpb(VGA_BASE_IO_PORT + DAC_DATA_REG_PORT, Colors[1] >> 2); - __outpb(VGA_BASE_IO_PORT + DAC_DATA_REG_PORT, Colors[0] >> 2); + __outpb(VGA_BASE_IO_PORT + DAC_DATA_REG_PORT, GetRValue(Rgb) >> 2); + __outpb(VGA_BASE_IO_PORT + DAC_DATA_REG_PORT, GetGValue(Rgb) >> 2); + __outpb(VGA_BASE_IO_PORT + DAC_DATA_REG_PORT, GetBValue(Rgb) >> 2); } VOID @@ -222,57 +213,16 @@ InitPaletteWithTable( ULONG i; PULONG Entry = Table; - /* Loop every entry */ for (i = 0; i < Count; i++, Entry++) { - /* Set the entry */ SetPaletteEntryRGB(i, *Entry); } } -static VOID -NTAPI -SetPaletteEntry(IN ULONG Id, - IN ULONG PaletteEntry) -{ - /* Set the palette index */ - __outpb(VGA_BASE_IO_PORT + DAC_ADDRESS_WRITE_PORT, (UCHAR)Id); - - /* Set RGB colors */ - __outpb(VGA_BASE_IO_PORT + DAC_DATA_REG_PORT, PaletteEntry & 0xFF); - __outpb(VGA_BASE_IO_PORT + DAC_DATA_REG_PORT, (PaletteEntry >>= 8) & 0xFF); - __outpb(VGA_BASE_IO_PORT + DAC_DATA_REG_PORT, (PaletteEntry >> 8) & 0xFF); -} - VOID NTAPI -InitializePalette(VOID) -{ - ULONG PaletteEntry[16] = {0x000000, - 0x000020, - 0x002000, - 0x002020, - 0x200000, - 0x200020, - 0x202000, - 0x202020, - 0x303030, - 0x00003F, - 0x003F00, - 0x003F3F, - 0x3F0000, - 0x3F003F, - 0x3F3F00, - 0x3F3F3F}; - ULONG i; - - /* Loop all the entries and set their palettes */ - for (i = 0; i < 16; i++) SetPaletteEntry(i, PaletteEntry[i]); -} - -static VOID -NTAPI -VgaScroll(IN ULONG Scroll) +DoScroll( + _In_ ULONG Scroll) { ULONG Top, RowSize; PUCHAR OldPosition, NewPosition; @@ -309,11 +259,12 @@ VgaScroll(IN ULONG Scroll) } } -static VOID +VOID NTAPI -PreserveRow(IN ULONG CurrentTop, - IN ULONG TopDelta, - IN BOOLEAN Restore) +PreserveRow( + _In_ ULONG CurrentTop, + _In_ ULONG TopDelta, + _In_ BOOLEAN Restore) { PUCHAR Position1, Position2; ULONG Count; @@ -360,21 +311,6 @@ PreserveRow(IN ULONG CurrentTop, /* PUBLIC FUNCTIONS **********************************************************/ -/* - * @implemented - */ -ULONG -NTAPI -VidSetTextColor(IN ULONG Color) -{ - ULONG OldColor; - - /* Save the old color and set the new one */ - OldColor = VidpTextColor; - VidpTextColor = Color; - return OldColor; -} - /* * @implemented */ @@ -392,94 +328,13 @@ VidCleanUp(VOID) */ VOID NTAPI -VidDisplayString(IN PUCHAR String) -{ - ULONG TopDelta = BOOTCHAR_HEIGHT + 1; - - /* Start looping the string */ - for (; *String; ++String) - { - /* Treat new-line separately */ - if (*String == '\n') - { - /* Modify Y position */ - VidpCurrentY += TopDelta; - if (VidpCurrentY + TopDelta - 1 > VidpScrollRegion[3]) - { - /* Scroll the view and clear the current row */ - VgaScroll(TopDelta); - VidpCurrentY -= TopDelta; - PreserveRow(VidpCurrentY, TopDelta, TRUE); - } - else - { - /* Preserve the current row */ - PreserveRow(VidpCurrentY, TopDelta, FALSE); - } - - /* Update current X */ - VidpCurrentX = VidpScrollRegion[0]; - - /* No need to clear this row */ - ClearRow = FALSE; - } - else if (*String == '\r') - { - /* Update current X */ - VidpCurrentX = VidpScrollRegion[0]; - - /* If a new-line does not follow we will clear the current row */ - if (String[1] != '\n') ClearRow = TRUE; - } - else - { - /* Clear the current row if we had a return-carriage without a new-line */ - if (ClearRow) - { - PreserveRow(VidpCurrentY, TopDelta, TRUE); - ClearRow = FALSE; - } - - /* Display this character */ - DisplayCharacter(*String, VidpCurrentX, VidpCurrentY, VidpTextColor, 16); - VidpCurrentX += 8; - - /* Check if we should scroll */ - if (VidpCurrentX + 7 > VidpScrollRegion[2]) - { - /* Update Y position and check if we should scroll it */ - VidpCurrentY += TopDelta; - if (VidpCurrentY + TopDelta - 1 > VidpScrollRegion[3]) - { - /* Scroll the view and clear the current row */ - VgaScroll(TopDelta); - VidpCurrentY -= TopDelta; - PreserveRow(VidpCurrentY, TopDelta, TRUE); - } - else - { - /* Preserve the current row */ - PreserveRow(VidpCurrentY, TopDelta, FALSE); - } - - /* Update current X */ - VidpCurrentX = VidpScrollRegion[0]; - } - } - } -} - -/* - * @implemented - */ -VOID -NTAPI -VidScreenToBufferBlt(OUT PUCHAR Buffer, - IN ULONG Left, - IN ULONG Top, - IN ULONG Width, - IN ULONG Height, - IN ULONG Delta) +VidScreenToBufferBlt( + _Out_ PUCHAR Buffer, + _In_ ULONG Left, + _In_ ULONG Top, + _In_ ULONG Width, + _In_ ULONG Height, + _In_ ULONG Delta) { ULONG Plane; ULONG XDistance; @@ -573,11 +428,12 @@ VidScreenToBufferBlt(OUT PUCHAR Buffer, */ VOID NTAPI -VidSolidColorFill(IN ULONG Left, - IN ULONG Top, - IN ULONG Right, - IN ULONG Bottom, - IN UCHAR Color) +VidSolidColorFill( + _In_ ULONG Left, + _In_ ULONG Top, + _In_ ULONG Right, + _In_ ULONG Bottom, + _In_ UCHAR Color) { ULONG rMask, lMask; ULONG LeftOffset, RightOffset, Distance; diff --git a/drivers/base/bootvid/i386/pc98/bootvid.c b/drivers/base/bootvid/i386/pc98/bootvid.c new file mode 100644 index 0000000000000..e4b8b1b834bb0 --- /dev/null +++ b/drivers/base/bootvid/i386/pc98/bootvid.c @@ -0,0 +1,469 @@ +/* + * PROJECT: ReactOS Boot Video Driver for NEC PC-98 series + * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later) + * PURPOSE: Main file + * COPYRIGHT: Copyright 2020 Dmitry Borisov (di.sean@protonmail.com) + */ + +/* INCLUDES *******************************************************************/ + +#include "precomp.h" + +/* GLOBALS ********************************************************************/ + +static ULONG_PTR VideoMemoryI; +ULONG_PTR FrameBuffer; + +#define PEGC_MAX_COLORS 256 + +/* PRIVATE FUNCTIONS **********************************************************/ + +static BOOLEAN +GraphGetStatus( + _In_ UCHAR Status) +{ + UCHAR Result; + + WRITE_PORT_UCHAR((PUCHAR)GRAPH_IO_o_STATUS_SELECT, Status); + KeStallExecutionProcessor(1); + Result = READ_PORT_UCHAR((PUCHAR)GRAPH_IO_i_STATUS); + + return (Result & GRAPH_STATUS_SET) && (Result != 0xFF); +} + +static BOOLEAN +HasPegcController(VOID) +{ + BOOLEAN Success; + + if (GraphGetStatus(GRAPH_STATUS_PEGC)) + return TRUE; + + WRITE_PORT_UCHAR((PUCHAR)GDC2_IO_o_MODE_FLIPFLOP2, GDC2_EGC_FF_UNPROTECT); + WRITE_PORT_UCHAR((PUCHAR)GDC2_IO_o_MODE_FLIPFLOP2, GDC2_MODE_PEGC_ENABLE); + Success = GraphGetStatus(GRAPH_STATUS_PEGC); + WRITE_PORT_UCHAR((PUCHAR)GDC2_IO_o_MODE_FLIPFLOP2, GDC2_MODE_PEGC_DISABLE); + WRITE_PORT_UCHAR((PUCHAR)GDC2_IO_o_MODE_FLIPFLOP2, GDC2_EGC_FF_PROTECT); + + return Success; +} + +static VOID +TextSync(VOID) +{ + while (READ_PORT_UCHAR((PUCHAR)GDC1_IO_i_STATUS) & GDC_STATUS_VSYNC) + NOTHING; + + while (!(READ_PORT_UCHAR((PUCHAR)GDC1_IO_i_STATUS) & GDC_STATUS_VSYNC)) + NOTHING; +} + +static VOID +InitializeDisplay(VOID) +{ + SYNCPARAM SyncParameters; + CSRFORMPARAM CursorParameters; + CSRWPARAM CursorPosition; + PITCHPARAM PitchParameters; + PRAMPARAM RamParameters; + ZOOMPARAM ZoomParameters; + UCHAR RelayState; + + /* RESET, without FIFO check */ + WRITE_PORT_UCHAR((PUCHAR)GDC1_IO_o_COMMAND, GDC_COMMAND_RESET1); + WRITE_PORT_UCHAR((PUCHAR)GDC2_IO_o_COMMAND, GDC_COMMAND_RESET1); + + /* Configure chipset */ + WRITE_PORT_UCHAR((PUCHAR)GDC1_IO_o_MODE_FLIPFLOP1, GRAPH_MODE_COLORED); + WRITE_PORT_UCHAR((PUCHAR)GDC1_IO_o_MODE_FLIPFLOP1, GDC2_MODE_ODD_RLINE_SHOW); + WRITE_PORT_UCHAR((PUCHAR)GDC2_IO_o_MODE_FLIPFLOP2, GDC2_MODE_COLORS_16); + WRITE_PORT_UCHAR((PUCHAR)GDC2_IO_o_MODE_FLIPFLOP2, GDC2_MODE_GRCG); + WRITE_PORT_UCHAR((PUCHAR)GDC2_IO_o_MODE_FLIPFLOP2, GDC2_MODE_LCD); + WRITE_PORT_UCHAR((PUCHAR)GDC2_IO_o_MODE_FLIPFLOP2, GDC2_MODE_LINES_400); + WRITE_PORT_UCHAR((PUCHAR)GDC2_IO_o_MODE_FLIPFLOP2, GDC2_CLOCK1_5MHZ); + WRITE_PORT_UCHAR((PUCHAR)GDC2_IO_o_MODE_FLIPFLOP2, GDC2_CLOCK2_5MHZ); + WRITE_PORT_UCHAR((PUCHAR)GRAPH_IO_o_HORIZONTAL_SCAN_RATE, GRAPH_HF_31KHZ); + WRITE_PORT_UCHAR((PUCHAR)GDC2_IO_o_VIDEO_PAGE, 0); + WRITE_PORT_UCHAR((PUCHAR)GDC2_IO_o_VIDEO_PAGE_ACCESS, 0); + + /* =========================== MASTER ============================ */ + + /* MASTER */ + WRITE_GDC1_COMMAND(GDC_COMMAND_MASTER); + + /* SYNC */ + SyncParameters.Flags = SYNC_DISPLAY_MODE_GRAPHICS_AND_CHARACTERS | SYNC_VIDEO_FRAMING_NONINTERLACED | + SYNC_DRAW_ONLY_DURING_RETRACE_BLANKING | SYNC_STATIC_RAM_NO_REFRESH; + SyncParameters.ScreenWidthChars = 80; + SyncParameters.HorizontalSyncWidth = 12; + SyncParameters.VerticalSyncWidth = 2; + SyncParameters.HorizontalFrontPorchWidth = 4; + SyncParameters.HorizontalBackPorchWidth = 4; + SyncParameters.VerticalFrontPorchWidth = 6; + SyncParameters.ScreenWidthLines = 480; + SyncParameters.VerticalBackPorchWidth = 37; + WRITE_GDC1_COMMAND(GDC_COMMAND_SYNC_ON); + WRITE_GDC_SYNC((PUCHAR)GDC1_IO_o_PARAM, &SyncParameters); + + /* CSRFORM */ + CursorParameters.Show = FALSE; + CursorParameters.Blink = FALSE; + CursorParameters.BlinkRate = 12; + CursorParameters.LinesPerRow = 16; + CursorParameters.StartScanLine = 0; + CursorParameters.EndScanLine = 15; + WRITE_GDC1_COMMAND(GDC_COMMAND_CSRFORM); + WRITE_GDC_CSRFORM((PUCHAR)GDC1_IO_o_PARAM, &CursorParameters); + + /* PITCH */ + PitchParameters.WordsPerScanline = BYTES_PER_SCANLINE; + WRITE_GDC1_COMMAND(GDC_COMMAND_PITCH); + WRITE_GDC_PITCH((PUCHAR)GDC1_IO_o_PARAM, &PitchParameters); + + /* PRAM */ + RamParameters.StartingAddress = 0; + RamParameters.Length = 1023; + RamParameters.ImageBit = FALSE; + RamParameters.WideDisplay = FALSE; + WRITE_GDC1_COMMAND(GDC_COMMAND_PRAM); + WRITE_GDC_PRAM((PUCHAR)GDC1_IO_o_PARAM, &RamParameters); + + /* ZOOM */ + ZoomParameters.DisplayZoomFactor = 0; + ZoomParameters.WritingZoomFactor = 0; + WRITE_GDC1_COMMAND(GDC_COMMAND_ZOOM); + WRITE_GDC_ZOOM((PUCHAR)GDC1_IO_o_PARAM, &ZoomParameters); + + /* CSRW */ + CursorPosition.CursorAddress = 0; + CursorPosition.DotAddress = 0; + WRITE_GDC1_COMMAND(GDC_COMMAND_CSRW); + WRITE_GDC_CSRW((PUCHAR)GDC1_IO_o_PARAM, &CursorPosition); + + /* START */ + WRITE_GDC1_COMMAND(GDC_COMMAND_BCTRL_START); + + /* ============================ SLAVE ============================ */ + + /* SLAVE */ + WRITE_GDC2_COMMAND(GDC_COMMAND_SLAVE); + + /* SYNC */ + SyncParameters.Flags = SYNC_DISPLAY_MODE_GRAPHICS | SYNC_VIDEO_FRAMING_NONINTERLACED | + SYNC_DRAW_DURING_ACTIVE_DISPLAY_TIME_AND_RETRACE_BLANKING | + SYNC_STATIC_RAM_NO_REFRESH; + SyncParameters.ScreenWidthChars = 80; + SyncParameters.HorizontalSyncWidth = 12; + SyncParameters.VerticalSyncWidth = 2; + SyncParameters.HorizontalFrontPorchWidth = 4; + SyncParameters.HorizontalBackPorchWidth = 132; + SyncParameters.VerticalFrontPorchWidth = 6; + SyncParameters.ScreenWidthLines = 480; + SyncParameters.VerticalBackPorchWidth = 37; + WRITE_GDC2_COMMAND(GDC_COMMAND_SYNC_ON); + WRITE_GDC_SYNC((PUCHAR)GDC2_IO_o_PARAM, &SyncParameters); + + /* CSRFORM */ + CursorParameters.Show = FALSE; + CursorParameters.Blink = FALSE; + CursorParameters.BlinkRate = 0; + CursorParameters.LinesPerRow = 1; + CursorParameters.StartScanLine = 0; + CursorParameters.EndScanLine = 0; + WRITE_GDC2_COMMAND(GDC_COMMAND_CSRFORM); + WRITE_GDC_CSRFORM((PUCHAR)GDC2_IO_o_PARAM, &CursorParameters); + + /* PITCH */ + PitchParameters.WordsPerScanline = BYTES_PER_SCANLINE; + WRITE_GDC2_COMMAND(GDC_COMMAND_PITCH); + WRITE_GDC_PITCH((PUCHAR)GDC2_IO_o_PARAM, &PitchParameters); + + /* PRAM */ + RamParameters.StartingAddress = 0; + RamParameters.Length = 1023; + RamParameters.ImageBit = TRUE; + RamParameters.WideDisplay = FALSE; + WRITE_GDC2_COMMAND(GDC_COMMAND_PRAM); + WRITE_GDC_PRAM((PUCHAR)GDC2_IO_o_PARAM, &RamParameters); + + /* ZOOM */ + ZoomParameters.DisplayZoomFactor = 0; + ZoomParameters.WritingZoomFactor = 0; + WRITE_GDC2_COMMAND(GDC_COMMAND_ZOOM); + WRITE_GDC_ZOOM((PUCHAR)GDC2_IO_o_PARAM, &ZoomParameters); + + /* CSRW */ + CursorPosition.CursorAddress = 0; + CursorPosition.DotAddress = 0; + WRITE_GDC2_COMMAND(GDC_COMMAND_CSRW); + WRITE_GDC_CSRW((PUCHAR)GDC2_IO_o_PARAM, &CursorPosition); + + /* Synchronize the master sync source */ + TextSync(); + TextSync(); + TextSync(); + TextSync(); + + /* START */ + WRITE_GDC2_COMMAND(GDC_COMMAND_BCTRL_START); + + /* 256 colors */ + WRITE_PORT_UCHAR((PUCHAR)GDC2_IO_o_MODE_FLIPFLOP2, GDC2_EGC_FF_UNPROTECT); + WRITE_PORT_UCHAR((PUCHAR)GDC2_IO_o_MODE_FLIPFLOP2, GDC2_MODE_PEGC_ENABLE); + WRITE_PORT_UCHAR((PUCHAR)GDC2_IO_o_MODE_FLIPFLOP2, GDC2_MODE_LINES_800); + WRITE_PORT_UCHAR((PUCHAR)GDC2_IO_o_MODE_FLIPFLOP2, GDC2_EGC_FF_PROTECT); + WRITE_REGISTER_USHORT((PUSHORT)(VideoMemoryI + PEGC_MMIO_MODE), PEGC_MODE_PACKED); + WRITE_REGISTER_USHORT((PUSHORT)(VideoMemoryI + PEGC_MMIO_FRAMEBUFFER), PEGC_FB_MAP); + + /* Select the video source */ + RelayState = READ_PORT_UCHAR((PUCHAR)GRAPH_IO_i_RELAY) & ~(GRAPH_RELAY_0 | GRAPH_RELAY_1); + RelayState |= GRAPH_VID_SRC_INTERNAL | GRAPH_SRC_GDC; + WRITE_PORT_UCHAR((PUCHAR)GRAPH_IO_o_RELAY, RelayState); +} + +static VOID +SetPaletteEntryRGB( + _In_ ULONG Id, + _In_ RGBQUAD Rgb) +{ + WRITE_PORT_UCHAR((PUCHAR)GDC2_IO_o_PALETTE_INDEX, Id); + WRITE_PORT_UCHAR((PUCHAR)GDC2_IO_o_RED, GetRValue(Rgb)); + WRITE_PORT_UCHAR((PUCHAR)GDC2_IO_o_GREEN, GetGValue(Rgb)); + WRITE_PORT_UCHAR((PUCHAR)GDC2_IO_o_BLUE, GetBValue(Rgb)); +} + +VOID +NTAPI +InitPaletteWithTable( + _In_ PULONG Table, + _In_ ULONG Count) +{ + ULONG i; + PULONG Entry = Table; + + for (i = 0; i < Count; i++) + SetPaletteEntryRGB(i, *Entry++); + + for (i = Count; i < PEGC_MAX_COLORS; i++) + SetPaletteEntryRGB(i, VidpDefaultPalette[BV_COLOR_BLACK]); +} + +VOID +NTAPI +DisplayCharacter( + _In_ CHAR Character, + _In_ ULONG Left, + _In_ ULONG Top, + _In_ ULONG TextColor, + _In_ ULONG BackColor) +{ + ULONG X, Y, PixelMask; + PUCHAR FontChar = GetFontPtr(Character); + + for (Y = Top; + Y < Top + BOOTCHAR_HEIGHT; + ++Y, FontChar += FONT_PTR_DELTA) + { + for (X = Left, PixelMask = 1 << (BOOTCHAR_WIDTH - 1); + X < Left + BOOTCHAR_WIDTH; + ++X, PixelMask >>= 1) + { + if (*FontChar & PixelMask) + SetPixel(X, Y, (UCHAR)TextColor); + else if (BackColor < BV_COLOR_NONE) + SetPixel(X, Y, (UCHAR)BackColor); + } + } +} + +VOID +NTAPI +PreserveRow( + _In_ ULONG CurrentTop, + _In_ ULONG TopDelta, + _In_ BOOLEAN Restore) +{ + PUCHAR OldPosition, NewPosition; + ULONG PixelCount = TopDelta * SCREEN_WIDTH; + + if (Restore) + { + /* Restore the row by copying back the contents saved off-screen */ + OldPosition = (PUCHAR)(FrameBuffer + FB_OFFSET(0, SCREEN_HEIGHT)); + NewPosition = (PUCHAR)(FrameBuffer + FB_OFFSET(0, CurrentTop)); + } + else + { + /* Preserve the row by saving its contents off-screen */ + OldPosition = (PUCHAR)(FrameBuffer + FB_OFFSET(0, CurrentTop)); + NewPosition = (PUCHAR)(FrameBuffer + FB_OFFSET(0, SCREEN_HEIGHT)); + } + + while (PixelCount--) + WRITE_REGISTER_UCHAR(NewPosition++, READ_REGISTER_UCHAR(OldPosition++)); +} + +VOID +PrepareForSetPixel(VOID) +{ + NOTHING; +} + +VOID +NTAPI +DoScroll( + _In_ ULONG Scroll) +{ + USHORT i, Line; + PUCHAR Src, Dst; + PULONG SrcWide, DstWide; + USHORT PixelCount = (VidpScrollRegion[2] - VidpScrollRegion[0]) + 1; + ULONG_PTR SourceOffset = FrameBuffer + FB_OFFSET(VidpScrollRegion[0], VidpScrollRegion[1] + Scroll); + ULONG_PTR DestinationOffset = FrameBuffer + FB_OFFSET(VidpScrollRegion[0], VidpScrollRegion[1]); + + for (Line = VidpScrollRegion[1]; Line <= VidpScrollRegion[3]; Line++) + { + SrcWide = (PULONG)SourceOffset; + DstWide = (PULONG)DestinationOffset; + for (i = 0; i < PixelCount / sizeof(ULONG); i++) + WRITE_REGISTER_ULONG(DstWide++, READ_REGISTER_ULONG(SrcWide++)); + + Src = (PUCHAR)SrcWide; + Dst = (PUCHAR)DstWide; + for (i = 0; i < PixelCount % sizeof(ULONG); i++) + WRITE_REGISTER_UCHAR(Dst++, READ_REGISTER_UCHAR(Src++)); + + SourceOffset += SCREEN_WIDTH; + DestinationOffset += SCREEN_WIDTH; + } +} + +/* PUBLIC FUNCTIONS ***********************************************************/ + +BOOLEAN +NTAPI +VidInitialize( + _In_ BOOLEAN SetMode) +{ + PHYSICAL_ADDRESS BaseAddress; + + BaseAddress.QuadPart = VRAM_NORMAL_PLANE_I; + VideoMemoryI = (ULONG_PTR)MmMapIoSpace(BaseAddress, VRAM_PLANE_SIZE, MmNonCached); + if (!VideoMemoryI) + goto Failure; + + if (!HasPegcController()) + goto Failure; + + BaseAddress.QuadPart = PEGC_FRAMEBUFFER_PACKED; + FrameBuffer = (ULONG_PTR)MmMapIoSpace(BaseAddress, PEGC_FRAMEBUFFER_SIZE, MmNonCached); + if (!FrameBuffer) + goto Failure; + + if (SetMode) + VidResetDisplay(TRUE); + + return TRUE; + +Failure: + if (!VideoMemoryI) MmUnmapIoSpace((PVOID)VideoMemoryI, VRAM_PLANE_SIZE); + if (!FrameBuffer) MmUnmapIoSpace((PVOID)FrameBuffer, PEGC_FRAMEBUFFER_SIZE); + + return FALSE; +} + +VOID +NTAPI +VidCleanUp(VOID) +{ + WRITE_PORT_UCHAR((PUCHAR)GDC1_IO_o_MODE_FLIPFLOP1, GRAPH_MODE_DISPLAY_DISABLE); +} + +VOID +NTAPI +VidResetDisplay( + _In_ BOOLEAN HalReset) +{ + PULONG PixelsPosition = (PULONG)(FrameBuffer + FB_OFFSET(0, 0)); + ULONG PixelCount = ((SCREEN_WIDTH * SCREEN_HEIGHT) / sizeof(ULONG)) + 1; + + /* Clear the current position */ + VidpCurrentX = 0; + VidpCurrentY = 0; + + /* Clear the screen with HAL if we were asked to */ + if (HalReset) + HalResetDisplay(); + + WRITE_PORT_UCHAR((PUCHAR)GDC1_IO_o_MODE_FLIPFLOP1, GRAPH_MODE_DISPLAY_DISABLE); + + /* 640x480 256-color 31 kHz mode */ + InitializeDisplay(); + + /* Re-initialize the palette and fill the screen black */ + InitializePalette(); + while (PixelCount--) + WRITE_REGISTER_ULONG(PixelsPosition++, 0); + + WRITE_PORT_UCHAR((PUCHAR)GDC1_IO_o_MODE_FLIPFLOP1, GRAPH_MODE_DISPLAY_ENABLE); +} + +VOID +NTAPI +VidScreenToBufferBlt( + _Out_ PUCHAR Buffer, + _In_ ULONG Left, + _In_ ULONG Top, + _In_ ULONG Width, + _In_ ULONG Height, + _In_ ULONG Delta) +{ + ULONG X, Y; + PUCHAR OutputBuffer; + USHORT Px; + PUSHORT PixelsPosition = (PUSHORT)(FrameBuffer + FB_OFFSET(Left, Top)); + + /* Clear the destination buffer */ + RtlZeroMemory(Buffer, Delta * Height); + + for (Y = 0; Y < Height; Y++) + { + OutputBuffer = Buffer + Y * Delta; + + for (X = 0; X < Width; X += 2) + { + Px = READ_REGISTER_USHORT(PixelsPosition++); + *OutputBuffer++ = (FIRSTBYTE(Px) << 4) | (SECONDBYTE(Px) & 0x0F); + } + } +} + +VOID +NTAPI +VidSolidColorFill( + _In_ ULONG Left, + _In_ ULONG Top, + _In_ ULONG Right, + _In_ ULONG Bottom, + _In_ UCHAR Color) +{ + USHORT i, Line; + PUCHAR PixelPtr; + PULONG PixelsPtr; + ULONG WideColor = (Color << 24) | (Color << 16) | (Color << 8) | Color; + USHORT PixelCount = (Right - Left) + 1; + ULONG_PTR StartOffset = FrameBuffer + FB_OFFSET(Left, Top); + + for (Line = Top; Line <= Bottom; Line++) + { + PixelsPtr = (PULONG)StartOffset; + for (i = 0; i < PixelCount / sizeof(ULONG); i++) + WRITE_REGISTER_ULONG(PixelsPtr++, WideColor); + + PixelPtr = (PUCHAR)PixelsPtr; + for (i = 0; i < PixelCount % sizeof(ULONG); i++) + WRITE_REGISTER_UCHAR(PixelPtr++, Color); + + StartOffset += SCREEN_WIDTH; + } +} diff --git a/drivers/base/bootvid/i386/pc98/pc98.h b/drivers/base/bootvid/i386/pc98/pc98.h new file mode 100644 index 0000000000000..2e84211e192dd --- /dev/null +++ b/drivers/base/bootvid/i386/pc98/pc98.h @@ -0,0 +1,65 @@ +/* + * PROJECT: ReactOS Boot Video Driver for NEC PC-98 series + * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later) + * PURPOSE: Arch-specific header file + * COPYRIGHT: Copyright 2020 Dmitry Borisov (di.sean@protonmail.com) + */ + +#pragma once + +/* INCLUDES *******************************************************************/ + +#include + +/* GLOBALS ********************************************************************/ + +#define BYTES_PER_SCANLINE (SCREEN_WIDTH / 8) +#define FB_OFFSET(x, y) ((y) * SCREEN_WIDTH + (x)) + +extern ULONG_PTR FrameBuffer; + +/* PROTOTYPES *****************************************************************/ + +VOID +NTAPI +DisplayCharacter( + _In_ CHAR Character, + _In_ ULONG Left, + _In_ ULONG Top, + _In_ ULONG TextColor, + _In_ ULONG BackColor); + +VOID +NTAPI +DoScroll( + _In_ ULONG Scroll); + +VOID +NTAPI +InitPaletteWithTable( + _In_ PULONG Table, + _In_ ULONG Count); + +VOID +NTAPI +PreserveRow( + _In_ ULONG CurrentTop, + _In_ ULONG TopDelta, + _In_ BOOLEAN Restore); + +VOID +PrepareForSetPixel(VOID); + +/* FUNCTIONS ******************************************************************/ + +FORCEINLINE +VOID +SetPixel( + _In_ ULONG Left, + _In_ ULONG Top, + _In_ UCHAR Color) +{ + PUCHAR PixelPosition = (PUCHAR)(FrameBuffer + FB_OFFSET(Left, Top)); + + WRITE_REGISTER_UCHAR(PixelPosition, Color); +} diff --git a/drivers/base/bootvid/precomp.h b/drivers/base/bootvid/precomp.h index d89e93d359e28..a5a27f3ead254 100644 --- a/drivers/base/bootvid/precomp.h +++ b/drivers/base/bootvid/precomp.h @@ -7,8 +7,12 @@ /* Arch specific includes */ #if defined(_M_IX86) || defined(_M_AMD64) +#if defined(SARCH_PC98) +#include "i386/pc98/pc98.h" +#else #include "i386/pc/vga.h" #include "i386/pc/pc.h" +#endif #elif defined(_M_ARM) #include "arm/arm.h" #else @@ -41,35 +45,7 @@ typedef struct tagBITMAPINFOHEADER #define BI_RGB 0 #define BI_RLE4 2 -typedef struct _PALETTE_ENTRY -{ - UCHAR Red; - UCHAR Green; - UCHAR Blue; -} PALETTE_ENTRY, *PPALETTE_ENTRY; - -VOID -NTAPI -InitializePalette(VOID); - -VOID -NTAPI -DisplayCharacter( - _In_ CHAR Character, - _In_ ULONG Left, - _In_ ULONG Top, - _In_ ULONG TextColor, - _In_ ULONG BackColor -); - -VOID -PrepareForSetPixel(VOID); - -VOID -NTAPI -InitPaletteWithTable( - _In_ PULONG Table, - _In_ ULONG Count); +typedef ULONG RGBQUAD; /* * Globals @@ -78,6 +54,23 @@ extern UCHAR VidpTextColor; extern ULONG VidpCurrentX; extern ULONG VidpCurrentY; extern ULONG VidpScrollRegion[4]; -extern UCHAR FontData[256 * BOOTCHAR_HEIGHT]; +extern UCHAR VidpFontData[256 * BOOTCHAR_HEIGHT]; +extern const RGBQUAD VidpDefaultPalette[BV_MAX_COLORS]; + +#define RGB(r, g, b) ((RGBQUAD)(((UCHAR)(b) | ((USHORT)((UCHAR)(g))<<8)) | (((ULONG)(UCHAR)(r))<<16))) + +#define GetRValue(quad) ((UCHAR)(((quad)>>16) & 0xFF)) +#define GetGValue(quad) ((UCHAR)(((quad)>>8) & 0xFF)) +#define GetBValue(quad) ((UCHAR)((quad) & 0xFF)) + +#define InitializePalette() InitPaletteWithTable((PULONG)VidpDefaultPalette, BV_MAX_COLORS) + +#ifdef CHAR_GEN_UPSIDE_DOWN +# define GetFontPtr(_Char) &VidpFontData[_Char * BOOTCHAR_HEIGHT] + BOOTCHAR_HEIGHT - 1; +# define FONT_PTR_DELTA (-1) +#else +# define GetFontPtr(_Char) &VidpFontData[_Char * BOOTCHAR_HEIGHT]; +# define FONT_PTR_DELTA (1) +#endif #endif /* _BOOTVID_PCH_ */ diff --git a/drivers/bus/isapnp/pdo.c b/drivers/bus/isapnp/pdo.c index 6651cc5471066..36ba611e131e9 100644 --- a/drivers/bus/isapnp/pdo.c +++ b/drivers/bus/isapnp/pdo.c @@ -64,7 +64,7 @@ IsaPdoQueryCapabilities( } else { - DeviceCapabilities->UniqueID = TRUE; + DeviceCapabilities->UniqueID = FALSE; DeviceCapabilities->RawDeviceOK = TRUE; DeviceCapabilities->SilentInstall = TRUE; } @@ -191,7 +191,7 @@ IsaPdoStartReadPort( IN PIO_STACK_LOCATION IrpSp) { PCM_RESOURCE_LIST ResourceList = IrpSp->Parameters.StartDevice.AllocatedResources; - NTSTATUS Status; + NTSTATUS Status = STATUS_INSUFFICIENT_RESOURCES; KIRQL OldIrql; ULONG i; @@ -209,11 +209,12 @@ IsaPdoStartReadPort( for (i = 0; i < ResourceList->List[0].PartialResourceList.Count; i++) { PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor = &ResourceList->List[0].PartialResourceList.PartialDescriptors[i]; - if (PartialDescriptor->Type == CmResourceTypePort) + if (PartialDescriptor->Type == CmResourceTypePort && PartialDescriptor->u.Port.Length > 1 && !FdoExt->ReadDataPort) { PUCHAR ReadDataPort = ULongToPtr(PartialDescriptor->u.Port.Start.u.LowPart + 3); - if (PartialDescriptor->u.Port.Length > 1 && !FdoExt->ReadDataPort && NT_SUCCESS(IsaHwTryReadDataPort(ReadDataPort))) + if (NT_SUCCESS(IsaHwTryReadDataPort(ReadDataPort))) { + /* we detected some ISAPNP cards */ FdoExt->ReadDataPort = ReadDataPort; KeAcquireSpinLock(&FdoExt->Lock, &OldIrql); Status = IsaHwFillDeviceList(FdoExt); @@ -224,6 +225,11 @@ IsaPdoStartReadPort( IoInvalidateDeviceRelations(FdoExt->DataPortPdo, RemovalRelations); } } + else + { + /* mark read data port as started, even if no card has been detected */ + Status = STATUS_SUCCESS; + } } } return Status; diff --git a/drivers/storage/ide/pciidex/pdo.c b/drivers/storage/ide/pciidex/pdo.c index c82d9d7feaa34..7289cd4400139 100644 --- a/drivers/storage/ide/pciidex/pdo.c +++ b/drivers/storage/ide/pciidex/pdo.c @@ -257,10 +257,10 @@ PciIdeXPdoQueryResourceRequirements( Descriptor->Flags = CM_RESOURCE_PORT_IO | CM_RESOURCE_PORT_16_BIT_DECODE | CM_RESOURCE_PORT_POSITIVE_DECODE; - Descriptor->u.Port.Length = 7; + Descriptor->u.Port.Length = 8; Descriptor->u.Port.Alignment = 1; Descriptor->u.Port.MinimumAddress.QuadPart = (ULONGLONG)CommandPortBase; - Descriptor->u.Port.MaximumAddress.QuadPart = (ULONGLONG)(CommandPortBase + 7 - 1); + Descriptor->u.Port.MaximumAddress.QuadPart = (ULONGLONG)(CommandPortBase + Descriptor->u.Port.Length - 1); Descriptor++; /* Control port base */ @@ -273,7 +273,7 @@ PciIdeXPdoQueryResourceRequirements( Descriptor->u.Port.Length = 1; Descriptor->u.Port.Alignment = 1; Descriptor->u.Port.MinimumAddress.QuadPart = (ULONGLONG)ControlPortBase; - Descriptor->u.Port.MaximumAddress.QuadPart = (ULONGLONG)(ControlPortBase + 1 - 1); + Descriptor->u.Port.MaximumAddress.QuadPart = (ULONGLONG)(ControlPortBase + Descriptor->u.Port.Length - 1); Descriptor++; /* Interrupt */ diff --git a/drivers/storage/ide/uniata/bm_devs.h b/drivers/storage/ide/uniata/bm_devs.h index 5acef02a1d758..78893e42c904c 100644 --- a/drivers/storage/ide/uniata/bm_devs.h +++ b/drivers/storage/ide/uniata/bm_devs.h @@ -352,7 +352,7 @@ BUSMASTER_CONTROLLER_INFORMATION_BASE const BusMasterAdapters[] = { PCI_DEV_HW_SPEC_BM( 9d05, 8086, 0x00, ATA_SA300, "Intel Sunrise Point-LP" , UNIATA_SATA | UNIATA_AHCI | UNIATA_RAID_CONTROLLER), PCI_DEV_HW_SPEC_BM( 9d07, 8086, 0x00, ATA_SA300, "Intel Sunrise Point-LP" , UNIATA_SATA | UNIATA_AHCI | UNIATA_RAID_CONTROLLER), - PCI_DEV_HW_SPEC_BM( a102, 8086, 0x00, ATA_SA300, "Intel Sunrise Point" , UNIATA_SATA | UNIATA_AHCI ), +/* PCI_DEV_HW_SPEC_BM( a102, 8086, 0x00, ATA_SA300, "Intel Sunrise Point" , UNIATA_SATA | UNIATA_AHCI ),*/ /* workaround regression CORE-16078 */ PCI_DEV_HW_SPEC_BM( a103, 8086, 0x00, ATA_SA300, "Intel Sunrise Point" , UNIATA_SATA | UNIATA_AHCI ), PCI_DEV_HW_SPEC_BM( a105, 8086, 0x00, ATA_SA300, "Intel Sunrise Point" , UNIATA_SATA | UNIATA_AHCI | UNIATA_RAID_CONTROLLER), PCI_DEV_HW_SPEC_BM( a106, 8086, 0x00, ATA_SA300, "Intel Sunrise Point" , UNIATA_SATA | UNIATA_AHCI | UNIATA_RAID_CONTROLLER), diff --git a/hal/halx86/generic/misc.c b/hal/halx86/generic/misc.c index 407f1e6047a9f..7e1eb37d7adc6 100644 --- a/hal/halx86/generic/misc.c +++ b/hal/halx86/generic/misc.c @@ -244,7 +244,7 @@ HalHandleNMI(IN PVOID NmiInfo) SystemControl.Bits = __inbyte(SYSTEM_CONTROL_PORT_B); // - // Switch to boot vieo + // Switch to boot video // if (InbvIsBootDriverInstalled()) { @@ -257,13 +257,13 @@ HalHandleNMI(IN PVOID NmiInfo) // // Fill the screen // - InbvSolidColorFill(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, 1); + InbvSolidColorFill(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, BV_COLOR_RED); InbvSetScrollRegion(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1); // // Enable text // - InbvSetTextColor(15); + InbvSetTextColor(BV_COLOR_WHITE); InbvInstallDisplayStringFilter(NULL); InbvEnableDisplayString(TRUE); } diff --git a/hal/halx86/up/pic.c b/hal/halx86/up/pic.c index e39f81a54935e..2164d8c03b075 100644 --- a/hal/halx86/up/pic.c +++ b/hal/halx86/up/pic.c @@ -99,7 +99,6 @@ PHAL_DISMISS_INTERRUPT HalpSpecialDismissLevelTable[16] = /* This table contains the static x86 PIC mapping between IRQLs and IRQs */ ULONG KiI8259MaskTable[32] = { -#if defined(__GNUC__) || defined(__clang__) || (defined(_MSC_VER) && _MSC_VER >= 1900) /* * It Device IRQLs only start at 4 or higher, so these are just software * IRQLs that don't really change anything on the hardware @@ -176,46 +175,11 @@ ULONG KiI8259MaskTable[32] = 0b11111111111111111111111111111011, /* IRQL 29 */ 0b11111111111111111111111111111011, /* IRQL 30 */ 0b11111111111111111111111111111011 /* IRQL 31 */ -#else - 0, /* IRQL 0 */ - 0, /* IRQL 1 */ - 0, /* IRQL 2 */ - 0, /* IRQL 3 */ - 0xFF800000, /* IRQL 4 */ - 0xFFC00000, /* IRQL 5 */ - 0xFFE00000, /* IRQL 6 */ - 0xFFF00000, /* IRQL 7 */ - 0xFFF80000, /* IRQL 8 */ - 0xFFFC0000, /* IRQL 9 */ - 0xFFFE0000, /* IRQL 10 */ - 0xFFFF0000, /* IRQL 11 */ - 0xFFFF8000, /* IRQL 12 */ - 0xFFFFC000, /* IRQL 13 */ - 0xFFFFE000, /* IRQL 14 */ - 0xFFFFF000, /* IRQL 15 */ - 0xFFFFF800, /* IRQL 16 */ - 0xFFFFFC00, /* IRQL 17 */ - 0xFFFFFE00, /* IRQL 18 */ - 0xFFFFFE00, /* IRQL 19 */ - 0xFFFFFE80, /* IRQL 20 */ - 0xFFFFFEC0, /* IRQL 21 */ - 0xFFFFFEE0, /* IRQL 22 */ - 0xFFFFFEF0, /* IRQL 23 */ - 0xFFFFFEF8, /* IRQL 24 */ - 0xFFFFFEF8, /* IRQL 25 */ - 0xFFFFFEFA, /* IRQL 26 */ - 0xFFFFFFFA, /* IRQL 27 */ - 0xFFFFFFFB, /* IRQL 28 */ - 0xFFFFFFFB, /* IRQL 29 */ - 0xFFFFFFFB, /* IRQL 30 */ - 0xFFFFFFFB /* IRQL 31 */ -#endif }; /* This table indicates which IRQs, if pending, can preempt a given IRQL level */ ULONG FindHigherIrqlMask[32] = { -#if defined(__GNUC__) || defined(__clang__) || (defined(_MSC_VER) && _MSC_VER >= 1900) /* * Software IRQLs, at these levels all hardware interrupts can preempt. * Each higher IRQL simply enables which software IRQL can preempt the @@ -281,40 +245,6 @@ ULONG FindHigherIrqlMask[32] = 0b00000000000000000000000000000000, /* IRQL 29 */ 0b00000000000000000000000000000000, /* IRQL 30 */ 0b00000000000000000000000000000000 /* IRQL 31 */ -#else - 0xFFFFFFFE, /* IRQL 0 */ - 0xFFFFFFFC, /* IRQL 1 */ - 0xFFFFFFF8, /* IRQL 2 */ - 0xFFFFFFF0, /* IRQL 3 */ - 0x7FFFFF0, /* IRQL 4 */ - 0x3FFFFF0, /* IRQL 5 */ - 0x1FFFFF0, /* IRQL 6 */ - 0x0FFFFF0, /* IRQL 7 */ - 0x7FFFF0, /* IRQL 8 */ - 0x3FFFF0, /* IRQL 9 */ - 0x1FFFF0, /* IRQL 10 */ - 0x0FFFF0, /* IRQL 11 */ - 0x7FFF0, /* IRQL 12 */ - 0x3FFF0, /* IRQL 13 */ - 0x1FFF0, /* IRQL 14 */ - 0x0FFF0, /* IRQL 15 */ - 0x7FF0, /* IRQL 16 */ - 0x3FF0, /* IRQL 17 */ - 0x1FF0, /* IRQL 18 */ - 0x1FF0, /* IRQL 19 */ - 0x17F0, /* IRQL 20 */ - 0x13F0, /* IRQL 21 */ - 0x11F0, /* IRQL 22 */ - 0x10F0, /* IRQL 23 */ - 0x1070, /* IRQL 24 */ - 0x1030, /* IRQL 25 */ - 0x1010, /* IRQL 26 */ - 0x10, /* IRQL 27 */ - 0, /* IRQL 28 */ - 0, /* IRQL 29 */ - 0, /* IRQL 30 */ - 0 /* IRQL 31 */ -#endif }; /* Denotes minimum required IRQL before we can process pending SW interrupts */ diff --git a/media/doc/README.WINE b/media/doc/README.WINE index 718ba2425d9dc..b174c23d3cf5f 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -158,6 +158,7 @@ dll/win32/qmgr # Synced to WineStaging-4.18 dll/win32/qmgrprxy # Synced to WineStaging-2.9 dll/win32/query # Synced to WineStaging-4.18 dll/win32/rasapi32 # Synced to WineStaging-3.3 +dll/win32/regapi # Synced to WineStaging-5.7 dll/win32/resutils # Synced to WineStaging-3.3 dll/win32/riched20 # Synced to WineStaging-4.18 dll/win32/riched32 # Synced to WineStaging-3.3 diff --git a/media/inf/machine.inf b/media/inf/machine.inf index 69ac0b92b2513..744907fed7b3b 100644 --- a/media/inf/machine.inf +++ b/media/inf/machine.inf @@ -116,8 +116,7 @@ CopyFiles = PCI_ISA_CopyFiles.NT isapnp.sys [PCI_ISA_Inst.NT.Services] -;AddService = isapnp, 0x00000002, isapnp_Service_Inst -AddService = , 0x00000002 +AddService = isapnp, 0x00000002, isapnp_Service_Inst [isapnp_Service_Inst] ServiceType = 1 diff --git a/media/inf/shortcuts.inf b/media/inf/shortcuts.inf index 58493c61d7595..076fa0db147af 100644 --- a/media/inf/shortcuts.inf +++ b/media/inf/shortcuts.inf @@ -22,6 +22,7 @@ QuickLaunchShortcuts=26, Microsoft\Internet Explorer\Quick Launch [ProgramShortcuts] %SystemRoot%\explorer.exe, %EXPLORER_TITLE%, %EXPLORER_DESC%, 1, %HOMEDRIVE%%HOMEPATH% %SystemRoot%\system32\rapps.exe, %RAPPS_TITLE%, %RAPPS_DESC%, 0 +%16422%\Internet Explorer\iexplore.exe, %IEXPLORE_TITLE%, %IEXPLORE_DESC%, 0 [AdminToolsShortcuts] %SystemRoot%\system32\servman.exe, %SERVMAN_TITLE%, %SERVMAN_DESC%, 0 @@ -136,6 +137,8 @@ SPIDER_TITLE=Spider Solitaire SPIDER_DESC=Spider Solitaire UTILMAN_TITLE=Accessibility Utility Manager UTILMAN_DESC=Launch Accessibility Utility Manager +IEXPLORE_TITLE=Wine Internet Explorer +IEXPLORE_DESC=Wine Web Browser ; Bulgarian [Strings.0402] @@ -585,6 +588,8 @@ SPIDER_TITLE=Spider Solitaire SPIDER_DESC=Spider Solitaire UTILMAN_TITLE=Gestionnaire d'utilitaires d'accessibilité UTILMAN_DESC=Lance le gestionnaire d'utilitaires d'accessibilité +IEXPLORE_TITLE=Wine Internet Explorer +IEXPLORE_DESC=Lance le navigateur Wine Internet Explorer ; Hebrew [Strings.040D] diff --git a/modules/rosapps/applications/sysutils/man/man.c b/modules/rosapps/applications/sysutils/man/man.c index e382972b08d0f..825b7954396cf 100644 --- a/modules/rosapps/applications/sysutils/man/man.c +++ b/modules/rosapps/applications/sysutils/man/man.c @@ -15,6 +15,7 @@ */ +#include #include #include #include @@ -37,7 +38,7 @@ int AnalyzeFile(); /*====[Globals]====*/ FILE* manfile; char OpenFlag=0; -char manpath[MAXLINE]="c:\\man\\"; +char manpath[MAX_PATH]; /*=================*/ void @@ -49,21 +50,34 @@ SetCl(WORD cl) int OpenF(char* name) { - int retval=0; - char *manpath_local=(char*)malloc(sizeof(char)*MAXLINE); + int ret = 0; + char *cp; - strcpy(manpath_local, manpath); //save mandir value + /* C:\man\\... */ + cp = getenv("SystemDrive"); + if (cp && *cp) + { + strcpy(manpath, cp); + strcat(manpath, "\\man\\"); + } + else + { + strcpy(manpath, "C:\\man\\"); + } + strcat(manpath, name); - if((manfile=fopen((strcat(manpath_local,name)),"r"))!=NULL) - { - OpenFlag=1; - AnalyzeFile(); - } + manfile = fopen(manpath, "r"); + if (manfile != NULL) + { + OpenFlag = 1; + AnalyzeFile(); + } else - retval=-1; + { + ret = -1; + } - free(manpath_local); - return retval; + return ret; } int diff --git a/modules/rostests/apitests/ntdll/CMakeLists.txt b/modules/rostests/apitests/ntdll/CMakeLists.txt index fc46b1db67693..6e25db84d1279 100644 --- a/modules/rostests/apitests/ntdll/CMakeLists.txt +++ b/modules/rostests/apitests/ntdll/CMakeLists.txt @@ -26,6 +26,7 @@ list(APPEND SOURCE NtProtectVirtualMemory.c NtQueryInformationFile.c NtQueryInformationProcess.c + NtQueryInformationThread.c NtQueryKey.c NtQuerySystemEnvironmentValue.c NtQuerySystemInformation.c diff --git a/modules/rostests/apitests/ntdll/NtQueryInformationThread.c b/modules/rostests/apitests/ntdll/NtQueryInformationThread.c new file mode 100644 index 0000000000000..df4d2d0b9393b --- /dev/null +++ b/modules/rostests/apitests/ntdll/NtQueryInformationThread.c @@ -0,0 +1,106 @@ +/* + * PROJECT: ReactOS API tests + * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later) + * PURPOSE: Tests for the NtQueryInformationThread API + * COPYRIGHT: Copyright 2020 George Bișoc + */ + +#include "precomp.h" + +static +void +Test_ThreadBasicInformationClass(void) +{ + NTSTATUS Status; + PTHREAD_BASIC_INFORMATION ThreadInfoBasic; + ULONG ReturnedLength; + + ThreadInfoBasic = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(THREAD_BASIC_INFORMATION)); + if (!ThreadInfoBasic) + { + skip("Failed to allocate memory for THREAD_BASIC_INFORMATION!\n"); + return; + } + + /* Everything is NULL */ + Status = NtQueryInformationThread(NULL, + ThreadBasicInformation, + NULL, + 0, + NULL); + ok_hex(Status, STATUS_INFO_LENGTH_MISMATCH); + + /* Don't give a valid thread handle */ + Status = NtQueryInformationThread(NULL, + ThreadBasicInformation, + ThreadInfoBasic, + sizeof(THREAD_BASIC_INFORMATION), + NULL); + ok_hex(Status, STATUS_INVALID_HANDLE); + + /* The information length is incorrect */ + Status = NtQueryInformationThread(GetCurrentThread(), + ThreadBasicInformation, + ThreadInfoBasic, + 0, + NULL); + ok_hex(Status, STATUS_INFO_LENGTH_MISMATCH); + + /* Don't query anything from the function */ + Status = NtQueryInformationThread(GetCurrentThread(), + ThreadBasicInformation, + NULL, + sizeof(THREAD_BASIC_INFORMATION), + NULL); + ok_hex(Status, STATUS_ACCESS_VIOLATION); + + /* The buffer is misaligned and length information is wrong */ + Status = NtQueryInformationThread(GetCurrentThread(), + ThreadBasicInformation, + (PVOID)1, + 0, + NULL); + ok_hex(Status, STATUS_INFO_LENGTH_MISMATCH); + + /* The buffer is misaligned */ + Status = NtQueryInformationThread(GetCurrentThread(), + ThreadBasicInformation, + (PVOID)1, + sizeof(THREAD_BASIC_INFORMATION), + NULL); + ok_hex(Status, STATUS_DATATYPE_MISALIGNMENT); + + /* The buffer is misaligned, try with an alignment size of 2 */ + Status = NtQueryInformationThread(GetCurrentThread(), + ThreadBasicInformation, + (PVOID)2, + sizeof(THREAD_BASIC_INFORMATION), + NULL); + ok_hex(Status, STATUS_DATATYPE_MISALIGNMENT); + + /* Query the basic information we need from the thread */ + Status = NtQueryInformationThread(GetCurrentThread(), + ThreadBasicInformation, + ThreadInfoBasic, + sizeof(THREAD_BASIC_INFORMATION), + &ReturnedLength); + ok_hex(Status, STATUS_SUCCESS); + ok(ReturnedLength != 0, "The size of the buffer pointed by ThreadInformation shouldn't be 0!\n"); + + /* Output the thread basic information details */ + trace("ReturnedLength = %lu\n", ReturnedLength); + trace("ThreadInfoBasic->ExitStatus = 0x%08lx\n", ThreadInfoBasic->ExitStatus); + trace("ThreadInfoBasic->TebBaseAddress = %p\n", ThreadInfoBasic->TebBaseAddress); + trace("ThreadInfoBasic->ClientId.UniqueProcess = %p\n", ThreadInfoBasic->ClientId.UniqueProcess); + trace("ThreadInfoBasic->ClientId.UniqueThread = %p\n", ThreadInfoBasic->ClientId.UniqueThread); + trace("ThreadInfoBasic->AffinityMask = %lu\n", ThreadInfoBasic->AffinityMask); + trace("ThreadInfoBasic->Priority = %li\n", ThreadInfoBasic->Priority); + trace("ThreadInfoBasic->BasePriority = %li\n", ThreadInfoBasic->BasePriority); + + HeapFree(GetProcessHeap(), 0, ThreadInfoBasic); +} + +START_TEST(NtQueryInformationThread) +{ + Test_ThreadBasicInformationClass(); +} diff --git a/modules/rostests/apitests/ntdll/testlist.c b/modules/rostests/apitests/ntdll/testlist.c index b2131a07b811a..293a7cc45c5b3 100644 --- a/modules/rostests/apitests/ntdll/testlist.c +++ b/modules/rostests/apitests/ntdll/testlist.c @@ -24,6 +24,7 @@ extern void func_NtOpenThreadToken(void); extern void func_NtProtectVirtualMemory(void); extern void func_NtQueryInformationFile(void); extern void func_NtQueryInformationProcess(void); +extern void func_NtQueryInformationThread(void); extern void func_NtQueryKey(void); extern void func_NtQuerySystemEnvironmentValue(void); extern void func_NtQuerySystemInformation(void); @@ -96,6 +97,7 @@ const struct test winetest_testlist[] = { "NtProtectVirtualMemory", func_NtProtectVirtualMemory }, { "NtQueryInformationFile", func_NtQueryInformationFile }, { "NtQueryInformationProcess", func_NtQueryInformationProcess }, + { "NtQueryInformationThread", func_NtQueryInformationThread }, { "NtQueryKey", func_NtQueryKey }, { "NtQuerySystemEnvironmentValue", func_NtQuerySystemEnvironmentValue }, { "NtQuerySystemInformation", func_NtQuerySystemInformation }, diff --git a/modules/rostests/apitests/ws2_32/WSAAsync.c b/modules/rostests/apitests/ws2_32/WSAAsync.c index 400cba8b52a60..0850d8fe32107 100644 --- a/modules/rostests/apitests/ws2_32/WSAAsync.c +++ b/modules/rostests/apitests/ws2_32/WSAAsync.c @@ -10,6 +10,7 @@ #define SVR_PORT 5000 #define WAIT_TIMEOUT_ 10000 #define EXIT_FLAGS (FD_ACCEPT|FD_CONNECT) +#define MAX_LOOPCOUNT 9u START_TEST(WSAAsync) { @@ -36,6 +37,8 @@ START_TEST(WSAAsync) struct fd_set select_efds; struct timeval timeval; BOOL ConnectSent = FALSE; + unsigned int Addr_con_locLoopCount = 0, + ServerSocketLoopCount = 0; if (WSAStartup(MAKEWORD(2, 2), &WsaData) != 0) { @@ -124,7 +127,7 @@ START_TEST(WSAAsync) if (dwWait != WAIT_OBJECT_0 && // server socket event dwWait != WAIT_OBJECT_0+1) // client socket event { - ok(0, "Unknown event received %ld\n", dwWait); + ok(FALSE, "Unknown event received %lu\n", dwWait); skip("ERROR: Connection timeout\n"); break; } @@ -227,12 +230,27 @@ START_TEST(WSAAsync) else { if (nSockNameRes != 0) - ok(0, "ERROR: getsockname function failed, expected %d error %d\n", 0, nSockNameRes); + ok(FALSE, "ERROR: getsockname function failed, expected 0 error %d\n", nSockNameRes); if (len != sizeof(addr_con_loc)) - ok(0, "ERROR: getsockname function wrong size, expected %d returned %d\n", sizeof(addr_con_loc), len); - // FIXME: fails on WHS testbot - //if (addr_con_loc.sin_addr.s_addr != server_addr_in.sin_addr.s_addr) - // ok(0, "ERROR: getsockname function wrong addr, expected %lx returned %lx\n", server_addr_in.sin_addr.s_addr, addr_con_loc.sin_addr.s_addr); + ok(FALSE, "ERROR: getsockname function wrong size, expected %Iu returned %d\n", sizeof(addr_con_loc), len); + + if (addr_con_loc.sin_addr.s_addr == 0ul) + { + if (++Addr_con_locLoopCount >= MAX_LOOPCOUNT) + { + ok(FALSE, "Giving up, on getsockname() (%u/%u), as addr_con_loc is not set yet\n", + Addr_con_locLoopCount, MAX_LOOPCOUNT); + goto done; + } + + trace("Looping, for getsockname() (%u/%u), as addr_con_loc is not set yet\n", + Addr_con_locLoopCount, MAX_LOOPCOUNT); + Sleep(1); + continue; + } + + if (addr_con_loc.sin_addr.s_addr != server_addr_in.sin_addr.s_addr) + ok(FALSE, "ERROR: getsockname function wrong addr, expected %08lx returned %08lx\n", server_addr_in.sin_addr.s_addr, addr_con_loc.sin_addr.s_addr); } if ((dwFlags & FD_ACCEPT) != 0) {// client connected @@ -281,6 +299,20 @@ START_TEST(WSAAsync) ok(sockaccept != INVALID_SOCKET, "ERROR: Connection accept function failed, error %d\n", WSAGetLastError()); dwFlags |= FD_ACCEPT; } + else + { + if (++ServerSocketLoopCount >= MAX_LOOPCOUNT) + { + ok(FALSE, "Giving up, on select() (%u/%u), as ServerSocket is not readable yet\n", + ServerSocketLoopCount, MAX_LOOPCOUNT); + goto done; + } + + trace("Looping, for select() (%u/%u), as ServerSocket is not readable yet\n", + ServerSocketLoopCount, MAX_LOOPCOUNT); + Sleep(1); + continue; + } } } } diff --git a/ntoskrnl/CMakeLists.txt b/ntoskrnl/CMakeLists.txt index 96fcab407d97f..be575b9892f11 100644 --- a/ntoskrnl/CMakeLists.txt +++ b/ntoskrnl/CMakeLists.txt @@ -38,8 +38,7 @@ else() else() set_image_base(ntoskrnl 0x80800000) endif() - #Disabled due to LD bug: ROSBE-154 - #add_linker_script(ntoskrnl ${REACTOS_SOURCE_DIR}/sdk/cmake/init-section.lds) + add_linker_script(ntoskrnl ${REACTOS_SOURCE_DIR}/sdk/cmake/init-section.lds) endif() target_link_libraries(ntoskrnl cportlib csq ${PSEH_LIB} arbiter cmlib ntlsalib rtl ${ROSSYM_LIB} libcntpr wdmguid ioevent) diff --git a/ntoskrnl/inbv/inbv.c b/ntoskrnl/inbv/inbv.c index 5617e8577e237..76af14c4bd721 100644 --- a/ntoskrnl/inbv/inbv.c +++ b/ntoskrnl/inbv/inbv.c @@ -779,7 +779,7 @@ InbvUpdateProgressBar(IN ULONG Progress) ProgressBarTop, ProgressBarLeft + FillCount, ProgressBarTop + 12, - 15); + BV_COLOR_WHITE); /* Release the lock */ InbvReleaseLock(); @@ -827,7 +827,7 @@ InbvBitBlt(IN PUCHAR Buffer, VOID NTAPI -InbvScreenToBufferBlt(IN PUCHAR Buffer, +InbvScreenToBufferBlt(OUT PUCHAR Buffer, IN ULONG X, IN ULONG Y, IN ULONG Width, @@ -1021,7 +1021,7 @@ InbvRotationThread( if (Index >= 3) { /* Fill previous bar position */ - VidSolidColorFill(X + ((Index - 3) * 8), Y, (X + ((Index - 3) * 8)) + 8 - 1, Y + 9 - 1, 0); + VidSolidColorFill(X + ((Index - 3) * 8), Y, (X + ((Index - 3) * 8)) + 8 - 1, Y + 9 - 1, BV_COLOR_BLACK); } if (Index < Total - 1) { @@ -1120,9 +1120,9 @@ DisplayBootBitmap(IN BOOLEAN TextMode) if (SharedUserData->NtProductType == NtProductWinNt) { /* Workstation; set colors */ - InbvSetTextColor(15); - InbvSolidColorFill(0, 0, SCREEN_WIDTH-1, SCREEN_HEIGHT-1, 7); - InbvSolidColorFill(0, VID_FOOTER_BG_TOP, SCREEN_WIDTH-1, SCREEN_HEIGHT-1, 1); + InbvSetTextColor(BV_COLOR_WHITE); + InbvSolidColorFill(0, 0, SCREEN_WIDTH-1, SCREEN_HEIGHT-1, BV_COLOR_DARK_GRAY); + InbvSolidColorFill(0, VID_FOOTER_BG_TOP, SCREEN_WIDTH-1, SCREEN_HEIGHT-1, BV_COLOR_RED); /* Get resources */ Header = InbvGetResourceAddress(IDB_WKSTA_HEADER); @@ -1131,9 +1131,9 @@ DisplayBootBitmap(IN BOOLEAN TextMode) else { /* Server; set colors */ - InbvSetTextColor(14); - InbvSolidColorFill(0, 0, SCREEN_WIDTH-1, SCREEN_HEIGHT-1, 6); - InbvSolidColorFill(0, VID_FOOTER_BG_TOP, SCREEN_WIDTH-1, SCREEN_HEIGHT-1, 1); + InbvSetTextColor(BV_COLOR_LIGHT_CYAN); + InbvSolidColorFill(0, 0, SCREEN_WIDTH-1, SCREEN_HEIGHT-1, BV_COLOR_CYAN); + InbvSolidColorFill(0, VID_FOOTER_BG_TOP, SCREEN_WIDTH-1, SCREEN_HEIGHT-1, BV_COLOR_RED); /* Get resources */ Header = InbvGetResourceAddress(IDB_SERVER_HEADER); @@ -1246,7 +1246,7 @@ DisplayBootBitmap(IN BOOLEAN TextMode) InbvScreenToBufferBlt(Buffer, VID_SKU_SAVE_AREA_LEFT, VID_SKU_SAVE_AREA_TOP, 7, 7, 8); InbvSolidColorFill(VID_SKU_AREA_LEFT, VID_SKU_AREA_TOP, - VID_SKU_AREA_RIGHT, VID_SKU_AREA_BOTTOM, 0); + VID_SKU_AREA_RIGHT, VID_SKU_AREA_BOTTOM, BV_COLOR_BLACK); InbvBufferToScreenBlt(Buffer, VID_SKU_SAVE_AREA_LEFT, VID_SKU_SAVE_AREA_TOP, 7, 7, 8); @@ -1390,7 +1390,7 @@ FinalizeBootLogo(VOID) if (InbvGetDisplayState() == INBV_DISPLAY_STATE_OWNED) { /* Clear the screen */ - VidSolidColorFill(0, 0, SCREEN_WIDTH-1, SCREEN_HEIGHT-1, 0); + VidSolidColorFill(0, 0, SCREEN_WIDTH-1, SCREEN_HEIGHT-1, BV_COLOR_BLACK); } /* Reset progress bar and lock */ diff --git a/ntoskrnl/kd/kdio.c b/ntoskrnl/kd/kdio.c index 89ca1685f74a2..678a335741f0b 100644 --- a/ntoskrnl/kd/kdio.c +++ b/ntoskrnl/kd/kdio.c @@ -418,8 +418,8 @@ KdpScreenAcquire(VOID) /* Acquire ownership and reset the display */ InbvAcquireDisplayOwnership(); InbvResetDisplay(); - InbvSolidColorFill(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, 0); - InbvSetTextColor(15); + InbvSolidColorFill(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, BV_COLOR_BLACK); + InbvSetTextColor(BV_COLOR_WHITE); InbvInstallDisplayStringFilter(NULL); InbvEnableDisplayString(TRUE); InbvSetScrollRegion(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1); diff --git a/ntoskrnl/ke/bug.c b/ntoskrnl/ke/bug.c index 0601855d359d5..38e0077d9de61 100644 --- a/ntoskrnl/ke/bug.c +++ b/ntoskrnl/ke/bug.c @@ -626,8 +626,8 @@ KiDisplayBlueScreen(IN ULONG MessageId, InbvResetDisplay(); /* Display blue screen */ - InbvSolidColorFill(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, 4); - InbvSetTextColor(15); + InbvSolidColorFill(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, BV_COLOR_BLUE); + InbvSetTextColor(BV_COLOR_WHITE); InbvInstallDisplayStringFilter(NULL); InbvEnableDisplayString(TRUE); InbvSetScrollRegion(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1); diff --git a/ntoskrnl/po/poshtdwn.c b/ntoskrnl/po/poshtdwn.c index 31a1165e33f43..c52f8c7680be5 100644 --- a/ntoskrnl/po/poshtdwn.c +++ b/ntoskrnl/po/poshtdwn.c @@ -162,7 +162,7 @@ PopShutdownHandler(VOID) /* Yes we do, cleanup for shutdown screen */ if (!InbvCheckDisplayOwnership()) InbvAcquireDisplayOwnership(); InbvResetDisplay(); - InbvSolidColorFill(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, 0); + InbvSolidColorFill(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, BV_COLOR_BLACK); InbvEnableDisplayString(TRUE); InbvSetScrollRegion(0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1); diff --git a/sdk/cmake/init-section.lds b/sdk/cmake/init-section.lds index 2b81515010521..ca46bd1451e2a 100644 --- a/sdk/cmake/init-section.lds +++ b/sdk/cmake/init-section.lds @@ -8,4 +8,5 @@ SECTIONS __init_end__ = . ; } } -INSERT AFTER .reloc; +/*INSERT AFTER .reloc;*//*This is what we actually want to do, but do not dare due to LD bug ROSBE-154*/ +INSERT AFTER .rsrc; /*This is what we do instead to at least fix CORE-14683*/ diff --git a/sdk/include/ndk/cmtypes.h b/sdk/include/ndk/cmtypes.h index 6446f4efec28e..d5cbced0aeaad 100644 --- a/sdk/include/ndk/cmtypes.h +++ b/sdk/include/ndk/cmtypes.h @@ -144,6 +144,13 @@ typedef enum _CM_SHARE_DISPOSITION #define CM_RESOURCE_INTERRUPT_LATCHED 0x0001 #define CM_RESOURCE_INTERRUPT_MESSAGE 0x0002 #define CM_RESOURCE_INTERRUPT_POLICY_INCLUDED 0x0004 +#define CM_RESOURCE_INTERRUPT_ALLOW_RESERVED_IDT 0x0008 +#define CM_RESOURCE_INTERRUPT_SECONDARY_INTERRUPT 0x0010 +#define CM_RESOURCE_INTERRUPT_WAKE_HINT 0x0020 + +#define CM_RESOURCE_INTERRUPT_LEVEL_LATCHED_BITS 0x0001 + +#define CM_RESOURCE_INTERRUPT_MESSAGE_TOKEN ((ULONG)-2) // // NtInitializeRegistry Flags diff --git a/sdk/include/reactos/drivers/bootvid/bootvid.h b/sdk/include/reactos/drivers/bootvid/bootvid.h index 23971957f4d4e..6df26e967390c 100644 --- a/sdk/include/reactos/drivers/bootvid/bootvid.h +++ b/sdk/include/reactos/drivers/bootvid/bootvid.h @@ -14,29 +14,34 @@ BOOLEAN NTAPI -VidInitialize(IN BOOLEAN SetMode); +VidInitialize( + _In_ BOOLEAN SetMode); VOID NTAPI -VidResetDisplay(IN BOOLEAN HalReset); +VidResetDisplay( + _In_ BOOLEAN HalReset); ULONG NTAPI -VidSetTextColor(IN ULONG Color); +VidSetTextColor( + _In_ ULONG Color); VOID NTAPI -VidDisplayStringXY(IN PUCHAR String, - IN ULONG Left, - IN ULONG Top, - IN BOOLEAN Transparent); +VidDisplayStringXY( + _In_ PUCHAR String, + _In_ ULONG Left, + _In_ ULONG Top, + _In_ BOOLEAN Transparent); VOID NTAPI -VidSetScrollRegion(IN ULONG Left, - IN ULONG Top, - IN ULONG Right, - IN ULONG Bottom); +VidSetScrollRegion( + _In_ ULONG Left, + _In_ ULONG Top, + _In_ ULONG Right, + _In_ ULONG Bottom); VOID NTAPI @@ -44,38 +49,43 @@ VidCleanUp(VOID); VOID NTAPI -VidBufferToScreenBlt(IN PUCHAR Buffer, - IN ULONG Left, - IN ULONG Top, - IN ULONG Width, - IN ULONG Height, - IN ULONG Delta); +VidBufferToScreenBlt( + _In_ PUCHAR Buffer, + _In_ ULONG Left, + _In_ ULONG Top, + _In_ ULONG Width, + _In_ ULONG Height, + _In_ ULONG Delta); VOID NTAPI -VidDisplayString(IN PUCHAR String); +VidDisplayString( + _In_ PUCHAR String); VOID NTAPI -VidBitBlt(IN PUCHAR Buffer, - IN ULONG Left, - IN ULONG Top); +VidBitBlt( + _In_ PUCHAR Buffer, + _In_ ULONG Left, + _In_ ULONG Top); VOID NTAPI -VidScreenToBufferBlt(OUT PUCHAR Buffer, - IN ULONG Left, - IN ULONG Top, - IN ULONG Width, - IN ULONG Height, - IN ULONG Delta); +VidScreenToBufferBlt( + _Out_ PUCHAR Buffer, + _In_ ULONG Left, + _In_ ULONG Top, + _In_ ULONG Width, + _In_ ULONG Height, + _In_ ULONG Delta); VOID NTAPI -VidSolidColorFill(IN ULONG Left, - IN ULONG Top, - IN ULONG Right, - IN ULONG Bottom, - IN UCHAR Color); +VidSolidColorFill( + _In_ ULONG Left, + _In_ ULONG Top, + _In_ ULONG Right, + _In_ ULONG Bottom, + _In_ UCHAR Color); #endif // _BOOTVID_ diff --git a/sdk/include/reactos/drivers/bootvid/display.h b/sdk/include/reactos/drivers/bootvid/display.h index af9178153adf2..fc509c1fe6bf3 100644 --- a/sdk/include/reactos/drivers/bootvid/display.h +++ b/sdk/include/reactos/drivers/bootvid/display.h @@ -10,3 +10,23 @@ /* For default VGA */ #define SCREEN_WIDTH 640 #define SCREEN_HEIGHT 480 + +/* Boot video default color palette constants */ +#define BV_COLOR_BLACK 0 +#define BV_COLOR_RED 1 +#define BV_COLOR_GREEN 2 +#define BV_COLOR_BROWN 3 +#define BV_COLOR_BLUE 4 +#define BV_COLOR_MAGENTA 5 +#define BV_COLOR_CYAN 6 +#define BV_COLOR_DARK_GRAY 7 +#define BV_COLOR_LIGHT_GRAY 8 +#define BV_COLOR_LIGHT_RED 9 +#define BV_COLOR_LIGHT_GREEN 10 +#define BV_COLOR_YELLOW 11 +#define BV_COLOR_LIGHT_BLUE 12 +#define BV_COLOR_LIGHT_MAGENTA 13 +#define BV_COLOR_LIGHT_CYAN 14 +#define BV_COLOR_WHITE 15 +#define BV_COLOR_NONE 16 +#define BV_MAX_COLORS 16 diff --git a/sdk/include/reactos/drivers/pc98/video.h b/sdk/include/reactos/drivers/pc98/video.h index c55211d091b91..35a5f704b7554 100644 --- a/sdk/include/reactos/drivers/pc98/video.h +++ b/sdk/include/reactos/drivers/pc98/video.h @@ -9,16 +9,19 @@ /* Video memory ***************************************************************/ -#define VRAM_NORMAL_PLANE_B 0xA8000 -#define VRAM_NORMAL_PLANE_G 0xB0000 -#define VRAM_NORMAL_PLANE_R 0xB8000 -#define VRAM_NORMAL_PLANE_I 0xE0000 +#define VRAM_NORMAL_PLANE_B 0xA8000 /* Blue */ +#define VRAM_NORMAL_PLANE_G 0xB0000 /* Green */ +#define VRAM_NORMAL_PLANE_R 0xB8000 /* Red */ +#define VRAM_NORMAL_PLANE_I 0xE0000 /* Intensity */ #define VRAM_PLANE_SIZE 0x08000 #define VRAM_NORMAL_TEXT 0xA0000 #define VRAM_TEXT_ATTR_OFFSET 0x02000 #define VRAM_TEXT_SIZE 0x02000 #define VRAM_ATTR_SIZE 0x02000 +#define PEGC_FRAMEBUFFER_PACKED 0xF00000 +#define PEGC_FRAMEBUFFER_SIZE 0x080000 + /* High-resolution machine */ #define VRAM_HI_RESO_PLANE_B 0xC0000 #define VRAM_HI_RESO_PLANE_G 0xC8000 @@ -52,39 +55,96 @@ #define GDC_ATTR_YELLOW 0xC0 #define GDC_ATTR_WHITE 0xE0 -#define GDC_COMMAND_RESET 0x00 +/* Operation type */ +#define GDC_MOD_REPLACE 0x00 +#define GDC_MOD_COMPLEMENT 0x01 /* XOR */ +#define GDC_MOD_CLEAR 0x02 /* AND */ +#define GDC_MOD_SET 0x03 /* OR */ + +#define GDC_GRAPHICS_DRAWING 0x40 + +#define GDC_COMMAND_RESET1 0x00 +#define GDC_COMMAND_RESET2 0x01 +#define GDC_COMMAND_STOP2 0x05 +#define GDC_COMMAND_RESET3 0x09 #define GDC_COMMAND_BCTRL_STOP 0x0C #define GDC_COMMAND_BCTRL_START 0x0D + #define GDC_COMMAND_SYNC_ON 0x0E +typedef struct _SYNCPARAM +{ + UCHAR Flags; +#define SYNC_DISPLAY_MODE_GRAPHICS_AND_CHARACTERS 0x00 +#define SYNC_DISPLAY_MODE_GRAPHICS 0x02 +#define SYNC_DISPLAY_MODE_CHARACTERS 0x20 + +#define SYNC_VIDEO_FRAMING_NONINTERLACED 0x00 +#define SYNC_VIDEO_FRAMING_INTERLACED_REPEAT_FOR_CHARACTERS 0x08 +#define SYNC_VIDEO_FRAMING_INTERLACED 0x09 + +#define SYNC_DRAW_DURING_ACTIVE_DISPLAY_TIME_AND_RETRACE_BLANKING 0x00 +#define SYNC_DRAW_ONLY_DURING_RETRACE_BLANKING 0x10 + +#define SYNC_STATIC_RAM_NO_REFRESH 0x00 +#define SYNC_DYNAMIC_RAM_REFRESH 0x04 + + UCHAR ScreenWidthChars; + UCHAR HorizontalSyncWidth; + UCHAR VerticalSyncWidth; + UCHAR HorizontalFrontPorchWidth; + UCHAR HorizontalBackPorchWidth; + UCHAR VerticalFrontPorchWidth; + USHORT ScreenWidthLines; + UCHAR VerticalBackPorchWidth; +} SYNCPARAM, *PSYNCPARAM; + +FORCEINLINE +VOID +WRITE_GDC_SYNC(PUCHAR Port, PSYNCPARAM SyncParameters) +{ + WRITE_PORT_UCHAR(Port, SyncParameters->Flags & 0x3F); + WRITE_PORT_UCHAR(Port, SyncParameters->ScreenWidthChars - 2); + WRITE_PORT_UCHAR(Port, (SyncParameters->VerticalSyncWidth & 0x07) << 5 | + (SyncParameters->HorizontalSyncWidth - 1)); + WRITE_PORT_UCHAR(Port, ((SyncParameters->HorizontalFrontPorchWidth - 1) << 2) | + ((SyncParameters->VerticalSyncWidth & 0x18) >> 3)); + WRITE_PORT_UCHAR(Port, SyncParameters->HorizontalBackPorchWidth - 1); + WRITE_PORT_UCHAR(Port, SyncParameters->VerticalFrontPorchWidth); + WRITE_PORT_UCHAR(Port, SyncParameters->ScreenWidthLines & 0xFF); + WRITE_PORT_UCHAR(Port, (SyncParameters->VerticalBackPorchWidth << 2) | + ((SyncParameters->ScreenWidthLines & 0x300) >> 8)); +} + #define GDC_COMMAND_SYNC_OFF 0x0F #define GDC_COMMAND_WRITE 0x20 -#define GDC_COMMAND_SLAVE 0x6E -#define GDC_COMMAND_MASTER 0x6F +#define GDC_COMMAND_DMAW 0x24 -#define GDC_COMMAND_CSRFORM 0x4B -typedef struct _CSRFORMPARAM +#define GDC_COMMAND_ZOOM 0x46 +typedef struct _ZOOMPARAM { - BOOLEAN Show; - BOOLEAN Blink; - UCHAR BlinkRate; - UCHAR LinesPerRow; - UCHAR StartScanLine; - UCHAR EndScanLine; -} CSRFORMPARAM, *PCSRFORMPARAM; + UCHAR DisplayZoomFactor; + UCHAR WritingZoomFactor; +} ZOOMPARAM, *PZOOMPARAM; FORCEINLINE VOID -WRITE_GDC_CSRFORM(PUCHAR Port, PCSRFORMPARAM CursorParameters) +WRITE_GDC_ZOOM(PUCHAR Port, PZOOMPARAM ZoomParameters) { - WRITE_PORT_UCHAR(Port, ((CursorParameters->Show & 0x01) << 7) | - (CursorParameters->LinesPerRow - 1)); - WRITE_PORT_UCHAR(Port, ((CursorParameters->BlinkRate & 0x03) << 6) | - ((!CursorParameters->Blink & 0x01) << 5) | CursorParameters->StartScanLine); - WRITE_PORT_UCHAR(Port, (CursorParameters->EndScanLine << 3) | ((CursorParameters->BlinkRate & 0x1C) >> 2)); + WRITE_PORT_UCHAR(Port, ZoomParameters->DisplayZoomFactor << 4 | ZoomParameters->WritingZoomFactor); } -#define GDC_COMMAND_START 0x6B -#define GDC_COMMAND_ZOOM 0x46 +#define GDC_COMMAND_PITCH 0x47 +typedef struct _PITCHPARAM +{ + ULONG WordsPerScanline; +} PITCHPARAM, *PPITCHPARAM; + +FORCEINLINE +VOID +WRITE_GDC_PITCH(PUCHAR Port, PPITCHPARAM PitchParameters) +{ + WRITE_PORT_UCHAR(Port, PitchParameters->WordsPerScanline); +} #define GDC_COMMAND_CSRW 0x49 typedef struct _CSRWPARAM @@ -106,17 +166,62 @@ WRITE_GDC_CSRW(PUCHAR Port, PCSRWPARAM CursorParameters) ((CursorParameters->CursorAddress >> 16) & 0x03)); } -#define GDC_COMMAND_PRAM 0x70 -#define GDC_COMMAND_PITCH 0x47 #define GDC_COMMAND_MASK 0x4A + +#define GDC_COMMAND_CSRFORM 0x4B +typedef struct _CSRFORMPARAM +{ + BOOLEAN Show; + BOOLEAN Blink; + UCHAR BlinkRate; + UCHAR LinesPerRow; + UCHAR StartScanLine; + UCHAR EndScanLine; +} CSRFORMPARAM, *PCSRFORMPARAM; + +FORCEINLINE +VOID +WRITE_GDC_CSRFORM(PUCHAR Port, PCSRFORMPARAM CursorParameters) +{ + WRITE_PORT_UCHAR(Port, ((CursorParameters->Show & 0x01) << 7) | + (CursorParameters->LinesPerRow - 1)); + WRITE_PORT_UCHAR(Port, ((CursorParameters->BlinkRate & 0x03) << 6) | + ((!CursorParameters->Blink & 0x01) << 5) | CursorParameters->StartScanLine); + WRITE_PORT_UCHAR(Port, (CursorParameters->EndScanLine << 3) | ((CursorParameters->BlinkRate & 0x1C) >> 2)); +} + #define GDC_COMMAND_FIGS 0x4C -#define GDC_COMMAND_FIGD 0x6C #define GDC_COMMAND_GCHRD 0x68 +#define GDC_COMMAND_START 0x6B +#define GDC_COMMAND_FIGD 0x6C +#define GDC_COMMAND_SLAVE 0x6E +#define GDC_COMMAND_MASTER 0x6F + +#define GDC_COMMAND_PRAM 0x70 +typedef struct _PRAMPARAM +{ + ULONG StartingAddress; + USHORT Length; + BOOLEAN ImageBit; + BOOLEAN WideDisplay; +} PRAMPARAM, *PPRAMPARAM; + +FORCEINLINE +VOID +WRITE_GDC_PRAM(PUCHAR Port, PPRAMPARAM RamParameters) +{ + WRITE_PORT_UCHAR(Port, RamParameters->StartingAddress & 0xFF); + WRITE_PORT_UCHAR(Port, (RamParameters->StartingAddress >> 8) & 0xFF); + WRITE_PORT_UCHAR(Port, ((RamParameters->Length & 0x0F) << 4) | ((RamParameters->StartingAddress >> 16) & 0x03)); + WRITE_PORT_UCHAR(Port, ((RamParameters->WideDisplay & 0x01) << 7) | ((RamParameters->ImageBit & 0x01) << 6) | + ((RamParameters->Length >> 4) & 0x3F)); +} + +#define GDC_COMMAND_TEXTW 0x78 #define GDC_COMMAND_READ 0xA0 -#define GDC_COMMAND_CURD 0xE0 -#define GDC_COMMAND_LPRD 0xC0 #define GDC_COMMAND_DMAR 0xA4 -#define GDC_COMMAND_DMAW 0x24 +#define GDC_COMMAND_LPRD 0xC0 +#define GDC_COMMAND_CURD 0xE0 /* Master GDC *****************************************************************/ @@ -131,20 +236,20 @@ WRITE_GDC_CSRW(PUCHAR Port, PCSRWPARAM CursorParameters) #define GDC1_IO_o_MODE_FLIPFLOP1 0x68 #define GDC1_MODE_VERTICAL_LINE 0x00 /* Character attribute */ #define GDC1_MODE_SIMPLE_GRAPHICS 0x01 - #define GDC1_MODE_COLORED 0x02 - #define GDC1_MODE_MONOCHROME 0x03 + #define GRAPH_MODE_COLORED 0x02 + #define GRAPH_MODE_MONOCHROME 0x03 #define GDC1_MODE_COLS_80 0x04 #define GDC1_MODE_COLS_40 0x05 #define GDC1_MODE_ANK_6_8 0x06 #define GDC1_MODE_ANK_7_13 0x07 - #define GDC1_MODE_LINES_400 0x08 - #define GDC1_MODE_LINES_200 0x09 /* Hide odd raster line */ + #define GDC2_MODE_ODD_RLINE_SHOW 0x08 + #define GDC2_MODE_ODD_RLINE_HIDE 0x09 #define GDC1_MODE_KCG_CODE 0x0A /* CG access during V-SYNC */ #define GDC1_MODE_KCG_BITMAP 0x0B - #define GDC1_NVMW_PROTECT 0x0C - #define GDC1_NVMW_UNPROTECT 0x0D /* Memory at TextVramSegment:(3FE2-3FFEh) */ - #define GDC1_MODE_DISPLAY_DISABLE 0x0E - #define GDC1_MODE_DISPLAY_ENABLE 0x0F + #define GDC1_NVRAM_PROTECT 0x0C + #define GDC1_NVRAM_UNPROTECT 0x0D /* Memory at TextVramSegment:(3FE2-3FFEh) */ + #define GRAPH_MODE_DISPLAY_DISABLE 0x0E + #define GRAPH_MODE_DISPLAY_ENABLE 0x0F #define GDC1_IO_o_BORDER_COLOR 0x6C /* PC-H98 */ @@ -177,7 +282,7 @@ WRITE_GDC_CSRW(PUCHAR Port, PCSRWPARAM CursorParameters) #define GDC2_MODE_EGC 0x05 #define GDC2_EGC_FF_PROTECT 0x06 #define GDC2_EGC_FF_UNPROTECT 0x07 /* Unprotect the EGC F/F registers */ - #define GDC2_MODE_PEGS_DISABLE 0x20 + #define GDC2_MODE_PEGC_DISABLE 0x20 #define GDC2_MODE_PEGC_ENABLE 0x21 // #define GDC2_MODE_ 0x26 // #define GDC2_MODE_ 0x27 @@ -189,7 +294,7 @@ WRITE_GDC_CSRW(PUCHAR Port, PCSRWPARAM CursorParameters) // #define GDC2_MODE_ 0x2D #define GDC2_MODE_CRT 0x40 #define GDC2_MODE_LCD 0x41 - // #define GDC2_MODE_VRAM_PLAIN 0x62 /* PC-H98 */ + // #define GDC2_MODE_VRAM_PLANAR 0x62 /* PC-H98 */ // #define GDC2_MODE_VRAM_PACKED 0x63 #define GDC2_MODE_LINES_400 0x68 /* 128 kB VRAM boundary */ #define GDC2_MODE_LINES_800 0x69 /* 256 kB VRAM boundary */ @@ -234,6 +339,36 @@ WRITE_GDC2_COMMAND(UCHAR Command) WRITE_PORT_UCHAR((PUCHAR)GDC2_IO_o_COMMAND, Command); } +/* Miscellaneous **************************************************************/ + +#define GRAPH_IO_i_STATUS 0x9A0 + #define GRAPH_STATUS_SET 0x01 + #define GRAPH_GDC_CLOCK2_5MHZ 0x02 + +#define GRAPH_IO_o_STATUS_SELECT 0x9A0 + #define GRAPH_STATUS_GDC_CLOCK1_5MHZ 0x09 + #define GRAPH_STATUS_PEGC 0x0A + +#define GRAPH_IO_i_DPMS 0x9A2 +#define GRAPH_IO_o_DPMS 0x9A2 + +#define GRAPH_IO_i_HORIZONTAL_SCAN_RATE 0x9A8 +#define GRAPH_IO_o_HORIZONTAL_SCAN_RATE 0x9A8 + #define GRAPH_HF_24KHZ 0x00 + #define GRAPH_HF_31KHZ 0x01 + +#define GRAPH_IO_i_RELAY 0xFAC + #define GRAPH_RELAY_0 0x01 + #define GRAPH_RELAY_1 0x02 + +#define GRAPH_IO_o_RELAY 0xFAC + /* Relay 0 */ + #define GRAPH_VID_SRC_INTERNAL 0x00 + #define GRAPH_VID_SRC_EXTERNAL 0x01 + /* Relay 1 */ + #define GRAPH_SRC_GDC 0x00 + #define GRAPH_SRC_WAB 0x02 + /* CRT Controller *************************************************************/ #define CRTC_IO_o_SCANLINE_START 0x70 @@ -247,25 +382,11 @@ WRITE_GDC2_COMMAND(UCHAR Command) #define GRCG_IO_i_MODE 0x7C #define GRCG_IO_o_MODE 0x7C -typedef union _GRCG_MODE_REGISTER -{ - struct - { - UCHAR DisablePlaneB:1; - UCHAR DisablePlaneR:1; - UCHAR DisablePlaneG:1; - UCHAR DisablePlaneI:1; - UCHAR Unused:2; - - UCHAR Mode:1; -#define GRCG_MODE_TILE_DIRECT_WRITE 0 -#define GRCG_MODE_TILE_COMPARE_READ 0 -#define GRCG_MODE_READ_MODIFY_WRITE 1 - - UCHAR Enable:1; - }; - UCHAR Bits; -} GRCG_MODE_REGISTER, *PGRCG_MODE_REGISTER; + #define GRCG_DISABLE 0x00 + #define GRCG_ENABLE 0x80 + #define GRCG_MODE_TILE_DIRECT_WRITE 0x80 + #define GRCG_MODE_TILE_COMPARE_READ 0x80 + #define GRCG_MODE_READ_MODIFY_WRITE 0xC0 #define GRCG_IO_o_TILE_PATTERN 0x7E @@ -277,3 +398,37 @@ typedef union _GRCG_MODE_REGISTER #define KCG_IO_o_PATTERN 0xA9 #define KCG_IO_i_PATTERN 0xA9 + +/* EGC blitter ****************************************************************/ + +#define EGC_IO_o_PLANE_ACCESS 0x4A0 +#define EGC_IO_o_PATTERN_DATA_PLANE_READ 0x4A2 +#define EGC_IO_o_READ_WRITE_MODE 0x4A4 +#define EGC_IO_o_FG_COLOR 0x4A6 +#define EGC_IO_o_MASK 0x4A8 +#define EGC_IO_o_BG_COLOR 0x4AA +#define EGC_IO_o_BIT_ADDRESS 0x4AC +#define EGC_IO_o_BIT_LENGTH 0x4AE + +#define PEGC_MMIO_BANK_0 0x004 +#define PEGC_MMIO_BANK_1 0x006 + +#define PEGC_MMIO_MODE 0x100 + #define PEGC_MODE_PACKED 0x00 + #define PEGC_MODE_PLANAR 0x01 + +#define PEGC_MMIO_FRAMEBUFFER 0x102 + #define PEGC_FB_UNMAP 0x00 + #define PEGC_FB_MAP 0x01 + #define PEGC_FB_UNKNOWN1 0x02 + #define PEGC_FB_UNKNOWN2 0x03 + +#define PEGC_MMIO_PLANE_ACCESS 0x104 +#define PEGC_MMIO_ROP 0x108 +#define PEGC_MMIO_DATA_SELECT 0x10A +#define PEGC_MMIO_MASK 0x10C +#define PEGC_MMIO_BIT_LENGTH 0x110 +#define PEGC_MMIO_BIT_ADDRESS 0x112 +#define PEGC_MMIO_FG_COLOR 0x114 +#define PEGC_MMIO_BG_COLOR 0x118 +#define PEGC_MMIO_ROP_PATTERN 0x120 diff --git a/sdk/include/reactos/mc/CMakeLists.txt b/sdk/include/reactos/mc/CMakeLists.txt index 46753f3bc1672..9899bb8a800a1 100644 --- a/sdk/include/reactos/mc/CMakeLists.txt +++ b/sdk/include/reactos/mc/CMakeLists.txt @@ -3,6 +3,7 @@ list(APPEND ANSI_SOURCE bugcodes.mc) list(APPEND UNICODE_SOURCE + arp_msg.mc errcodes.mc net_msg.mc neteventmsg.mc diff --git a/sdk/include/reactos/mc/arp_msg.mc b/sdk/include/reactos/mc/arp_msg.mc new file mode 100644 index 0000000000000..a573c3004406d --- /dev/null +++ b/sdk/include/reactos/mc/arp_msg.mc @@ -0,0 +1,131 @@ +MessageIdTypedef=DWORD + +SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS + Informational=0x1:STATUS_SEVERITY_INFORMATIONAL + Warning=0x2:STATUS_SEVERITY_WARNING + Error=0x3:STATUS_SEVERITY_ERROR + ) + +FacilityNames=(System=0x0:FACILITY_SYSTEM + ) + +LanguageNames=(English=0x409:MSG00409 + ) + +MessageId=10000 +SymbolicName=MSG_ARP_SYNTAX +Severity=Success +Facility=System +Language=English +Displays and modifies the IP-to-Physical address translation tables used by +address resolution protocol (ARP). + +ARP -s inet_addr eth_addr [if_addr] +ARP -d inet_addr [if_addr] +ARP -a [inet_addr] [-N if_addr] + + -a Displays current ARP entries by interrogating the current + protocol data. If inet_addr is specified, the IP and Physical + addresses for only the specified computer are displayed. If + more than one network interface uses ARP, entries for each ARP + table are displayed. + -g Same as -a. + inet_addr Specifies an internet address. + -N if_addr Displays the ARP entries for the network interface specified + by if_addr. + -d Deletes the host specified by inet_addr. inet_addr may be + wildcarded with * to delete all hosts. + -s Adds the host and associates the Internet address inet_addr + with the Physical address eth_addr. The Physical address is + given as 6 hexadecimal bytes separated by hyphens. The entry + is permanent. + eth_addr Specifies a physical address. + if_addr If present, this specifies the Internet address of the + interface whose address translation table should be modified. + If not present, the first applicable interface will be used. +Example: + > arp -s 157.55.85.212 00-aa-00-62-c6-09 .... Adds a static entry. + > arp -a .... Displays the arp table. +. + +MessageId=10001 +SymbolicName=MSG_ARP_BAD_IP_ADDRESS +Severity=Success +Facility=System +Language=English +ARP: bad IP address: %1 +. + +MessageId=10002 +SymbolicName=MSG_ARP_BAD_ARGUMENT +Severity=Success +Facility=System +Language=English +ARP: bad argument: %1 +. + +MessageId=10003 +SymbolicName=MSG_ARP_INTERFACE +Severity=Success +Facility=System +Language=English + +Interface: %1!s! --- 0x%2!lx! + Internet Address Physical Address Type +. + +MessageId=10004 +SymbolicName=MSG_ARP_NO_MEMORY +Severity=Success +Facility=System +Language=English +ARP: not enough memory +. + +MessageId=10005 +SymbolicName=MSG_ARP_OTHER +Severity=Success +Facility=System +Language=English +other%0 +. + +MessageId=10006 +SymbolicName=MSG_ARP_INVALID +Severity=Success +Facility=System +Language=English +invalid%0 +. + +MessageId=10007 +SymbolicName=MSG_ARP_DYNAMIC +Severity=Success +Facility=System +Language=English +dynamic%0 +. + +MessageId=10008 +SymbolicName=MSG_ARP_STATIC +Severity=Success +Facility=System +Language=English +static%0 +. + +MessageId=10013 +SymbolicName=MSG_ARP_ENTRY_FORMAT +Severity=Success +Facility=System +Language=English + %1!-20s! %2!-20s! %3!-10s! +. + +MessageId=10018 +SymbolicName=MSG_ARP_NO_ENTRIES +Severity=Success +Facility=System +Language=English +No ARP entires found +. diff --git a/sdk/include/xdk/cmtypes.h b/sdk/include/xdk/cmtypes.h index d84acdc4b065b..a84e464eb20c1 100644 --- a/sdk/include/xdk/cmtypes.h +++ b/sdk/include/xdk/cmtypes.h @@ -259,6 +259,8 @@ typedef enum _CM_SHARE_DISPOSITION { #define CM_RESOURCE_INTERRUPT_LATCHED 0x0001 #define CM_RESOURCE_INTERRUPT_MESSAGE 0x0002 #define CM_RESOURCE_INTERRUPT_POLICY_INCLUDED 0x0004 +#define CM_RESOURCE_INTERRUPT_SECONDARY_INTERRUPT 0x0010 +#define CM_RESOURCE_INTERRUPT_WAKE_HINT 0x0020 #define CM_RESOURCE_INTERRUPT_LEVEL_LATCHED_BITS 0x0001 diff --git a/sdk/lib/cportlib/cport_pc98.c b/sdk/lib/cportlib/cport_pc98.c index 0714fd2bccf6b..5973e71f9a73a 100644 --- a/sdk/lib/cportlib/cport_pc98.c +++ b/sdk/lib/cportlib/cport_pc98.c @@ -45,8 +45,8 @@ static BOOLEAN IsNekoProject = FALSE; static BOOLEAN CpIsNekoProject(VOID) { - UCHAR Input[3] = "NP2"; - UCHAR Output[3]; + UCHAR Input[4] = "NP2"; + UCHAR Output[4] = {0}; UCHAR i; for (i = 0; i < 3; i++) @@ -55,7 +55,7 @@ CpIsNekoProject(VOID) for (i = 0; i < 3; i++) Output[i] = READ_PORT_UCHAR((PUCHAR)0x7EF); - return (memcmp(Input, Output, 3) == 0); + return (*(PULONG)Input == *(PULONG)Output); } static VOID diff --git a/sdk/lib/drivers/rtlver/CMakeLists.txt b/sdk/lib/drivers/rtlver/CMakeLists.txt index 3b63ea16f0f64..d568968da19ea 100644 --- a/sdk/lib/drivers/rtlver/CMakeLists.txt +++ b/sdk/lib/drivers/rtlver/CMakeLists.txt @@ -4,4 +4,4 @@ list(APPEND SOURCE rtl.c) add_library(rtlver ${SOURCE}) -add_dependencies(rtlver xdk) +add_dependencies(rtlver bugcodes xdk) diff --git a/sdk/tools/cabman/cabinet.h b/sdk/tools/cabman/cabinet.h index 02d23d398e237..3bf6ba6edad96 100644 --- a/sdk/tools/cabman/cabinet.h +++ b/sdk/tools/cabman/cabinet.h @@ -9,6 +9,7 @@ #if defined(_WIN32) #define WIN32_LEAN_AND_MEAN + #include #include #else #include diff --git a/sdk/tools/hhpcomp/utils.cpp b/sdk/tools/hhpcomp/utils.cpp index c2c8dae8d174a..ea62013b46c51 100644 --- a/sdk/tools/hhpcomp/utils.cpp +++ b/sdk/tools/hhpcomp/utils.cpp @@ -23,6 +23,7 @@ #if defined(_WIN32) #define WIN32_LEAN_AND_MEAN + #include #include // for GetFullPathNameA #else #include diff --git a/win32ss/gdi/ntgdi/dcutil.c b/win32ss/gdi/ntgdi/dcutil.c index 0ac907f0197f8..056fd7f214078 100644 --- a/win32ss/gdi/ntgdi/dcutil.c +++ b/win32ss/gdi/ntgdi/dcutil.c @@ -585,6 +585,11 @@ NtGdiGetAndSetDCDword( switch (u) { + case GdiGetSetEPSPrintingEscape: + SafeResult = pdc->fs & DC_EPSPRINTINGESCAPE; + pdc->fs &= ~DC_EPSPRINTINGESCAPE; + break; + case GdiGetSetCopyCount: SafeResult = pdc->ulCopyCount; pdc->ulCopyCount = dwIn; diff --git a/win32ss/include/ntgdityp.h b/win32ss/include/ntgdityp.h index 748e4041034ec..3144df2745de3 100644 --- a/win32ss/include/ntgdityp.h +++ b/win32ss/include/ntgdityp.h @@ -59,7 +59,8 @@ typedef enum _GETDCDWORD typedef enum _GETSETDCDWORD { - GdiGetSetCopyCount = 2, + GdiGetSetEPSPrintingEscape = 1, + GdiGetSetCopyCount, GdiGetSetTextAlign, GdiGetSetRelAbs, GdiGetSetTextCharExtra, diff --git a/win32ss/printing/base/CMakeLists.txt b/win32ss/printing/base/CMakeLists.txt index 25ae88295bc3c..3101315cff1c9 100644 --- a/win32ss/printing/base/CMakeLists.txt +++ b/win32ss/printing/base/CMakeLists.txt @@ -1,4 +1,6 @@ #add_subdirectory(printui) +add_subdirectory(ntprint) +add_subdirectory(printui) add_subdirectory(spoolss) add_subdirectory(spoolsv) add_subdirectory(winspool) diff --git a/win32ss/printing/base/ntprint/CMakeLists.txt b/win32ss/printing/base/ntprint/CMakeLists.txt new file mode 100644 index 0000000000000..f468021ff7005 --- /dev/null +++ b/win32ss/printing/base/ntprint/CMakeLists.txt @@ -0,0 +1,15 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/wine) +spec2def(ntprint.dll ntprint.spec) + +list(APPEND SOURCE + ntprint.c + ${CMAKE_CURRENT_BINARY_DIR}/ntprint_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/ntprint.def) + +add_library(ntprint MODULE ${SOURCE} ntprint.rc) +set_module_type(ntprint win32dll) +target_link_libraries(ntprint wine) +add_importlibs(ntprint winspool msvcrt kernel32 ntdll) +add_cd_file(TARGET ntprint DESTINATION reactos/system32 FOR all) diff --git a/win32ss/printing/base/ntprint/ntprint.c b/win32ss/printing/base/ntprint/ntprint.c new file mode 100644 index 0000000000000..100385725c898 --- /dev/null +++ b/win32ss/printing/base/ntprint/ntprint.c @@ -0,0 +1,156 @@ +/* + * Implementation of the Spooler Setup API (Printing) + * + * Copyright 2007 Detlef Riekenberg + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include + +#define COBJMACROS + +#include "windef.h" +#include "winbase.h" +#include "winerror.h" +#include "wingdi.h" +#include "winnls.h" +#include "winver.h" +#include "winspool.h" + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(ntprint); + +typedef struct { + LPMONITOR_INFO_2W mi2; /* Buffer for installed Monitors */ + DWORD installed; /* Number of installed Monitors */ +} monitorinfo_t; + +/***************************************************** + * DllMain + */ +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) +{ + TRACE("(%p, %d, %p)\n",hinstDLL, fdwReason, lpvReserved); + + switch(fdwReason) + { + case DLL_WINE_PREATTACH: + return FALSE; /* prefer native version */ + + case DLL_PROCESS_ATTACH: + DisableThreadLibraryCalls( hinstDLL ); + break; + } + return TRUE; +} + +/***************************************************** + * PSetupCreateMonitorInfo [NTPRINT.@] + * + * + */ + +HANDLE WINAPI PSetupCreateMonitorInfo(DWORD unknown1, WCHAR *server) +{ + monitorinfo_t * mi=NULL; + DWORD needed; + DWORD res; + + TRACE("(%d, %s)\n", unknown1, debugstr_w(server)); + + mi = HeapAlloc(GetProcessHeap(), 0, sizeof(monitorinfo_t)); + if (!mi) { + /* FIXME: SetLastError() needed? */ + return NULL; + } + + /* Get the needed size for all Monitors */ + res = EnumMonitorsW(server, 2, NULL, 0, &needed, &mi->installed); + if (!res && (GetLastError() == ERROR_INSUFFICIENT_BUFFER)) { + mi->mi2 = HeapAlloc(GetProcessHeap(), 0, needed); + res = EnumMonitorsW(server, 2, (LPBYTE) mi->mi2, needed, &needed, &mi->installed); + } + + if (!res) { + HeapFree(GetProcessHeap(), 0, mi); + return NULL; + } + + TRACE("=> %p (%u monitors installed)\n", mi, mi->installed); + return mi; +} + +/***************************************************** + * PSetupDestroyMonitorInfo [NTPRINT.@] + * + */ + +VOID WINAPI PSetupDestroyMonitorInfo(HANDLE monitorinfo) +{ + monitorinfo_t * mi = monitorinfo; + + TRACE("(%p)\n", mi); + if (mi) { + if (mi->installed) HeapFree(GetProcessHeap(), 0, mi->mi2); + HeapFree(GetProcessHeap(), 0, mi); + } +} + +/***************************************************** + * PSetupEnumMonitor [NTPRINT.@] + * + * Copy the selected Monitorname to a buffer + * + * PARAMS + * monitorinfo [I] HANDLE from PSetupCreateMonitorInfo + * index [I] Nr. of the Monitorname to copy + * buffer [I] Target, that receive the Monitorname + * psize [IO] PTR to a DWORD that hold the size of the buffer and receive + * the needed size, when the buffer is too small + * + * RETURNS + * Success: TRUE + * Failure: FALSE + * + * NOTES + * size is in Bytes on w2k and WCHAR on XP + * + */ + +BOOL WINAPI PSetupEnumMonitor(HANDLE monitorinfo, DWORD index, LPWSTR buffer, LPDWORD psize) +{ + monitorinfo_t * mi = monitorinfo; + LPWSTR nameW; + DWORD len; + + TRACE("(%p, %u, %p, %p) => %d\n", mi, index, buffer, psize, psize ? *psize : 0); + + if (index < mi->installed) { + nameW = mi->mi2[index].pName; + len = lstrlenW(nameW) + 1; + if (len <= *psize) { + memcpy(buffer, nameW, len * sizeof(WCHAR)); + TRACE("#%u: %s\n", index, debugstr_w(buffer)); + return TRUE; + } + *psize = len; + SetLastError(ERROR_INSUFFICIENT_BUFFER); + return FALSE; + } + SetLastError(ERROR_NO_MORE_ITEMS); + return FALSE; +} diff --git a/win32ss/printing/base/ntprint/ntprint.rc b/win32ss/printing/base/ntprint/ntprint.rc new file mode 100644 index 0000000000000..272f15159e6c6 --- /dev/null +++ b/win32ss/printing/base/ntprint/ntprint.rc @@ -0,0 +1,34 @@ +/* + * Top level resource file for ntprint.dll + * + * Copyright 2007 Detlef Riekenberg + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + * + */ + +#include "winver.h" + +#define WINE_FILENAME_STR "ntprint.dll" +#define WINE_FILEDESCRIPTION_STR "Spooler Setup API (Printing)" + +/* Same Version as WinXP_sp2 */ +#define WINE_FILEVERSION 5,1,2600,2180 +#define WINE_FILEVERSION_STR "5.1.2600.2180" + +#define WINE_PRODUCTVERSION 5,1,2600,2180 +#define WINE_PRODUCTVERSION_STR "5.1.2600.2180" + +#include "wine/wine_common_ver.rc" diff --git a/win32ss/printing/base/ntprint/ntprint.spec b/win32ss/printing/base/ntprint/ntprint.spec new file mode 100644 index 0000000000000..04e85fe72fcaf --- /dev/null +++ b/win32ss/printing/base/ntprint/ntprint.spec @@ -0,0 +1,35 @@ +@ stub ClassInstall32 +@ stub PSetupAssociateICMProfiles +@ stub PSetupBuildDriversFromPath +@ stub PSetupCreateDrvSetupPage +@ stdcall PSetupCreateMonitorInfo(long wstr) +@ stub PSetupCreatePrinterDeviceInfoList +@ stub PSetupDestroyDriverInfo3 +@ stdcall PSetupDestroyMonitorInfo(long) +@ stub PSetupDestroyPrinterDeviceInfoList +@ stub PSetupDestroySelectedDriverInfo +@ stub PSetupDriverInfoFromName +@ stdcall PSetupEnumMonitor(long long ptr ptr) +@ stub PSetupFreeDrvField +@ stub PSetupGetDriverInfForPrinter +@ stub PSetupGetDriverInfo3 +@ stub PSetupGetLocalDataField +@ stub PSetupGetPathToSearch +@ stub PSetupGetSelectedDriverInfo +@ stub PSetupInstallICMProfiles +@ stub PSetupInstallMonitor +@ stub PSetupInstallPrinterDriver +@ stub PSetupInstallPrinterDriverFromTheWeb +@ stub PSetupIsCompatibleDriver +@ stub PSetupIsDriverInstalled +@ stub PSetupIsMonitorInstalled +@ stub PSetupIsOemDriver +@ stub PSetupIsTheDriverFoundInInfInstalled +@ stub PSetupKillBadUserConnections +@ stub PSetupPreSelectDriver +@ stub PSetupProcessPrinterAdded +@ stub PSetupRefreshDriverList +@ stub PSetupSelectDeviceButtons +@ stub PSetupSelectDriver +@ stub PSetupSetSelectDevTitleAndInstructions +@ stub PSetupThisPlatform diff --git a/win32ss/printing/base/printui/.keep b/win32ss/printing/base/printui/.keep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/dll/win32/printui/CMakeLists.txt b/win32ss/printing/base/printui/CMakeLists.txt similarity index 100% rename from dll/win32/printui/CMakeLists.txt rename to win32ss/printing/base/printui/CMakeLists.txt diff --git a/dll/win32/printui/printui.c b/win32ss/printing/base/printui/printui.c similarity index 100% rename from dll/win32/printui/printui.c rename to win32ss/printing/base/printui/printui.c diff --git a/dll/win32/printui/printui.rc b/win32ss/printing/base/printui/printui.rc similarity index 100% rename from dll/win32/printui/printui.rc rename to win32ss/printing/base/printui/printui.rc diff --git a/dll/win32/printui/printui.spec b/win32ss/printing/base/printui/printui.spec similarity index 100% rename from dll/win32/printui/printui.spec rename to win32ss/printing/base/printui/printui.spec diff --git a/dll/win32/printui/printui_private.h b/win32ss/printing/base/printui/printui_private.h similarity index 100% rename from dll/win32/printui/printui_private.h rename to win32ss/printing/base/printui/printui_private.h diff --git a/win32ss/user/rtl/text.c b/win32ss/user/rtl/text.c index 061e49b6d5e68..0ab3f00ea31f6 100644 --- a/win32ss/user/rtl/text.c +++ b/win32ss/user/rtl/text.c @@ -1266,7 +1266,7 @@ INT WINAPI DrawTextExWorker( HDC hdc, if (flags & DT_VCENTER) y = rect->top + (rect->bottom - rect->top + (invert_y ? size.cy : -size.cy)) / 2; else if (flags & DT_BOTTOM) - y = rect->bottom + (invert_y ? 0 : -size.cy); + y = rect->bottom + (invert_y ? size.cy : -size.cy); #else if (flags & DT_VCENTER) y = rect->top + (rect->bottom - rect->top) / 2 - size.cy / 2;