Compare commits

..

17 Commits

Author SHA1 Message Date
Hermès Bélusca-Maïto
7d7a459001 - Port the last welcome.exe change from r73658.
- Fix the path to welcome settings for the FOSDEM CD.
- Add the welcome.exe localized customizations for FOSDEM 2017 CD.

svn path=/branches/ReactOS-0.4.4-FOSDEM2017/; revision=73659
2017-02-01 04:07:02 +00:00
Hermès Bélusca-Maïto
2c1648e5f9 Port commit r73656 : welcome.ini configuration.
svn path=/branches/ReactOS-0.4.4-FOSDEM2017/; revision=73657
2017-02-01 03:16:08 +00:00
Hermès Bélusca-Maïto
9b9a5609dd Port commit r73654 "Fix the dependencies for the hybridcd".
svn path=/branches/ReactOS-0.4.4-FOSDEM2017/; revision=73655
2017-02-01 02:20:46 +00:00
Hermès Bélusca-Maïto
85c2c6dd94 [FREELDR]: HACK: Manually reduce the size of the temporary heap from 32MB down to 10MB, because, in some situations (e.g. Bochs, or real HW, see CORE-12694), FreeLDR fails when creating the temporary heap with an "out of memory" error. First investigations seem to show that it's because FreeLDR cannot find a contiguous memory area of such size...
More investigations are in order.
I strongly think that this heap size should not be hardcoded, but instead computed, taking into account for the memory availability on a given system.

svn path=/branches/ReactOS-0.4.4-FOSDEM2017/; revision=73653
2017-01-31 23:02:16 +00:00
Hermès Bélusca-Maïto
6bb13bc0d3 Port trunk commit r73651.
svn path=/branches/ReactOS-0.4.4-FOSDEM2017/; revision=73652
2017-01-31 22:08:35 +00:00
Hermès Bélusca-Maïto
2a3428d7d1 Port the following FREELDR trunk fixes:
- Add missing checks for allocation failure in DetectSerialPointerPeripheral and DetectPS2Mouse. Patch by Serge Gautherie. CORE-12623 (r73608).
- Correctly check for buffer overflow in DetectPnpBios. Patch by Serge Gautherie. CORE-12623 (r73617).

Port the following FREELDR improvements:
- Code cleanup/simplifications: revisions 73606,73610,73611,73616,73618, as a prelude to...
- ... a fix so that CD-ROM disks are correctly recognized, even if they hold a MBR in their sector 0 (required for HybridUSB "technology"): commit r73621. CORE-12692

svn path=/branches/ReactOS-0.4.4-FOSDEM2017/; revision=73650
2017-01-31 21:07:45 +00:00
Hermès Bélusca-Maïto
128f19486c Port the following trunk fixes:
[NTOS:MM]: Support MmSpecialPoolTag == '*' to mean all tags. By Serge Gautherie. CORE-12711 (r73607).
[CMAKE]: Add missing target-level dependency when passing a target to add_rostests_file (r73613).
[CALC]: Do not push memory stores onto the operation stack since they can't be acted upon. Based on a patch by Katayama Hirofumi MZ. CORE-12325 (r73620).
[TREE]: Rework the utility (use explicit UNICODE, use WIN32 types, remove useless dependency to user32...), and add support for console ConUtils streams. CORE-12677 (r73622).
[CMD]: The 'type' command can open & display files opened with write access. Patch by 'mjw', CORE-12602 (r73623).

svn path=/branches/ReactOS-0.4.4-FOSDEM2017/; revision=73649
2017-01-31 20:55:30 +00:00
Hermès Bélusca-Maïto
0118cfff6b Port the following trunk fixes:
[FRAMEDYN]: Fix integer overflow checks. CID 1101981, 1248380, 1248381 (r73633).
[PSDK]: Remove incorrect bit masking from IsRecognizedPartition & IsContainerPartition. CID 1341188 (r73634).
[DHCPCSVC]: Addendum to r69652: Avoid some more "Operands don't affect result" warnings. CID 515151, 515152, 515153 (r73635).
[FREELDR]: Correctly check for vertical retrace in PcVideoSync. CID 513066 (r73636).
[MSPAINT]: Add missing break in CMainWindow::OnCommand/IDM_FORMATICONBAR. CID 1322024 (r73642).
[BOOTLIB]: Correctly check for floppy devices in BlockIoEfiGetDeviceInformation. CID 1341189 (r73643).

svn path=/branches/ReactOS-0.4.4-FOSDEM2017/; revision=73648
2017-01-31 20:48:41 +00:00
Hermès Bélusca-Maïto
434e256e43 [REACTOS-FOSDEM2017]: Sync with ROS 0.4.4 branch. In particular the following fixes/hacks:
- Apply the Wordpad related hack from CORE-5823 by Jared Smudde (r73624).
- Disable COMMAND.COM debugging messages. CORE-10710 (r73625).
- Add a hack by Thomas to avoid MmGetPhysicalAddress failures during USB transfers. CORE-9224 (r73627).
- Apply the patch that allows us to dynamically change the resolution by resizing in VirtualBox. CORE-6742 (r73628).
- Revert some shell32 work (revisions 73436, 73591 and 73599) on Giannis request to avoid any potential last minute regressions. CORE-12700 (r73629).
- Revert revisions 72835 and 72839 to avoid the FsRtlIsNameInExpressionPrivate crash from CORE-12121. (r73630).
- Mask WndProc exceptions CORE-11915 (r73631).

and the trunk commits:
- Replace some animations with RLE-8 compressed ones; courtesy Jared Smudde. Thanks! CORE-11643 (r73601).
- Some improvements for FreeLdr (r73596).
- The ISOBOOT USB functionality by Colin Finck (r73594 and r73595).
- And other commits (after r73522).

svn path=/branches/ReactOS-0.4.4-FOSDEM2017/; revision=73647
2017-01-31 19:53:27 +00:00
Hermès Bélusca-Maïto
9eef31a413 [ROSAPPS]: Update with trunk r73645.
svn path=/branches/ReactOS-0.4.4-FOSDEM2017/; revision=73646
2017-01-31 19:45:13 +00:00
Hermès Bélusca-Maïto
dd1295246d [BOOTDATA][FREELDR]
- By default, boot the livecd without the kernel debugger enabled, but...
- ... augment the FreeLdr "Debugging Mode" option with serial+screen debug ports, so that, if someone wants to run ReactOS with the kernel debugger on real hardware, without serial port, (s)he still can do it and see the debug output.
I do that, until FreeLdr can support run-time editing boot options of existing boot menu entries.

svn path=/branches/ReactOS-0.4.4-FOSDEM2017/; revision=73645
2017-01-31 19:36:15 +00:00
Hermès Bélusca-Maïto
9ea9b7db36 [WALLPAPERS]: Addendum to r73638:
- Second version of the FOSDEM 2017 wallpapers, with better aligned logos.
- Since the FOSDEM wallpaper displays better when not being stretched but centered, use instead centered-style wallpaper.

svn path=/branches/ReactOS-0.4.4-FOSDEM2017/; revision=73644
2017-01-31 19:29:05 +00:00
Hermès Bélusca-Maïto
8b8de8b853 [VERSION]: Addendum to r73588: correctly report the version as 0.4.4 (FOSDEM2017RC).
svn path=/branches/ReactOS-0.4.4-FOSDEM2017/; revision=73640
2017-01-30 22:59:38 +00:00
Hermès Bélusca-Maïto
45d79c2a20 [NTOS]: Modify the ReactOS boot logo for the FOSDEM 2017 edition, based upon an idea by Jared Smudde.
You were numerous to participate to its selection; I thank you all!

svn path=/branches/ReactOS-0.4.4-FOSDEM2017/; revision=73639
2017-01-30 22:50:03 +00:00
Hermès Bélusca-Maïto
c0f99c646f [WALLPAPERS]
- Update the wallpapers for FOSDEM 2017.
- Since we don't have any mechanism at the moment to preselect a non-bitmap wallpaper to use, I'm forced to convert the wallpaper we want to use to bitmap first, and then add its entry into the registry (I cannot just use the jpg file in the registry). See r66772.

svn path=/branches/ReactOS-0.4.4-FOSDEM2017/; revision=73638
2017-01-30 22:24:44 +00:00
Hermès Bélusca-Maïto
95aa925ed9 [EXPLORER]: Update the Start Menu banner for FOSDEM 2017, thanks to Jared Smudde!
svn path=/branches/ReactOS-0.4.4-FOSDEM2017/; revision=73598
2017-01-26 00:09:25 +00:00
Hermès Bélusca-Maïto
09dc089cfe [BOOTDATA]
- Flatten out the ISO layout for hybridcd (otherwise some problems appear for the livecd: see r66114 for more details).
- Add user-friendly boot menu.

[README]: Update the ReadMe.txt for FOSDEM 2017.

[VERSION]: Adjust version to 0.4.4-RC FOSDEM 2017.

svn path=/branches/ReactOS-0.4.4-FOSDEM2017/; revision=73588
2017-01-23 12:45:51 +00:00
1653 changed files with 21656 additions and 65812 deletions

View File

@@ -933,18 +933,15 @@ static INT_PTR CALLBACK DlgStatProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
return FALSE;
}
static BOOL idm_2_idc(int idm, WPARAM *pIdc)
static WPARAM idm_2_idc(int idm)
{
int x;
for (x=0; x<SIZEOF(upd); x++) {
if (upd[x].idm == idm)
{
*pIdc = (WPARAM)(upd[x].idc);
return TRUE;
}
break;
}
return FALSE;
return (WPARAM)(upd[x].idc);
}
static void CopyMemToClipboard(void *ptr)
@@ -1411,15 +1408,8 @@ static INT_PTR CALLBACK DlgMainProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
case IDM_VIEW_DWORD:
case IDM_VIEW_WORD:
case IDM_VIEW_BYTE:
{
WPARAM idc;
if(idm_2_idc(LOWORD(wp), &idc))
{
SendMessage(hWnd, WM_COMMAND, idc, 0);
return TRUE;
}
return FALSE;
}
SendMessage(hWnd, WM_COMMAND, idm_2_idc(LOWORD(wp)), 0);
return TRUE;
case IDM_EDIT_COPY:
handle_copy_command(hWnd);
return TRUE;

View File

@@ -16,9 +16,6 @@ CLPFILE_ICON ICON "res/clpfile.ico"
/* UTF-8 */
#pragma code_page(65001)
#ifdef LANGUAGE_CS_CZ
#include "lang/cs-CZ.rc"
#endif
#ifdef LANGUAGE_DE_DE
#include "lang/de-DE.rc"
#endif

View File

@@ -1,65 +0,0 @@
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
ID_ACCEL ACCELERATORS
BEGIN
VK_DELETE, CMD_DELETE, VIRTKEY
END
MAIN_MENU MENU
BEGIN
POPUP "&Soubor"
BEGIN
MENUITEM "&Otevřít...", CMD_OPEN
MENUITEM "&Uložit jako...", CMD_SAVE_AS
MENUITEM SEPARATOR
MENUITEM "&Konec", CMD_EXIT
END
POPUP "&Upravit"
BEGIN
MENUITEM "&Smazat\tDel", CMD_DELETE
END
POPUP "&Zobrazení"
BEGIN
MENUITEM "&Automaticky", CMD_AUTOMATIC
END
POPUP "&Nápověda"
BEGIN
MENUITEM "&Zobrazit nápovědu", CMD_HELP
MENUITEM SEPARATOR
MENUITEM "&O programu", CMD_ABOUT
END
END
STRINGTABLE
BEGIN
STRING_CLIPBOARD "Prohlížeč schránky"
STRING_CLIPFILE "Prvek schránky"
STRING_DELETE_MSG "Vymazat obsah stránky?"
STRING_DELETE_TITLE "Vymazat schránku"
STRING_FORMAT_NT "Soubory schránky systému ReactOS (*.clp)"
STRING_FORMAT_GEN "Soubory schránky (*.clp)"
END
STRINGTABLE
BEGIN
STRING_CF_UNKNOWN "Neznámý formát"
STRING_CF_TEXT "Text"
STRING_CF_BITMAP "Bitmapa"
STRING_CF_OEMTEXT "Text OEM"
STRING_CF_UNICODETEXT "Text Unicode"
STRING_CF_DIB "DIB bitmapa"
STRING_CF_LOCALE "Data znakové sady"
STRING_CF_ENHMETAFILE "Rožířený soubor Metafile"
STRING_CF_METAFILEPICT "Metafile"
STRING_CF_PALETTE "Barevná paleta"
STRING_CF_DIBV5 "DIB bitmapa (Verze 5)"
STRING_CF_SYLK "Symbolický odkaz"
STRING_CF_DIF "Formát výměny dat"
STRING_CF_HDROP "Data přetažení"
END
STRINGTABLE
BEGIN
ERROR_UNSUPPORTED_FORMAT "Schránka obsahuje data ve formátu, který není možné zobrazit."
ERROR_INVALID_FILE_FORMAT "Vybraný soubor není platný soubor schránky."
END

View File

@@ -9,7 +9,6 @@ add_subdirectory(help)
add_subdirectory(hostname)
add_subdirectory(lodctr)
add_subdirectory(mode)
add_subdirectory(mofcomp)
add_subdirectory(more)
add_subdirectory(reg)
add_subdirectory(schtasks)

View File

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

View File

@@ -1,29 +0,0 @@
/*
* Copyright 2010 Hans Leidekker for CodeWeavers
*
* 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
*/
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <wine/debug.h>
WINE_DEFAULT_DEBUG_CHANNEL(mofcomp);
int wmain( int argc, const WCHAR *argv[] )
{
WINE_FIXME("stub\n");
return 0;
}

View File

@@ -255,9 +255,9 @@ static LPBYTE get_regdata(const WCHAR *data, DWORD reg_type, WCHAR separator, DW
case REG_DWORD_BIG_ENDIAN: /* Yes, this is correct! */
{
LPWSTR rest;
unsigned long val;
DWORD val;
val = strtoulW(data, &rest, (tolowerW(data[1]) == 'x') ? 16 : 10);
if (*rest || data[0] == '-' || (val == ~0u && errno == ERANGE) || val > ~0u) {
if (*rest || data[0] == '-' || (val == ~0u && errno == ERANGE)) {
output_message(STRING_MISSING_INTEGER);
break;
}
@@ -908,32 +908,23 @@ static const WCHAR addW[] = {'a','d','d',0};
static const WCHAR deleteW[] = {'d','e','l','e','t','e',0};
static const WCHAR queryW[] = {'q','u','e','r','y',0};
static enum operations get_operation(const WCHAR *str, int *op_help)
static enum operations get_operation(const WCHAR *str)
{
if (!lstrcmpiW(str, addW))
{
*op_help = STRING_ADD_USAGE;
return REG_ADD;
}
if (!lstrcmpiW(str, deleteW))
{
*op_help = STRING_DELETE_USAGE;
return REG_DELETE;
}
if (!lstrcmpiW(str, queryW))
{
*op_help = STRING_QUERY_USAGE;
return REG_QUERY;
}
return REG_INVALID;
}
int wmain(int argc, WCHAR *argvW[])
{
int i, op, op_help, ret;
int i, op, ret;
BOOL show_op_help = FALSE;
static const WCHAR switchVAW[] = {'v','a',0};
static const WCHAR switchVEW[] = {'v','e',0};
@@ -954,7 +945,7 @@ int wmain(int argc, WCHAR *argvW[])
return 0;
}
op = get_operation(argvW[1], &op_help);
op = get_operation(argvW[1]);
if (op == REG_INVALID)
{
@@ -974,7 +965,12 @@ int wmain(int argc, WCHAR *argvW[])
}
else if (show_op_help)
{
output_message(op_help);
if (op == REG_ADD)
output_message(STRING_ADD_USAGE);
else if (op == REG_DELETE)
output_message(STRING_DELETE_USAGE);
else
output_message(STRING_QUERY_USAGE);
return 0;
}

View File

@@ -5,5 +5,5 @@ STRINGTABLE
STRING_CMDLINE_NOT_SUPPORTED, "Fehler: Befehlszeile nicht unterstützt\n"
STRING_ALIAS_NOT_FOUND, "Fehler: Alias nicht gefunden\n"
STRING_INVALID_QUERY, "Fehler: Ungültige Abfrage\n"
STRING_INVALID_PATH, "Error: Invalid syntax for PATH\n"
STRING_INVALID_PATH, "Invalid syntax for PATH\n"
}

View File

@@ -5,5 +5,5 @@ STRINGTABLE
STRING_CMDLINE_NOT_SUPPORTED, "Error: Command line not supported\n"
STRING_ALIAS_NOT_FOUND, "Error: Alias not found\n"
STRING_INVALID_QUERY, "Error: Invalid query\n"
STRING_INVALID_PATH, "Error: Invalid syntax for PATH\n"
STRING_INVALID_PATH, "Invalid syntax for PATH\n"
}

View File

@@ -7,5 +7,5 @@ STRINGTABLE
STRING_CMDLINE_NOT_SUPPORTED, "Eroare: Comandă nerecunoscută.\n"
STRING_ALIAS_NOT_FOUND, "Eroare: Alias necunoscut.\n"
STRING_INVALID_QUERY, "Eroare: Cerere nevalidă.\n"
STRING_INVALID_PATH, "Eroare: Conținutul din «PATH» este sintactic nevalid.\n"
STRING_INVALID_PATH, "Conținutul din «PATH» este sintactic nevalid.\n"
}

View File

@@ -5,5 +5,5 @@ STRINGTABLE
STRING_CMDLINE_NOT_SUPPORTED, "Ошибка: Командная строка не поддерживается\n"
STRING_ALIAS_NOT_FOUND, "Ошибка: Псевдоним не найден\n"
STRING_INVALID_QUERY, "Ошибка: Неверный запрос\n"
STRING_INVALID_PATH, "Ошибка: Неверный синтаксис PATH\n"
STRING_INVALID_PATH, "Неверный синтаксис PATH\n"
}

View File

@@ -9,5 +9,5 @@ STRINGTABLE
STRING_CMDLINE_NOT_SUPPORTED, "Gabim: Linja e komandave jo e mbështetur\n"
STRING_ALIAS_NOT_FOUND, "Gabim: Pseudonimi nuk u gjend\n"
STRING_INVALID_QUERY, "Gabim: Kërkim pa vlere\n"
STRING_INVALID_PATH, "Error: Invalid syntax for PATH\n"
STRING_INVALID_PATH, "Invalid syntax for PATH\n"
}

View File

@@ -7,5 +7,5 @@ STRINGTABLE
STRING_CMDLINE_NOT_SUPPORTED, "错误: 不支持的命令行\n"
STRING_ALIAS_NOT_FOUND, "错误: 别名未找到\n"
STRING_INVALID_QUERY, "错误: 无效的查询\n"
STRING_INVALID_PATH, "Error: Invalid syntax for PATH\n"
STRING_INVALID_PATH, "Invalid syntax for PATH\n"
}

View File

@@ -7,5 +7,5 @@ STRINGTABLE
STRING_CMDLINE_NOT_SUPPORTED, "錯誤: 不支援的命令列\n"
STRING_ALIAS_NOT_FOUND, "錯誤: 別名未找到\n"
STRING_INVALID_QUERY, "錯誤: 無效的查詢\n"
STRING_INVALID_PATH, "Error: Invalid syntax for PATH\n"
STRING_INVALID_PATH, "Invalid syntax for PATH\n"
}

View File

@@ -252,11 +252,16 @@ int wmain(int argc, WCHAR *argv[])
static const WCHAR pathW[] = {'p','a','t','h',0};
static const WCHAR classW[] = {'c','l','a','s','s',0};
static const WCHAR contextW[] = {'c','o','n','t','e','x','t',0};
const WCHAR *class, *value;
const WCHAR *class;
const WCHAR *value;
int i;
if (argc == 1)
goto not_supported;
for (i = 1; i < argc && argv[i][0] == '/'; i++)
WINE_FIXME( "command line switch %s not supported\n", debugstr_w(argv[i]) );
WINE_FIXME("command line switch %s not supported\n", debugstr_w(argv[i]));
if (i >= argc)
goto not_supported;
@@ -266,15 +271,13 @@ int wmain(int argc, WCHAR *argv[])
{
return 0;
}
if (!strcmpiW( argv[i], classW) ||
!strcmpiW( argv[i], contextW ))
else if (!strcmpiW( argv[i], classW) ||
!strcmpiW( argv[i], contextW))
{
WINE_FIXME( "command %s not supported\n", debugstr_w(argv[i]) );
WINE_FIXME("command %s not supported\n", debugstr_w(argv[i]));
goto not_supported;
}
if (!strcmpiW( argv[i], pathW ))
else if (!strcmpiW( argv[i], pathW))
{
if (++i >= argc)
{
@@ -296,7 +299,7 @@ int wmain(int argc, WCHAR *argv[])
if (++i >= argc)
goto not_supported;
if (!strcmpiW( argv[i], getW ))
if (!strcmpiW( argv[i], getW))
{
if (++i >= argc)
goto not_supported;

View File

@@ -15,7 +15,6 @@
#include <winuser.h>
#include <winreg.h>
#include <shellapi.h>
#include <strsafe.h>
#include "resource.h"
@@ -42,8 +41,8 @@ OpenShellFolder(LPWSTR lpFolderCLSID)
* Open a shell folder using "explorer.exe". The passed CLSIDs
* are all subfolders of the "Control Panel" shell folder.
*/
StringCbCopy(szParameters, sizeof(szParameters), L"/n,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\::{21EC2020-3AEA-1069-A2DD-08002B30309D}");
StringCbCat(szParameters,sizeof(szParameters), lpFolderCLSID);
wcscpy(szParameters, L"/n,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\::{21EC2020-3AEA-1069-A2DD-08002B30309D}");
wcscat(szParameters, lpFolderCLSID);
return (INT_PTR)ShellExecuteW(NULL,
L"open",

View File

@@ -47,7 +47,7 @@ BEGIN
EDITTEXT IDC_STATIC_MEM, 155, 130, 210, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL
EDITTEXT IDC_STATIC_SWAP, 155, 140, 210, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL
EDITTEXT IDC_STATIC_VERSION, 155, 150, 210, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL
CHECKBOX "Zkontrolovat digitální podpisy WHQL", IDC_WHQL_SIGN_CHECK, 15, 170, 135, 10, WS_DISABLED
CHECKBOX "Check for WHQL digital signatures", IDC_WHQL_SIGN_CHECK, 15, 170, 135, 10, WS_DISABLED
END
IDD_DISPLAY_DIALOG DIALOGEX 0, 0, 462, 220
@@ -75,7 +75,7 @@ BEGIN
RTEXT "Datum:", IDC_STATIC, 275, 30, 55, 10
RTEXT "WHQL-Logo:", IDC_STATIC, 275, 40, 55, 10
RTEXT "Mini-VDD:", IDC_STATIC, 275, 50, 55, 10
RTEXT "VDD:", IDC_STATIC, 275, 60, 55, 10
RTEXT " vvdddVDD:", IDC_STATIC, 275, 60, 55, 10
RTEXT "Verze DDI:", IDC_STATIC, 275, 70, 55, 10
EDITTEXT IDC_STATIC_ADAPTER_DRIVER, 335, 10, 100, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL
EDITTEXT IDC_STATIC_ADAPTER_VERSION, 335, 20, 100, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL
@@ -142,17 +142,17 @@ IDD_MUSIC_DIALOG DIALOGEX 0, 0, 462, 220
STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
FONT 8, "MS Shell Dlg"
BEGIN
RTEXT "Obecná MIDI DLS kolekce:", IDC_STATIC, 0, 0, 100, 10
RTEXT "General MIDI DLS Collection:", IDC_STATIC, 0, 0, 100, 10
EDITTEXT IDC_MIDI_DLS_COLLECTION, 105, 0, 250, 10, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL
GROUPBOX "Hudební porty", IDC_STATIC, 5, 10, 452, 85
GROUPBOX "Vlastnosti ReactX", IDC_STATIC, 5, 97, 452, 70
LTEXT "Výchozí akcelerace portu:", IDC_STATIC, 15, 120, 95, 17
GROUPBOX "Music Ports", IDC_STATIC, 5, 10, 452, 85
GROUPBOX "ReactX Features", IDC_STATIC, 5, 97, 452, 70
LTEXT "Default Port Acceleration:", IDC_STATIC, 15, 120, 95, 17
LTEXT "", IDC_STATIC_DEFAULT_PORT_ACCELERATION, 115, 120, 50, 10
PUSHBUTTON "Zakázat", IDC_BUTTON_DISABLEDMUSIC, 75, 135, 80, 14, WS_DISABLED
LTEXT "Otestovat tento port:", IDC_STATIC, 180, 105, 100, 10
PUSHBUTTON "Disable", IDC_BUTTON_DISABLEDMUSIC, 75, 135, 80, 14, WS_DISABLED
LTEXT "Test using this port:", IDC_STATIC, 180, 105, 100, 10
LISTBOX IDC_DMUSIC_TEST_LIST, 180, 115, 180, 45, LBS_NOINTEGRALHEIGHT | LBS_EXTENDEDSEL | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Otestovat DirectMusic", IDC_BUTTON_TESTDMUSIC, 370, 145, 80, 14, WS_DISABLED
GROUPBOX "Poznámky", IDC_STATIC, 5, 170, 452, 50
PUSHBUTTON "Test DirectMusic", IDC_BUTTON_TESTDMUSIC, 370, 145, 80, 14, WS_DISABLED
GROUPBOX "Notes", IDC_STATIC, 5, 170, 452, 50
EDITTEXT IDC_MUSIC_NOTES, 15, 182, 432, 30, ES_LEFT | WS_BORDER | ES_READONLY | WS_TABSTOP
END
@@ -175,11 +175,11 @@ FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Registrovaný poskytovatel služby DirectPlay", IDC_STATIC, 5, 0, 452, 75
CONTROL "", IDC_LIST_PROVIDER, "SysListView32", LVS_REPORT | WS_CHILD | WS_BORDER | WS_TABSTOP, 15, 12, 432, 55
GROUPBOX "Registrováné aplikace s možností Lobby", IDC_STATIC, 5, 77, 452, 55
GROUPBOX "Vlastnosti ReactX", IDC_STATIC, 5, 133, 452, 35
PUSHBUTTON "Možnosti hlasu DirectPlay", IDC_BUTTON_VOICE_OPTIONS, 10, 145, 90, 14, WS_DISABLED
PUSHBUTTON "Otestovat DirectPlay", IDC_BUTTON_TESTDPLAY, 130, 145, 80, 14, WS_DISABLED
GROUPBOX "Poznámky", IDC_STATIC, 5, 170, 452, 50
GROUPBOX "Registered Lobbyable DirectPlay Applications", IDC_STATIC, 5, 77, 452, 55
GROUPBOX "ReactX Features", IDC_STATIC, 5, 133, 452, 35
PUSHBUTTON "DirectPlay Voice Options", IDC_BUTTON_VOICE_OPTIONS, 10, 145, 90, 14, WS_DISABLED
PUSHBUTTON "Test DirectPlay", IDC_BUTTON_TESTDPLAY, 130, 145, 80, 14, WS_DISABLED
GROUPBOX "Notes", IDC_STATIC, 5, 170, 452, 50
EDITTEXT IDC_NETWORK_NOTES, 15, 182, 432, 30, ES_LEFT | WS_BORDER | ES_READONLY | WS_TABSTOP
END
@@ -187,11 +187,11 @@ IDD_HELP_DIALOG DIALOGEX 0, 0, 462, 220
STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Stále nemůžete nalézt informace, které hledáte? Můžete vyzkoušet následující:", IDC_STATIC, 5, 0, 300, 10
PUSHBUTTON "Systémové informace", IDC_BUTTON_SYSINFO, 5, 20, 80, 14, WS_DISABLED
LTEXT "Zobrazí další systémové informace", IDC_STATIC, 90, 23, 300, 10
PUSHBUTTON "Vynucení obnovovací frekvence", IDC_BUTTON_DDRAW_REFRESH, 5, 40, 80, 14, WS_DISABLED
LTEXT "Vynutí obnovovací frekvenci pro DirectDraw", IDC_STATIC, 90, 43, 300, 10
LTEXT "Still can't find the information you're looking for? Here are some additional things you can do:", IDC_STATIC, 5, 0, 300, 10
PUSHBUTTON "System Information", IDC_BUTTON_SYSINFO, 5, 20, 80, 14, WS_DISABLED
LTEXT "Displays additional system information", IDC_STATIC, 90, 23, 300, 10
PUSHBUTTON "Refresh Rate Override", IDC_BUTTON_DDRAW_REFRESH, 5, 40, 80, 14, WS_DISABLED
LTEXT "Overrides the Refresh Rate for DirectDraw", IDC_STATIC, 90, 43, 300, 10
END
STRINGTABLE
@@ -248,12 +248,12 @@ BEGIN
IDS_D3DTEST_DESCRIPTION "Spustí se test rozhraní Direct3D. Pokračovat?"
IDS_D3DTEST_D3Dx "Tento test použije hardwarově akcelerované rozhraní Direct3D %u."
IDS_OS_VERSION "%s %s (%d.%d, Build %d)"
IDS_DMUSIC_DESC "Popis"
IDS_DMUSIC_TYPE "Typ"
IDS_DMUSIC_KERNEL "Kernel mód"
IDS_DMUSIC_IO "I/O"
IDS_DMUSIC_DLS "Podporuje DLS"
IDS_DMUSIC_EXT "Externí"
IDS_DMUSIC_PORT "Výchozí port"
IDS_DDDISABLE_MSG "Tímto dojde k zakázání akcelerace DirectDraw na všech zobrazovacích zařízeních\n.Přejete si pokračovat?\n"
IDS_DMUSIC_DESC "Description"
IDS_DMUSIC_TYPE "Type"
IDS_DMUSIC_KERNEL "Kernel Mode"
IDS_DMUSIC_IO "In/Out"
IDS_DMUSIC_DLS "Supports DLS"
IDS_DMUSIC_EXT "External"
IDS_DMUSIC_PORT "Default Port"
IDS_DDDISABLE_MSG "This will disable all hardware acceleration for DirectDraw on all display devices\n.Do you wish to continue?\n"
END

View File

@@ -6,7 +6,7 @@ list(APPEND SOURCE
add_rc_deps(fontview.rc ${CMAKE_CURRENT_SOURCE_DIR}/ttf.ico)
add_executable(fontview ${SOURCE} fontview.rc)
set_module_type(fontview win32gui UNICODE)
add_importlibs(fontview comdlg32 gdi32 shell32 user32 msvcrt kernel32 advapi32)
set_module_type(fontview win32gui)
add_importlibs(fontview comdlg32 gdi32 shell32 user32 msvcrt kernel32)
add_pch(fontview precomp.h SOURCE)
add_cd_file(TARGET fontview DESTINATION reactos/system32 FOR all)

View File

@@ -28,9 +28,6 @@
#define SPACING1 8
#define SPACING2 5
extern INT g_NumFonts;
extern WCHAR g_FontTitle[];
const WCHAR g_szFontDisplayClassName[] = L"FontDisplayClass";
LRESULT CALLBACK DisplayProc(HWND, UINT, WPARAM, LPARAM);
@@ -165,7 +162,7 @@ EnumFontFamProcW(
}
static LRESULT
Display_SetTypeFace(HWND hwnd, PLOGFONTW pLogFont)
Display_SetTypeFace(HWND hwnd, PEXTLOGFONTW pExtLogFont)
{
DISPLAYDATA* pData;
TEXTMETRIC tm;
@@ -174,21 +171,16 @@ Display_SetTypeFace(HWND hwnd, PLOGFONTW pLogFont)
SCROLLINFO si;
int i;
LOGFONTW logfont;
BOOL fOpenType;
BYTE Buffer[512];
LPOUTLINETEXTMETRICW pOTM = (LPOUTLINETEXTMETRICW)Buffer;
LPWSTR pch;
/* Set the new type face name */
pData = (DISPLAYDATA*)GetWindowLongPtr(hwnd, GWLP_USERDATA);
lstrcpynW(pData->szTypeFaceName, pLogFont->lfFaceName,
ARRAYSIZE(pData->szTypeFaceName));
_snwprintf(pData->szTypeFaceName, LF_FULLFACESIZE, pExtLogFont->elfFullName);
/* Create the new fonts */
hDC = GetDC(hwnd);
DeleteObject(pData->hCharSetFont);
logfont = *pLogFont;
logfont = pExtLogFont->elfLogFont;
logfont.lfHeight = -MulDiv(16, GetDeviceCaps(GetDC(NULL), LOGPIXELSY), 72);
pData->hCharSetFont = CreateFontIndirectW(&logfont);
@@ -197,19 +189,8 @@ Display_SetTypeFace(HWND hwnd, PLOGFONTW pLogFont)
GetTextMetrics(hDC, &tm);
if (tm.tmPitchAndFamily & TMPF_TRUETYPE)
{
if (GetOutlineTextMetricsW(hDC, sizeof(Buffer), pOTM))
{
LPBYTE pb = Buffer;
pb += (WORD)(DWORD_PTR)pOTM->otmpStyleName;
pch = (LPWSTR)pb;
if (*pch)
{
lstrcatW(pData->szTypeFaceName, L" ");
lstrcatW(pData->szTypeFaceName, pch);
}
}
BOOL fOpenType = FALSE;
fOpenType = FALSE;
EnumFontFamiliesExW(hDC, &logfont,
EnumFontFamProcW, (LPARAM)&fOpenType, 0);
@@ -253,12 +234,12 @@ Display_SetTypeFace(HWND hwnd, PLOGFONTW pLogFont)
}
static LRESULT
Display_SetString(HWND hwnd, LPCWSTR pszString)
Display_SetString(HWND hwnd, LPARAM lParam)
{
DISPLAYDATA* pData;
pData = (DISPLAYDATA*)GetWindowLongPtr(hwnd, GWLP_USERDATA);
lstrcpynW(pData->szString, pszString, ARRAYSIZE(pData->szString));
_snwprintf(pData->szString, MAX_STRING, (WCHAR*)lParam);
InvalidateRect(hwnd, NULL, TRUE);
@@ -271,10 +252,11 @@ Display_OnCreate(HWND hwnd)
DISPLAYDATA* pData;
const int nSizes[MAX_SIZES] = {8, 12, 18, 24, 36, 48, 60, 72};
int i;
LOGFONTW LogFont = {50, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE,
ANSI_CHARSET, OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS, PROOF_QUALITY,
DEFAULT_PITCH , L"MS Shell Dlg"};
EXTLOGFONTW ExtLogFont = {{50, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE,
ANSI_CHARSET, OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS, PROOF_QUALITY,
DEFAULT_PITCH , L"Ms Shell Dlg"},
L"Ms Shell Dlg"};
/* Create data structure */
pData = malloc(sizeof(DISPLAYDATA));
@@ -288,14 +270,13 @@ Display_OnCreate(HWND hwnd)
pData->nSizes[i] = nSizes[i];
}
pData->hCaptionFont = CreateFontIndirectW(&LogFont);
LogFont.lfHeight = 12;
pData->hSizeFont = CreateFontIndirectW(&LogFont);
pData->hCaptionFont = CreateFontIndirectW(&ExtLogFont.elfLogFont);
ExtLogFont.elfLogFont.lfHeight = 12;
pData->hSizeFont = CreateFontIndirectW(&ExtLogFont.elfLogFont);
Display_SetString(hwnd,
L"Jackdaws love my big sphinx of quartz. 1234567890");
Display_SetString(hwnd, (LPARAM)L"Jackdaws love my big sphinx of quartz. 1234567890");
Display_SetTypeFace(hwnd, &LogFont);
Display_SetTypeFace(hwnd, &ExtLogFont);
return 0;
}
@@ -468,7 +449,7 @@ Display_OnPrint(HWND hwnd)
pData = (DISPLAYDATA*)GetWindowLongPtr(hwnd, GWLP_USERDATA);
#endif
docinfo.cbSize = sizeof(DOCINFO);
docinfo.lpszDocName = L"Printing Font";
docinfo.lpszDocName = "Printing Font";
docinfo.lpszOutput = NULL;
docinfo.lpszDatatype = NULL;
docinfo.fwType = 0;
@@ -521,24 +502,6 @@ Display_OnPrint(HWND hwnd)
return 0;
}
LRESULT
Display_GetFullName(HWND hwnd, INT length, PWSTR ptr)
{
DISPLAYDATA *pData;
INT len;
pData = (DISPLAYDATA*)GetWindowLongPtr(hwnd, GWLP_USERDATA);
len = wcslen(pData->szTypeFaceName) + wcslen(pData->szFormat) + 2;
if (ptr != NULL && length >= len)
{
swprintf(ptr, L"%s%s", pData->szTypeFaceName, pData->szFormat);
}
return (LRESULT)len;
}
LRESULT CALLBACK
DisplayProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
@@ -557,13 +520,10 @@ DisplayProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
return Display_OnVScroll(hwnd, wParam);
case FVM_SETTYPEFACE:
return Display_SetTypeFace(hwnd, (PLOGFONTW)lParam);
return Display_SetTypeFace(hwnd, (PEXTLOGFONTW)lParam);
case FVM_SETSTRING:
return Display_SetString(hwnd, (WCHAR *)lParam);
case FVM_GETFULLNAME:
return Display_GetFullName(hwnd, (INT)wParam, (PWSTR)lParam);
return Display_SetString(hwnd, lParam);
case WM_DESTROY:
return Display_OnDestroy(hwnd);

View File

@@ -3,7 +3,6 @@
/* Messages for the display class */
#define FVM_SETTYPEFACE WM_USER
#define FVM_SETSTRING (WM_USER + 1)
#define FVM_GETFULLNAME (WM_USER + 2)
/* Size restrictions */
#define MAX_STRING 100

View File

@@ -4,7 +4,6 @@
* fontview.c
*
* Copyright (C) 2007 Timo Kreuzer <timo <dot> kreuzer <at> reactos <dot> org>
* Copyright (C) 2016-2017 Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
*
* 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
@@ -26,17 +25,13 @@
#include <winnls.h>
#include <shellapi.h>
#include <windowsx.h>
#include <winreg.h>
#include "fontview.h"
#include "resource.h"
HINSTANCE g_hInstance;
INT g_FontIndex = 0;
INT g_NumFonts = 0;
LOGFONTW g_LogFonts[64];
EXTLOGFONTW g_ExtLogFontW;
LPCWSTR g_fileName;
WCHAR g_FontTitle[1024] = L"";
static const WCHAR g_szFontViewClassName[] = L"FontViewWClass";
@@ -92,13 +87,12 @@ ErrorMsgBox(HWND hParent, DWORD dwMessageId, ...)
}
int WINAPI
wWinMain(HINSTANCE hThisInstance,
WinMain (HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPWSTR lpCmdLine,
LPSTR lpCmdLine,
int nCmdShow)
{
int argc;
INT i;
WCHAR** argv;
WCHAR szFileName[MAX_PATH] = L"";
DWORD dwSize;
@@ -124,10 +118,10 @@ wWinMain(HINSTANCE hThisInstance,
if (argc < 2)
{
OPENFILENAMEW fontOpen;
WCHAR filter[MAX_PATH*2], dialogTitle[MAX_PATH];
WCHAR filter[MAX_PATH], dialogTitle[MAX_PATH];
LoadStringW(NULL, IDS_OPEN, dialogTitle, ARRAYSIZE(dialogTitle));
LoadStringW(NULL, IDS_FILTER_LIST, filter, ARRAYSIZE(filter));
LoadStringW(NULL, IDS_OPEN, dialogTitle, MAX_PATH);
LoadStringW(NULL, IDS_FILTER_LIST, filter, MAX_PATH);
/* Clears out any values of fontOpen before we use it */
ZeroMemory(&fontOpen, sizeof(fontOpen));
@@ -167,31 +161,19 @@ wWinMain(HINSTANCE hThisInstance,
}
/* Get the font name */
dwSize = sizeof(g_LogFonts);
ZeroMemory(g_LogFonts, sizeof(g_LogFonts));
if (!GetFontResourceInfoW(fileName, &dwSize, g_LogFonts, 2))
{
ErrorMsgBox(0, IDS_ERROR_NOFONT, fileName);
return -1;
}
g_NumFonts = 0;
for (i = 0; i < ARRAYSIZE(g_LogFonts); ++i)
{
if (g_LogFonts[i].lfFaceName[0] == 0)
break;
++g_NumFonts;
}
if (g_NumFonts == 0)
dwSize = sizeof(g_ExtLogFontW.elfFullName);
if (!GetFontResourceInfoW(fileName, &dwSize, g_ExtLogFontW.elfFullName, 1))
{
ErrorMsgBox(0, IDS_ERROR_NOFONT, fileName);
return -1;
}
/* get font title */
dwSize = sizeof(g_FontTitle);
ZeroMemory(g_FontTitle, sizeof(g_FontTitle));
GetFontResourceInfoW(fileName, &dwSize, g_FontTitle, 1);
dwSize = sizeof(LOGFONTW);
if (!GetFontResourceInfoW(fileName, &dwSize, &g_ExtLogFontW.elfLogFont, 2))
{
ErrorMsgBox(0, IDS_ERROR_NOFONT, fileName);
return -1;
}
if (!Display_InitClass(hThisInstance))
{
@@ -224,7 +206,7 @@ wWinMain(HINSTANCE hThisInstance,
hMainWnd = CreateWindowExW(
0, /* Extended possibilities for variation */
g_szFontViewClassName, /* Classname */
g_FontTitle, /* Title Text */
g_ExtLogFontW.elfFullName,/* Title Text */
WS_OVERLAPPEDWINDOW, /* default window */
CW_USEDEFAULT, /* Windows decides the position */
CW_USEDEFAULT, /* where the window ends up on the screen */
@@ -240,8 +222,6 @@ wWinMain(HINSTANCE hThisInstance,
/* Main message loop */
while (GetMessage (&msg, NULL, 0, 0))
{
if (IsDialogMessage(hMainWnd, &msg))
continue;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
@@ -257,9 +237,7 @@ MainWnd_OnCreate(HWND hwnd)
WCHAR szQuit[MAX_BUTTONNAME];
WCHAR szPrint[MAX_BUTTONNAME];
WCHAR szString[MAX_STRING];
WCHAR szPrevious[MAX_STRING];
WCHAR szNext[MAX_STRING];
HWND hDisplay, hButtonInstall, hButtonPrint, hButtonPrev, hButtonNext;
HWND hDisplay, hButtonInstall, hButtonPrint;
/* create the display window */
hDisplay = CreateWindowExW(
@@ -280,6 +258,10 @@ MainWnd_OnCreate(HWND hwnd)
LoadStringW(g_hInstance, IDS_STRING, szString, MAX_STRING);
SendMessage(hDisplay, FVM_SETSTRING, 0, (LPARAM)szString);
/* Init the display window with the font name */
SendMessage(hDisplay, FVM_SETTYPEFACE, 0, (LPARAM)&g_ExtLogFontW);
ShowWindow(hDisplay, SW_SHOWNORMAL);
/* Create the install button */
LoadStringW(g_hInstance, IDS_INSTALL, szQuit, MAX_BUTTONNAME);
hButtonInstall = CreateWindowExW(
@@ -316,51 +298,6 @@ MainWnd_OnCreate(HWND hwnd)
);
SendMessage(hButtonPrint, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), (LPARAM)TRUE);
/* Create the previous button */
LoadStringW(g_hInstance, IDS_PREVIOUS, szPrevious, MAX_BUTTONNAME);
hButtonPrev = CreateWindowExW(
0, /* Extended style */
L"button", /* Classname */
szPrevious, /* Title text */
WS_CHILD | WS_VISIBLE, /* Window style */
450, /* X-pos */
BUTTON_POS_Y, /* Y-Pos */
BUTTON_WIDTH, /* Width */
BUTTON_HEIGHT, /* Height */
hwnd, /* Parent */
(HMENU)IDC_PREV, /* Identifier */
g_hInstance, /* Program Instance handler */
NULL /* Window Creation data */
);
SendMessage(hButtonPrev, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), (LPARAM)TRUE);
/* Create the next button */
LoadStringW(g_hInstance, IDS_NEXT, szNext, MAX_BUTTONNAME);
hButtonNext = CreateWindowExW(
0, /* Extended style */
L"button", /* Classname */
szNext, /* Title text */
WS_CHILD | WS_VISIBLE, /* Window style */
450, /* X-pos */
BUTTON_POS_Y, /* Y-Pos */
BUTTON_WIDTH, /* Width */
BUTTON_HEIGHT, /* Height */
hwnd, /* Parent */
(HMENU)IDC_NEXT, /* Identifier */
g_hInstance, /* Program Instance handler */
NULL /* Window Creation data */
);
SendMessage(hButtonNext, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), (LPARAM)TRUE);
EnableWindow(hButtonPrev, FALSE);
if (g_NumFonts <= 1)
EnableWindow(hButtonNext, FALSE);
/* Init the display window with the font name */
g_FontIndex = 0;
SendMessage(hDisplay, FVM_SETTYPEFACE, 0, (LPARAM)&g_LogFonts[g_FontIndex]);
ShowWindow(hDisplay, SW_SHOWNORMAL);
return 0;
}
@@ -368,36 +305,10 @@ static LRESULT
MainWnd_OnSize(HWND hwnd)
{
RECT rc;
HWND hInstall, hPrint, hPrev, hNext, hDisplay;
HDWP hDWP;
GetClientRect(hwnd, &rc);
hDWP = BeginDeferWindowPos(5);
hInstall = GetDlgItem(hwnd, IDC_INSTALL);
if (hDWP)
hDWP = DeferWindowPos(hDWP, hInstall, NULL, BUTTON_POS_X, BUTTON_POS_Y, BUTTON_WIDTH, BUTTON_HEIGHT, SWP_NOZORDER);
hPrint = GetDlgItem(hwnd, IDC_PRINT);
if (hDWP)
hDWP = DeferWindowPos(hDWP, hPrint, NULL, BUTTON_POS_X + BUTTON_WIDTH + BUTTON_PADDING, BUTTON_POS_Y, BUTTON_WIDTH, BUTTON_HEIGHT, SWP_NOZORDER);
hPrev = GetDlgItem(hwnd, IDC_PREV);
if (hDWP)
hDWP = DeferWindowPos(hDWP, hPrev, NULL, rc.right - (BUTTON_WIDTH * 2 + BUTTON_PADDING + BUTTON_POS_X), BUTTON_POS_Y, BUTTON_WIDTH, BUTTON_HEIGHT, SWP_NOZORDER);
hNext = GetDlgItem(hwnd, IDC_NEXT);
if (hDWP)
hDWP = DeferWindowPos(hDWP, hNext, NULL, rc.right - (BUTTON_WIDTH + BUTTON_POS_X), BUTTON_POS_Y, BUTTON_WIDTH, BUTTON_HEIGHT, SWP_NOZORDER);
hDisplay = GetDlgItem(hwnd, IDC_DISPLAY);
if (hDWP)
hDWP = DeferWindowPos(hDWP, hDisplay, NULL, 0, HEADER_SIZE, rc.right, rc.bottom - HEADER_SIZE, SWP_NOZORDER);
EndDeferWindowPos(hDWP);
InvalidateRect(hwnd, NULL, TRUE);
MoveWindow(GetDlgItem(hwnd, IDC_PRINT), rc.right - BUTTON_WIDTH - BUTTON_POS_X, BUTTON_POS_Y, BUTTON_WIDTH, BUTTON_HEIGHT, TRUE);
MoveWindow(GetDlgItem(hwnd, IDC_DISPLAY), 0, HEADER_SIZE, rc.right, rc.bottom - HEADER_SIZE, TRUE);
return 0;
}
@@ -421,118 +332,20 @@ MainWnd_OnPaint(HWND hwnd)
static LRESULT
MainWnd_OnInstall(HWND hwnd)
{
WCHAR szFullName[64];
DWORD fontExists;
WCHAR szSrcPath[MAX_PATH];
WCHAR szDestPath[MAX_PATH];
PWSTR pszFileName;
LONG res;
HKEY hKey;
SendDlgItemMessage(hwnd, IDC_DISPLAY, FVM_GETFULLNAME, 64, (LPARAM)szFullName);
// MessageBoxW(hwnd, szFullName, L"Debug", MB_OK);
/* First, we have to find out if the font still exists */
if (GetFileAttributes(g_fileName) == INVALID_FILE_ATTRIBUTES)
{
/* Fail, if the source file does not exist */
ErrorMsgBox(0, IDS_ERROR_NOFONT, g_fileName);
return -1;
}
/* Build the full destination file name */
GetFullPathNameW(g_fileName, MAX_PATH, szSrcPath, &pszFileName);
GetWindowsDirectoryW(szDestPath, MAX_PATH);
wcscat(szDestPath, L"\\Fonts\\");
wcscat(szDestPath, pszFileName);
/* Debug Message */
// MessageBoxW(hwnd, szDestPath, L"szDestPath", MB_OK);
// MessageBoxW(hwnd, pszFileName, L"pszFileExt", MB_OK);
/* Check if the file already exists */
if (GetFileAttributesW(szDestPath) != INVALID_FILE_ATTRIBUTES)
{
MessageBoxW(hwnd, L"This font is already installed!", L"Already Installed", MB_OK);
return 0;
}
/* Copy the font file */
if (!CopyFileW(g_fileName, szDestPath, TRUE))
{
MessageBoxW(hwnd,L"Failed to copy the font file!", L"File Error", MB_OK);
return -1;
}
/* Open the fonts key */
res = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Fonts",
0,
KEY_ALL_ACCESS,
&hKey);
if (res != ERROR_SUCCESS)
{
MessageBoxW(hwnd, L"Failed top open the fonts key!", L"Debug1", MB_OK);
return -1;
}
/* Register the font */
res = RegSetValueExW(hKey,
szFullName,
0,
REG_SZ,
(LPBYTE)pszFileName,
(wcslen(pszFileName) + 1) * sizeof(WCHAR));
if (res != ERROR_SUCCESS)
{
MessageBoxW(hwnd, L"Failed to register the new font!", L"Debug2", MB_OK);
RegCloseKey(hKey);
return -1;
}
/* Close the fonts key */
RegCloseKey(hKey);
/* if all of this goes correctly, message the user about success */
MessageBoxW(hwnd, L"Font Installation Completed.", L"Success", MB_OK);
return 0;
}
static LRESULT
MainWnd_OnPrev(HWND hwnd)
{
HWND hDisplay;
if (g_FontIndex > 0)
/* First, we have to find out if the font still exists. */
fontExists = GetFileAttributes((LPCSTR)g_fileName);
if (fontExists != 0xFFFFFFFF) /* If the file does not exist */
{
--g_FontIndex;
EnableWindow(GetDlgItem(hwnd, IDC_NEXT), TRUE);
if (g_FontIndex == 0)
EnableWindow(GetDlgItem(hwnd, IDC_PREV), FALSE);
hDisplay = GetDlgItem(hwnd, IDC_DISPLAY);
SendMessage(hDisplay, FVM_SETTYPEFACE, 0, (LPARAM)&g_LogFonts[g_FontIndex]);
InvalidateRect(hDisplay, NULL, TRUE);
ErrorMsgBox(0, IDS_ERROR_NOFONT, g_fileName);
return -1;
}
return 0;
}
static LRESULT
MainWnd_OnNext(HWND hwnd)
{
HWND hDisplay;
if (g_FontIndex + 1 < g_NumFonts)
{
++g_FontIndex;
EnableWindow(GetDlgItem(hwnd, IDC_PREV), TRUE);
if (g_FontIndex == g_NumFonts - 1)
EnableWindow(GetDlgItem(hwnd, IDC_NEXT), FALSE);
//CopyFile(g_fileName, NULL, TRUE);
MessageBox(hwnd, TEXT("This function is unimplemented"), TEXT("Unimplemented"), MB_OK);
hDisplay = GetDlgItem(hwnd, IDC_DISPLAY);
SendMessage(hDisplay, FVM_SETTYPEFACE, 0, (LPARAM)&g_LogFonts[g_FontIndex]);
InvalidateRect(hDisplay, NULL, TRUE);
}
return 0;
}
@@ -555,15 +368,11 @@ MainWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
case IDC_INSTALL:
return MainWnd_OnInstall(hwnd);
break;
case IDC_PRINT:
return Display_OnPrint(hwnd);
case IDC_PREV:
return MainWnd_OnPrev(hwnd);
case IDC_NEXT:
return MainWnd_OnNext(hwnd);
break;
}
break;

View File

@@ -8,16 +8,11 @@
#define BUTTON_POS_Y 8
#define BUTTON_WIDTH 72
#define BUTTON_HEIGHT 21
#define BUTTON_PADDING 8
#define IDC_INSTALL 1001
#define IDC_PRINT 1002
#define IDC_DISPLAY 1003
#define IDC_PREV 1004
#define IDC_NEXT 1005
LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM);
BOOL LoadFont(LPWSTR lpCmdLine);
extern INT g_FontIndex;

View File

@@ -2,7 +2,7 @@ LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
STRINGTABLE
BEGIN
IDS_INSTALL "&Install"
IDS_INSTALL "Install"
IDS_PRINT "Печат"
IDS_STRING "Абвгд ежзий клмно прсту фхцчш щъьюя. 1234567890"
IDS_OPEN "Open Font..."
@@ -10,13 +10,9 @@ BEGIN
IDS_ERROR_NOMEM "Няма достатъчно място за завършване на действието."
IDS_ERROR_NOFONT "%1 не е редовен шрифтов файл."
IDS_ERROR_NOCLASS "Неуспешно изпълнение на класа на прозореца."
IDS_FILTER_LIST "All Supported Fonts (*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc)\0*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc\0\
Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\
IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\
TrueType Font (*.ttf)\0*.ttf\0\
TrueType Font Collection (*.ttc)\0*.ttc\0\
OpenType Font (*.otf)\0*.otf\0\
OpenType Font Collection (*.otc)\0*.otc\0\
Font File (*.fon)\0*.fon\0\
All Files (*.*)\0*.*\0"
IDS_PREVIOUS "< P&revious"
IDS_NEXT "&Next >"
END

View File

@@ -2,21 +2,17 @@ LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
STRINGTABLE
BEGIN
IDS_INSTALL "&Nainstalovat"
IDS_PRINT "&Tisk"
IDS_INSTALL "Nainstalovat"
IDS_PRINT "Tisk"
IDS_STRING "Příliš žluťoučký kůň úpěl ďábelské ódy. 1234567890"
IDS_OPEN "Otevřít soubor písma..."
IDS_ERROR "Chyba"
IDS_ERROR_NOMEM "K dokončení operace není dostatek paměti."
IDS_ERROR_NOFONT "Soubor %1 není platným souborem písma."
IDS_ERROR_NOCLASS "Inicializace okna aplikace selhala."
IDS_FILTER_LIST "Podporované soubory písem (*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc)\0*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc\0\
Písmo Font (*.fon;*.fnt)\0*.fon;*.fnt\0\
Písmo TrueType (*.ttf)\0*.ttf\0\
TrueType Font Collection (*.ttc)\0*.ttc\0\
Písmo OpenType (*.otf)\0*.otf\0\
OpenType Font Collection (*.otc)\0*.otc\0\
Všechny soubory (*.*)\0*.*\0"
IDS_PREVIOUS "< &Previous"
IDS_NEXT "&Next >"
IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\
TrueType Font (*.ttf)\0*.ttf\0\
OpenType Font (*.otf)\0*.otf\0\
Font File (*.fon)\0*.fon\0\
All Files (*.*)\0*.*\0"
END

View File

@@ -2,21 +2,17 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
STRINGTABLE
BEGIN
IDS_INSTALL "&Installieren"
IDS_PRINT "&Drucken"
IDS_INSTALL "Installieren"
IDS_PRINT "Drucken"
IDS_STRING "Franz jagt im komplett verwahrlosten Taxi quer durch Bayern. 1234567890"
IDS_OPEN "Schriftartendatei öffnen..."
IDS_ERROR "Fehler"
IDS_ERROR_NOMEM "Es steht nicht genügend Speicher zur Verfügung."
IDS_ERROR_NOFONT "Die angegebene Datei %1 ist keine gültige Schriftartendatei."
IDS_ERROR_NOCLASS "Fehler beim Initialisieren der Fensterklasse."
IDS_FILTER_LIST "All Supported Fonts (*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc)\0*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc\0\
Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\
IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\
TrueType Font (*.ttf)\0*.ttf\0\
TrueType Font Collection (*.ttc)\0*.ttc\0\
OpenType Font (*.otf)\0*.otf\0\
OpenType Font Collection (*.otc)\0*.otc\0\
Font File (*.fon)\0*.fon\0\
All Files (*.*)\0*.*\0"
IDS_PREVIOUS "< P&revious"
IDS_NEXT "&Next >"
END

View File

@@ -2,21 +2,17 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
STRINGTABLE
BEGIN
IDS_INSTALL "&Install"
IDS_PRINT "&Print"
IDS_INSTALL "Install"
IDS_PRINT "Print"
IDS_STRING "Jackdaws love my big sphinx of quartz. 1234567890"
IDS_OPEN "Open Font..."
IDS_ERROR "Error"
IDS_ERROR_NOMEM "There is not enough memory to complete the operation."
IDS_ERROR_NOMEM "There's not enough memory to complete the operation."
IDS_ERROR_NOFONT "The file %1 is not a valid font file."
IDS_ERROR_NOCLASS "Could not initialize window class."
IDS_FILTER_LIST "All Supported Fonts (*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc)\0*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc\0\
Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\
IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\
TrueType Font (*.ttf)\0*.ttf\0\
TrueType Font Collection (*.ttc)\0*.ttc\0\
OpenType Font (*.otf)\0*.otf\0\
OpenType Font Collection (*.otc)\0*.otc\0\
Font File (*.fon)\0*.fon\0\
All Files (*.*)\0*.*\0"
IDS_PREVIOUS "< P&revious"
IDS_NEXT "&Next >"
END

View File

@@ -4,21 +4,17 @@ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
STRINGTABLE
BEGIN
IDS_INSTALL "&Instalar"
IDS_PRINT "Im&primir"
IDS_INSTALL "Instalar"
IDS_PRINT "Imprimir"
IDS_STRING "Jovencillo emponzoñado de whisky: ¡qué figurota exhibe! 1234567890"
IDS_OPEN "Abrir fuente..."
IDS_ERROR "Error"
IDS_ERROR_NOMEM "No hay memoria suficiente para completar la operación."
IDS_ERROR_NOFONT "El archivo %1 no es un archivo de fuente válido."
IDS_ERROR_NOCLASS "No es posible iniciar la clase de ventana."
IDS_FILTER_LIST "Todas las tipografías (*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc)\0*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc\0\
Tipografía de mapa de bits (*.fon;*.fnt)\0*.fon;*.fnt\0\
Tipografía TrueType (*.ttf)\0*.ttf\0\
Colección de tipografías TrueType (*.ttc)\0*.ttc\0\
Tipografía OpenType (*.otf)\0*.otf\0\
Colección de tipografías OpenType (*.otc)\0*.otc\0\
Todos los archivos (*.*)\0*.*\0"
IDS_PREVIOUS "< Ante&rior"
IDS_NEXT "Siguie&nte >"
IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\
TrueType Font (*.ttf)\0*.ttf\0\
OpenType Font (*.otf)\0*.otf\0\
Font File (*.fon)\0*.fon\0\
All Files (*.*)\0*.*\0"
END

View File

@@ -2,21 +2,17 @@ LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
STRINGTABLE
BEGIN
IDS_INSTALL "&Installer"
IDS_PRINT "Im&primer"
IDS_INSTALL "Installer"
IDS_PRINT "Imprimer"
IDS_STRING "Voix ambiguë d'un cœur qui au zéphyr préfère les jattes de kiwis. 1234567890"
IDS_OPEN "Ouvrir un fichier police..."
IDS_ERROR "Erreur"
IDS_ERROR_NOMEM "Mémoire insuffisante pour terminer l'opération."
IDS_ERROR_NOFONT "Le fichier %1 n'est pas un fichier de polices valide."
IDS_ERROR_NOFONT "Le fichier %1 n'est pas un fichier police valide."
IDS_ERROR_NOCLASS "Impossible d'initialiser la classe de fenêtre."
IDS_FILTER_LIST "Toutes polices supportées (*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc)\0*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc\0\
Fichier de polices (*.fon;*.fnt)\0*.fon;*.fnt\0\
Fichier de polices TrueType (*.ttf)\0*.ttf\0\
Fichier collection de polices TrueType (*.ttc)\0*.ttc\0\
Fichier de polices OpenType (*.otf)\0*.otf\0\
Fichier collection de polices OpenType (*.otc)\0*.otc\0\
Tous les fichiers (*.*)\0*.*\0"
IDS_PREVIOUS "< P&récédent"
IDS_NEXT "Suiva&nt >"
IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\
TrueType Font (*.ttf)\0*.ttf\0\
OpenType Font (*.otf)\0*.otf\0\
Font File (*.fon)\0*.fon\0\
All Files (*.*)\0*.*\0"
END

View File

@@ -12,13 +12,9 @@ BEGIN
IDS_ERROR_NOMEM "אין מספיק זיכרון כדי להשלים את הפעולה."
IDS_ERROR_NOFONT "הקובץ %1 אינו קובץ גופנים חוקי."
IDS_ERROR_NOCLASS "Could not initialize window class."
IDS_FILTER_LIST "All Supported Fonts (*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc)\0*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc\0\
Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\
IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\
TrueType Font (*.ttf)\0*.ttf\0\
TrueType Font Collection (*.ttc)\0*.ttc\0\
OpenType Font (*.otf)\0*.otf\0\
OpenType Font Collection (*.otc)\0*.otc\0\
Font File (*.fon)\0*.fon\0\
All Files (*.*)\0*.*\0"
IDS_PREVIOUS "< P&revious"
IDS_NEXT "&Next >"
END

View File

@@ -2,21 +2,17 @@ LANGUAGE LANG_ITALIAN, SUBLANG_DEFAULT
STRINGTABLE
BEGIN
IDS_INSTALL "&Installa"
IDS_PRINT "Stam&pa"
IDS_INSTALL "Installa"
IDS_PRINT "Stampa"
IDS_STRING "Jackdaws love my big sphinx of quartz. 1234567890"
IDS_OPEN "Apri Font..."
IDS_ERROR "Errore"
IDS_ERROR_NOMEM "Memoria insufficiente per completare l'operazione."
IDS_ERROR_NOFONT "Il file% 1 non è un file di origine valido."
IDS_ERROR_NOCLASS "Impossibile avviare la classe."
IDS_FILTER_LIST "Tutti i font supportati (*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc)\0*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc\0\
Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\
Font TrueType (*.ttf)\0*.ttf\0\
Collezione Font TrueType (*.ttc)\0*.ttc\0\
Font OpenType (*.otf)\0*.otf\0\
Collezione Font OpenType (*.otc)\0*.otc\0\
IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\
TrueType Font (*.ttf)\0*.ttf\0\
OpenType Font (*.otf)\0*.otf\0\
Font File (*.fon)\0*.fon\0\
All Files (*.*)\0*.*\0"
IDS_PREVIOUS "< P&recedente"
IDS_NEXT "Ava&nti >"
END

View File

@@ -4,21 +4,17 @@ LANGUAGE LANG_LITHUANIAN, SUBLANG_DEFAULT
STRINGTABLE
BEGIN
IDS_INSTALL "&Install"
IDS_PRINT "&Spausdinti"
IDS_INSTALL "Install"
IDS_PRINT "Spausdinti"
IDS_STRING "ABCDEFGHIYJKLMNOPQRSTUVWXZ ąčęėįšųūž 1234567890"
IDS_OPEN "Aatvira šriftas..."
IDS_ERROR "Klaida"
IDS_ERROR_NOMEM "Užduočiai užbaigti, nepakanka atminties."
IDS_ERROR_NOFONT "%1 nėra teisinga šrifto byla."
IDS_ERROR_NOCLASS "Nepavyko inicijuoti lango klasės."
IDS_FILTER_LIST "All Supported Fonts (*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc)\0*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc\0\
Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\
IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\
TrueType Font (*.ttf)\0*.ttf\0\
TrueType Font Collection (*.ttc)\0*.ttc\0\
OpenType Font (*.otf)\0*.otf\0\
OpenType Font Collection (*.otc)\0*.otc\0\
Font File (*.fon)\0*.fon\0\
All Files (*.*)\0*.*\0"
IDS_PREVIOUS "< P&revious"
IDS_NEXT "&Next >"
END

View File

@@ -4,21 +4,17 @@ LANGUAGE LANG_MALAY, SUBLANG_DEFAULT
STRINGTABLE
BEGIN
IDS_INSTALL "&Memasang"
IDS_PRINT "M&encetak"
IDS_INSTALL "Memasang"
IDS_PRINT "Mencetak"
IDS_STRING "Jackdaws love my big sphinx of quartz. 1234567890"
IDS_OPEN "Buka fon..."
IDS_ERROR "Ralat"
IDS_ERROR_NOMEM "Terdapat tidak cukup ingatan untuk melengkapkan operasi ini."
IDS_ERROR_NOFONT "Fail %1 bukanlah fail fon yang sah."
IDS_ERROR_NOCLASS "Tidak dapat mengawalkan kelas tetingkap."
IDS_FILTER_LIST "Semuanya disokong fon (*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc)\0*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc\0\
Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\
TrueType Font (*.ttf)\0*.ttf\0\
TrueType Font Collection (*.ttc)\0*.ttc\0\
OpenType Font (*.otf)\0*.otf\0\
OpenType Font Collection (*.otc)\0*.otc\0\
All Files (*.*)\0*.*\0"
IDS_PREVIOUS "< P&revious"
IDS_NEXT "&Next >"
IDS_FILTER_LIST "Semuanya disokong fon (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\
Fon TrueType (*.ttf)\0*.ttf\0\
Fon OpenType (*.otf)\0*.otf\0\
Fail fon (*.fon)\0*.fon\0\
Semua fail (*.*)\0*.*\0"
END

View File

@@ -2,21 +2,17 @@ LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL
STRINGTABLE
BEGIN
IDS_INSTALL "&Install"
IDS_PRINT "&Skriv"
IDS_INSTALL "Install"
IDS_PRINT "Skriv"
IDS_STRING "Jackdaws love my big sphinx of quartz. 1234567890"
IDS_OPEN "Open Font..."
IDS_ERROR "Feil"
IDS_ERROR_NOMEM "Det er ikke nok minne for å fullføre oppgaven."
IDS_ERROR_NOFONT "Filen %1 er ikke et gyldig skriftfil."
IDS_ERROR_NOCLASS "Kunne ikke initialise vindu klassen."
IDS_FILTER_LIST "All Supported Fonts (*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc)\0*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc\0\
Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\
IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\
TrueType Font (*.ttf)\0*.ttf\0\
TrueType Font Collection (*.ttc)\0*.ttc\0\
OpenType Font (*.otf)\0*.otf\0\
OpenType Font Collection (*.otc)\0*.otc\0\
Font File (*.fon)\0*.fon\0\
All Files (*.*)\0*.*\0"
IDS_PREVIOUS "< P&revious"
IDS_NEXT "&Next >"
END

View File

@@ -10,21 +10,17 @@ LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
STRINGTABLE
BEGIN
IDS_INSTALL "&Instaluj"
IDS_PRINT "&Drukuj"
IDS_INSTALL "Instaluj"
IDS_PRINT "Drukuj"
IDS_STRING "Zażółć gęślą Jaźń żółwiątkiem. 1234567890. !@#$%^&*()_+=-/?"
IDS_OPEN "Otwórz czcionkę..."
IDS_ERROR "Błąd"
IDS_ERROR_NOMEM "Brakuje pamięci do ukończenia tej operacji."
IDS_ERROR_NOFONT "Plik %1 nie jest poprawnym plikiem czcionki."
IDS_ERROR_NOCLASS "Nie udało się zainicjować klasy window."
IDS_FILTER_LIST "All Supported Fonts (*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc)\0*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc\0\
Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\
IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\
TrueType Font (*.ttf)\0*.ttf\0\
TrueType Font Collection (*.ttc)\0*.ttc\0\
OpenType Font (*.otf)\0*.otf\0\
OpenType Font Collection (*.otc)\0*.otc\0\
Font File (*.fon)\0*.fon\0\
All Files (*.*)\0*.*\0"
IDS_PREVIOUS "< P&revious"
IDS_NEXT "&Next >"
END

View File

@@ -4,21 +4,17 @@ LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
STRINGTABLE
BEGIN
IDS_INSTALL "&Install"
IDS_PRINT "Im&primir"
IDS_INSTALL "Install"
IDS_PRINT "Imprimir"
IDS_STRING "Jackdaws ama minha grande esfinge de quartzo. 1234567890"
IDS_OPEN "Open Font..."
IDS_ERROR "Erro"
IDS_ERROR_NOMEM "Não há memória suficiente para completar a operação."
IDS_ERROR_NOFONT "O arquivo %1 não é um arquivo de fonte válida."
IDS_ERROR_NOCLASS "Não foi possível inicializar a janela."
IDS_FILTER_LIST "All Supported Fonts (*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc)\0*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc\0\
Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\
IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\
TrueType Font (*.ttf)\0*.ttf\0\
TrueType Font Collection (*.ttc)\0*.ttc\0\
OpenType Font (*.otf)\0*.otf\0\
OpenType Font Collection (*.otc)\0*.otc\0\
Font File (*.fon)\0*.fon\0\
All Files (*.*)\0*.*\0"
IDS_PREVIOUS "< P&revious"
IDS_NEXT "&Next >"
END

View File

@@ -12,13 +12,9 @@ BEGIN
IDS_ERROR_NOMEM "Nu e destulă memorie pentru a încheia operația."
IDS_ERROR_NOFONT "Fișierul «%1» este un fișier font deteriorat."
IDS_ERROR_NOCLASS "Clasa de ferestre nu a putut fi inițializată."
IDS_FILTER_LIST "Toate fonturile recunoscute (*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc)\0*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc\0\
Fișiere de tip Font (*.fon;*.fnt)\0*.fon;*.fnt\0\
IDS_FILTER_LIST "Toate fonturile recunoscute (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\
Fonturi de tip TrueType (*.ttf)\0*.ttf\0\
TrueType Font Collection (*.ttc)\0*.ttc\0\
Fonturi de tip OpenType (*.otf)\0*.otf\0\
OpenType Font Collection (*.otc)\0*.otc\0\
Fișiere de tip Font (*.fon)\0*.fon\0\
Orice fișier (*.*)\0*.*\0"
IDS_PREVIOUS "< P&revious"
IDS_NEXT "&Next >"
END

View File

@@ -12,13 +12,9 @@ BEGIN
IDS_ERROR_NOMEM "Недостаточно памяти для выполнения операции."
IDS_ERROR_NOFONT "%1 не является корректным файлом шрифта."
IDS_ERROR_NOCLASS "Невозможно инициализировать класс окна."
IDS_FILTER_LIST "Все поддерживаемые шрифты (*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc)\0*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc\0\
Файлы шрифтов (*.fon;*.fnt)\0*.fon;*.fnt\0\
IDS_FILTER_LIST "Все поддерживаемые шрифты (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\
TrueType шрифты (*.ttf)\0*.ttf\0\
TrueType Font Collection (*.ttc)\0*.ttc\0\
OpenType шрифты (*.otf)\0*.otf\0\
OpenType Font Collection (*.otc)\0*.otc\0\
Файлы шрифтов (*.fon)\0*.fon\0\
Все файлы (*.*)\0*.*\0"
IDS_PREVIOUS "< P&revious"
IDS_NEXT "&Next >"
END

View File

@@ -15,13 +15,9 @@ BEGIN
IDS_ERROR_NOMEM "Na vykonanie tejto operácie nie je dostatok voľnej pamäte."
IDS_ERROR_NOFONT "Požadovaný súbor %1 nie je platným súborom písiem."
IDS_ERROR_NOCLASS "Nepodarilo sa inicializovať triedu window."
IDS_FILTER_LIST "All Supported Fonts (*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc)\0*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc\0\
Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\
IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\
TrueType Font (*.ttf)\0*.ttf\0\
TrueType Font Collection (*.ttc)\0*.ttc\0\
OpenType Font (*.otf)\0*.otf\0\
OpenType Font Collection (*.otc)\0*.otc\0\
Font File (*.fon)\0*.fon\0\
All Files (*.*)\0*.*\0"
IDS_PREVIOUS "< P&revious"
IDS_NEXT "&Next >"
END

View File

@@ -6,21 +6,17 @@ LANGUAGE LANG_ALBANIAN, SUBLANG_NEUTRAL
STRINGTABLE
BEGIN
IDS_INSTALL "&Instalo"
IDS_PRINT "&Printo"
IDS_INSTALL "Instalo"
IDS_PRINT "Printo"
IDS_STRING "Jackdaws dashuron sphinxin tim të madh prej kuartzi. 1234567890"
IDS_OPEN "Hap fontin..."
IDS_ERROR "Error"
IDS_ERROR_NOMEM "Nuk ka memorie të mjaftueshme për të përfunduar operacionin."
IDS_ERROR_NOFONT "Dokumenti %1 nuk është një font i vlefshem."
IDS_ERROR_NOCLASS "Nuk mund të fillojë dritaren e klases."
IDS_FILTER_LIST "All Supported Fonts (*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc)\0*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc\0\
Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\
IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\
TrueType Font (*.ttf)\0*.ttf\0\
TrueType Font Collection (*.ttc)\0*.ttc\0\
OpenType Font (*.otf)\0*.otf\0\
OpenType Font Collection (*.otc)\0*.otc\0\
Font File (*.fon)\0*.fon\0\
All Files (*.*)\0*.*\0"
IDS_PREVIOUS "< P&revious"
IDS_NEXT "&Next >"
END

View File

@@ -9,21 +9,17 @@ LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
STRINGTABLE
BEGIN
IDS_INSTALL "&Install"
IDS_PRINT "&Skriv ut"
IDS_INSTALL "Install"
IDS_PRINT "Skriv ut"
IDS_STRING "Jackdaws love my big sphinx of quartz. 1234567890"
IDS_OPEN "Open Font..."
IDS_ERROR "Fel"
IDS_ERROR_NOMEM "Det er inte nog minne för att slutföre operationen."
IDS_ERROR_NOFONT "Filen %1 är inte en giltig typsnittsfil."
IDS_ERROR_NOCLASS "Kunde inte initialisera Windows klassen."
IDS_FILTER_LIST "All Supported Fonts (*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc)\0*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc\0\
Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\
IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\
TrueType Font (*.ttf)\0*.ttf\0\
TrueType Font Collection (*.ttc)\0*.ttc\0\
OpenType Font (*.otf)\0*.otf\0\
OpenType Font Collection (*.otc)\0*.otc\0\
Font File (*.fon)\0*.fon\0\
All Files (*.*)\0*.*\0"
IDS_PREVIOUS "< P&revious"
IDS_NEXT "&Next >"
END

View File

@@ -3,21 +3,17 @@
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
STRINGTABLE
BEGIN
IDS_INSTALL "&Kur..."
IDS_PRINT "&Yazdır..."
IDS_INSTALL "Kur..."
IDS_PRINT "Yazdır..."
IDS_STRING "Küçük karga, benim büyük kuvars sfenksimi seviyor. 1234567890"
IDS_OPEN "Yazı Tipi Aç..."
IDS_ERROR "Yanlışlık"
IDS_ERROR_NOMEM "Bu işlemi bitirmek için yeterli bellek yok."
IDS_ERROR_NOFONT "%1 kütüğü, geçerli bir yazı tipi kütüğü değil."
IDS_ERROR_NOCLASS "Pencere sınıfı başlatılamadı."
IDS_FILTER_LIST "Tüm Desteklenen Yazı Tipleri (*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc)\0*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc\0\
Yazı Tipi Kütüğü (*.fon;*.fnt)\0*.fon;*.fnt\0\
IDS_FILTER_LIST "Tüm Desteklenen Yazı Tipleri (*.ttf, *.fon, *.otf)\0*.ttf;*.fon;*.otf\0\
TrueType Yazı Tipi (*.ttf)\0*.ttf\0\
TrueType Font Collection (*.ttc)\0*.ttc\0\
OpenType Yazı Tipi (*.otf)\0*.otf\0\
OpenType Font Collection (*.otc)\0*.otc\0\
Yazı Tipi Kütüğü (*.fon)\0*.fon\0\
Tüm Kütükler (*.*)\0*.*\0"
IDS_PREVIOUS "< P&revious"
IDS_NEXT "&Next >"
END

View File

@@ -10,7 +10,7 @@ LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
STRINGTABLE
BEGIN
IDS_INSTALL "&Install"
IDS_INSTALL "Install"
IDS_PRINT "Друк"
IDS_STRING "Чуєш їх, доцю, га? Кумедна ж ти, прощайся без ґольфів! 1234567890"
IDS_OPEN "Open Font..."
@@ -18,13 +18,9 @@ BEGIN
IDS_ERROR_NOMEM "Недостатньо пам'яті для завершення операції."
IDS_ERROR_NOFONT "Файл %1 не є коректним файлом шрифту."
IDS_ERROR_NOCLASS "Неможливо ініціалізувати віконний клас."
IDS_FILTER_LIST "All Supported Fonts (*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc)\0*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc\0\
Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\
IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\
TrueType Font (*.ttf)\0*.ttf\0\
TrueType Font Collection (*.ttc)\0*.ttc\0\
OpenType Font (*.otf)\0*.otf\0\
OpenType Font Collection (*.otc)\0*.otc\0\
Font File (*.fon)\0*.fon\0\
All Files (*.*)\0*.*\0"
IDS_PREVIOUS "< P&revious"
IDS_NEXT "&Next >"
END

View File

@@ -18,13 +18,9 @@ BEGIN
IDS_ERROR_NOMEM "没有足够的内存来完成操作。"
IDS_ERROR_NOFONT "1不是一个有效的字体档案。"
IDS_ERROR_NOCLASS "窗口无法初始化。"
IDS_FILTER_LIST "支持所有的字体 (*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc)\0*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc\0\
字体文件 (*.fon;*.fnt)\0*.fon;*.fnt\0\
IDS_FILTER_LIST "支持所有的字体 (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\
TrueType 字体 (*.ttf)\0*.ttf\0\
TrueType Font Collection (*.ttc)\0*.ttc\0\
OpenType 字体 (*.otf)\0*.otf\0\
OpenType Font Collection (*.otc)\0*.otc\0\
字体文件 (*.fon)\0*.fon\0\
所有文件 (*.*)\0*.*\0"
IDS_PREVIOUS "< P&revious"
IDS_NEXT "&Next >"
END

View File

@@ -18,13 +18,9 @@ BEGIN
IDS_ERROR_NOMEM "沒有足夠的記憶體來完成操作。"
IDS_ERROR_NOFONT "%1 不是一個有效的字體檔案。"
IDS_ERROR_NOCLASS "窗口無法初始化。"
IDS_FILTER_LIST "所有支援的字體 (*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc)\0*.fon;*.fnt;*.ttf;*.ttc;*.otf;*.otc\0\
字體檔 (*.fon;*.fnt)\0*.fon;*.fnt\0\
IDS_FILTER_LIST "所有支援的字體 (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\
TrueType 字體 (*.ttf)\0*.ttf\0\
TrueType Font Collection (*.ttc)\0*.ttc\0\
OpenType 字體 (*.otf)\0*.otf\0\
OpenType Font Collection (*.otc)\0*.otc\0\
字體檔 (*.fon)\0*.fon\0\
所有檔 (*.*)\0*.*\0"
IDS_PREVIOUS "< P&revious"
IDS_NEXT "&Next >"
END

View File

@@ -15,7 +15,4 @@
#define IDS_CHARSUPPER 701
#define IDS_SPECIALCHARS 702
#define IDS_PREVIOUS 800
#define IDS_NEXT 801
#define IDI_TT 800

View File

@@ -22,7 +22,7 @@ BEGIN
AUTORADIOBUTTON "&None", IDC_OPT_NOSCORE, 107, 45, 60, 10
AUTOCHECKBOX "Zobrazit č&as", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
AUTOCHECKBOX "Stavový řád&ek", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
AUTOCHECKBOX "&Ponechat skóre", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
AUTOCHECKBOX "&Keep Score", IDC_OPT_KEEPSCORE, 100, 66, 65, 10, WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
PUSHBUTTON "Storno", IDCANCEL, 101, 97, 50, 14
END
@@ -57,8 +57,8 @@ BEGIN
IDS_SOL_QUIT "Ukončit rozehranou hru?"
IDS_SOL_WIN "Gratulujeme, zvítězili jste!!"
IDS_SOL_DEAL "Rozdat znova?"
IDS_SOL_SCORE "Sre: %d"
IDS_SOL_TIME "Čas: %d"
IDS_SOL_SCORE "Score: %d"
IDS_SOL_TIME "Time: %d"
END
/* Menus */

View File

@@ -1,73 +0,0 @@
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
/* Dialogs */
IDD_CARDBACK DIALOGEX 6, 6, 345, 185
CAPTION "Zvolte rub karet"
FONT 8, "MS Shell Dlg"
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_SHELLFONT
BEGIN
CONTROL "", IDC_CARDBACK1, "Static", SS_NOTIFY, 4, 7, 50, 71
CONTROL "", IDC_CARDBACK2, "Static", SS_NOTIFY, 61, 7, 50, 71
CONTROL "", IDC_CARDBACK3, "Static", SS_NOTIFY, 118, 7, 50, 71
CONTROL "", IDC_CARDBACK4, "Static", SS_NOTIFY, 175, 7, 50, 71
CONTROL "", IDC_CARDBACK5, "Static", SS_NOTIFY, 232, 7, 50, 71
CONTROL "", IDC_CARDBACK6, "Static", SS_NOTIFY, 289, 7, 50, 71
CONTROL "", IDC_CARDBACK7, "Static", SS_NOTIFY, 4, 89, 50, 71
CONTROL "", IDC_CARDBACK8, "Static", SS_NOTIFY, 61, 89, 50, 71
CONTROL "", IDC_CARDBACK9, "Static", SS_NOTIFY, 118, 89, 50, 71
CONTROL "", IDC_CARDBACK10, "Static", SS_NOTIFY, 175, 89, 50, 71
CONTROL "", IDC_CARDBACK11, "Static", SS_NOTIFY, 232, 89, 50, 71
CONTROL "", IDC_CARDBACK12, "Static", SS_NOTIFY, 289, 89, 50, 71
DEFPUSHBUTTON "OK", IDOK, 114, 165, 54, 14
PUSHBUTTON "Storno", IDCANCEL, 176, 165, 54, 14
END
IDD_DIFFICULTY DIALOGEX 100, 100, 106, 80
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_SHELLFONT
CAPTION "Obtížnost"
FONT 8, "MS Shell Dlg"
BEGIN
AUTORADIOBUTTON "Lehká: &Jedna barva", IDC_DIF_ONECOLOR, 8, 10, 80, 10, WS_GROUP | WS_TABSTOP
AUTORADIOBUTTON "Střední: &Dvě barvy", IDC_DIF_TWOCOLORS, 8, 23, 80, 10
AUTORADIOBUTTON "Težká: Č&tyři barvy", IDC_DIF_FOURCOLORS, 8, 36, 80, 10
DEFPUSHBUTTON "OK", IDOK, 8, 58, 40, 14
PUSHBUTTON "Storno", IDCANCEL, 58, 58, 40, 14
END
/* Strings */
STRINGTABLE
BEGIN
IDS_SPI_NAME "Spider"
IDS_SPI_ABOUT "Spider Solitaire vytvořil Gregor Schneider\n\nCardLib verze 1.0"
IDS_SPI_QUIT "Ukončit hru?"
IDS_SPI_WIN "Gratulace k výhře!"
IDS_SPI_DEAL "Rozdat znovu?"
END
/* Menus */
IDR_MENU1 MENU
BEGIN
POPUP "&Hra"
BEGIN
MENUITEM "&Nová hra\tF2", IDM_GAME_NEW
MENUITEM SEPARATOR
MENUITEM "&Balíček...", IDM_GAME_DECK
MENUITEM SEPARATOR
MENUITEM "&Konec", IDM_GAME_EXIT
END
POPUP "&Nápověda"
BEGIN
MENUITEM "&Obsah\tF1", IDM_HELP_CONTENTS
MENUITEM "&O programu", IDM_HELP_ABOUT
END
END
/* Accelerator */
IDR_ACCELERATOR1 ACCELERATORS
BEGIN
VK_F1, IDM_HELP_CONTENTS, VIRTKEY, NOINVERT
VK_F2, IDM_GAME_NEW, VIRTKEY, NOINVERT
END

View File

@@ -15,9 +15,6 @@ IDI_SPIDER ICON "spider.ico"
#ifdef LANGUAGE_BG_BG
#include "lang/bg-BG.rc"
#endif
#ifdef LANGUAGE_CS_CZ
#include "lang/cs-CZ.rc"
#endif
#ifdef LANGUAGE_DE_DE
#include "lang/de-DE.rc"
#endif

View File

@@ -57,21 +57,21 @@ INT_PTR CALLBACK DifficultyDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM l
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
if (IsDlgButtonChecked(hDlg, IDC_DIF_ONECOLOR) == BST_CHECKED)
dwDifficulty = IDC_DIF_ONECOLOR;
else if (IsDlgButtonChecked(hDlg, IDC_DIF_TWOCOLORS) == BST_CHECKED)
dwDifficulty = IDC_DIF_TWOCOLORS;
else if (IsDlgButtonChecked(hDlg, IDC_DIF_FOURCOLORS) == BST_CHECKED)
dwDifficulty = IDC_DIF_FOURCOLORS;
case IDOK:
if (IsDlgButtonChecked(hDlg, IDC_DIF_ONECOLOR) == BST_CHECKED)
dwDifficulty = IDC_DIF_ONECOLOR;
else if (IsDlgButtonChecked(hDlg, IDC_DIF_TWOCOLORS) == BST_CHECKED)
dwDifficulty = IDC_DIF_TWOCOLORS;
else if (IsDlgButtonChecked(hDlg, IDC_DIF_FOURCOLORS) == BST_CHECKED)
dwDifficulty = IDC_DIF_FOURCOLORS;
NewGame();
EndDialog(hDlg, TRUE);
return TRUE;
NewGame();
EndDialog(hDlg, TRUE);
return TRUE;
case IDCANCEL:
EndDialog(hDlg, FALSE);
return TRUE;
case IDCANCEL:
EndDialog(hDlg, FALSE);
return TRUE;
}
break;
}
@@ -122,16 +122,16 @@ int WINAPI _tWinMain(HINSTANCE hInst, HINSTANCE hPrev, LPTSTR szCmdLine, int iCm
MakePath(szHelpPath, MAX_PATH, _T(".hlp"));
hwnd = CreateWindow(szAppName,
szAppName,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
0, /*The real size will be computed in WndProc through WM_GETMINMAXINFO */
0, /* The real size will be computed in WndProc through WM_GETMINMAXINFO */
NULL,
NULL,
hInst,
NULL);
szAppName,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
0, /*The real size will be computed in WndProc through WM_GETMINMAXINFO */
0, /* The real size will be computed in WndProc through WM_GETMINMAXINFO */
NULL,
NULL,
hInst,
NULL);
hwndMain = hwnd;
@@ -142,9 +142,9 @@ int WINAPI _tWinMain(HINSTANCE hInst, HINSTANCE hPrev, LPTSTR szCmdLine, int iCm
DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIFFICULTY), hwnd, DifficultyDlgProc);
while (GetMessage(&msg, NULL,0,0))
while(GetMessage(&msg, NULL,0,0))
{
if (!TranslateAccelerator(hwnd, hAccelTable, &msg))
if(!TranslateAccelerator(hwnd, hAccelTable, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
@@ -153,64 +153,70 @@ int WINAPI _tWinMain(HINSTANCE hInst, HINSTANCE hPrev, LPTSTR szCmdLine, int iCm
return msg.wParam;
}
LRESULT CALLBACK CardImageWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
LRESULT CALLBACK
CardImageWndProc(HWND hwnd,
UINT msg,
WPARAM wParam,
LPARAM lParam)
{
PCARDBACK pCardBack = (PCARDBACK)GetWindowLongPtr(hwnd, GWL_USERDATA);
PCARDBACK pCardBack = (PCARDBACK)GetWindowLongPtr(hwnd,
GWL_USERDATA);
static WNDPROC hOldProc = NULL;
if (!pCardBack)
return FALSE;
if (!hOldProc)
if (!hOldProc && pCardBack)
hOldProc = pCardBack->hOldProc;
switch (msg)
{
case WM_PAINT:
case WM_PAINT:
{
HDC hdc;
PAINTSTRUCT ps;
HPEN hPen, hOldPen;
HBRUSH hBrush, hOldBrush;
RECT rc;
hdc = BeginPaint(hwnd, &ps);
if (pCardBack->bSelected)
{
HDC hdc;
PAINTSTRUCT ps;
HPEN hPen, hOldPen;
HBRUSH hBrush, hOldBrush;
RECT rc;
hPen = CreatePen(PS_SOLID, 2, RGB(0,0,0));
}
else
{
DWORD Face = GetSysColor(COLOR_3DFACE);
hPen = CreatePen(PS_SOLID, 2, Face);
}
hdc = BeginPaint(hwnd, &ps);
GetClientRect(hwnd, &rc);
hBrush = (HBRUSH)GetStockObject(NULL_BRUSH);
hOldPen = (HPEN)SelectObject(hdc, hPen);
hOldBrush = (HBRUSH)SelectObject(hdc, hBrush);
if (pCardBack->bSelected)
{
hPen = CreatePen(PS_SOLID, 2, RGB(0,0,0));
}
else
{
DWORD Face = GetSysColor(COLOR_3DFACE);
hPen = CreatePen(PS_SOLID, 2, Face);
}
Rectangle(hdc,
rc.left+1,
rc.top+1,
rc.right,
rc.bottom);
GetClientRect(hwnd, &rc);
hBrush = (HBRUSH)GetStockObject(NULL_BRUSH);
hOldPen = (HPEN)SelectObject(hdc, hPen);
hOldBrush = (HBRUSH)SelectObject(hdc, hBrush);
StretchBlt(hdc,
2,
2,
CARDBACK_OPTIONS_WIDTH,
CARDBACK_OPTIONS_HEIGHT,
__hdcCardBitmaps,
pCardBack->hdcNum * __cardwidth,
0,
__cardwidth,
__cardheight,
SRCCOPY);
Rectangle(hdc, rc.left+1, rc.top+1, rc.right, rc.bottom);
SelectObject(hdc, hOldPen);
SelectObject(hdc, hOldBrush);
StretchBlt(hdc,
2,
2,
CARDBACK_OPTIONS_WIDTH,
CARDBACK_OPTIONS_HEIGHT,
__hdcCardBitmaps,
pCardBack->hdcNum * __cardwidth,
0,
__cardwidth,
__cardheight,
SRCCOPY);
EndPaint(hwnd, &ps);
SelectObject(hdc, hOldPen);
SelectObject(hdc, hOldBrush);
EndPaint(hwnd, &ps);
break;
break;
}
case WM_LBUTTONDOWN:
@@ -218,73 +224,86 @@ LRESULT CALLBACK CardImageWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPa
break;
}
return CallWindowProc(hOldProc, hwnd, msg, wParam, lParam);
return CallWindowProc(hOldProc,
hwnd,
msg,
wParam,
lParam);
}
INT_PTR CALLBACK CardBackDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
INT_PTR CALLBACK CardBackDlgProc(HWND hDlg,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
static PCARDBACK pCardBacks = NULL;
switch (uMsg)
{
case WM_INITDIALOG:
case WM_INITDIALOG:
{
INT i, c;
SIZE_T size = sizeof(CARDBACK) * NUM_CARDBACKS;
pCardBacks = (PCARDBACK)HeapAlloc(GetProcessHeap(),
0,
size);
for (i = 0, c = CARDBACK_START; c <= CARDBACK_END; i++, c++)
{
INT i, c;
SIZE_T size = sizeof(CARDBACK) * NUM_CARDBACKS;
pCardBacks[i].hSelf = GetDlgItem(hDlg, c);
pCardBacks[i].bSelected = FALSE;
pCardBacks[i].hdcNum = CARDBACK_RES_START + i;
pCardBacks[i].imgNum = i + 1;
pCardBacks[i].hOldProc = (WNDPROC)SetWindowLongPtr(pCardBacks[i].hSelf,
GWLP_WNDPROC,
(LONG_PTR)CardImageWndProc);
pCardBacks = (PCARDBACK)HeapAlloc(GetProcessHeap(), 0, size);
SetWindowLongPtr(pCardBacks[i].hSelf,
GWL_USERDATA,
(LONG_PTR)&pCardBacks[i]);
}
if (!pCardBacks)
return FALSE;
return TRUE;
}
for (i = 0, c = CARDBACK_START; c <= CARDBACK_END; i++, c++)
case WM_COMMAND:
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
INT i, num = 0;
for (i = 0; i < NUM_CARDBACKS; i++)
{
pCardBacks[i].hSelf = GetDlgItem(hDlg, c);
pCardBacks[i].bSelected = FALSE;
pCardBacks[i].hdcNum = CARDBACK_RES_START + i;
pCardBacks[i].imgNum = i + 1;
pCardBacks[i].hOldProc = (WNDPROC)SetWindowLongPtr(pCardBacks[i].hSelf,
GWLP_WNDPROC,
(LONG_PTR)CardImageWndProc);
SetWindowLongPtr(pCardBacks[i].hSelf, GWL_USERDATA, (LONG_PTR)&pCardBacks[i]);
if (pCardBacks[i].bSelected)
{
num = pCardBacks[i].imgNum;
}
}
EndDialog(hDlg, LOWORD(wParam) == IDOK ? num : FALSE);
HeapFree(GetProcessHeap(), 0, pCardBacks);
return TRUE;
}
case WM_COMMAND:
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
if (HIWORD(wParam) == STN_CLICKED)
{
INT i;
RECT rc;
for (i = 0; i < NUM_CARDBACKS; i++)
{
INT i, num = 0;
for (i = 0; i < NUM_CARDBACKS; i++)
if (pCardBacks[i].hSelf == (HWND)lParam)
{
if (pCardBacks[i].bSelected)
{
num = pCardBacks[i].imgNum;
}
pCardBacks[i].bSelected = TRUE;
}
else
pCardBacks[i].bSelected = FALSE;
EndDialog(hDlg, LOWORD(wParam) == IDOK ? num : FALSE);
HeapFree(GetProcessHeap(), 0, pCardBacks);
return TRUE;
GetClientRect(pCardBacks[i].hSelf, &rc);
InvalidateRect(pCardBacks[i].hSelf, &rc, TRUE);
}
if (HIWORD(wParam) == STN_CLICKED)
{
INT i;
RECT rc;
for (i = 0; i < NUM_CARDBACKS; i++)
{
pCardBacks[i].bSelected = pCardBacks[i].hSelf == (HWND)lParam;
GetClientRect(pCardBacks[i].hSelf, &rc);
InvalidateRect(pCardBacks[i].hSelf, &rc, TRUE);
}
break;
}
break;
}
}
return FALSE;
@@ -295,7 +314,10 @@ VOID ShowDeckOptionsDlg(HWND hwnd)
{
INT cardBack;
if ((cardBack = DialogBox(hInstance, MAKEINTRESOURCE(IDD_CARDBACK), hwnd, CardBackDlgProc)))
if ((cardBack = DialogBox(hInstance,
MAKEINTRESOURCE(IDD_CARDBACK),
hwnd,
CardBackDlgProc)))
{
SpiderWnd.SetBackCardIdx(CARDBACK_RES_START + (cardBack - 1));
SpiderWnd.Redraw();
@@ -306,7 +328,7 @@ LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
static int nWidth, nHeight;
switch (iMsg)
switch(iMsg)
{
case WM_CREATE:
{
@@ -347,27 +369,27 @@ LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
}
case WM_COMMAND:
switch (LOWORD(wParam))
switch(LOWORD(wParam))
{
case IDM_GAME_NEW:
NewGame();
return 0;
case IDM_GAME_NEW:
NewGame();
return 0;
case IDM_GAME_DECK:
ShowDeckOptionsDlg(hwnd);
return 0;
case IDM_GAME_DECK:
ShowDeckOptionsDlg(hwnd);
return 0;
case IDM_HELP_CONTENTS:
WinHelp(hwnd, szHelpPath, HELP_CONTENTS, 0);//HELP_KEY, (DWORD)"How to play");
return 0;
case IDM_HELP_CONTENTS:
WinHelp(hwnd, szHelpPath, HELP_CONTENTS, 0);//HELP_KEY, (DWORD)"How to play");
return 0;
case IDM_HELP_ABOUT:
MessageBox(hwnd, MsgAbout, szAppName, MB_OK|MB_ICONINFORMATION);
return 0;
case IDM_HELP_ABOUT:
MessageBox(hwnd, MsgAbout, szAppName, MB_OK|MB_ICONINFORMATION);
return 0;
case IDM_GAME_EXIT:
PostMessage(hwnd, WM_CLOSE, 0, 0);
return 0;
case IDM_GAME_EXIT:
PostMessage(hwnd, WM_CLOSE, 0, 0);
return 0;
}
return 0;

View File

@@ -492,8 +492,6 @@ WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
if (!ShellExecuteEx(&shInputDll))
MessageBox(hwnd, _T("Can't start input.dll"), NULL, MB_OK | MB_ICONERROR);
return 0;
}
default:

View File

@@ -1,71 +0,0 @@
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
IDC_MAGNIFIER MENU
BEGIN
POPUP "&Soubor"
BEGIN
MENUITEM "&Ukončit", IDM_EXIT
MENUITEM "&Možnosti", IDM_OPTIONS
MENUITEM SEPARATOR
MENUITEM "&O programu", IDM_ABOUT
END
END
IDC_MAGNIFIER ACCELERATORS
BEGIN
"?", IDM_ABOUT, ASCII, ALT
"/", IDM_ABOUT, ASCII, ALT
END
IDD_ABOUTBOX DIALOGEX 22, 17, 220, 75
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_CAPTION | WS_SYSMENU
CAPTION "O programu"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
ICON IDI_ICON, IDC_MYICON, 14, 9, 20, 20
LTEXT "Lupa verze 1.0", IDC_STATIC, 49, 10, 119, 8, SS_NOPREFIX
LTEXT "Copyright (C) 2007 Marc Piulachs (marc.piulachs@codexchange.net)", IDC_STATIC, 48, 24, 125, 22
PUSHBUTTON "OK", IDOK, 162, 48, 50, 14
END
IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Nastavení Lupy"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "OK", IDOK, 96, 161, 50, 14
PUSHBUTTON "&Nápověda", IDC_BUTTON_HELP, 38, 161, 50, 14
LTEXT "Úrověň &zvětšení:", IDC_STATIC, 6, 8, 68, 8
COMBOBOX IDC_ZOOM, 72, 6, 63, 66, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
GROUPBOX "Sledování", IDC_STATIC, 7, 25, 139, 59
GROUPBOX "Zobrazení", IDC_STATIC, 7, 87, 139, 57
CONTROL "Sledovat &myš", IDC_FOLLOWMOUSECHECK, "Button",
BS_AUTOCHECKBOX | WS_TABSTOP, 18, 42, 114, 10
CONTROL "Sledovat &klávesnici", IDC_FOLLOWKEYBOARDCHECK, "Button",
BS_AUTOCHECKBOX | WS_TABSTOP, 18, 54, 114, 10
CONTROL "Sledovat ú&pravu textu", IDC_FOLLOWTEXTEDITINGCHECK, "Button",
BS_AUTOCHECKBOX | WS_TABSTOP, 18, 66, 114, 10
CONTROL "&Invertovat barvy", IDC_INVERTCOLORSCHECK, "Button",
BS_AUTOCHECKBOX | WS_TABSTOP, 18, 102, 114, 10
CONTROL "&Spustit minimalizované", IDC_STARTMINIMIZEDCHECK, "Button",
BS_AUTOCHECKBOX | WS_TABSTOP, 18, 114, 114, 10
CONTROL "&Zobrazit lupu", IDC_SHOWMAGNIFIERCHECK, "Button",
BS_AUTOCHECKBOX | WS_TABSTOP, 18, 126, 114, 10
END
IDD_WARNINGDIALOG DIALOGEX 0, 0, 250, 97
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION
CAPTION "ReactOS Lupa"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "OK", IDOK, 193, 76, 50, 14
ICON IDI_ICON, IDC_STATIC, 7, 17, 20, 20
LTEXT "Program Lupa poskytuje základní funkčnost pro lehce zrakově postižené. Většina uživatelů s poškozeným zrakem bude pro každodenní použití potřebovat program s více funkcemi.", IDC_STATIC, 36, 7, 207, 33
CONTROL "Tuto zprávu již nezobrazovat", IDC_SHOWWARNINGCHECK, "Button",
BS_AUTOCHECKBOX | WS_TABSTOP, 43, 80, 137, 10
END
STRINGTABLE
BEGIN
IDS_APP_TITLE "Lupa"
END

View File

@@ -21,9 +21,6 @@ IDI_ICON ICON "res/magnify.ico"
#ifdef LANGUAGE_BG_BG
#include "lang/bg-BG.rc"
#endif
#ifdef LANGUAGE_CS_CZ
#include "lang/cs-CZ.rc"
#endif
#ifdef LANGUAGE_DE_DE
#include "lang/de-DE.rc"
#endif

View File

@@ -9,7 +9,7 @@ IDM_CONSOLE_SMALL MENU
BEGIN
POPUP "&Soubor"
BEGIN
MENUITEM "Nový\tCtrl+N", IDM_FILE_NEW
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "&Otevřít...\tCtrl+O", IDM_FILE_OPEN
MENUITEM SEPARATOR
MENUITEM "Uk&ončit\tAlt+F4", IDM_FILE_EXIT
@@ -24,16 +24,16 @@ IDM_CONSOLE_LARGE MENU
BEGIN
POPUP "&Soubor"
BEGIN
MENUITEM "Nový\tCtrl+N", IDM_FILE_NEW
MENUITEM "New\tCtrl+N", IDM_FILE_NEW
MENUITEM "&Otevřít...\tCtrl+O", IDM_FILE_OPEN
MENUITEM "&Uložiť", IDM_FILE_SAVE
MENUITEM "Uložit j&ako...", IDM_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "Uk&ončit\tAlt+F4", IDM_FILE_EXIT
END
POPUP "&Okna"
POPUP "&Windows"
BEGIN
MENUITEM "Seznam", IDM_WINDOWS_LIST
MENUITEM "List", IDM_WINDOWS_LIST
END
POPUP "&Nápověda"
BEGIN

View File

@@ -49,14 +49,14 @@ END
STRINGTABLE
BEGIN
IDS_MODE_UNKNOWN "Neznámý"
IDS_MODE_OPEN "Otevřeno"
IDS_MODE_STOP "Zastaveno"
IDS_MODE_PLAY "Přehrávání"
IDS_MODE_PAUSE "Pozastaveno"
IDS_MODE_RECORD "Záznam"
IDS_MODE_SEEK "Hledám"
IDS_MODE_NOT_READY "Nepřipraveno"
IDS_MODE_UNKNOWN "Unknown"
IDS_MODE_OPEN "Opened"
IDS_MODE_STOP "Stopped"
IDS_MODE_PLAY "Playing"
IDS_MODE_PAUSE "Paused"
IDS_MODE_RECORD "Recording"
IDS_MODE_SEEK "Seeking"
IDS_MODE_NOT_READY "Not ready"
IDS_ALL_TYPES_FILTER "Všechny podporované"
IDS_TOOLTIP_PLAY "Přehrát"
IDS_TOOLTIP_STOP "Zastavit"
@@ -65,7 +65,7 @@ BEGIN
IDS_TOOLTIP_SEEKBACK "Posunout zpět"
IDS_TOOLTIP_SEEKFORW "Posunout vpřed"
IDS_TOOLTIP_FORWARD "Přeskočit vpřed"
IDS_TOOLTIP_PAUSE "Pozastavit"
IDS_TOOLTIP_PAUSE "Pause"
IDS_APPTITLE "ReactOS Přehrávač multimédií"
IDS_PLAY "Přehrát"
IDS_DEFAULTMCIERRMSG "Pro tuto chybu není dostupný žádný popis."

View File

@@ -124,6 +124,7 @@ VOID FreeLogFilterList(VOID);
ATOM MyRegisterClass(HINSTANCE);
BOOL InitInstance(HINSTANCE, int);
VOID ExitInstance(HINSTANCE);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR EventLogProperties(HINSTANCE, HWND, PEVENTLOGFILTER);
INT_PTR CALLBACK EventDetails(HWND, UINT, WPARAM, LPARAM);
@@ -226,6 +227,8 @@ Cleanup:
if (hStartStopEnumEvent)
CloseHandle(hStartStopEnumEvent);
ExitInstance(hInstance);
Quit:
FreeLibrary(hRichEdit);
@@ -1088,10 +1091,9 @@ Quit:
if (!Success)
{
if (pevlr->EventCategory != 0)
{
StringCchPrintfW(CategoryName, MAX_PATH, L"(%lu)", pevlr->EventCategory);
Success = TRUE;
}
else
LoadStringW(hInst, IDS_NONE, CategoryName, MAX_PATH);
}
return Success;
@@ -1261,30 +1263,18 @@ GetEventType(IN WORD dwEventType,
BOOL
GetEventUserName(IN PEVENTLOGRECORD pelr,
IN OUT PSID pLastSid,
OUT PWCHAR pszUser) // TODO: Add IN DWORD BufLen
{
PSID pCurrentSid;
PSID pSid;
PWSTR StringSid;
WCHAR szName[1024];
WCHAR szDomain[1024];
SID_NAME_USE peUse;
DWORD cchName = ARRAYSIZE(szName);
DWORD cchDomain = ARRAYSIZE(szDomain);
BOOL Success;
/* Point to the SID */
pCurrentSid = (PSID)((LPBYTE)pelr + pelr->UserSidOffset);
if (!IsValidSid(pCurrentSid))
{
pLastSid = NULL;
return FALSE;
}
else if (pLastSid && EqualSid(pLastSid, pCurrentSid))
{
return TRUE;
}
pSid = (PSID)((LPBYTE)pelr + pelr->UserSidOffset);
/* User SID */
if (pelr->UserSidLength > 0)
@@ -1296,7 +1286,7 @@ GetEventUserName(IN PEVENTLOGRECORD pelr,
* 'pszUser', otherwise we return an error.
*/
if (LookupAccountSidW(NULL, // FIXME: Use computer name? From the particular event?
pCurrentSid,
pSid,
szName,
&cchName,
szDomain,
@@ -1304,11 +1294,13 @@ GetEventUserName(IN PEVENTLOGRECORD pelr,
&peUse))
{
StringCchCopyW(pszUser, MAX_PATH, szName);
Success = TRUE;
return TRUE;
}
else if (ConvertSidToStringSidW(pCurrentSid, &StringSid))
else if (ConvertSidToStringSidW(pSid, &StringSid))
{
/* Copy the string only if the user-provided buffer is big enough */
BOOL Success;
/* Copy the string only if the user-provided buffer is small enough */
if (wcslen(StringSid) + 1 <= MAX_PATH) // + 1 for NULL-terminator
{
StringCchCopyW(pszUser, MAX_PATH, StringSid);
@@ -1322,12 +1314,12 @@ GetEventUserName(IN PEVENTLOGRECORD pelr,
/* Free the allocated buffer */
LocalFree(StringSid);
return Success;
}
}
pLastSid = Success ? pCurrentSid : NULL;
return Success;
return FALSE;
}
@@ -1430,18 +1422,14 @@ EnumEventsThread(IN LPVOID lpParameter)
ULONG LogIndex;
HANDLE hEventLog;
PEVENTLOGRECORD pEvlr = NULL;
PBYTE pEvlrEnd;
PBYTE pEvlrBuffer;
DWORD dwWanted, dwRead, dwNeeded, dwStatus = ERROR_SUCCESS;
PEVENTLOGRECORD pevlr, pevlrTmp = NULL;
DWORD dwRead, dwNeeded; // , dwThisRecord;
DWORD dwTotalRecords = 0, dwCurrentRecord = 0;
DWORD dwFlags, dwMaxLength;
size_t cchRemaining;
LPWSTR lpszSourceName;
LPWSTR lpszComputerName;
BOOL bResult = TRUE; /* Read succeeded */
HANDLE hProcessHeap = GetProcessHeap();
PSID pLastSid = NULL;
UINT uStep = 0, uStepAt = 0, uPos = 0;
@@ -1453,9 +1441,7 @@ EnumEventsThread(IN LPVOID lpParameter)
WCHAR szEventTypeText[MAX_LOADSTRING];
WCHAR szCategoryID[MAX_PATH];
WCHAR szUsername[MAX_PATH];
WCHAR szNoUsername[MAX_PATH];
WCHAR szCategory[MAX_PATH];
WCHAR szNoCategory[MAX_PATH];
PWCHAR lpTitleTemplateEnd;
SYSTEMTIME time;
@@ -1514,119 +1500,131 @@ EnumEventsThread(IN LPVOID lpParameter)
}
/* Set up the event records cache */
g_RecordPtrs = HeapAlloc(hProcessHeap, HEAP_ZERO_MEMORY, dwTotalRecords * sizeof(*g_RecordPtrs));
g_RecordPtrs = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwTotalRecords * sizeof(*g_RecordPtrs));
if (!g_RecordPtrs)
{
// ShowLastWin32Error();
goto Quit;
goto Cleanup;
}
g_TotalRecords = dwTotalRecords;
if (WaitForSingleObject(hStopEnumEvent, 0) == WAIT_OBJECT_0)
goto Quit;
LoadStringW(hInst, IDS_NOT_AVAILABLE, szNoUsername, ARRAYSIZE(szNoUsername));
LoadStringW(hInst, IDS_NONE, szNoCategory, ARRAYSIZE(szNoCategory));
ProgressBar_SetRange(hwndStatusProgress, MAKELPARAM(0, 100));
uStepAt = (dwTotalRecords / 100) + 1;
dwFlags = EVENTLOG_SEQUENTIAL_READ | (NewestEventsFirst ? EVENTLOG_FORWARDS_READ : EVENTLOG_BACKWARDS_READ);
dwFlags = EVENTLOG_SEQUENTIAL_READ |
(NewestEventsFirst ? EVENTLOG_FORWARDS_READ
: EVENTLOG_BACKWARDS_READ);
/* 0x7ffff is the maximum buffer size ReadEventLog will accept */
dwWanted = 0x7ffff;
pEvlr = HeapAlloc(hProcessHeap, 0, dwWanted);
if (!pEvlr)
goto Quit;
while (dwStatus == ERROR_SUCCESS)
while (dwCurrentRecord < dwTotalRecords)
{
bResult = ReadEventLogW(hEventLog, dwFlags, 0, pEvlr, dwWanted, &dwRead, &dwNeeded);
dwStatus = GetLastError();
//
// NOTE: We always allocate the minimum size for 1 record, and if
// the ReadEventLog call fails (it always will anyway), we reallocate
// the record pointer to be able to hold just 1 record, and then we
// redo that for each event.
// This is obviously not at all efficient (in terms of numbers of
// ReadEventLog calls), since ReadEventLog can fill the buffer with
// as many records they can fit completely in the buffer.
//
if (!bResult && dwStatus == ERROR_INSUFFICIENT_BUFFER)
pevlr = HeapAlloc(GetProcessHeap(), 0, sizeof(*pevlr));
if (!pevlr)
{
pEvlr = HeapReAlloc(hProcessHeap, 0, pEvlr, dwNeeded);
dwWanted = dwNeeded;
if (!pEvlr)
break;
bResult = ReadEventLogW(hEventLog, dwFlags, 0, pEvlr, dwNeeded, &dwRead, &dwNeeded);
if (!bResult)
break;
}
else if (!bResult)
{
/* exit on other errors (ERROR_HANDLE_EOF) */
break;
}
pEvlrBuffer = (LPBYTE)pEvlr;
pEvlrEnd = pEvlrBuffer + dwRead;
while (pEvlrBuffer < pEvlrEnd)
{
PEVENTLOGRECORD pEvlrTmp = (PEVENTLOGRECORD)pEvlrBuffer;
PWSTR lpszUsername, lpszCategoryName;
/* Cannot allocate, just skip the event */
g_RecordPtrs[dwCurrentRecord] = NULL;
// --dwTotalRecords;
continue;
}
g_RecordPtrs[dwCurrentRecord] = pevlr;
bResult = ReadEventLogW(hEventLog, // Event log handle
dwFlags, // Sequential read
0, // Ignored for sequential read
pevlr, // Pointer to buffer
sizeof(*pevlr), // Size of buffer
&dwRead, // Number of bytes read
&dwNeeded); // Bytes in the next record
if (!bResult && (GetLastError () == ERROR_INSUFFICIENT_BUFFER))
{
pevlrTmp = HeapReAlloc(GetProcessHeap(), 0, pevlr, dwNeeded);
if (!pevlrTmp)
{
/* Cannot reallocate, just skip the event */
HeapFree(GetProcessHeap(), 0, pevlr);
g_RecordPtrs[dwCurrentRecord] = NULL;
// --dwTotalRecords;
continue;
}
pevlr = pevlrTmp;
g_RecordPtrs[dwCurrentRecord] = pevlr;
ReadEventLogW(hEventLog, // event log handle
dwFlags, // read flags
0, // offset; default is 0
pevlr, // pointer to buffer
dwNeeded, // size of buffer
&dwRead, // number of bytes read
&dwNeeded); // bytes in next record
}
while (dwRead > 0)
{
// ProgressBar_StepIt(hwndStatusProgress);
uStep++;
if (uStep % uStepAt == 0)
if(uStep % uStepAt == 0)
{
++uPos;
ProgressBar_SetPos(hwndStatusProgress, uPos);
}
if (WaitForSingleObject(hStopEnumEvent, 0) == WAIT_OBJECT_0)
if (WaitForSingleObject(hStopEnumEvent, 0) == WAIT_OBJECT_0)
goto Quit;
/* Filter by event type */
if (!FilterByType(EventLogFilter, pEvlrTmp))
if (!FilterByType(EventLogFilter, pevlr))
goto SkipEvent;
/* Get the event source name and filter it */
lpszSourceName = (LPWSTR)(pEvlrBuffer + sizeof(EVENTLOGRECORD));
lpszSourceName = (LPWSTR)((LPBYTE)pevlr + sizeof(EVENTLOGRECORD));
if (!FilterByString(EventLogFilter->Sources, lpszSourceName))
goto SkipEvent;
/* Get the computer name and filter it */
lpszComputerName = (LPWSTR)(pEvlrBuffer + sizeof(EVENTLOGRECORD) + (wcslen(lpszSourceName) + 1) * sizeof(WCHAR));
lpszComputerName = (LPWSTR)((LPBYTE)pevlr + sizeof(EVENTLOGRECORD) + (wcslen(lpszSourceName) + 1) * sizeof(WCHAR));
if (!FilterByString(EventLogFilter->ComputerNames, lpszComputerName))
goto SkipEvent;
/* Compute the event time */
EventTimeToSystemTime(pEvlrTmp->TimeWritten, &time);
EventTimeToSystemTime(pevlr->TimeWritten, &time);
GetDateFormatW(LOCALE_USER_DEFAULT, DATE_SHORTDATE, &time, NULL, szLocalDate, ARRAYSIZE(szLocalDate));
GetTimeFormatW(LOCALE_USER_DEFAULT, 0, &time, NULL, szLocalTime, ARRAYSIZE(szLocalTime));
/* Get the username that generated the event, and filter it */
lpszUsername = GetEventUserName(pEvlrTmp, pLastSid, szUsername) ? szUsername : szNoUsername;
LoadStringW(hInst, IDS_NOT_AVAILABLE, szUsername, ARRAYSIZE(szUsername));
LoadStringW(hInst, IDS_NONE, szCategory, ARRAYSIZE(szCategory));
if (!FilterByString(EventLogFilter->Users, lpszUsername))
/* Get the username that generated the event, and filter it */
GetEventUserName(pevlr, szUsername);
if (!FilterByString(EventLogFilter->Users, szUsername))
goto SkipEvent;
// TODO: Filter by event ID and category
GetEventType(pEvlrTmp->EventType, szEventTypeText);
lpszCategoryName = GetEventCategory(EventLog->LogName, lpszSourceName, pEvlrTmp, szCategory) ? szCategory : szNoCategory;
GetEventType(pevlr->EventType, szEventTypeText);
GetEventCategory(EventLog->LogName, lpszSourceName, pevlr, szCategory);
StringCbPrintfW(szEventID, sizeof(szEventID), L"%u", (pEvlrTmp->EventID & 0xFFFF));
StringCbPrintfW(szCategoryID, sizeof(szCategoryID), L"%u", pEvlrTmp->EventCategory);
g_RecordPtrs[dwCurrentRecord] = HeapAlloc(hProcessHeap, 0, pEvlrTmp->Length);
RtlCopyMemory(g_RecordPtrs[dwCurrentRecord], pEvlrTmp, pEvlrTmp->Length);
StringCbPrintfW(szEventID, sizeof(szEventID), L"%u", (pevlr->EventID & 0xFFFF));
StringCbPrintfW(szCategoryID, sizeof(szCategoryID), L"%u", pevlr->EventCategory);
lviEventItem.mask = LVIF_IMAGE | LVIF_TEXT | LVIF_PARAM;
lviEventItem.iItem = 0;
lviEventItem.iSubItem = 0;
lviEventItem.lParam = (LPARAM)g_RecordPtrs[dwCurrentRecord];
lviEventItem.lParam = (LPARAM)pevlr;
lviEventItem.pszText = szEventTypeText;
switch (pEvlrTmp->EventType)
switch (pevlr->EventType)
{
case EVENTLOG_SUCCESS:
case EVENTLOG_INFORMATION_TYPE:
@@ -1655,22 +1653,21 @@ EnumEventsThread(IN LPVOID lpParameter)
ListView_SetItemText(hwndListView, lviEventItem.iItem, 1, szLocalDate);
ListView_SetItemText(hwndListView, lviEventItem.iItem, 2, szLocalTime);
ListView_SetItemText(hwndListView, lviEventItem.iItem, 3, lpszSourceName);
ListView_SetItemText(hwndListView, lviEventItem.iItem, 4, lpszCategoryName);
ListView_SetItemText(hwndListView, lviEventItem.iItem, 4, szCategory);
ListView_SetItemText(hwndListView, lviEventItem.iItem, 5, szEventID);
ListView_SetItemText(hwndListView, lviEventItem.iItem, 6, lpszUsername);
ListView_SetItemText(hwndListView, lviEventItem.iItem, 6, szUsername);
ListView_SetItemText(hwndListView, lviEventItem.iItem, 7, lpszComputerName);
SkipEvent:
pEvlrBuffer += pEvlrTmp->Length;
dwCurrentRecord++;
dwRead -= pevlr->Length;
pevlr = (PEVENTLOGRECORD)((LPBYTE) pevlr + pevlr->Length);
}
dwCurrentRecord++;
}
Quit:
if (pEvlr)
HeapFree(hProcessHeap, 0, pEvlr);
/* Close the event log */
CloseEventLog(hEventLog);
@@ -2408,6 +2405,135 @@ FreeLogFilterList(VOID)
return;
}
/*
* ListView subclassing to handle WM_PAINT messages before and after they are
* handled by the ListView window itself. We cannot use at this level the
* custom-drawn notifications that are more suitable for drawing elements
* inside the ListView.
*/
static WNDPROC orgListViewWndProc = NULL;
static BOOL IsLoading = FALSE;
LRESULT CALLBACK
ListViewWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case LVM_PROGRESS:
{
/* TRUE: Create the dialog; FALSE: Destroy the dialog */
IsLoading = !!(BOOL)lParam;
return IsLoading;
}
case WM_PAINT:
{
/* This code is adapted from: http://www.codeproject.com/Articles/216/Indicating-an-empty-ListView */
int nItemCount;
PAINTSTRUCT ps;
HDC hDC;
HWND hwndHeader;
RECT rc, rcH;
COLORREF crTextOld, crTextBkOld;
NONCLIENTMETRICSW ncm;
HFONT hFont, hFontOld;
LPWSTR lpszString;
nItemCount = ListView_GetItemCount(hWnd);
if (!IsLoading && nItemCount > 0)
break;
/*
* NOTE:
* We could have used lpNMCustomDraw->nmcd.rc for the rectangle,
* but this one actually holds the rectangle of the list view
* that is being currently repainted, so that it can be smaller
* than the list view proper. This is especially true when using
* COMCTL32.DLL version <= 6.0 .
*/
GetClientRect(hWnd, &rc);
hwndHeader = ListView_GetHeader(hWnd);
if (hwndHeader)
{
/* Note that we could also use Header_GetItemRect() */
GetClientRect(hwndHeader, &rcH);
rc.top += rcH.bottom;
}
/* Add some space between the top of the list view and the text */
rc.top += 10;
BeginPaint(hWnd, &ps);
/*
* NOTE: Using a secondary hDC (and not the ps.hdc) gives the strange
* property that the text is always recentered on the current view of
* the window, instead of being scrolled together with the contents of
* the list view...
*/
// hDC = ps.hdc;
hDC = GetDC(hWnd);
/*
* NOTE: We could have kept lpNMCustomDraw->clrText and
* lpNMCustomDraw->clrTextBk, but they usually do not contain
* the correct default colors for the items / default text.
*/
crTextOld =
SetTextColor(hDC, GetSysColor(COLOR_WINDOWTEXT));
crTextBkOld =
SetBkColor(hDC, GetSysColor(COLOR_WINDOW));
// FIXME: Cache the font?
ncm.cbSize = sizeof(ncm);
hFont = NULL;
if (SystemParametersInfoW(SPI_GETNONCLIENTMETRICS,
sizeof(ncm), &ncm, 0))
{
hFont = CreateFontIndirectW(&ncm.lfMessageFont);
}
if (!hFont)
hFont = GetStockFont(DEFAULT_GUI_FONT);
hFontOld = (HFONT)SelectObject(hDC, hFont);
FillRect(hDC, &rc, GetSysColorBrush(COLOR_WINDOW));
if (nItemCount <= 0)
lpszString = szEmptyList;
else // if (IsLoading)
lpszString = szLoadingWait;
DrawTextW(hDC,
lpszString,
-1,
&rc,
DT_CENTER | DT_WORDBREAK | DT_NOPREFIX | DT_NOCLIP);
SelectObject(hDC, hFontOld);
if (hFont)
DeleteObject(hFont);
SetBkColor(hDC, crTextBkOld);
SetTextColor(hDC, crTextOld);
ReleaseDC(hWnd, hDC);
EndPaint(hWnd, &ps);
break;
}
// case WM_ERASEBKGND:
// break;
}
/* Continue with default message processing */
return CallWindowProcW(orgListViewWndProc, hWnd, uMsg, wParam, lParam);
}
BOOL
InitInstance(HINSTANCE hInstance,
int nCmdShow)
@@ -2622,6 +2748,11 @@ InitInstance(HINSTANCE hInstance,
lvc.pszText = szTemp;
ListView_InsertColumn(hwndListView, 7, &lvc);
/* Subclass the ListView */
// orgListViewWndProc = SubclassWindow(hwndListView, ListViewWndProc);
orgListViewWndProc = (WNDPROC)(LONG_PTR)GetWindowLongPtrW(hwndListView, GWLP_WNDPROC);
SetWindowLongPtrW(hwndListView, GWLP_WNDPROC, (LONG_PTR)ListViewWndProc);
/* Initialize the save Dialog */
ZeroMemory(&sfn, sizeof(sfn));
ZeroMemory(szSaveFilter, sizeof(szSaveFilter));
@@ -2642,6 +2773,15 @@ InitInstance(HINSTANCE hInstance,
return TRUE;
}
VOID
ExitInstance(HINSTANCE hInstance)
{
/* Restore the original ListView WndProc */
// SubclassWindow(hwndListView, orgListViewWndProc);
SetWindowLongPtrW(hwndListView, GWLP_WNDPROC, (LONG_PTR)orgListViewWndProc);
orgListViewWndProc = NULL;
}
VOID ResizeWnd(INT cx, INT cy)
{
HDWP hdwp;

View File

@@ -4,28 +4,28 @@ IDM_EVENTVWR MENU
BEGIN
POPUP "&Protokol"
BEGIN
MENUITEM "&Otevřít...", IDM_OPEN_EVENTLOG
MENUITEM "Uložit &Protokol jako...", IDM_SAVE_EVENTLOG
MENUITEM "&Zavřít", IDM_CLOSE_EVENTLOG
MENUITEM "&Open...", IDM_OPEN_EVENTLOG
MENUITEM "Save &Event Log as...", IDM_SAVE_EVENTLOG
MENUITEM "&Close", IDM_CLOSE_EVENTLOG
MENUITEM SEPARATOR
MENUITEM "&Odstranit události", IDM_CLEAR_EVENTS
MENUITEM "&Přejmenovat\tF2", IDM_RENAME_EVENTLOG
MENUITEM "Nastavení protokolování...", IDM_EVENTLOG_SETTINGS
MENUITEM "&Rename\tF2", IDM_RENAME_EVENTLOG
MENUITEM "Log Se&ttings...", IDM_EVENTLOG_SETTINGS
MENUITEM SEPARATOR
MENUITEM "&Konec", IDM_EXIT
END
POPUP "&Zobrazit"
BEGIN
MENUITEM "&Od nejnovějšího", IDM_LIST_NEWEST
MENUITEM "Od &nejstaršího", IDM_LIST_OLDEST
MENUITEM "&Newest first", IDM_LIST_NEWEST
MENUITEM "&Oldest first", IDM_LIST_OLDEST
MENUITEM SEPARATOR
MENUITEM "&Podrobnosti...\tEnter", IDM_EVENT_DETAILS
MENUITEM "&Details...\tEnter", IDM_EVENT_DETAILS
MENUITEM SEPARATOR
MENUITEM "&Obnovit\tF5", IDM_REFRESH
END
POPUP "&Možnosti"
BEGIN
MENUITEM "&Zobrazit podrobnosti", IDM_SHOW_EVENT_DETAILS_VIEW
MENUITEM "&Show event details view", IDM_SHOW_EVENT_DETAILS_VIEW
END
POPUP "&Nápověda"
BEGIN
@@ -73,7 +73,7 @@ BEGIN
LTEXT "&Uživatel:", IDC_STATIC, 8, 35, 36, 8
EDITTEXT IDC_EVENTUSERSTATIC, 46, 35, 152, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL
LTEXT "P&očítač:", IDC_STATIC, 8, 45, 36, 8
EDITTEXT IDC_EVENTCOMPUTERSTATIC, 46, 45, 152, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL
EDITTEXT IDC_EVENTCOMPUTERSTATIC, 46, 45, 52, 8, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL
PUSHBUTTON "", IDC_PREVIOUS, 230, 5, 28, 14, BS_ICON
PUSHBUTTON "", IDC_NEXT, 230, 21, 28, 14, BS_ICON
@@ -90,40 +90,40 @@ END
IDD_LOGPROPERTIES_GENERAL DIALOGEX 0, 0, 252, 234
STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION
CAPTION "Obecné"
CAPTION "General"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "&Zobrazovaný název:", IDC_STATIC, 7, 9, 60, 8
LTEXT "&Display name:", IDC_STATIC, 7, 9, 60, 8
EDITTEXT IDC_DISPLAYNAME, 67, 7, 178, 12, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
LTEXT "&Název protokolu:", IDC_STATIC, 7, 25, 60, 8
LTEXT "&Log name:", IDC_STATIC, 7, 25, 60, 8
EDITTEXT IDC_LOGNAME, 67, 23, 178, 12, ES_LEFT | ES_AUTOHSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
LTEXT "Soubor &protokolu:", IDC_STATIC, 7, 41, 60, 8
LTEXT "Log &file:", IDC_STATIC, 7, 41, 60, 8
EDITTEXT IDC_LOGFILE, 67, 39, 178, 12, ES_LEFT | ES_AUTOHSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
LTEXT "Velikost:", IDC_STATIC, 7, 57, 60, 8
LTEXT "Size:", IDC_STATIC, 7, 57, 60, 8
EDITTEXT IDC_SIZE_LABEL, 67, 57, 178, 12, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL
LTEXT "Vytvořeno:", IDC_STATIC, 7, 69, 60, 8
LTEXT "Created:", IDC_STATIC, 7, 69, 60, 8
EDITTEXT IDC_CREATED_LABEL, 67, 69, 178, 12, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL
LTEXT "Změněno:", IDC_STATIC, 7, 81, 60, 8
LTEXT "Modified:", IDC_STATIC, 7, 81, 60, 8
EDITTEXT IDC_MODIFIED_LABEL, 67, 81, 178, 12, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL
LTEXT "Poslední přístup:", IDC_STATIC, 7, 93, 60, 8
LTEXT "Accessed:", IDC_STATIC, 7, 93, 60, 8
EDITTEXT IDC_ACCESSED_LABEL, 67, 93, 178, 12, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL
GROUPBOX "Velikost výpisu", IDC_STATIC, 7, 106, 238, 99
LTEXT "&Maximální velikost:", IDC_STATIC, 17, 122, 58, 8
GROUPBOX "Log size", IDC_STATIC, 7, 106, 238, 99
LTEXT "&Maximum log size:", IDC_STATIC, 17, 122, 58, 8
EDITTEXT IDC_EDIT_MAXLOGSIZE, 80, 119, 40, 14, ES_LEFT | ES_NUMBER | WS_GROUP
CONTROL "", IDC_UPDOWN_MAXLOGSIZE, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_NOTHOUSANDS | UDS_ALIGNRIGHT |
UDS_AUTOBUDDY | UDS_ARROWKEYS | WS_GROUP, 120, 119, 10, 14
LTEXT "KB", IDC_STATIC, 130, 122, 20, 8
LTEXT "Pokud je dosažena maximální velikost:", IDC_STATIC, 17, 140, 219, 8
CONTROL "&Přepsat události podle potřeby", IDC_OVERWRITE_AS_NEEDED, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 17, 155, 219, 10
CONTROL "Př&epsat události starší než", IDC_OVERWRITE_OLDER_THAN, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 17, 168, 102, 10
LTEXT "When maximum log size is reached:", IDC_STATIC, 17, 140, 219, 8
CONTROL "&Overwrite events as needed", IDC_OVERWRITE_AS_NEEDED, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 17, 155, 219, 10
CONTROL "O&verwrite events older than", IDC_OVERWRITE_OLDER_THAN, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 17, 168, 102, 10
EDITTEXT IDC_EDIT_EVENTS_AGE, 122, 165, 35, 14, ES_LEFT | ES_NUMBER | WS_GROUP
CONTROL "", IDC_UPDOWN_EVENTS_AGE, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_ALIGNRIGHT |
UDS_AUTOBUDDY | UDS_ARROWKEYS | WS_GROUP, 157, 165, 10, 14
LTEXT "dny", IDC_STATIC, 162, 168, 20, 8
CONTROL "&Nepřepisovat události\n(vyčistit protokol ručně)", IDC_NO_OVERWRITE, "Button", BS_AUTORADIOBUTTON | BS_MULTILINE | WS_GROUP | WS_TABSTOP, 17, 180, 143, 20
PUSHBUTTON "&Obnovit výchozí", IDC_RESTOREDEFAULTS, 166, 183, 70, 14
AUTOCHECKBOX "&Užívá pomalé připojení", IDC_LOW_SPEED_CONNECTION, 7, 217, 167, 10
PUSHBUTTON "&Vyčistit", ID_CLEARLOG, 195, 213, 50, 14
LTEXT "days", IDC_STATIC, 162, 168, 20, 8
CONTROL "Do &not overwrite events\n(clear log manually)", IDC_NO_OVERWRITE, "Button", BS_AUTORADIOBUTTON | BS_MULTILINE | WS_GROUP | WS_TABSTOP, 17, 180, 143, 20
PUSHBUTTON "&Restore Defaults", IDC_RESTOREDEFAULTS, 166, 183, 70, 14
AUTOCHECKBOX "Using a lo&w-speed connection", IDC_LOW_SPEED_CONNECTION, 7, 217, 167, 10
PUSHBUTTON "&Clear Log", ID_CLEARLOG, 195, 213, 50, 14
END
STRINGTABLE
@@ -133,10 +133,10 @@ BEGIN
IDS_APP_TITLE_EX "%s - Protkol %s na \\\\"
IDS_STATUS_MSG "Počet událostí v protokolu %s: %lu (listed: %lu)"
IDS_LOADING_WAIT "Načítám protokol událostí. Prosím čekejte..."
IDS_NO_ITEMS "Žádné události v tomto výpisu." // "No events in this log."
IDS_EVENTLOG_SYSTEM "Systémové protokoly"
IDS_EVENTLOG_APP "Protokoly aplikací"
IDS_EVENTLOG_USER "Uživatelské protokoly"
IDS_NO_ITEMS "There are no items to show in this view." // "No events in this log."
IDS_EVENTLOG_SYSTEM "System Logs"
IDS_EVENTLOG_APP "Application Logs"
IDS_EVENTLOG_USER "User Logs"
IDS_EVENTSTRINGIDNOTFOUND "Popis ID události ( %lu ) zdroj ( %s ) nebyl nalezen. Místní počítač neobsahuje potřebné informace v registru nebo chybí DLL soubory pro zobrazení zpráv ze vzdáleného počítače.\n\nThe following information is part of the event:\n\n"
IDS_CLEAREVENTS_MSG "Chcete tento protokol před odstraněním uložit?"
IDS_SAVE_FILTER "Protokol událostí (*.evt)\0*.evt\0"
@@ -155,7 +155,7 @@ END
STRINGTABLE
BEGIN
IDS_BYTES_FORMAT "byty" // "%s bytes"
IDS_BYTES_FORMAT "bytes" // "%s bytes"
// "%1!ls! (%2!ls! bytes)"
END
@@ -173,15 +173,15 @@ END
STRINGTABLE
BEGIN
IDS_COPY "Typ události: %s\r\n\
Zdroj: %s\r\n\
Kategorie: %s\r\n\
ID: %s\r\n\
Datum: %s\r\n\
Čas: %s\r\n\
Uživatel: %s\r\n\
Počítač: %s\r\n\
Popis: \r\n%s"
IDS_COPY "Event Type: %s\r\n\
Event Source: %s\r\n\
Event Category: %s\r\n\
Event ID: %s\r\n\
Date: %s\r\n\
Time: %s\r\n\
User: %s\r\n\
Computer: %s\r\n\
Description:\r\n%s"
END
STRINGTABLE

View File

@@ -75,7 +75,7 @@ BEGIN
END
IDD_DLG_GENERAL DIALOGEX 6, 6, 253, 232
CAPTION "Obecné"
CAPTION "General"
FONT 8, "MS Shell Dlg", 0, 0
STYLE DS_SHELLFONT | WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_GROUP | WS_TABSTOP
BEGIN
@@ -102,52 +102,52 @@ BEGIN
END
IDD_LOGON DIALOGEX 6, 6, 253, 232
CAPTION "Přihlášení"
CAPTION "Log On"
FONT 8, "MS Shell Dlg", 0, 0
STYLE DS_SHELLFONT | WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_GROUP | WS_TABSTOP
BEGIN
LTEXT "Přihlásit jako:", IDC_STATIC, 7, 7, 238, 8
AUTORADIOBUTTON "&Místní systémový účet", IDC_LOGON_SYSTEMACCOUNT, 7, 22, 238, 10, BS_TOP | BS_MULTILINE | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP
AUTORADIOBUTTON "&Tento účets:", IDC_LOGON_THISACCOUNT, 7, 52, 60, 10, BS_TOP | BS_MULTILINE | WS_CHILD | WS_VISIBLE
AUTOCHECKBOX "Povolit &aplikaci používat plochu", IDC_LOGON_INTERACTIVE, 18, 34, 227, 10, WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP | BS_TOP | BS_MULTILINE
LTEXT "Log on as:", IDC_STATIC, 7, 7, 238, 8
AUTORADIOBUTTON "&Local System account", IDC_LOGON_SYSTEMACCOUNT, 7, 22, 238, 10, BS_TOP | BS_MULTILINE | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP
AUTORADIOBUTTON "&This account:", IDC_LOGON_THISACCOUNT, 7, 52, 60, 10, BS_TOP | BS_MULTILINE | WS_CHILD | WS_VISIBLE
AUTOCHECKBOX "Allo&w service to interact with desktop", IDC_LOGON_INTERACTIVE, 18, 34, 227, 10, WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP | BS_TOP | BS_MULTILINE
EDITTEXT IDC_LOGON_ACCOUNTNAME, 72, 50, 103, 14, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Procházet...", IDC_LOGON_SEARCH, 185, 50, 60, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
LTEXT "&Heslo:", IDC_LOGON_PW1TEXT, 18, 71, 33, 8, WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_GROUP
PUSHBUTTON "&Browse...", IDC_LOGON_SEARCH, 185, 50, 60, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
LTEXT "&Password:", IDC_LOGON_PW1TEXT, 18, 71, 33, 8, WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_GROUP
EDITTEXT IDC_LOGON_PASSWORD1, 72, 68, 104, 14, ES_LEFT | ES_PASSWORD | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
LTEXT "P&otvrdit heslo:", IDC_LOGON_PW2TEXT, 18, 84, 47, 18, WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_GROUP
LTEXT "&Confirm password:", IDC_LOGON_PW2TEXT, 18, 84, 47, 18, WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_GROUP
EDITTEXT IDC_LOGON_PASSWORD2, 72, 86, 104, 14, ES_LEFT | ES_PASSWORD | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
LTEXT "Tuto službu můžete povolit nebo zakázat pro nsáledující hardwarové profily:", IDC_STATIC, 7, 114, 210, 8, WS_CHILD | WS_VISIBLE | WS_GROUP
LTEXT "You can enable or disable this service for the hardware profiles listed below:", IDC_STATIC, 7, 114, 210, 8, WS_CHILD | WS_VISIBLE | WS_GROUP
CONTROL "", IDC_LOGON_HWPROFILE, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_GROUP | WS_TABSTOP, 7, 124, 238, 65
PUSHBUTTON "Po&volit", IDC_LOGON_HWENABLE, 116, 197, 60, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_DISABLED
PUSHBUTTON "&Zakázat", IDC_LOGON_HWDISABLE, 185, 197, 60, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_DISABLED
PUSHBUTTON "&Enable", IDC_LOGON_HWENABLE, 116, 197, 60, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_DISABLED
PUSHBUTTON "&Disable", IDC_LOGON_HWDISABLE, 185, 197, 60, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_DISABLED
END
IDD_RECOVERY DIALOGEX 6, 6, 253, 232
CAPTION "Obnove"
CAPTION "Recovery"
FONT 8, "MS Shell Dlg", 0, 0
STYLE DS_SHELLFONT | WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_GROUP | WS_TABSTOP
BEGIN
LTEXT "Zvolte, co dělat v případě, že služba selže.", IDC_STATIC, 7, 7, 238, 8
LTEXT "&První selhání:", IDC_STATIC, 7, 24, 92, 8
LTEXT "Select the computer's response if this service fails.", IDC_STATIC, 7, 7, 238, 8
LTEXT "&First failure:", IDC_STATIC, 7, 24, 92, 8
COMBOBOX IDC_FIRST_FAILURE, 104, 22, 141, 147, WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST
LTEXT "&Druhé selhání:", IDC_STATIC, 7, 41, 92, 8
LTEXT "&Second failure:", IDC_STATIC, 7, 41, 92, 8
COMBOBOX IDC_SECOND_FAILURE, 104, 39, 141, 147, WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST
LTEXT "&Následná selhání:", IDC_STATIC, 7, 58, 92, 8
LTEXT "Subsequent failures:", IDC_STATIC, 7, 58, 92, 8
COMBOBOX IDC_SUBSEQUENT_FAILURES, 104, 56, 141, 147, WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST
LTEXT "&Vymazat čítač selhání po:", IDC_STATIC, 7, 75, 72, 8
LTEXT "Reset fail c&ounter after:", IDC_STATIC, 7, 75, 72, 8
EDITTEXT IDC_RESET_TIME, 104, 73, 40, 13, WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP | ES_LEFT | ES_AUTOHSCROLL | ES_NUMBER
LTEXT "dnech", IDC_STATIC, 150, 75, 95, 8
LTEXT "Restartovat &službu po:", IDC_RESTART_TEXT1, 7, 92, 92, 8
LTEXT "days", IDC_STATIC, 150, 75, 95, 8
LTEXT "Restart ser&vice after:", IDC_RESTART_TEXT1, 7, 92, 92, 8
EDITTEXT IDC_RESTART_TIME, 104, 90, 40, 13, WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP | ES_LEFT | ES_AUTOHSCROLL | ES_NUMBER
LTEXT "minutách", IDC_RESTART_TEXT2, 150, 92, 95, 8
GROUPBOX "Spustit aplikaci", IDC_RUN_GROUPBOX, 7, 108, 238, 80
LTEXT "&Aplikace:", IDC_RUN_TEXT1, 14, 121, 168, 8
LTEXT "minutes", IDC_RESTART_TEXT2, 150, 92, 95, 8
GROUPBOX "Run program", IDC_RUN_GROUPBOX, 7, 108, 238, 80
LTEXT "&Program:", IDC_RUN_TEXT1, 14, 121, 168, 8
EDITTEXT IDC_PROGRAM, 14, 131, 165, 14
PUSHBUTTON "&Procházet...", IDC_BROWSE_PROGRAM, 180, 131, 58, 14
LTEXT "Pa&rametry příkazového řádku:", IDC_RUN_TEXT2, 14, 155, 108, 8
PUSHBUTTON "&Browse...", IDC_BROWSE_PROGRAM, 180, 131, 58, 14
LTEXT "&Command line parameters:", IDC_RUN_TEXT2, 14, 155, 108, 8
EDITTEXT IDC_PARAMETERS, 128, 152, 110, 14
AUTOCHECKBOX "Připojit počet selhání na &konec příkazu (/fail=%1%)", IDC_ADD_FAILCOUNT, 14, 171, 219, 10, WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_TOP | BS_MULTILINE
PUSHBUTTON "&Možnosti restartování počítače...", IDC_RESTART_OPTIONS, 116, 197, 129, 14
AUTOCHECKBOX "Append fail count to &end of command line (/fail=%1%)", IDC_ADD_FAILCOUNT, 14, 171, 219, 10, WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_TOP | BS_MULTILINE
PUSHBUTTON "&Restart Computer Options...", IDC_RESTART_OPTIONS, 116, 197, 129, 14
END
IDD_DLG_DEPEND DIALOGEX 6, 6, 253, 225
@@ -331,14 +331,14 @@ END
STRINGTABLE
BEGIN
IDS_NO_ACTION "Nevykonávat žádnou akci"
IDS_RESTART_SERVICE "Restartovat službu"
IDS_RUN_PROGRAM "Spustit aplikaci"
IDS_RESTART_COMPUTER "Restartovat počítač"
IDS_NO_ACTION "Take no action"
IDS_RESTART_SERVICE "Restart the Service"
IDS_RUN_PROGRAM "Run a Program"
IDS_RESTART_COMPUTER "Restart the Computer"
END
STRINGTABLE
BEGIN
IDS_NOT_SAME_PASSWORD "Hesla nesouhlasí!"
IDS_INVALID_PASSWORD "Zadejte platné heslo!"
IDS_NOT_SAME_PASSWORD "The Passwords are not the same!"
IDS_INVALID_PASSWORD "Enter a valid Password!"
END

View File

@@ -314,7 +314,7 @@ LogonPageProc(
case IDC_LOGON_INTERACTIVE:
if (HIWORD(wParam) == BN_CLICKED)
{
if (pLogonData->bInitialized)
if (pLogonData->bInitialized && pLogonData->bInitialized)
{
pLogonData->bAccountChanged = TRUE;
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);

View File

@@ -167,9 +167,9 @@ END
IDD_STRETCHSKEW DIALOGEX 100, 100, 225, 150
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
FONT 8, "MS Shell Dlg"
CAPTION "Roztáhnout a zkosit"
CAPTION "Stretch and skew image"
BEGIN
GROUPBOX "Roztáhnout", IDD_STRETCHSKEWGROUPSTRETCH, 6, 6, 158, 66
GROUPBOX "Stretch", IDD_STRETCHSKEWGROUPSTRETCH, 6, 6, 158, 66
ICON IDI_HORZSTRETCH, IDD_STRETCHSKEWICONHSTRETCH, 12, 18, 32, 32
LTEXT "Vodorovně:", IDD_STRETCHSKEWTEXTHSTRETCH, 45, 24, 40, 10
EDITTEXT IDD_STRETCHSKEWEDITHSTRETCH, 90, 23, 32, 12
@@ -178,15 +178,15 @@ BEGIN
LTEXT "Svisle:", IDD_STRETCHSKEWTEXTVSTRETCH, 45, 49, 40, 10
EDITTEXT IDD_STRETCHSKEWEDITVSTRETCH, 90, 48, 32, 12
LTEXT "%", IDD_STRETCHSKEWTEXTVPERCENT, 125, 49, 15, 10
GROUPBOX "Zkosit", IDD_STRETCHSKEWGROUPSKEW, 6, 76, 158, 66
GROUPBOX "Skew", IDD_STRETCHSKEWGROUPSKEW, 6, 76, 158, 66
ICON IDI_HORZSKEW, IDD_STRETCHSKEWICONHSKEW, 12, 88, 32, 32
LTEXT "Vodorovně:", IDD_STRETCHSKEWTEXTHSKEW, 45, 94, 40, 10
EDITTEXT IDD_STRETCHSKEWEDITHSKEW, 90, 93, 32, 12
LTEXT "stupně", IDD_STRETCHSKEWTEXTHDEG, 125, 94, 30, 10
LTEXT "degrees", IDD_STRETCHSKEWTEXTHDEG, 125, 94, 30, 10
ICON IDI_VERTSKEW, IDD_STRETCHSKEWICONVSKEW, 12, 113, 32, 32
LTEXT "Svisle:", IDD_STRETCHSKEWTEXTVSKEW, 45, 119, 40, 10
EDITTEXT IDD_STRETCHSKEWEDITVSKEW, 90, 118, 32, 12
LTEXT "stupně", IDD_STRETCHSKEWTEXTVDEG, 125, 119, 30, 10
LTEXT "degrees", IDD_STRETCHSKEWTEXTVDEG, 125, 119, 30, 10
DEFPUSHBUTTON "OK", IDOK, 170, 8, 48, 14
PUSHBUTTON "Storno", IDCANCEL, 170, 24, 48, 14
END
@@ -220,9 +220,9 @@ BEGIN
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d bajtů"
IDS_PRINTRES "%d x %d pixelů na metr"
IDS_INTNUMBERS "Zadávejte pouze celá čísla!"
IDS_PERCENTAGE "Měřítko musí být mezi 1 a 500."
IDS_ANGLE "Úhel musí být -89 a 89."
IDS_LOADERRORTEXT "Soubor %s nemohl být načten."
IDS_ENLARGEPROMPTTEXT "Obrázek ve schránce je větší než bitmapa.\nChcete bitmapu zvětšit?"
IDS_INTNUMBERS "Please enter integral numbers only!"
IDS_PERCENTAGE "The percentage must be between 1 and 500."
IDS_ANGLE "The angle must be between -89 and 89."
IDS_LOADERRORTEXT "The file %s could not be loaded."
IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?"
END

View File

@@ -222,8 +222,6 @@ LRESULT CMainWindow::OnInitMenuPopup(UINT nMsg, WPARAM wParam, LPARAM lParam, BO
switch (lParam)
{
case 0: /* File menu */
if ((HMENU)wParam != GetSubMenu(menu, 0))
break;
EnableMenuItem(menu, IDM_FILEASWALLPAPERPLANE, ENABLED_IF(isAFile));
EnableMenuItem(menu, IDM_FILEASWALLPAPERCENTERED, ENABLED_IF(isAFile));
EnableMenuItem(menu, IDM_FILEASWALLPAPERSTRETCHED, ENABLED_IF(isAFile));

View File

@@ -1,8 +1,5 @@
include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/conutils)
add_executable(ping ping.c ping.rc)
set_module_type(ping win32cui UNICODE)
target_link_libraries(ping conutils ${PSEH_LIB})
add_importlibs(ping ws2_32 iphlpapi msvcrt kernel32 ntdll)
add_importlibs(ping ws2_32 iphlpapi user32 msvcrt kernel32 ntdll)
add_cd_file(TARGET ping DESTINATION reactos/system32 FOR all)

View File

@@ -33,34 +33,34 @@ Options:\n\
IDS_CTRL_C "Control-C\n"
IDS_NO_RESOURCES "Not enough resources available.\n"
IDS_MISSING_ADDRESS "IP address must be specified.\n"
IDS_MISSING_VALUE "Value must be supplied for option %s.\n"
IDS_BAD_OPTION "Bad option %s.\n"
IDS_BAD_PARAMETER "Bad parameter %s.\n"
IDS_BAD_VALUE "Bad value for option %s, valid range is from %u to %u.\n"
IDS_WRONG_FAMILY "The option %s is only supported for %s.\n"
IDS_UNKNOWN_HOST "Ping could not find host %s. Please check the name and try again.\n"
IDS_PINGING_ADDRESS "\nPinging %s "
IDS_PINGING_HOSTNAME "\nPinging %s [%s] "
IDS_SOURCE_ADDRESS "from %s %s"
IDS_PING_SIZE "with %lu bytes of data:\n\n"
IDS_REPLY_FROM "Reply from %s: "
IDS_REPLY_BYTES "bytes=%d "
IDS_REPLY_TIME_MS "time=%lums "
IDS_REPLY_TIME_0MS "time<1ms "
IDS_REPLY_TTL "TTL=%d\n"
IDS_REPLY_STATUS "Echo reply returned %lu.\n"
IDS_MISSING_VALUE "Value must be supplied for option %1.\n"
IDS_BAD_OPTION "Bad option %1.\n"
IDS_BAD_PARAMETER "Bad parameter %1.\n"
IDS_BAD_VALUE "Bad value for option %1, valid range is from %2!d! to %3!u!.\n"
IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n"
IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n"
IDS_PINGING_ADDRESS "\nPinging %1 %0"
IDS_PINGING_HOSTNAME "\nPinging %1 [%2] %0"
IDS_SOURCE_ADDRESS "from %1!s! %0"
IDS_PING_SIZE "with %1!d! bytes of data:\n\n"
IDS_REPLY_FROM "Reply from %1: %0"
IDS_REPLY_BYTES "bytes=%1!d! %0"
IDS_REPLY_TIME_MS "time=%1!d!ms %0"
IDS_REPLY_TIME_0MS "time<1ms %0"
IDS_REPLY_TTL "TTL=%1!d!\n"
IDS_REPLY_STATUS "Echo reply returned %1.\n"
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n"
IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n"
IDS_REQUEST_TIMED_OUT "Request timed out.\n"
IDS_TTL_EXPIRED "TTL expired in transit.\n"
IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %u)\n"
IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n"
IDS_STATISTICS "\n\
Ping statistics for %s:\n\
Packets: Sent = %d, Received = %d, Lost %d (%d%% loss),\n"
Ping statistics for %1!s!:\n\
Packets: Sent = %2!d!, Received = %3!d!, Lost %4!d! (%5!u!%% loss),\n"
IDS_APPROXIMATE_RTT "Approximate round-trip time in milliseconds:\n\
Minimum = %lums, Maximum = %lums, Average = %lums\n"
Minimum = %1!u!ms, Maximum = %2!u!ms, Average = %3!u!ms\n"
IDS_WINSOCK_FAIL "Failed to initialize WinSock: %i\n"
IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
END

View File

@@ -33,34 +33,34 @@ Options:\n\
IDS_CTRL_C "Control-C\n"
IDS_NO_RESOURCES "Není k dispozici dostatek volných zdrojů.\n"
IDS_MISSING_ADDRESS "IP address must be specified.\n"
IDS_MISSING_VALUE "Value must be supplied for option %s.\n"
IDS_BAD_OPTION "Nesprávná volba %s.\n"
IDS_BAD_PARAMETER "Nesprávný parametr %s.\n"
IDS_BAD_VALUE "Nesprávná hodnota volby %s, platný rozsah je od %u do %u.\n"
IDS_WRONG_FAMILY "The option %s is only supported for %s.\n"
IDS_UNKNOWN_HOST "Ping could not find host %s. Please check the name and try again.\n"
IDS_PINGING_ADDRESS "\nPinging %s "
IDS_PINGING_HOSTNAME "\nPinging %s [%s] "
IDS_SOURCE_ADDRESS "from %s %s"
IDS_PING_SIZE "with %lu bytes of data:\n\n"
IDS_REPLY_FROM "Odpověď od %s: "
IDS_REPLY_BYTES "bajtů=%d "
IDS_REPLY_TIME_MS "čas=%lums "
IDS_REPLY_TIME_0MS "čas<1ms "
IDS_REPLY_TTL "TTL=%d\n"
IDS_REPLY_STATUS "Echo reply returned %lu.\n"
IDS_MISSING_VALUE "Value must be supplied for option %1.\n"
IDS_BAD_OPTION "Nesprávná volba %1.\n"
IDS_BAD_PARAMETER "Nesprávný parametr %1.\n"
IDS_BAD_VALUE "Nesprávná hodnota volby %1, platný rozsah je od %2!d! do %3!u!.\n"
IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n"
IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n"
IDS_PINGING_ADDRESS "\nPinging %1 %0"
IDS_PINGING_HOSTNAME "\nPinging %1 [%2] %0"
IDS_SOURCE_ADDRESS "from %1!s! %0"
IDS_PING_SIZE "with %1!d! bytes of data:\n\n"
IDS_REPLY_FROM "Odpověď od %1: %0"
IDS_REPLY_BYTES "bajtů=%1!d! %0"
IDS_REPLY_TIME_MS "čas=%1!d!ms %0"
IDS_REPLY_TIME_0MS "čas<1ms %0"
IDS_REPLY_TTL "TTL=%1!d!\n"
IDS_REPLY_STATUS "Echo reply returned %1.\n"
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n"
IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n"
IDS_REQUEST_TIMED_OUT "Časový limit žádosti vypršel.\n"
IDS_TTL_EXPIRED "TTL expired in transit.\n"
IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %u)\n"
IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n"
IDS_STATISTICS "\n\
Statistika pro %s:\n\
Pakety: Odesláno = %d, Přijato = %d, Ztraceno %d (%d%% ztráta),\n"
Statistika pro %1!s!:\n\
Pakety: Odesláno = %2!d!, Přijato = %3!d!, Ztraceno %4!d! (%5!u!%% ztráta),\n"
IDS_APPROXIMATE_RTT "Přibližná doba do přijetí odezvy v milisekundách:\n\
Minimum = %lums, Maximum = %lums, Průměr = %lums\n"
Minimum = %1!u!ms, Maximum = %2!u!ms, Průměr = %3!u!ms\n"
IDS_WINSOCK_FAIL "Failed to initialize WinSock: %i\n"
IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
END

View File

@@ -32,34 +32,34 @@ Optionen:\n\
IDS_CTRL_C "Control-C\n"
IDS_NO_RESOURCES "Nicht genügend freie Resourcen verfügbar.\n"
IDS_MISSING_ADDRESS "Name oder IP-Adresse des Zielhosts muss angegeben werden.\n"
IDS_MISSING_VALUE "Fehlender Wert für Option %s.\n"
IDS_BAD_OPTION "Ungültige Option %s.\n"
IDS_BAD_PARAMETER "Ungültiger Parameter %s.\n"
IDS_BAD_VALUE "Ungültiger Wert für Option %s, Erlaubter Bereich ist von %u bis %u.\n"
IDS_WRONG_FAMILY "Die Option %s ist nur erlaubt für %s.\n"
IDS_UNKNOWN_HOST "Unbekannter Host %s.\n"
IDS_PINGING_ADDRESS "\nPing wird ausgeführt für %s "
IDS_PINGING_HOSTNAME "\nPing wird ausgeführt für %s [%s] "
IDS_SOURCE_ADDRESS "von %s %s"
IDS_PING_SIZE "mit %lu Bytes Daten:\n\n"
IDS_REPLY_FROM "Antwort von %s: "
IDS_REPLY_BYTES "Bytes=%d "
IDS_REPLY_TIME_MS "Zeit=%lums "
IDS_REPLY_TIME_0MS "Zeit<1ms "
IDS_REPLY_TTL "TTL=%d\n"
IDS_REPLY_STATUS "Echo antwortete mit %lu.\n"
IDS_MISSING_VALUE "Fehlender Wert für Option %1.\n"
IDS_BAD_OPTION "Ungültige Option %1.\n"
IDS_BAD_PARAMETER "Ungültiger Parameter %1.\n"
IDS_BAD_VALUE "Ungültiger Wert für Option %1, Erlaubter Bereich ist von %2!d! bis %3!u!.\n"
IDS_WRONG_FAMILY "Die Option %1 ist nur erlaubt für %2.\n"
IDS_UNKNOWN_HOST "Unbekannter Host %1.\n"
IDS_PINGING_ADDRESS "\nPing wird ausgeführt für %1 %0"
IDS_PINGING_HOSTNAME "\nPing wird ausgeführt für %1 [%2] %0"
IDS_SOURCE_ADDRESS "von %1!s! %0"
IDS_PING_SIZE "mit %1!d! Bytes Daten:\n\n"
IDS_REPLY_FROM "Antwort von %1: %0"
IDS_REPLY_BYTES "Bytes=%1!d! %0"
IDS_REPLY_TIME_MS "Zeit=%1!d!ms %0"
IDS_REPLY_TIME_0MS "Zeit<1ms %0"
IDS_REPLY_TTL "TTL=%1!d!\n"
IDS_REPLY_STATUS "Echo antwortete mit %1.\n"
IDS_DEST_HOST_UNREACHABLE "Zielhost nicht erreichbar.\n"
IDS_DEST_NET_UNREACHABLE "Zielnetz nicht erreichbar.\n"
IDS_REQUEST_TIMED_OUT "Zeitüberschreitung der Anforderung.\n"
IDS_TTL_EXPIRED "TTL überschritten.\n"
IDS_TRANSMIT_FAILED "PING: Übertragung fehlgeschlagen. (Fehler %u)\n"
IDS_TRANSMIT_FAILED "PING: Übertragung fehlgeschlagen. (Fehler %1!u!)\n"
IDS_STATISTICS "\n\
Ping Statistik für %s:\n\
Pakete: Gesendet = %d, Empfangen = %d, Verloren %d (%d%% Verlust),\n"
Ping Statistik für %1!s!:\n\
Pakete: Gesendet = %2!d!, Empfangen = %3!d!, Verloren %4!d! (%5!u!%% Verlust),\n"
IDS_APPROXIMATE_RTT "Durchschnittliche Antwortzeit in Millisekunden:\n\
Minimum = %lums, Maximum = %lums, Durchschnitt = %lums\n"
Minimum = %1!u!ms, Maximum = %2!u!ms, Durchschnitt = %3!u!ms\n"
IDS_WINSOCK_FAIL "Fehler beim Initialisieren von WinSock: %i\n"
IDS_WINSOCK_FAIL "Fehler beim Initialisieren von WinSock: %1!d!\n"
END

View File

@@ -33,34 +33,34 @@ Options:\n\
IDS_CTRL_C "Control-C\n"
IDS_NO_RESOURCES "Not enough resources available.\n"
IDS_MISSING_ADDRESS "IP address must be specified.\n"
IDS_MISSING_VALUE "Value must be supplied for option %s.\n"
IDS_BAD_OPTION "Bad option %s.\n"
IDS_BAD_PARAMETER "Bad parameter %s.\n"
IDS_BAD_VALUE "Bad value for option %s, valid range is from %u to %u.\n"
IDS_WRONG_FAMILY "The option %s is only supported for %s.\n"
IDS_UNKNOWN_HOST "Ping could not find host %s. Please check the name and try again.\n"
IDS_PINGING_ADDRESS "\nPinging %s "
IDS_PINGING_HOSTNAME "\nPinging %s [%s] "
IDS_SOURCE_ADDRESS "from %s %s"
IDS_PING_SIZE "with %lu bytes of data:\n\n"
IDS_REPLY_FROM "Reply from %s: "
IDS_REPLY_BYTES "bytes=%d "
IDS_REPLY_TIME_MS "time=%lums "
IDS_REPLY_TIME_0MS "time<1ms "
IDS_REPLY_TTL "TTL=%d\n"
IDS_REPLY_STATUS "Echo reply returned %lu.\n"
IDS_MISSING_VALUE "Value must be supplied for option %1.\n"
IDS_BAD_OPTION "Bad option %1.\n"
IDS_BAD_PARAMETER "Bad parameter %1.\n"
IDS_BAD_VALUE "Bad value for option %1, valid range is from %2!d! to %3!u!.\n"
IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n"
IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n"
IDS_PINGING_ADDRESS "\nPinging %1 %0"
IDS_PINGING_HOSTNAME "\nPinging %1 [%2] %0"
IDS_SOURCE_ADDRESS "from %1!s! %0"
IDS_PING_SIZE "with %1!d! bytes of data:\n\n"
IDS_REPLY_FROM "Reply from %1: %0"
IDS_REPLY_BYTES "bytes=%1!d! %0"
IDS_REPLY_TIME_MS "time=%1!d!ms %0"
IDS_REPLY_TIME_0MS "time<1ms %0"
IDS_REPLY_TTL "TTL=%1!d!\n"
IDS_REPLY_STATUS "Echo reply returned %1.\n"
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n"
IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n"
IDS_REQUEST_TIMED_OUT "Request timed out.\n"
IDS_TTL_EXPIRED "TTL expired in transit.\n"
IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %u)\n"
IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n"
IDS_STATISTICS "\n\
Ping statistics for %s:\n\
Packets: Sent = %d, Received = %d, Lost %d (%d%% loss),\n"
Ping statistics for %1!s!:\n\
Packets: Sent = %2!d!, Received = %3!d!, Lost %4!d! (%5!u!%% loss),\n"
IDS_APPROXIMATE_RTT "Approximate round-trip time in milliseconds:\n\
Minimum = %lums, Maximum = %lums, Average = %lums\n"
Minimum = %1!u!ms, Maximum = %2!u!ms, Average = %3!u!ms\n"
IDS_WINSOCK_FAIL "Failed to initialize WinSock: %i\n"
IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
END

View File

@@ -33,34 +33,34 @@ Opciones:\n\
IDS_CTRL_C "Control-C\n"
IDS_NO_RESOURCES "No hay suficientes recursos libres disponibles.\n"
IDS_MISSING_ADDRESS "IP address must be specified.\n"
IDS_MISSING_VALUE "Value must be supplied for option %s.\n"
IDS_BAD_OPTION "La opción %s no es válida.\n"
IDS_BAD_PARAMETER "El parámetro %s no es válido.\n"
IDS_BAD_VALUE "El valor para la opción %s no es válido, debe de estar entre %u y %u.\n"
IDS_WRONG_FAMILY "The option %s is only supported for %s.\n"
IDS_UNKNOWN_HOST "Ping could not find host %s. Please check the name and try again.\n"
IDS_PINGING_ADDRESS "\nHaciendo ping a %s "
IDS_PINGING_HOSTNAME "\nHaciendo ping a %s [%s] "
IDS_SOURCE_ADDRESS "from %s %s"
IDS_PING_SIZE "con %lu bytes de datos:\n\n"
IDS_REPLY_FROM "Respuesta desde %s: "
IDS_REPLY_BYTES "bytes=%d "
IDS_REPLY_TIME_MS "tiempo=%lums "
IDS_REPLY_TIME_0MS "tiempo<1ms "
IDS_REPLY_TTL "TTL=%d\n"
IDS_REPLY_STATUS "Echo reply returned %lu.\n"
IDS_MISSING_VALUE "Value must be supplied for option %1.\n"
IDS_BAD_OPTION "La opción %1 no es válida.\n"
IDS_BAD_PARAMETER "El parámetro %1 no es válido.\n"
IDS_BAD_VALUE "El valor para la opción %1 no es válido, debe de estar entre %2!d! y %3!u!.\n"
IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n"
IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n"
IDS_PINGING_ADDRESS "\nHaciendo ping a %1 %0"
IDS_PINGING_HOSTNAME "\nHaciendo ping a %1 [%2] %0"
IDS_SOURCE_ADDRESS "from %1!s! %0"
IDS_PING_SIZE "con %1!d! bytes de datos:\n\n"
IDS_REPLY_FROM "Respuesta desde %1: %0"
IDS_REPLY_BYTES "bytes=%1!d! %0"
IDS_REPLY_TIME_MS "tiempo=%1!d!ms %0"
IDS_REPLY_TIME_0MS "tiempo<1ms %0"
IDS_REPLY_TTL "TTL=%1!d!\n"
IDS_REPLY_STATUS "Echo reply returned %1.\n"
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n"
IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n"
IDS_REQUEST_TIMED_OUT "La petición ha caducado.\n"
IDS_TTL_EXPIRED "TTL expired in transit.\n"
IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %u)\n"
IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n"
IDS_STATISTICS "\n\
Estadísticas de ping para %s:\n\
Paquetes: enviados = %d, recibidos = %d, perdidos %d (%d%% perdidos),\n"
Estadísticas de ping para %1!s!:\n\
Paquetes: enviados = %2!d!, recibidos = %3!d!, perdidos %4!d! (%5!u!%% perdidos),\n"
IDS_APPROXIMATE_RTT "Tiempos aproximados de ida y vuelta en milisegundos:\n\
Mínimo = %lums, Máximo = %lums, Media = %lums\n"
Mínimo = %1!u!ms, Máximo = %2!u!ms, Media = %3!u!ms\n"
IDS_WINSOCK_FAIL "Failed to initialize WinSock: %i\n"
IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
END

View File

@@ -33,34 +33,34 @@ Options :\n\
IDS_CTRL_C "Control-C\n"
IDS_NO_RESOURCES "Ressources libres disponibles insuffisantes.\n"
IDS_MISSING_ADDRESS "IP address must be specified.\n"
IDS_MISSING_VALUE "Value must be supplied for option %s.\n"
IDS_BAD_OPTION "Option incorrecte %s.\n"
IDS_BAD_PARAMETER "Paramètre incorrect %s.\n"
IDS_BAD_VALUE "Valeur incorrecte pour l'option %s, elle doit être entre %u et %u.\n"
IDS_WRONG_FAMILY "The option %s is only supported for %s.\n"
IDS_UNKNOWN_HOST "Ping could not find host %s. Please check the name and try again.\n"
IDS_PINGING_ADDRESS "\nPing de %s "
IDS_PINGING_HOSTNAME "\nPing de %s [%s] "
IDS_SOURCE_ADDRESS "from %s %s"
IDS_PING_SIZE "avec %lu octets de données :\n\n"
IDS_REPLY_FROM "Réponse de %s : "
IDS_REPLY_BYTES "octets=%d "
IDS_REPLY_TIME_MS "durée=%lums "
IDS_REPLY_TIME_0MS "durée<1ms "
IDS_REPLY_TTL "TTL=%d\n"
IDS_REPLY_STATUS "Echo reply returned %lu.\n"
IDS_MISSING_VALUE "Value must be supplied for option %1.\n"
IDS_BAD_OPTION "Option incorrecte %1.\n"
IDS_BAD_PARAMETER "Paramètre incorrect %1.\n"
IDS_BAD_VALUE "Valeur incorrecte pour l'option %1, elle doit être entre %2!d! et %3!u!.\n"
IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n"
IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n"
IDS_PINGING_ADDRESS "\nPing de %1 %0"
IDS_PINGING_HOSTNAME "\nPing de %1 [%2] %0"
IDS_SOURCE_ADDRESS "from %1!s! %0"
IDS_PING_SIZE "avec %1!d! octets de données :\n\n"
IDS_REPLY_FROM "Réponse de %1 : %0"
IDS_REPLY_BYTES "octets=%1!d! %0"
IDS_REPLY_TIME_MS "durée=%1!d!ms %0"
IDS_REPLY_TIME_0MS "durée<1ms %0"
IDS_REPLY_TTL "TTL=%1!d!\n"
IDS_REPLY_STATUS "Echo reply returned %1.\n"
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n"
IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n"
IDS_REQUEST_TIMED_OUT "Expiration du délai d'attente.\n"
IDS_TTL_EXPIRED "TTL expired in transit.\n"
IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %u)\n"
IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n"
IDS_STATISTICS "\n\
Statistiques du ping de %s :\n\
Paquets : Envoyés = %d, Reçus = %d, Perdus %d (%d%% de perte),\n"
Statistiques du ping de %1!s! :\n\
Paquets : Envoyés = %2!d!, Reçus = %3!d!, Perdus %4!d! (%5!u!%% de perte),\n"
IDS_APPROXIMATE_RTT "Délai approximatif de réponse en millisecondes :\n\
Minimum = %lums, Maximum = %lums, Moyenne = %lums\n"
Minimum = %1!u!ms, Maximum = %2!u!ms, Moyenne = %3!u!ms\n"
IDS_WINSOCK_FAIL "Failed to initialize WinSock: %i\n"
IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
END

View File

@@ -33,34 +33,34 @@ Opzioni:\n\
IDS_CTRL_C "Control-C\n"
IDS_NO_RESOURCES "Risorse disponibili insufficienti.\n"
IDS_MISSING_ADDRESS "IP address must be specified.\n"
IDS_MISSING_VALUE "Value must be supplied for option %s.\n"
IDS_BAD_OPTION "Opzione errata %s.\n"
IDS_BAD_PARAMETER "Parametro errato %s.\n"
IDS_BAD_VALUE "Valore errato per il parametro %s, è valido un valore tra %u to %u.\n"
IDS_WRONG_FAMILY "The option %s is only supported for %s.\n"
IDS_UNKNOWN_HOST "Ping could not find host %s. Please check the name and try again.\n"
IDS_PINGING_ADDRESS "\nPing in corso %s "
IDS_PINGING_HOSTNAME "\nPing in corso %s [%s] "
IDS_SOURCE_ADDRESS "from %s %s"
IDS_PING_SIZE "con %lu bytes di dati:\n\n"
IDS_REPLY_FROM "Risposta da %s: "
IDS_REPLY_BYTES "bytes=%d "
IDS_REPLY_TIME_MS "time=%lums "
IDS_REPLY_TIME_0MS "time<1ms "
IDS_REPLY_TTL "TTL=%d\n"
IDS_REPLY_STATUS "Echo reply returned %lu.\n"
IDS_MISSING_VALUE "Value must be supplied for option %1.\n"
IDS_BAD_OPTION "Opzione errata %1.\n"
IDS_BAD_PARAMETER "Parametro errato %1.\n"
IDS_BAD_VALUE "Valore errato per il parametro %1, è valido un valore tra %2!d! to %3!u!.\n"
IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n"
IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n"
IDS_PINGING_ADDRESS "\nPing in corso %1 %0"
IDS_PINGING_HOSTNAME "\nPing in corso %1 [%2] %0"
IDS_SOURCE_ADDRESS "from %1!s! %0"
IDS_PING_SIZE "con %1!d! bytes di dati:\n\n"
IDS_REPLY_FROM "Risposta da %1: %0"
IDS_REPLY_BYTES "bytes=%1!d! %0"
IDS_REPLY_TIME_MS "time=%1!d!ms %0"
IDS_REPLY_TIME_0MS "time<1ms %0"
IDS_REPLY_TTL "TTL=%1!d!\n"
IDS_REPLY_STATUS "Echo reply returned %1.\n"
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n"
IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n"
IDS_REQUEST_TIMED_OUT "Richiesta scaduta.\n"
IDS_TTL_EXPIRED "TTL expired in transit.\n"
IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %u)\n"
IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n"
IDS_STATISTICS "\n\
Statistiche di Ping per %s:\n\
Pacchetti: Inviati = %d, Ricevuti = %d, Persi %d (%d%% perdita),\n"
Statistiche di Ping per %1!s!:\n\
Pacchetti: Inviati = %2!d!, Ricevuti = %3!d!, Persi %4!d! (%5!u!%% perdita),\n"
IDS_APPROXIMATE_RTT "Tempo approssimato di andata e ritorno in milli-secondi:\n\
Minimo = %lums, Massimo = %lums, Media = %lums\n"
Minimo = %1!u!ms, Massimo = %2!u!ms, Media = %3!u!ms\n"
IDS_WINSOCK_FAIL "Failed to initialize WinSock: %i\n"
IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
END

View File

@@ -33,34 +33,34 @@ Options:\n\
IDS_CTRL_C "Control-C\n"
IDS_NO_RESOURCES "Brak dostępnych zasobów.\n"
IDS_MISSING_ADDRESS "IP address must be specified.\n"
IDS_MISSING_VALUE "Value must be supplied for option %s.\n"
IDS_BAD_OPTION "Nieprawidłowa opcja %s.\n"
IDS_BAD_PARAMETER "Nieprawidłowy parametr %s.\n"
IDS_BAD_VALUE "Nieprawidłowa wartość dla opcji %s, wymagana liczba naturalna od %u do %u.\n"
IDS_WRONG_FAMILY "The option %s is only supported for %s.\n"
IDS_UNKNOWN_HOST "Ping could not find host %s. Please check the name and try again.\n"
IDS_PINGING_ADDRESS "\nPingowanie %s "
IDS_PINGING_HOSTNAME "\nPingowanie %s [%s] "
IDS_SOURCE_ADDRESS "z %s %s"
IDS_PING_SIZE "przy użyciu %lu bajtów danych:\n\n"
IDS_REPLY_FROM "Odpowiedź z %s: "
IDS_REPLY_BYTES "bajtów=%d "
IDS_REPLY_TIME_MS "czas=%lums "
IDS_REPLY_TIME_0MS "czas<1ms "
IDS_REPLY_TTL "TTL=%d\n"
IDS_REPLY_STATUS "Echo reply returned %lu.\n"
IDS_MISSING_VALUE "Value must be supplied for option %1.\n"
IDS_BAD_OPTION "Nieprawidłowa opcja %1.\n"
IDS_BAD_PARAMETER "Nieprawidłowy parametr %1.\n"
IDS_BAD_VALUE "Nieprawidłowa wartość dla opcji %1, wymagana liczba naturalna od %2!d! do %3!u!.\n"
IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n"
IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n"
IDS_PINGING_ADDRESS "\nPingowanie %1 %0"
IDS_PINGING_HOSTNAME "\nPingowanie %1 [%2] %0"
IDS_SOURCE_ADDRESS "z %1!s! %0"
IDS_PING_SIZE "przy użyciu %1!d! bajtów danych:\n\n"
IDS_REPLY_FROM "Odpowiedź z %1: %0"
IDS_REPLY_BYTES "bajtów=%1!d! %0"
IDS_REPLY_TIME_MS "czas=%1!d!ms %0"
IDS_REPLY_TIME_0MS "czas<1ms %0"
IDS_REPLY_TTL "TTL=%1!d!\n"
IDS_REPLY_STATUS "Echo reply returned %1.\n"
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n"
IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n"
IDS_REQUEST_TIMED_OUT "Brak odpowiedzi.\n"
IDS_TTL_EXPIRED "TTL expired in transit.\n"
IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %u)\n"
IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n"
IDS_STATISTICS "\n\
Statystyka rezultatu badania hosta %s:\n\
Pakiety: Wysłane = %d, Odebrane = %d, Utracone %d (%d%% strat),\n"
Statystyka rezultatu badania hosta %1!s!:\n\
Pakiety: Wysłane = %2!d!, Odebrane = %3!d!, Utracone %4!d! (%5!u!%% strat),\n"
IDS_APPROXIMATE_RTT "Całkowity, przybliżony czas podróży pakietu w millisekundach:\n\
Minimum = %lums, Maksimum = %lums, Uśredniony = %lums\n"
Minimum = %1!u!ms, Maksimum = %2!u!ms, Uśredniony = %3!u!ms\n"
IDS_WINSOCK_FAIL "Failed to initialize WinSock: %i\n"
IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
END

View File

@@ -34,34 +34,34 @@ Opțiuni:\n\
IDS_CTRL_C "Ctrl-C\n"
IDS_NO_RESOURCES "Nu există suficiente resurse disponibile.\n"
IDS_MISSING_ADDRESS "Este necesară specificarea unei adrese IP.\n"
IDS_MISSING_VALUE "Nu a fost furnizată nici o valoare pentru opțiunea %s.\n"
IDS_BAD_OPTION "%s este o opțiune eronată.\n"
IDS_BAD_PARAMETER "Parametru eronat: %s.\n"
IDS_BAD_VALUE "Valoare eronată pentru opțiunea %s, domeniul valid este %u - %u.\n"
IDS_WRONG_FAMILY "Opțiunea %s este acceptată doar pentru %s.\n"
IDS_UNKNOWN_HOST "Eșec la localizarea gazdei %s. Verificați numele apoi reîncercați.\n"
IDS_PINGING_ADDRESS "\nTransmitere către %s "
IDS_PINGING_HOSTNAME "\nTransmitere către %s [%s] "
IDS_SOURCE_ADDRESS "de la %s %s"
IDS_PING_SIZE "cu %lu octeți de date:\n\n"
IDS_REPLY_FROM "Răspuns de %s: "
IDS_REPLY_BYTES "octeți=%d "
IDS_REPLY_TIME_MS "timp=%lums "
IDS_REPLY_TIME_0MS "timp<1ms "
IDS_REPLY_TTL "TDV=%d\n"
IDS_REPLY_STATUS "Răspunsul ecou este %lu.\n"
IDS_MISSING_VALUE "Nu a fost furnizată nici o valoare pentru opțiunea %1.\n"
IDS_BAD_OPTION "%1 este o opțiune eronată.\n"
IDS_BAD_PARAMETER "Parametru eronat: %1.\n"
IDS_BAD_VALUE "Valoare eronată pentru opțiunea %1, domeniul valid este %2!d! - %3!u!.\n"
IDS_WRONG_FAMILY "Opțiunea %1 este acceptată doar pentru %2.\n"
IDS_UNKNOWN_HOST "Eșec la localizarea gazdei %1. Verificați numele apoi reîncercați.\n"
IDS_PINGING_ADDRESS "\nTransmitere către %1 %0"
IDS_PINGING_HOSTNAME "\nTransmitere către %1 [%2] %0"
IDS_SOURCE_ADDRESS "de la %1!s! %0"
IDS_PING_SIZE "cu %1!d! octeți de date:\n\n"
IDS_REPLY_FROM "Răspuns de %1: %0"
IDS_REPLY_BYTES "octeți=%1!d! %0"
IDS_REPLY_TIME_MS "timp=%1!d!ms %0"
IDS_REPLY_TIME_0MS "timp<1ms %0"
IDS_REPLY_TTL "TDV=%1!d!\n"
IDS_REPLY_STATUS "Răspunsul ecou este %1.\n"
IDS_DEST_HOST_UNREACHABLE "Gazda de destinație nu este accesibilă.\n"
IDS_DEST_NET_UNREACHABLE "Rețeaua de destinație nu este accesibilă.\n"
IDS_REQUEST_TIMED_OUT "Cererea a expirat.\n"
IDS_TTL_EXPIRED "TDV a expirat în tranzit.\n"
IDS_TRANSMIT_FAILED "PING: eșec la transmisie. (Eroare %u)\n"
IDS_TRANSMIT_FAILED "PING: eșec la transmisie. (Eroare %1!u!)\n"
IDS_STATISTICS "\n\
statistici de transmisie pentru %s:\n\
pachete: transmise = %d, recepționate = %d, pierdute %d (%d%% pierderi),\n"
statistici de transmisie pentru %1!s!:\n\
pachete: transmise = %2!d!, recepționate = %3!d!, pierdute %4!d! (%5!u!%% pierderi),\n"
IDS_APPROXIMATE_RTT "timpul aproximativ de tur-retur, in milisecunde:\n\
minim = %lums, maxim = %lums, mediu = %lums\n"
minim = %1!u!ms, maxim = %2!u!ms, mediu = %3!u!ms\n"
IDS_WINSOCK_FAIL "Eșec la inițializarea WinSock: %i\n"
IDS_WINSOCK_FAIL "Eșec la inițializarea WinSock: %1!d!\n"
END

View File

@@ -34,34 +34,34 @@ BEGIN
IDS_CTRL_C "Control-C\n"
IDS_NO_RESOURCES "Невозможно выделить требуемую память.\n"
IDS_MISSING_ADDRESS "Необходимо указать адрес IP.\n"
IDS_MISSING_VALUE "Для опции %s должно быть указано значение.\n"
IDS_BAD_OPTION "Неверная опция %s.\n"
IDS_BAD_PARAMETER "Неверный параметр %s.\n"
IDS_BAD_VALUE "Недопустимое значение параметра %s, допустимый диапазон с %u по %u.\n"
IDS_WRONG_FAMILY "Опция %s доступна только для %s.\n"
IDS_UNKNOWN_HOST "Ping не может найти узел %s. Пожалуйста, проверьте имя и повторите попытку.\n"
IDS_PINGING_ADDRESS "\nОбмен пакетами с %s "
IDS_PINGING_HOSTNAME "\nОбмен пакетами с %s [%s] "
IDS_SOURCE_ADDRESS "from %s %s"/* unused string */
IDS_PING_SIZE "по %lu байта данных:\n\n"
IDS_REPLY_FROM "Ответ от %s: "
IDS_REPLY_BYTES "число байт=%d "
IDS_REPLY_TIME_MS "время=%luмс "
IDS_REPLY_TIME_0MS "время<1мс "
IDS_REPLY_TTL "TTL=%d\n"
IDS_REPLY_STATUS "Ответ от %lu.\n"
IDS_MISSING_VALUE "Для опции %1 должно быть указано значение.\n"
IDS_BAD_OPTION "Неверная опция %1.\n"
IDS_BAD_PARAMETER "Неверный параметр %1.\n"
IDS_BAD_VALUE "Недопустимое значение параметра %1, допустимый диапазон с %2!d! по %3!u!.\n"
IDS_WRONG_FAMILY "Опция %1 доступна только для %2.\n"
IDS_UNKNOWN_HOST "Ping не может найти узел %1. Пожалуйста, проверьте имя и повторите попытку.\n"
IDS_PINGING_ADDRESS "\nОбмен пакетами с %1 %0"
IDS_PINGING_HOSTNAME "\nОбмен пакетами с %1 [%2] %0"
IDS_SOURCE_ADDRESS "from %1!s! %0"/* unused string */
IDS_PING_SIZE "по %1!d! байта данных:\n\n"
IDS_REPLY_FROM "Ответ от %1: %0"
IDS_REPLY_BYTES "число байт=%1!d! %0"
IDS_REPLY_TIME_MS "время=%1!d!мс %0"
IDS_REPLY_TIME_0MS "время<1мс %0"
IDS_REPLY_TTL "TTL=%1!d!\n"
IDS_REPLY_STATUS "Ответ от %1.\n"
IDS_DEST_HOST_UNREACHABLE "Заданный узел недоступен.\n"
IDS_DEST_NET_UNREACHABLE "Заданная сеть недоступна.\n"
IDS_REQUEST_TIMED_OUT "Превышен интервал ожидания для запроса.\n"
IDS_TTL_EXPIRED "Превышен срок жизни (TTL) при передаче пакета.\n"
IDS_TRANSMIT_FAILED "PING: сбой передачи. (Ошибка %u)\n"
IDS_TRANSMIT_FAILED "PING: сбой передачи. (Ошибка %1!u!)\n"
IDS_STATISTICS "\n\
Статистика Ping для %s:\n\
Пакетов: отправлено = %d, получено = %d, потеряно %d (%d%% потерь),\n"
Статистика Ping для %1!s!:\n\
Пакетов: отправлено = %2!d!, получено = %3!d!, потеряно %4!d! (%5!u!%% потерь),\n"
IDS_APPROXIMATE_RTT "Приблизительное время приема-передачи в мс:\n\
Минимальное = %luмс, Максимальное = %luмс, Среднее = %luмс\n"
Минимальное = %1!u!мс, Максимальное = %2!u!мс, Среднее = %3!u!мс\n"
IDS_WINSOCK_FAIL "Не удалось инициализировать WinSock: %i\n"
IDS_WINSOCK_FAIL "Не удалось инициализировать WinSock: %1!d!\n"
END

View File

@@ -33,34 +33,34 @@ Options:\n\
IDS_CTRL_C "Control-C\n"
IDS_NO_RESOURCES "Nuk mjaftojne burimet ne dispozicion.\n"
IDS_MISSING_ADDRESS "IP address must be specified.\n"
IDS_MISSING_VALUE "Value must be supplied for option %s.\n"
IDS_BAD_OPTION "Opsion i keq %s.\n"
IDS_BAD_PARAMETER "Parametra i keq %s.\n"
IDS_BAD_VALUE "Vlere e keqe per opsion %s, varh i vlefshem nga %u në %u.\n"
IDS_WRONG_FAMILY "The option %s is only supported for %s.\n"
IDS_UNKNOWN_HOST "Ping could not find host %s. Please check the name and try again.\n"
IDS_PINGING_ADDRESS "\nPing ne vazhdim %s "
IDS_PINGING_HOSTNAME "\nPing ne vazhdim %s [%s] "
IDS_SOURCE_ADDRESS "from %s %s"
IDS_PING_SIZE "me %lu bytes data:\n\n"
IDS_REPLY_FROM "Reply from %s: "
IDS_REPLY_BYTES "bytes=%d "
IDS_REPLY_TIME_MS "time=%lums "
IDS_REPLY_TIME_0MS "time<1ms "
IDS_REPLY_TTL "TTL=%d\n"
IDS_REPLY_STATUS "Echo reply returned %lu.\n"
IDS_MISSING_VALUE "Value must be supplied for option %1.\n"
IDS_BAD_OPTION "Opsion i keq %1.\n"
IDS_BAD_PARAMETER "Parametra i keq %1.\n"
IDS_BAD_VALUE "Vlere e keqe per opsion %1, varh i vlefshem nga %2!d! në %3!u!.\n"
IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n"
IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n"
IDS_PINGING_ADDRESS "\nPing ne vazhdim %1 %0"
IDS_PINGING_HOSTNAME "\nPing ne vazhdim %1 [%2] %0"
IDS_SOURCE_ADDRESS "from %1!s! %0"
IDS_PING_SIZE "me %1!d! bytes data:\n\n"
IDS_REPLY_FROM "Reply from %1: %0"
IDS_REPLY_BYTES "bytes=%1!d! %0"
IDS_REPLY_TIME_MS "time=%1!d!ms %0"
IDS_REPLY_TIME_0MS "time<1ms %0"
IDS_REPLY_TTL "TTL=%1!d!\n"
IDS_REPLY_STATUS "Echo reply returned %1.\n"
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n"
IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n"
IDS_REQUEST_TIMED_OUT "Kerkese kohe mbaroj.\n"
IDS_TTL_EXPIRED "TTL expired in transit.\n"
IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %u)\n"
IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n"
IDS_STATISTICS "\n\
Statistikat e Ping për %s:\n\
Packeta: Dërguar = %d, Marr = %d, Humbur %d (%d%% loss),\n"
Statistikat e Ping për %1!s!:\n\
Packeta: Dërguar = %2!d!, Marr = %3!d!, Humbur %4!d! (%5!u!%% loss),\n"
IDS_APPROXIMATE_RTT "Afersisht koha e matjes në mili-sekonda:\n\
Minimum = %lums, Maximum = %lums, Mesatar = %lums\n"
Minimum = %1!u!ms, Maximum = %2!u!ms, Mesatar = %3!u!ms\n"
IDS_WINSOCK_FAIL "Failed to initialize WinSock: %i\n"
IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
END

View File

@@ -33,34 +33,34 @@ Alternativ:\n\
IDS_CTRL_C "Control-C\n"
IDS_NO_RESOURCES "Inte tillräckliga resurser tillgänliga.\n"
IDS_MISSING_ADDRESS "IP address must be specified.\n"
IDS_MISSING_VALUE "Value must be supplied for option %s.\n"
IDS_BAD_OPTION "Ogiltigt alternativ %s.\n"
IDS_BAD_PARAMETER "Ogiltig parameter %s.\n"
IDS_BAD_VALUE "Ogiltigt värde för alternativ %s, giltig intervall är från %u till %u.\n"
IDS_WRONG_FAMILY "The option %s is only supported for %s.\n"
IDS_UNKNOWN_HOST "Ping could not find host %s. Please check the name and try again.\n"
IDS_PINGING_ADDRESS "\nPingar %s "
IDS_PINGING_HOSTNAME "\nPingar %s [%s] "
IDS_SOURCE_ADDRESS "from %s %s"
IDS_PING_SIZE "med %lu bytes data:\n\n"
IDS_REPLY_FROM "Svar från %s: "
IDS_REPLY_BYTES "bytes=%d "
IDS_REPLY_TIME_MS "tid=%lums "
IDS_REPLY_TIME_0MS "tid<1ms "
IDS_REPLY_TTL "TTL=%d\n"
IDS_REPLY_STATUS "Echo reply returned %lu.\n"
IDS_MISSING_VALUE "Value must be supplied for option %1.\n"
IDS_BAD_OPTION "Ogiltigt alternativ %1.\n"
IDS_BAD_PARAMETER "Ogiltig parameter %1.\n"
IDS_BAD_VALUE "Ogiltigt värde för alternativ %1, giltig intervall är från %2!d! till %3!u!.\n"
IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n"
IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n"
IDS_PINGING_ADDRESS "\nPingar %1 %0"
IDS_PINGING_HOSTNAME "\nPingar %1 [%2] %0"
IDS_SOURCE_ADDRESS "from %1!s! %0"
IDS_PING_SIZE "med %1!d! bytes data:\n\n"
IDS_REPLY_FROM "Svar från %1: %0"
IDS_REPLY_BYTES "bytes=%1!d! %0"
IDS_REPLY_TIME_MS "tid=%1!d!ms %0"
IDS_REPLY_TIME_0MS "tid<1ms %0"
IDS_REPLY_TTL "TTL=%1!d!\n"
IDS_REPLY_STATUS "Echo reply returned %1.\n"
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n"
IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n"
IDS_REQUEST_TIMED_OUT "Förfrågan gjorde timeout.\n"
IDS_TTL_EXPIRED "TTL expired in transit.\n"
IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %u)\n"
IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n"
IDS_STATISTICS "\n\
Ping statistk för %s:\n\
Packet: Sända = %d, Mottagna = %d, Förlorade %d (%d%% förlust),\n"
Ping statistk för %1!s!:\n\
Packet: Sända = %2!d!, Mottagna = %3!d!, Förlorade %4!d! (%5!u!%% förlust),\n"
IDS_APPROXIMATE_RTT "Ungefärliga slingtider i millisekunder:\n\
Minimum = %lums, Maximum = %lums, Genomsnittlig = %lums\n"
Minimum = %1!u!ms, Maximum = %2!u!ms, Genomsnittlig = %3!u!ms\n"
IDS_WINSOCK_FAIL "Failed to initialize WinSock: %i\n"
IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
END

View File

@@ -33,34 +33,34 @@ Seçenekler:\n\
IDS_CTRL_C "Denetim+C\n"
IDS_NO_RESOURCES "Kullanılabilir yeterli boş kaynak yok.\n"
IDS_MISSING_ADDRESS "IP adresi belirtilmelidir.\n"
IDS_MISSING_VALUE "Değer %s seçeneği için sağlanmalıdır.\n"
IDS_BAD_OPTION "Geçersiz seçenek: %s.\n"
IDS_BAD_PARAMETER "Geçersiz değişken: %s.\n"
IDS_BAD_VALUE "%s seçeneği için geçersiz değer, geçerli aralık %u'den %u'e dektir.\n"
IDS_WRONG_FAMILY "%s seçeneği yalnızca %s için desteklenmektedir.\n"
IDS_UNKNOWN_HOST "Ping %s anabilgisayarını bulamadı. Lütfen adı gözden geçirip yeniden deneyiniz.\n"
IDS_PINGING_ADDRESS "\nPing yapılıyor: %s "
IDS_PINGING_HOSTNAME "\nPing yapılıyor: %s [%s] "
IDS_SOURCE_ADDRESS "%s'den %s"
IDS_PING_SIZE " %lu çoklu veriyle:\n\n"
IDS_REPLY_FROM "%s varışından yanıt: "
IDS_REPLY_BYTES "çoklu=%d "
IDS_REPLY_TIME_MS "süre=%lums "
IDS_REPLY_TIME_0MS "süre<1ms "
IDS_REPLY_TTL "TTL=%d\n"
IDS_REPLY_STATUS "Yankı yanıtı geri döndü %lu.\n"
IDS_MISSING_VALUE "Değer %1 seçeneği için sağlanmalıdır.\n"
IDS_BAD_OPTION "Geçersiz seçenek: %1.\n"
IDS_BAD_PARAMETER "Geçersiz değişken: %1.\n"
IDS_BAD_VALUE "%1 seçeneği için geçersiz değer, geçerli aralık %2!d!'den %3!u!'e dektir.\n"
IDS_WRONG_FAMILY "%1 seçeneği yalnızca %2 için desteklenmektedir.\n"
IDS_UNKNOWN_HOST "Ping %1 anabilgisayarını bulamadı. Lütfen adı gözden geçirip yeniden deneyiniz.\n"
IDS_PINGING_ADDRESS "\nPing yapılıyor: %1 %0"
IDS_PINGING_HOSTNAME "\nPing yapılıyor: %1 [%2] %0"
IDS_SOURCE_ADDRESS "%1!s!'den %0"
IDS_PING_SIZE " %1!d! çoklu veriyle:\n\n"
IDS_REPLY_FROM "%1 varışından yanıt: %0"
IDS_REPLY_BYTES "çoklu=%1!d! %0"
IDS_REPLY_TIME_MS "süre=%1!d!ms %0"
IDS_REPLY_TIME_0MS "süre<1ms %0"
IDS_REPLY_TTL "TTL=%1!d!\n"
IDS_REPLY_STATUS "Yankı yanıtı geri döndü %1.\n"
IDS_DEST_HOST_UNREACHABLE "Varış anabilgisayarı erişilemez.\n"
IDS_DEST_NET_UNREACHABLE "Varış ağı erişilemez.\n"
IDS_REQUEST_TIMED_OUT "İstek süre aşımına uğradı.\n"
IDS_TTL_EXPIRED "Geçişte yaşama süresi bitti.\n"
IDS_TRANSMIT_FAILED "PING: Geçiş başarısız oldu. (Yanlışlık %u)\n"
IDS_TRANSMIT_FAILED "PING: Geçiş başarısız oldu. (Yanlışlık %1!u!)\n"
IDS_STATISTICS "\n\
%s için ping sayımlamaları:\n\
Paketler: Gönderilen = %d, Alınan = %d, Yitirilen %d (%%%d yitik),\n"
%1!s! için ping sayımlamaları:\n\
Paketler: Gönderilen = %2!d!, Alınan = %3!d!, Yitirilen %4!d! (%%%5!u! yitik),\n"
IDS_APPROXIMATE_RTT "Mili sâniye olarak yaklaşık gidiş geliş süreleri:\n\
En Az = %lums, En Çok = %lums, Ortalama = %lums\n"
En Az = %1!u!ms, En Çok = %2!u!ms, Ortalama = %3!u!ms\n"
IDS_WINSOCK_FAIL "WinSock'u başlatma başarısız oldu: %i\n"
IDS_WINSOCK_FAIL "WinSock'u başlatma başarısız oldu: %1!d!\n"
END

View File

@@ -33,34 +33,34 @@ Options:\n\
IDS_CTRL_C "Control-C\n"
IDS_NO_RESOURCES "Not enough resources available.\n"
IDS_MISSING_ADDRESS "IP address must be specified.\n"
IDS_MISSING_VALUE "Value must be supplied for option %s.\n"
IDS_BAD_OPTION "Bad option %s.\n"
IDS_BAD_PARAMETER "Bad parameter %s.\n"
IDS_BAD_VALUE "Bad value for option %s, valid range is from %u to %u.\n"
IDS_WRONG_FAMILY "The option %s is only supported for %s.\n"
IDS_UNKNOWN_HOST "Ping could not find host %s. Please check the name and try again.\n"
IDS_PINGING_ADDRESS "\nPinging %s "
IDS_PINGING_HOSTNAME "\nPinging %s [%s] "
IDS_SOURCE_ADDRESS "from %s %s"
IDS_PING_SIZE "with %lu bytes of data:\n\n"
IDS_REPLY_FROM "Reply from %s: "
IDS_REPLY_BYTES "bytes=%d "
IDS_REPLY_TIME_MS "time=%lums "
IDS_REPLY_TIME_0MS "time<1ms "
IDS_REPLY_TTL "TTL=%d\n"
IDS_REPLY_STATUS "Echo reply returned %lu.\n"
IDS_MISSING_VALUE "Value must be supplied for option %1.\n"
IDS_BAD_OPTION "Bad option %1.\n"
IDS_BAD_PARAMETER "Bad parameter %1.\n"
IDS_BAD_VALUE "Bad value for option %1, valid range is from %2!d! to %3!u!.\n"
IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n"
IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n"
IDS_PINGING_ADDRESS "\nPinging %1 %0"
IDS_PINGING_HOSTNAME "\nPinging %1 [%2] %0"
IDS_SOURCE_ADDRESS "from %1!s! %0"
IDS_PING_SIZE "with %1!d! bytes of data:\n\n"
IDS_REPLY_FROM "Reply from %1: %0"
IDS_REPLY_BYTES "bytes=%1!d! %0"
IDS_REPLY_TIME_MS "time=%1!d!ms %0"
IDS_REPLY_TIME_0MS "time<1ms %0"
IDS_REPLY_TTL "TTL=%1!d!\n"
IDS_REPLY_STATUS "Echo reply returned %1.\n"
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n"
IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n"
IDS_REQUEST_TIMED_OUT "Request timed out.\n"
IDS_TTL_EXPIRED "TTL expired in transit.\n"
IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %u)\n"
IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n"
IDS_STATISTICS "\n\
Ping statistics for %s:\n\
Packets: Sent = %d, Received = %d, Lost %d (%d%% loss),\n"
Ping statistics for %1!s!:\n\
Packets: Sent = %2!d!, Received = %3!d!, Lost %4!d! (%5!u!%% loss),\n"
IDS_APPROXIMATE_RTT "Approximate round-trip time in milliseconds:\n\
Minimum = %lums, Maximum = %lums, Average = %lums\n"
Minimum = %1!u!ms, Maximum = %2!u!ms, Average = %3!u!ms\n"
IDS_WINSOCK_FAIL "Failed to initialize WinSock: %i\n"
IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
END

View File

@@ -33,34 +33,34 @@ Options:\n\
IDS_CTRL_C "Control-C\n"
IDS_NO_RESOURCES "Not enough resources available.\n"
IDS_MISSING_ADDRESS "IP address must be specified.\n"
IDS_MISSING_VALUE "Value must be supplied for option %s.\n"
IDS_BAD_OPTION "Bad option %s.\n"
IDS_BAD_PARAMETER "Bad parameter %s.\n"
IDS_BAD_VALUE "Bad value for option %s, valid range is from %u to %u.\n"
IDS_WRONG_FAMILY "The option %s is only supported for %s.\n"
IDS_UNKNOWN_HOST "Ping could not find host %s. Please check the name and try again.\n"
IDS_PINGING_ADDRESS "\nPinging %s "
IDS_PINGING_HOSTNAME "\nPinging %s [%s] "
IDS_SOURCE_ADDRESS "from %s %s"
IDS_PING_SIZE "with %lu bytes of data:\n\n"
IDS_REPLY_FROM "Reply from %s: "
IDS_REPLY_BYTES "bytes=%d "
IDS_REPLY_TIME_MS "time=%lums "
IDS_REPLY_TIME_0MS "time<1ms "
IDS_REPLY_TTL "TTL=%d\n"
IDS_REPLY_STATUS "Echo reply returned %lu.\n"
IDS_MISSING_VALUE "Value must be supplied for option %1.\n"
IDS_BAD_OPTION "Bad option %1.\n"
IDS_BAD_PARAMETER "Bad parameter %1.\n"
IDS_BAD_VALUE "Bad value for option %1, valid range is from %2!d! to %3!u!.\n"
IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n"
IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n"
IDS_PINGING_ADDRESS "\nPinging %1 %0"
IDS_PINGING_HOSTNAME "\nPinging %1 [%2] %0"
IDS_SOURCE_ADDRESS "from %1!s! %0"
IDS_PING_SIZE "with %1!d! bytes of data:\n\n"
IDS_REPLY_FROM "Reply from %1: %0"
IDS_REPLY_BYTES "bytes=%1!d! %0"
IDS_REPLY_TIME_MS "time=%1!d!ms %0"
IDS_REPLY_TIME_0MS "time<1ms %0"
IDS_REPLY_TTL "TTL=%1!d!\n"
IDS_REPLY_STATUS "Echo reply returned %1.\n"
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n"
IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n"
IDS_REQUEST_TIMED_OUT "Request timed out.\n"
IDS_TTL_EXPIRED "TTL expired in transit.\n"
IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %u)\n"
IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n"
IDS_STATISTICS "\n\
Ping statistics for %s:\n\
Packets: Sent = %d, Received = %d, Lost %d (%d%% loss),\n"
Ping statistics for %1!s!:\n\
Packets: Sent = %2!d!, Received = %3!d!, Lost %4!d! (%5!u!%% loss),\n"
IDS_APPROXIMATE_RTT "Approximate round-trip time in milliseconds:\n\
Minimum = %lums, Maximum = %lums, Average = %lums\n"
Minimum = %1!u!ms, Maximum = %2!u!ms, Average = %3!u!ms\n"
IDS_WINSOCK_FAIL "Failed to initialize WinSock: %i\n"
IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
END

View File

@@ -33,34 +33,34 @@ Options:\n\
IDS_CTRL_C "Control-C\n"
IDS_NO_RESOURCES "Not enough resources available.\n"
IDS_MISSING_ADDRESS "IP address must be specified.\n"
IDS_MISSING_VALUE "Value must be supplied for option %s.\n"
IDS_BAD_OPTION "Bad option %s.\n"
IDS_BAD_PARAMETER "Bad parameter %s.\n"
IDS_BAD_VALUE "Bad value for option %s, valid range is from %u to %u.\n"
IDS_WRONG_FAMILY "The option %s is only supported for %s.\n"
IDS_UNKNOWN_HOST "Ping could not find host %s. Please check the name and try again.\n"
IDS_PINGING_ADDRESS "\nPinging %s "
IDS_PINGING_HOSTNAME "\nPinging %s [%s] "
IDS_SOURCE_ADDRESS "from %s %s"
IDS_PING_SIZE "with %lu bytes of data:\n\n"
IDS_REPLY_FROM "Reply from %s: "
IDS_REPLY_BYTES "bytes=%d "
IDS_REPLY_TIME_MS "time=%lums "
IDS_REPLY_TIME_0MS "time<1ms "
IDS_REPLY_TTL "TTL=%d\n"
IDS_REPLY_STATUS "Echo reply returned %lu.\n"
IDS_MISSING_VALUE "Value must be supplied for option %1.\n"
IDS_BAD_OPTION "Bad option %1.\n"
IDS_BAD_PARAMETER "Bad parameter %1.\n"
IDS_BAD_VALUE "Bad value for option %1, valid range is from %2!d! to %3!u!.\n"
IDS_WRONG_FAMILY "The option %1 is only supported for %2.\n"
IDS_UNKNOWN_HOST "Ping could not find host %1. Please check the name and try again.\n"
IDS_PINGING_ADDRESS "\nPinging %1 %0"
IDS_PINGING_HOSTNAME "\nPinging %1 [%2] %0"
IDS_SOURCE_ADDRESS "from %1!s! %0"
IDS_PING_SIZE "with %1!d! bytes of data:\n\n"
IDS_REPLY_FROM "Reply from %1: %0"
IDS_REPLY_BYTES "bytes=%1!d! %0"
IDS_REPLY_TIME_MS "time=%1!d!ms %0"
IDS_REPLY_TIME_0MS "time<1ms %0"
IDS_REPLY_TTL "TTL=%1!d!\n"
IDS_REPLY_STATUS "Echo reply returned %1.\n"
IDS_DEST_HOST_UNREACHABLE "Destination host unreachable.\n"
IDS_DEST_NET_UNREACHABLE "Destination net unreachable.\n"
IDS_REQUEST_TIMED_OUT "Request timed out.\n"
IDS_TTL_EXPIRED "TTL expired in transit.\n"
IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %u)\n"
IDS_TRANSMIT_FAILED "PING: transmit failed. (Error %1!u!)\n"
IDS_STATISTICS "\n\
Ping statistics for %s:\n\
Packets: Sent = %d, Received = %d, Lost %d (%d%% loss),\n"
Ping statistics for %1!s!:\n\
Packets: Sent = %2!d!, Received = %3!d!, Lost %4!d! (%5!u!%% loss),\n"
IDS_APPROXIMATE_RTT "Approximate round-trip time in milliseconds:\n\
Minimum = %lums, Maximum = %lums, Average = %lums\n"
Minimum = %1!u!ms, Maximum = %2!u!ms, Average = %3!u!ms\n"
IDS_WINSOCK_FAIL "Failed to initialize WinSock: %i\n"
IDS_WINSOCK_FAIL "Failed to initialize WinSock: %1!d!\n"
END

View File

@@ -19,6 +19,7 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
/*
* PROJECT: ReactOS Ping Command
* LICENSE: MIT
@@ -27,20 +28,15 @@
* PROGRAMMERS: Tim Crawford <crawfxrd@gmail.com>
*/
#include <stdlib.h>
#define WIN32_LEAN_AND_MEAN
#define WIN32_NO_STATUS
#include <windef.h>
#include <winbase.h>
#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
#include <ws2tcpip.h>
#include <iphlpapi.h>
#include <icmpapi.h>
#include <conutils.h>
#include "resource.h"
#define NDEBUG
@@ -56,7 +52,9 @@ static BOOL ResolveTarget(PCWSTR target);
static void Ping(void);
static void PrintStats(void);
static BOOL WINAPI ConsoleCtrlHandler(DWORD ControlType);
static void PrintString(UINT id, ...);
static HANDLE hStdOut;
static HANDLE hIcmpFile = INVALID_HANDLE_VALUE;
static ULONG Timeout = 4000;
static int Family = AF_UNSPEC;
@@ -86,30 +84,34 @@ wmain(int argc, WCHAR *argv[])
DWORD StrLen = 46;
int Status;
/* Initialize the Console Standard Streams */
ConInitStdStreams();
IpOptions.Ttl = 128;
hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
if (!ParseCmdLine(argc, argv))
{
return 1;
}
if (!SetConsoleCtrlHandler(ConsoleCtrlHandler, TRUE))
{
DPRINT("Failed to set control handler: %lu\n", GetLastError());
return 1;
}
Status = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (Status != 0)
{
ConResPrintf(StdErr, IDS_WINSOCK_FAIL, Status);
PrintString(IDS_WINSOCK_FAIL, Status);
return 1;
}
if (!ResolveTarget(TargetName))
{
WSACleanup();
return 1;
}
@@ -118,13 +120,18 @@ wmain(int argc, WCHAR *argv[])
DPRINT("WSAAddressToStringW failed: %d\n", WSAGetLastError());
FreeAddrInfoW(Target);
WSACleanup();
return 1;
}
if (Family == AF_INET6)
{
hIcmpFile = Icmp6CreateFile();
}
else
{
hIcmpFile = IcmpCreateFile();
}
if (hIcmpFile == INVALID_HANDLE_VALUE)
@@ -132,19 +139,24 @@ wmain(int argc, WCHAR *argv[])
DPRINT("IcmpCreateFile failed: %lu\n", GetLastError());
FreeAddrInfoW(Target);
WSACleanup();
return 1;
}
if (*CanonName)
ConResPrintf(StdOut, IDS_PINGING_HOSTNAME, CanonName, Address);
{
PrintString(IDS_PINGING_HOSTNAME, CanonName, Address);
}
else
ConResPrintf(StdOut, IDS_PINGING_ADDRESS, Address);
{
PrintString(IDS_PINGING_ADDRESS, Address);
}
ConResPrintf(StdOut, IDS_PING_SIZE, RequestSize);
PrintString(IDS_PING_SIZE, RequestSize);
Ping();
i = 1;
while (i < PingCount)
{
Sleep(1000);
@@ -163,6 +175,41 @@ wmain(int argc, WCHAR *argv[])
return 0;
}
static
void
PrintString(UINT id, ...)
{
#define RC_STRING_MAX_SIZE 4096
WCHAR Format[RC_STRING_MAX_SIZE];
LPWSTR lpMsgBuf = NULL;
DWORD Len;
va_list args;
if (!LoadStringW(GetModuleHandleW(NULL), id, Format, _countof(Format)))
{
DPRINT("LoadStringW failed: %lu\n", GetLastError());
return;
}
va_start(args, id);
Len = FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING,
Format, 0, 0, (PWSTR)&lpMsgBuf, 0, &args);
if (lpMsgBuf /* && Len != 0 */)
{
// TODO: Handle writing to file. Well, use the ConUtils lib!
WriteConsoleW(hStdOut, lpMsgBuf, Len, &Len, NULL);
LocalFree(lpMsgBuf);
}
else
{
DPRINT("FormatMessageW failed: %lu\n", GetLastError());
}
va_end(args);
}
static
BOOL
ParseCmdLine(int argc, PWSTR argv[])
@@ -171,7 +218,7 @@ ParseCmdLine(int argc, PWSTR argv[])
if (argc < 2)
{
ConResPrintf(StdOut, IDS_USAGE);
PrintString(IDS_USAGE);
return FALSE;
}
@@ -190,66 +237,69 @@ ParseCmdLine(int argc, PWSTR argv[])
break;
case L'n':
{
if (i + 1 < argc)
{
PingForever = FALSE;
PingCount = wcstoul(argv[++i], NULL, 0);
if (PingCount == 0)
{
ConResPrintf(StdErr, IDS_BAD_VALUE, argv[i - 1], 1, UINT_MAX);
PrintString(IDS_BAD_VALUE, argv[i - 1], 1, UINT_MAX);
return FALSE;
}
}
else
{
ConResPrintf(StdErr, IDS_MISSING_VALUE, argv[i]);
PrintString(IDS_MISSING_VALUE, argv[i]);
return FALSE;
}
break;
}
case L'l':
{
if (i + 1 < argc)
{
RequestSize = wcstoul(argv[++i], NULL, 0);
if (RequestSize > MAX_SEND_SIZE)
{
ConResPrintf(StdErr, IDS_BAD_VALUE, argv[i - 1], 0, MAX_SEND_SIZE);
PrintString(IDS_BAD_VALUE, argv[i - 1], 0, MAX_SEND_SIZE);
return FALSE;
}
}
else
{
ConResPrintf(StdErr, IDS_MISSING_VALUE, argv[i]);
PrintString(IDS_MISSING_VALUE, argv[i]);
return FALSE;
}
break;
}
case L'f':
{
if (Family == AF_INET6)
{
ConResPrintf(StdErr, IDS_WRONG_FAMILY, argv[i], L"IPv4");
PrintString(IDS_WRONG_FAMILY, argv[i], L"IPv4");
return FALSE;
}
Family = AF_INET;
IpOptions.Flags |= IP_FLAG_DF;
break;
}
case L'i':
{
if (i + 1 < argc)
{
ULONG Ttl = wcstoul(argv[++i], NULL, 0);
if ((Ttl == 0) || (Ttl > UCHAR_MAX))
{
ConResPrintf(StdErr, IDS_BAD_VALUE, argv[i - 1], 1, UCHAR_MAX);
PrintString(IDS_BAD_VALUE, argv[i - 1], 1, UCHAR_MAX);
return FALSE;
}
@@ -257,17 +307,18 @@ ParseCmdLine(int argc, PWSTR argv[])
}
else
{
ConResPrintf(StdErr, IDS_MISSING_VALUE, argv[i]);
PrintString(IDS_MISSING_VALUE, argv[i]);
return FALSE;
}
break;
}
case L'v':
{
if (Family == AF_INET6)
{
ConResPrintf(StdErr, IDS_WRONG_FAMILY, argv[i], L"IPv4");
PrintString(IDS_WRONG_FAMILY, argv[i], L"IPv4");
return FALSE;
}
@@ -280,34 +331,37 @@ ParseCmdLine(int argc, PWSTR argv[])
}
else
{
ConResPrintf(StdErr, IDS_MISSING_VALUE, argv[i]);
PrintString(IDS_MISSING_VALUE, argv[i]);
return FALSE;
}
break;
}
case L'w':
{
if (i + 1 < argc)
{
Timeout = wcstoul(argv[++i], NULL, 0);
if (Timeout < DEFAULT_TIMEOUT)
{
Timeout = DEFAULT_TIMEOUT;
}
}
else
{
ConResPrintf(StdErr, IDS_MISSING_VALUE, argv[i]);
PrintString(IDS_MISSING_VALUE, argv[i]);
return FALSE;
}
break;
}
case L'R':
{
if (Family == AF_INET)
{
ConResPrintf(StdErr, IDS_WRONG_FAMILY, argv[i], L"IPv6");
PrintString(IDS_WRONG_FAMILY, argv[i], L"IPv6");
return FALSE;
}
@@ -315,39 +369,36 @@ ParseCmdLine(int argc, PWSTR argv[])
/* This option has been deprecated. Don't do anything. */
break;
}
case L'4':
{
if (Family == AF_INET6)
{
ConResPrintf(StdErr, IDS_WRONG_FAMILY, argv[i], L"IPv4");
PrintString(IDS_WRONG_FAMILY, argv[i], L"IPv4");
return FALSE;
}
Family = AF_INET;
break;
}
case L'6':
{
if (Family == AF_INET)
{
ConResPrintf(StdErr, IDS_WRONG_FAMILY, argv[i], L"IPv6");
PrintString(IDS_WRONG_FAMILY, argv[i], L"IPv6");
return FALSE;
}
Family = AF_INET6;
break;
}
case L'?':
ConResPrintf(StdOut, IDS_USAGE);
PrintString(IDS_USAGE);
return FALSE;
default:
ConResPrintf(StdErr, IDS_BAD_OPTION, argv[i]);
ConResPrintf(StdErr, IDS_USAGE);
PrintString(IDS_BAD_OPTION, argv[i]);
PrintString(IDS_USAGE);
return FALSE;
}
}
@@ -355,7 +406,8 @@ ParseCmdLine(int argc, PWSTR argv[])
{
if (TargetName != NULL)
{
ConResPrintf(StdErr, IDS_BAD_PARAMETER, argv[i]);
PrintString(IDS_BAD_PARAMETER, argv[i]);
return FALSE;
}
@@ -365,7 +417,8 @@ ParseCmdLine(int argc, PWSTR argv[])
if (TargetName == NULL)
{
ConResPrintf(StdErr, IDS_MISSING_ADDRESS);
PrintString(IDS_MISSING_ADDRESS);
return FALSE;
}
@@ -391,7 +444,8 @@ ResolveTarget(PCWSTR target)
Status = GetAddrInfoW(target, NULL, &hints, &Target);
if (Status != 0)
{
ConResPrintf(StdOut, IDS_UNKNOWN_HOST, target);
PrintString(IDS_UNKNOWN_HOST, target);
return FALSE;
}
@@ -399,10 +453,12 @@ ResolveTarget(PCWSTR target)
}
else if (ResolveAddress)
{
Status = GetNameInfoW(Target->ai_addr, Target->ai_addrlen,
CanonName, _countof(CanonName),
NULL, 0,
NI_NAMEREQD);
Status = GetNameInfoW(
Target->ai_addr, Target->ai_addrlen,
CanonName, _countof(CanonName),
NULL, 0,
NI_NAMEREQD);
if (Status != 0)
{
DPRINT("GetNameInfoW failed: %d\n", WSAGetLastError());
@@ -426,24 +482,30 @@ Ping(void)
SendBuffer = malloc(RequestSize);
if (SendBuffer == NULL)
{
ConResPrintf(StdErr, IDS_NO_RESOURCES);
PrintString(IDS_NO_RESOURCES);
exit(1);
}
ZeroMemory(SendBuffer, RequestSize);
if (Family == AF_INET6)
{
ReplySize += sizeof(ICMPV6_ECHO_REPLY);
}
else
{
ReplySize += sizeof(ICMP_ECHO_REPLY);
}
ReplySize += RequestSize + SIZEOF_ICMP_ERROR + SIZEOF_IO_STATUS_BLOCK;
ReplyBuffer = malloc(ReplySize);
if (ReplyBuffer == NULL)
{
ConResPrintf(StdErr, IDS_NO_RESOURCES);
PrintString(IDS_NO_RESOURCES);
free(SendBuffer);
exit(1);
}
@@ -458,18 +520,20 @@ Ping(void)
ZeroMemory(&Source, sizeof(Source));
Source.sin6_family = AF_INET6;
Status = Icmp6SendEcho2(hIcmpFile, NULL, NULL, NULL,
&Source,
(struct sockaddr_in6 *)Target->ai_addr,
SendBuffer, (USHORT)RequestSize, &IpOptions,
ReplyBuffer, ReplySize, Timeout);
Status = Icmp6SendEcho2(
hIcmpFile, NULL, NULL, NULL,
&Source,
(struct sockaddr_in6 *)Target->ai_addr,
SendBuffer, (USHORT)RequestSize, &IpOptions,
ReplyBuffer, ReplySize, Timeout);
}
else
{
Status = IcmpSendEcho2(hIcmpFile, NULL, NULL, NULL,
((PSOCKADDR_IN)Target->ai_addr)->sin_addr.s_addr,
SendBuffer, (USHORT)RequestSize, &IpOptions,
ReplyBuffer, ReplySize, Timeout);
Status = IcmpSendEcho2(
hIcmpFile, NULL, NULL, NULL,
((PSOCKADDR_IN)Target->ai_addr)->sin_addr.s_addr,
SendBuffer, (USHORT)RequestSize, &IpOptions,
ReplyBuffer, ReplySize, Timeout);
}
free(SendBuffer);
@@ -480,19 +544,19 @@ Ping(void)
switch (Status)
{
case IP_DEST_HOST_UNREACHABLE:
ConResPrintf(StdOut, IDS_DEST_HOST_UNREACHABLE);
PrintString(IDS_DEST_HOST_UNREACHABLE);
break;
case IP_DEST_NET_UNREACHABLE:
ConResPrintf(StdOut, IDS_DEST_NET_UNREACHABLE);
PrintString(IDS_DEST_NET_UNREACHABLE);
break;
case IP_REQ_TIMED_OUT:
ConResPrintf(StdOut, IDS_REQUEST_TIMED_OUT);
PrintString(IDS_REQUEST_TIMED_OUT);
break;
default:
ConResPrintf(StdOut, IDS_TRANSMIT_FAILED, Status);
PrintString(IDS_TRANSMIT_FAILED, Status);
break;
}
}
@@ -500,7 +564,7 @@ Ping(void)
{
EchosReceived++;
ConResPrintf(StdOut, IDS_REPLY_FROM, Address);
PrintString(IDS_REPLY_FROM, Address);
if (Family == AF_INET6)
{
@@ -511,32 +575,38 @@ Ping(void)
switch (pEchoReply->Status)
{
case IP_SUCCESS:
{
EchosSuccessful++;
if (pEchoReply->RoundTripTime == 0)
ConResPrintf(StdOut, IDS_REPLY_TIME_0MS);
{
PrintString(IDS_REPLY_TIME_0MS);
}
else
ConResPrintf(StdOut, IDS_REPLY_TIME_MS, pEchoReply->RoundTripTime);
{
PrintString(IDS_REPLY_TIME_MS, pEchoReply->RoundTripTime);
}
if (pEchoReply->RoundTripTime < RTTMin || RTTMin == 0)
{
RTTMin = pEchoReply->RoundTripTime;
}
if (pEchoReply->RoundTripTime > RTTMax || RTTMax == 0)
{
RTTMax = pEchoReply->RoundTripTime;
}
ConPuts(StdOut, L"\n");
wprintf(L"\n");
RTTTotal += pEchoReply->RoundTripTime;
break;
}
case IP_TTL_EXPIRED_TRANSIT:
ConResPrintf(StdOut, IDS_TTL_EXPIRED);
PrintString(IDS_TTL_EXPIRED);
break;
default:
ConResPrintf(StdOut, IDS_REPLY_STATUS, pEchoReply->Status);
PrintString(IDS_REPLY_STATUS, pEchoReply->Status);
break;
}
}
@@ -549,34 +619,40 @@ Ping(void)
switch (pEchoReply->Status)
{
case IP_SUCCESS:
{
EchosSuccessful++;
ConResPrintf(StdOut, IDS_REPLY_BYTES, pEchoReply->DataSize);
PrintString(IDS_REPLY_BYTES, pEchoReply->DataSize);
if (pEchoReply->RoundTripTime == 0)
ConResPrintf(StdOut, IDS_REPLY_TIME_0MS);
{
PrintString(IDS_REPLY_TIME_0MS);
}
else
ConResPrintf(StdOut, IDS_REPLY_TIME_MS, pEchoReply->RoundTripTime);
{
PrintString(IDS_REPLY_TIME_MS, pEchoReply->RoundTripTime);
}
ConResPrintf(StdOut, IDS_REPLY_TTL, pEchoReply->Options.Ttl);
PrintString(IDS_REPLY_TTL, pEchoReply->Options.Ttl);
if (pEchoReply->RoundTripTime < RTTMin || RTTMin == 0)
{
RTTMin = pEchoReply->RoundTripTime;
}
if (pEchoReply->RoundTripTime > RTTMax || RTTMax == 0)
{
RTTMax = pEchoReply->RoundTripTime;
}
RTTTotal += pEchoReply->RoundTripTime;
break;
}
case IP_TTL_EXPIRED_TRANSIT:
ConResPrintf(StdOut, IDS_TTL_EXPIRED);
PrintString(IDS_TTL_EXPIRED);
break;
default:
ConResPrintf(StdOut, IDS_REPLY_STATUS, pEchoReply->Status);
PrintString(IDS_REPLY_STATUS, pEchoReply->Status);
break;
}
}
@@ -592,12 +668,13 @@ PrintStats(void)
ULONG EchosLost = EchosSent - EchosReceived;
ULONG PercentLost = (ULONG)((EchosLost / (double)EchosSent) * 100.0);
ConResPrintf(StdOut, IDS_STATISTICS, Address, EchosSent, EchosReceived, EchosLost, PercentLost);
PrintString(IDS_STATISTICS, Address, EchosSent, EchosReceived, EchosLost, PercentLost);
if (EchosSuccessful > 0)
{
ULONG RTTAverage = RTTTotal / EchosSuccessful;
ConResPrintf(StdOut, IDS_APPROXIMATE_RTT, RTTMin, RTTMax, RTTAverage);
PrintString(IDS_APPROXIMATE_RTT, RTTMin, RTTMax, RTTAverage);
}
}
@@ -610,12 +687,12 @@ ConsoleCtrlHandler(DWORD ControlType)
{
case CTRL_C_EVENT:
PrintStats();
ConResPrintf(StdOut, IDS_CTRL_C);
PrintString(IDS_CTRL_C);
return FALSE;
case CTRL_BREAK_EVENT:
PrintStats();
ConResPrintf(StdOut, IDS_CTRL_BREAK);
PrintString(IDS_CTRL_BREAK);
return TRUE;
case CTRL_CLOSE_EVENT:

View File

@@ -32,7 +32,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "&Konec", CMD_EXIT
END
POPUP "Upr&avit"
POPUP "U&pravit"
BEGIN
MENUITEM "&Zpět\tCtrl+Z", CMD_UNDO
MENUITEM SEPARATOR
@@ -41,15 +41,15 @@ BEGIN
MENUITEM "&Vložit\tCtrl+V", CMD_PASTE
MENUITEM "&Smazat\tDel", CMD_DELETE
MENUITEM SEPARATOR
MENUITEM "&Najít\tCtrl+F", CMD_SEARCH
MENUITEM "Najít &další\tF3", CMD_SEARCH_NEXT
MENUITEM "Na&hradit...\tCtrl+H", CMD_REPLACE
MENUITEM "&Přejít...\tCtrl+G", CMD_GOTO
MENUITEM "&Hledej\tCtrl+F", CMD_SEARCH
MENUITEM "&Najdi další\tF3", CMD_SEARCH_NEXT
MENUITEM "Replace...\tCtrl+H", CMD_REPLACE
MENUITEM "Go To...\tCtrl+G", CMD_GOTO
MENUITEM SEPARATOR
MENUITEM "Vy&brat vše\tCtrl+A", CMD_SELECT_ALL
MENUITEM "Čas/Dat&um\tF5", CMD_TIME_DATE
MENUITEM "Vybrat vš&e\tCtrl+A", CMD_SELECT_ALL
MENUITEM "Č&as/Datum\tF5", CMD_TIME_DATE
END
POPUP "&Formát"
POPUP "F&ormát"
BEGIN
MENUITEM "Zalo&mit dlouhé řádky", CMD_WRAP
MENUITEM "&Písmo...", CMD_FONT
@@ -58,12 +58,12 @@ BEGIN
BEGIN
MENUITEM "&Stavový řádek", CMD_STATUSBAR
END
POPUP "Nápo&věda"
POPUP "&Nápověda"
BEGIN
MENUITEM "Zobrazit &nápovědu", CMD_HELP_CONTENTS
MENUITEM "O&bsah", CMD_HELP_CONTENTS
MENUITEM SEPARATOR
MENUITEM "&O programu...", CMD_ABOUT
MENUITEM "&Informace...", CMD_HELP_ABOUT_NOTEPAD
MENUITEM "In&fo...", CMD_HELP_ABOUT_NOTEPAD
END
END
@@ -71,37 +71,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 "Nastavení stránky"
CAPTION "Page Setup"
BEGIN
GROUPBOX "Náhled", 0, 240, 6, 120, 153, BS_GROUPBOX
GROUPBOX "Preview", 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 "Papír", grp2, 8, 6, 224, 56, BS_GROUPBOX
LTEXT "&Velikost:", stc2, 16, 22, 36, 8
GROUPBOX "Paper", grp2, 8, 6, 224, 56, BS_GROUPBOX
LTEXT "&Size:", stc2, 16, 22, 36, 8
COMBOBOX cmb2, 64, 20, 160, 160, CBS_SIMPLE | CBS_DROPDOWN | CBS_SORT | WS_GROUP | WS_TABSTOP | WS_VSCROLL
LTEXT "&Zásobník:", stc3, 16, 42, 36, 8
LTEXT "&Tray:", stc3, 16, 42, 36, 8
COMBOBOX cmb3, 64, 40, 160, 160, CBS_SIMPLE | CBS_DROPDOWN | CBS_SORT | WS_GROUP | WS_TABSTOP | WS_VSCROLL
GROUPBOX "Otočení", grp1, 8, 66, 64, 56, BS_GROUPBOX
AUTORADIOBUTTON "Na &výšku", rad1, 16, 80, 52, 12, BS_AUTORADIOBUTTON
AUTORADIOBUTTON "&Na šířku", rad2, 16, 100, 52, 12, BS_AUTORADIOBUTTON
GROUPBOX "Ohraničení", grp4, 80, 66, 152, 56, BS_GROUPBOX
LTEXT "V&levo:", stc15, 88, 82, 30, 8
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
EDITTEXT edt4, 119, 80, 36, 12, WS_TABSTOP | WS_GROUP | WS_BORDER
LTEXT "V&pravo:", stc16, 159, 82, 30, 8
LTEXT "&Right:", stc16, 159, 82, 30, 8
EDITTEXT edt6, 190, 80, 36, 12, WS_TABSTOP | WS_GROUP | WS_BORDER
LTEXT "&Nahoře:", stc17, 88, 102, 30, 8
LTEXT "T&op:", stc17, 88, 102, 30, 8
EDITTEXT edt5, 119, 100, 36, 12, WS_TABSTOP | WS_GROUP | WS_BORDER
LTEXT "&Dole:", stc18, 159, 102, 30, 8
LTEXT "&Bottom:", stc18, 159, 102, 30, 8
EDITTEXT edt7, 190, 100, 36, 12, WS_TABSTOP | WS_GROUP | WS_BORDER
LTEXT "&Záhlaví:", 0x140, 8, 132, 40, 15
LTEXT "&Header:", 0x140, 8, 132, 40, 15
EDITTEXT 0x141, 58, 130, 173, 12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL
LTEXT "Zá&patí:", 0x142, 8, 149, 40, 15
LTEXT "&Footer:", 0x142, 8, 149, 40, 15
EDITTEXT 0x143, 58, 147, 173, 12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL
PUSHBUTTON "Nápověda", IDHELP, 8, 170, 50, 14
PUSHBUTTON "Help", IDHELP, 8, 170, 50, 14
DEFPUSHBUTTON "OK", IDOK, 198, 170, 50, 14, BS_PUSHBUTTON
PUSHBUTTON "Storno", IDCANCEL, 254, 170, 50, 14
PUSHBUTTON "&Tiskárna...", psh3, 310, 170, 50, 14
PUSHBUTTON "Cancel", IDCANCEL, 254, 170, 50, 14
PUSHBUTTON "P&rinter...", psh3, 310, 170, 50, 14
END
/* Dialog 'Encoding' */
@@ -120,7 +120,7 @@ END
DIALOG_GOTO DIALOGEX 0, 0, 165, 50
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
FONT 8, "MS Shell Dlg"
CAPTION "Přejít na řádek"
CAPTION "Jít na řádek"
BEGIN
EDITTEXT ID_LINENUMBER, 54, 10, 106, 12, WS_CHILD | WS_BORDER | WS_TABSTOP
LTEXT "Číslo řádku:", 0x155, 5, 12, 41, 12, WS_CHILD | WS_TABSTOP | ES_NUMBER
@@ -181,7 +181,7 @@ paměti."
STRING_LF "Unix (LF)"
STRING_CR "Mac (CR)"
STRING_LINE_COLUMN "Řádek %d, sloupec %d"
STRING_PRINTERROR "Soubor '%s' nebylo možné vytisknout.\n\nZkontrolujte, zda je tiskárna zapnutá a správně nastavená."
STRING_PRINTERROR "Cannot print the file '%s'.\n\nMake sure that the printer is turned on and is configured properly."
STRING_TEXT_DOCUMENT "Textový dokument"
STRING_TEXT_DOCUMENT "Text Document"
END

View File

@@ -158,7 +158,7 @@ BEGIN
STRING_WARNING "ATTENTION"
STRING_INFO "Information"
STRING_UNTITLED "Sans-titre"
STRING_ALL_FILES "Tous les fichiers (*.*)"
STRING_ALL_FILES "Tous fichiers (*.*)"
STRING_TEXT_FILES_TXT "Fichiers texte (*.txt)"
STRING_TOOLARGE "Le fichier '%s' est trop grand pour le bloc-notes.\n \
Veuillez utiliser un autre éditeur."

View File

@@ -1,128 +0,0 @@
/*
* PROJECT: ReactOS Kernel
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/applications/osk/lang/cs-CZ.rc
* PURPOSE: On screen keyboard (American resources).
* PROGRAMMERS: Denis ROBERT
*/
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
MAIN_DIALOG DIALOGEX DISCARDABLE 0, 0, 608, 164
CAPTION "Klávesnice na obrazovce"
FONT 8, "MS Shell Dlg"
EXSTYLE WS_EX_TOPMOST | WS_EX_TOOLWINDOW | WS_EX_NOACTIVATE
BEGIN
PUSHBUTTON "Esc",SCAN_CODE_110,3,3,23,22
PUSHBUTTON "F1",SCAN_CODE_112,48,3,23,22
PUSHBUTTON "F2",SCAN_CODE_113,75,3,23,22
PUSHBUTTON "F3",SCAN_CODE_114,101,3,23,22
PUSHBUTTON "F4",SCAN_CODE_115,128,3,23,22
PUSHBUTTON "F5",SCAN_CODE_116,173,3,23,22
PUSHBUTTON "F6",SCAN_CODE_117,199,3,23,22
PUSHBUTTON "F7",SCAN_CODE_118,225,3,23,22
PUSHBUTTON "F8",SCAN_CODE_119,251,3,23,22
PUSHBUTTON "F9",SCAN_CODE_120,296,3,23,22
PUSHBUTTON "F10",SCAN_CODE_121,323,3,23,22
PUSHBUTTON "F11",SCAN_CODE_122,350,3,23,22
PUSHBUTTON "F12",SCAN_CODE_123,377,3,23,22
PUSHBUTTON "Prn",SCAN_CODE_124,411,3,23,22
PUSHBUTTON "Stop",SCAN_CODE_125,438,3,23,22
PUSHBUTTON "Attn",SCAN_CODE_126,465,3,23,22
PUSHBUTTON "`",SCAN_CODE_1,3,35,23,22
PUSHBUTTON "1",SCAN_CODE_2,30,35,23,22
PUSHBUTTON "2",SCAN_CODE_3,57,35,23,22
PUSHBUTTON "3",SCAN_CODE_4,84,35,23,22
PUSHBUTTON "4",SCAN_CODE_5,111,35,23,22
PUSHBUTTON "5",SCAN_CODE_6,138,35,23,22
PUSHBUTTON "6",SCAN_CODE_7,165,35,23,22
PUSHBUTTON "7",SCAN_CODE_8,192,35,23,22
PUSHBUTTON "8",SCAN_CODE_9,219,35,23,22
PUSHBUTTON "9",SCAN_CODE_10,246,35,23,22
PUSHBUTTON "0",SCAN_CODE_11,273,35,23,22
PUSHBUTTON "-",SCAN_CODE_12,300,35,23,22
PUSHBUTTON "=",SCAN_CODE_13,327,35,23,22
PUSHBUTTON "<--",SCAN_CODE_15,354,35,47,22,BS_ICON
PUSHBUTTON "Tab",SCAN_CODE_16,3,61,35,22,BS_ICON
PUSHBUTTON "Q",SCAN_CODE_17,42,61,23,22
PUSHBUTTON "W",SCAN_CODE_18,69,61,23,22
PUSHBUTTON "E",SCAN_CODE_19,96,61,23,22
PUSHBUTTON "R",SCAN_CODE_20,123,61,23,22
PUSHBUTTON "T",SCAN_CODE_21,150,61,23,22
PUSHBUTTON "Y",SCAN_CODE_22,177,61,23,22
PUSHBUTTON "U",SCAN_CODE_23,204,61,23,22
PUSHBUTTON "I",SCAN_CODE_24,231,61,23,22
PUSHBUTTON "O",SCAN_CODE_25,258,61,23,22
PUSHBUTTON "P",SCAN_CODE_26,285,61,23,22
PUSHBUTTON "[",SCAN_CODE_27,312,61,23,22
PUSHBUTTON "]",SCAN_CODE_28,339,61,23,22
PUSHBUTTON "\\",SCAN_CODE_29,366,61,35,22
PUSHBUTTON "Caps Lock",SCAN_CODE_30,3,87,46,22,BS_ICON
PUSHBUTTON "A",SCAN_CODE_31,53,87,23,22
PUSHBUTTON "S",SCAN_CODE_32,80,87,23,22
PUSHBUTTON "D",SCAN_CODE_33,107,87,23,22
PUSHBUTTON "F",SCAN_CODE_34,134,87,23,22
PUSHBUTTON "G",SCAN_CODE_35,161,87,23,22
PUSHBUTTON "H",SCAN_CODE_36,188,87,23,22
PUSHBUTTON "J",SCAN_CODE_37,215,87,23,22
PUSHBUTTON "K",SCAN_CODE_38,242,87,23,22
PUSHBUTTON "L",SCAN_CODE_39,269,87,23,22
PUSHBUTTON ";",SCAN_CODE_40,296,87,23,22
PUSHBUTTON "'",SCAN_CODE_41,323,87,23,22
PUSHBUTTON "ret",SCAN_CODE_43,350,87,51,22,BS_ICON
PUSHBUTTON "shift",SCAN_CODE_44,3,113,57,22,BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX
PUSHBUTTON "Z",SCAN_CODE_46,64,113,23,22
PUSHBUTTON "X",SCAN_CODE_47,91,113,23,22
PUSHBUTTON "C",SCAN_CODE_48,118,113,23,22
PUSHBUTTON "V",SCAN_CODE_49,145,113,23,22
PUSHBUTTON "B",SCAN_CODE_50,172,113,23,22
PUSHBUTTON "N",SCAN_CODE_51,199,113,23,22
PUSHBUTTON "M",SCAN_CODE_52,226,113,23,22
PUSHBUTTON ",",SCAN_CODE_53,253,113,23,22
PUSHBUTTON ".",SCAN_CODE_54,280,113,23,22
PUSHBUTTON "/",SCAN_CODE_55,307,113,23,22
PUSHBUTTON "shift",SCAN_CODE_57,334,113,67,22,BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX
PUSHBUTTON "ctrl",SCAN_CODE_58,3,139,41,22,BS_PUSHLIKE|BS_AUTOCHECKBOX
PUSHBUTTON "ROS",SCAN_CODE_127,48,139,30,22,BS_ICON
PUSHBUTTON "alt",SCAN_CODE_60,82,139,30,22,BS_PUSHLIKE|BS_AUTOCHECKBOX
PUSHBUTTON "",SCAN_CODE_61,116,139,143,22
PUSHBUTTON "alt gr",SCAN_CODE_62,264,139,30,22,BS_PUSHLIKE|BS_AUTOCHECKBOX
PUSHBUTTON "ROS",SCAN_CODE_128,298,139,30,22,BS_ICON
PUSHBUTTON "menu",SCAN_CODE_129,332,139,30,22,BS_ICON
PUSHBUTTON "ctrl",SCAN_CODE_64,366,139,35,22,BS_PUSHLIKE|BS_AUTOCHECKBOX
PUSHBUTTON "ins",SCAN_CODE_75,411,35,23,22
PUSHBUTTON "del",SCAN_CODE_76,411,61,23,22
PUSHBUTTON "home",SCAN_CODE_80,438,35,23,22,BS_ICON
PUSHBUTTON "end",SCAN_CODE_81,438,61,23,22
PUSHBUTTON "pg up",SCAN_CODE_85,465,35,23,22,BS_ICON
PUSHBUTTON "pg down",SCAN_CODE_86,465,61,23,22,BS_ICON
PUSHBUTTON "<-",SCAN_CODE_79,411,139,23,22,BS_ICON
PUSHBUTTON "^",SCAN_CODE_83,438,113,23,22,BS_ICON
PUSHBUTTON "v",SCAN_CODE_84,438,139,23,22,BS_ICON
PUSHBUTTON "->",SCAN_CODE_89,465,139,23,22,BS_ICON
PUSHBUTTON "num",SCAN_CODE_90,500,35,23,22
PUSHBUTTON "7",SCAN_CODE_91,500,61,23,22
PUSHBUTTON "4",SCAN_CODE_92,500,87,23,22
PUSHBUTTON "1",SCAN_CODE_93,500,113,23,22
PUSHBUTTON "/",SCAN_CODE_95,527,35,23,22
PUSHBUTTON "8",SCAN_CODE_96,527,61,23,22
PUSHBUTTON "5",SCAN_CODE_97,527,87,23,22
PUSHBUTTON "2",SCAN_CODE_98,527,113,23,22
PUSHBUTTON "0",SCAN_CODE_99,500,139,50,22
PUSHBUTTON "*",SCAN_CODE_100,554,35,23,22
PUSHBUTTON "9",SCAN_CODE_101,554,61,23,22
PUSHBUTTON "6",SCAN_CODE_102,554,87,23,22
PUSHBUTTON "3",SCAN_CODE_103,554,113,23,22
PUSHBUTTON ".",SCAN_CODE_104,554,139,23,22
PUSHBUTTON "-",SCAN_CODE_105,581,35,23,22
PUSHBUTTON "+",SCAN_CODE_106,581,61,23,48
PUSHBUTTON "ent",SCAN_CODE_108,581,113,23,48
CTEXT "Num",IDC_STATIC,510,4,21,8
CONTROL "",IDC_LED_NUM,"Static",SS_CENTER|SS_NOTIFY,518,16,4,3
CTEXT "Caps",IDC_STATIC,540,4,21,8
CONTROL "",IDC_LED_CAPS,"Static",SS_CENTER|SS_NOTIFY,548,16,4,3
CTEXT "Scroll",IDC_STATIC,572,4,21,8
CONTROL "",IDC_LED_SCROLL,"Static",SS_CENTER|SS_NOTIFY,580,16,4,3
END
/* EOF */

View File

@@ -46,9 +46,6 @@ IDI_BOTTOM ICON "res/bottom.ico"
#ifdef LANGUAGE_AR_DZ
#include "lang/ar-DZ.rc"
#endif
#ifdef LANGUAGE_CS_CZ
#include "lang/cs-CZ.rc"
#endif
#ifdef LANGUAGE_DE_DE
#include "lang/de-DE.rc"
#endif

View File

@@ -202,6 +202,6 @@ BEGIN
IDS_CERT_DOES_NOT_MATCH "Verifica del certificato SSL fallita."
IDS_INTEG_CHECK_TITLE "Verifica integrit<69> pacchetto..."
IDS_INTEG_CHECK_FAIL "Il pacchetto non ha superato il controllo di integrit<69>, potrebbe essere stato danneggiato o manomesso durante lo scaricamento. L'esecuzione del software non <20> raccomandata."
IDS_INTERRUPTED_DOWNLOAD "Lo scaricamento <20> stato interrotto. Verificare la connessione a Internet."
IDS_UNABLE_TO_WRITE "Impossibile scrivere su disco: lo spazio libero potrebbe essere esaurito."
IDS_INTERRUPTED_DOWNLOAD "The download was interrupted. Check connection to Internet."
IDS_UNABLE_TO_WRITE "Unable to write to disk. Disk may be at capacity."
END

View File

@@ -7,4 +7,4 @@ add_library(clb SHARED
${CMAKE_CURRENT_BINARY_DIR}/clb.def)
set_module_type(clb win32dll UNICODE)
add_importlibs(clb user32 comctl32 msvcrt kernel32 ntdll)
add_importlibs(clb user32 gdi32 comctl32 kernel32 ntdll)

View File

@@ -1079,7 +1079,7 @@ BOOL ModifyValue(HWND hwnd, HKEY hKey, LPCWSTR valueName, BOOL EditBin)
editValueName = valueName;
lRet = RegQueryValueExW(hKey, valueName, 0, &type, 0, &valueDataLen);
if (lRet != ERROR_SUCCESS && (valueName == NULL || !valueName[0]))
if (lRet != ERROR_SUCCESS && (!wcscmp(valueName, L"") || valueName == NULL))
{
lRet = ERROR_SUCCESS; /* Allow editing of (Default) values which don't exist */
type = REG_SZ;

View File

@@ -150,9 +150,6 @@ BOOL RegFindRecurse(
if (DoEvents())
return FALSE;
if(wcslen(pszSubKey) >= _countof(szSubKey))
return FALSE;
wcscpy(szSubKey, pszSubKey);
hSubKey = NULL;

View File

@@ -1125,13 +1125,11 @@ static BOOL _CmdWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
keyPath = GetItemPath(g_pChildWnd->hTreeWnd, 0, &hKeyRoot);
valueName = GetValueName(g_pChildWnd->hListWnd, -1);
if (!keyPath)
return TRUE;
lRet = RegOpenKeyExW(hKeyRoot, keyPath, 0, regsam, &hKey);
if (lRet != ERROR_SUCCESS)
hKey = 0;
if (keyPath)
{
lRet = RegOpenKeyExW(hKeyRoot, keyPath, 0, regsam, &hKey);
if (lRet != ERROR_SUCCESS) hKey = 0;
}
switch (LOWORD(wParam))
{

View File

@@ -204,47 +204,47 @@ END
IDD_EDIT_RESOURCE_LIST DIALOGEX 32, 24, 170, 120
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Seznam prostředků"
CAPTION "Resource List"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "", IDC_RESOURCE_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER |
LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 10, 10, 150, 75
DEFPUSHBUTTON "OK", IDOK, 27, 100, 50, 14
PUSHBUTTON "Zobrazit...", IDC_SHOW_RESOURCE, 93, 100, 50, 14, WS_DISABLED
PUSHBUTTON "Show...", IDC_SHOW_RESOURCE, 93, 100, 50, 14, WS_DISABLED
END
IDD_EDIT_RESOURCE DIALOGEX 6, 18, 281, 283
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Prostředky"
CAPTION "Resources"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "DMA:", IDC_STATIC, 10, 5, 20, 8
CONTROL "", IDC_DMA_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER |
LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 10, 15, 261, 31
LTEXT "Přerušení:", IDC_STATIC, 10, 48, 35, 8
LTEXT "Interrupt:", IDC_STATIC, 10, 48, 35, 8
CONTROL "", IDC_IRQ_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER |
LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 10, 58, 261, 31
LTEXT "Paměť:", IDC_STATIC, 10, 91, 32, 8
LTEXT "Memory:", IDC_STATIC, 10, 91, 32, 8
CONTROL "", IDC_MEMORY_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER |
LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 10, 101, 261, 31
LTEXT "Port:", IDC_STATIC, 10, 134, 38, 8
CONTROL "", IDC_PORT_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER |
LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 10, 144, 261, 31
LTEXT "Data zařízení:", IDC_STATIC, 10, 177, 80, 8
LTEXT "Device specific data:", IDC_STATIC, 10, 177, 80, 8
CONTROL "", IDC_DEVICE_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER |
LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 10, 188, 261, 31
GROUPBOX "Použití", IDC_STATIC, 10, 219, 125, 39
LTEXT "Nezjištěno", IDC_UNDETERMINED, 18, 230, 46, 8, WS_DISABLED
LTEXT "Sdílené", IDC_SHARED, 18, 240, 48, 8, WS_DISABLED
LTEXT "Exkluzivní pro zařízení", IDC_DEVICE_EXCLUSIVE, 72, 230, 58, 8, WS_DISABLED
LTEXT "Exkluzivní pro ovladač", IDC_DRIVER_EXCLUSIVE, 72, 240, 54, 8, WS_DISABLED
RTEXT "Typ rozhraní:", IDC_STATIC, 144, 220, 58, 8
GROUPBOX "Usage", IDC_STATIC, 10, 219, 125, 39
LTEXT "Undetermined", IDC_UNDETERMINED, 18, 230, 46, 8, WS_DISABLED
LTEXT "Shared", IDC_SHARED, 18, 240, 48, 8, WS_DISABLED
LTEXT "Device exclusive", IDC_DEVICE_EXCLUSIVE, 72, 230, 58, 8, WS_DISABLED
LTEXT "Driver exclusive", IDC_DRIVER_EXCLUSIVE, 72, 240, 54, 8, WS_DISABLED
RTEXT "Interface Type:", IDC_STATIC, 144, 220, 58, 8
LTEXT "", IDC_INTERFACETYPE, 205, 220, 66, 8
RTEXT "Číslo sběrnice:", IDC_STATIC, 151, 230, 51, 8
RTEXT "Bus Nummer:", IDC_STATIC, 151, 230, 51, 8
LTEXT "", IDC_BUSNUMBER, 205, 230, 66, 8
RTEXT "Verze:", IDC_STATIC, 151, 240, 51, 8
RTEXT "Version:", IDC_STATIC, 151, 240, 51, 8
LTEXT "", IDC_VERSION, 205, 240, 66, 8
RTEXT "Revize:", IDC_STATIC, 151, 250, 51, 8
RTEXT "Revision:", IDC_STATIC, 151, 250, 51, 8
LTEXT "", IDC_REVISION, 205, 250, 66, 8
DEFPUSHBUTTON "OK", IDOK, 92, 263, 40, 14
PUSHBUTTON "&Data...", IDC_SHOW_RESOURCE_DATA, 148, 263, 40, 14, WS_DISABLED
@@ -285,8 +285,8 @@ BEGIN
ID_EDIT_NEW_DWORDVALUE "Přidá novou DWORD položku"
ID_REGISTRY_IMPORTREGISTRYFILE "Importuje textový soubor do registru"
ID_REGISTRY_EXPORTREGISTRYFILE "Exportuje všechny části registru do textového souboru"
ID_REGISTRY_LOADHIVE "Načte soubor podregistru"
ID_REGISTRY_UNLOADHIVE "Uvolní soubor podregistru"
ID_REGISTRY_LOADHIVE "Loads a hive file into the registry"
ID_REGISTRY_UNLOADHIVE "Unloads a hive from the registry"
ID_REGISTRY_CONNECTNETWORKREGISTRY "Připojí se ke vzdálenému registru jiného počítače"
ID_REGISTRY_DISCONNECTNETWORKREGISTRY "Odpojí se od vzdálenému registru jiného počítače"
ID_REGISTRY_PRINT "Vytiskne všechny části registru"
@@ -328,8 +328,8 @@ BEGIN
IDS_ERR_DELETEVALUE "Nelze odstranit všechny vybrané položky!"
IDS_ERR_RENVAL_CAPTION "Chyba při přejmenování položky"
IDS_ERR_RENVAL_TOEMPTY "Nelze přejmenovat %s. Vybraná položka je prázdná. Vyzkoušejte jiný název."
IDS_QUERY_IMPORT_HIVE_CAPTION "Potvrďte obnovení klíče"
IDS_QUERY_IMPORT_HIVE_MSG "Klíč bude obnoven přes současně vybraný klíč.\nVšechny hodnoty a podklíče tohoto klíče budou smazány.\nChcete pokračovat?"
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
IDS_NEW_KEY "Nový klíč #%d"
IDS_NEW_VALUE "Nová hodnota #%d"
END
@@ -343,8 +343,8 @@ BEGIN
IDS_MY_COMPUTER "Tento počítač"
IDS_IMPORT_REG_FILE "Importovat soubor registru"
IDS_EXPORT_REG_FILE "Exportovat do souboru registru"
IDS_LOAD_HIVE "Načíst podregistr"
IDS_UNLOAD_HIVE "Uvolnit podregistr"
IDS_LOAD_HIVE "Load Hive"
IDS_UNLOAD_HIVE "Unload Hive"
IDS_INVALID_DWORD "(Neplatná hodnota DWORD)"
END
@@ -353,7 +353,7 @@ BEGIN
IDS_FLT_REGFILE "Soubor registru"
IDS_FLT_REGFILES "Soubory registru (*.reg)"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_HIVFILES "Soubory podregistru (*.*)"
IDS_FLT_HIVFILES "Registry Hive Files (*.*)"
IDS_FLT_HIVFILES_FLT "*.*"
IDS_FLT_REGEDIT4 "Soubory registru Win9x/NT4 (REGEDIT4) (*.reg)"
IDS_FLT_REGEDIT4_FLT "*.reg"
@@ -402,40 +402,40 @@ END
STRINGTABLE
BEGIN
IDS_BUSNUMBER "Číslo sběrnice"
IDS_INTERFACE "Rozhrání"
IDS_DMA_CHANNEL "Kanál"
IDS_BUSNUMBER "Bus Number"
IDS_INTERFACE "Interface"
IDS_DMA_CHANNEL "Channel"
IDS_DMA_PORT "Port"
IDS_INTERRUPT_VECTOR "Vektor"
IDS_INTERRUPT_LEVEL "Úroveň"
IDS_INTERRUPT_AFFINITY "Afinita"
IDS_INTERRUPT_TYPE "Typ"
IDS_MEMORY_ADDRESS "Fyzická adresa"
IDS_MEMORY_LENGTH "Délka"
IDS_MEMORY_ACCESS "Přístup"
IDS_PORT_ADDRESS "Fyzická adresa"
IDS_PORT_LENGTH "Délka"
IDS_PORT_ACCESS "Přístup"
IDS_SPECIFIC_RESERVED1 "Rezervováno 1"
IDS_SPECIFIC_RESERVED2 "Rezervováno 2"
IDS_SPECIFIC_DATASIZE "Velikost dat"
IDS_INTERRUPT_VECTOR "Vector"
IDS_INTERRUPT_LEVEL "Level"
IDS_INTERRUPT_AFFINITY "Affinity"
IDS_INTERRUPT_TYPE "Type"
IDS_MEMORY_ADDRESS "Physical Address"
IDS_MEMORY_LENGTH "Length"
IDS_MEMORY_ACCESS "Access"
IDS_PORT_ADDRESS "Physical Address"
IDS_PORT_LENGTH "Length"
IDS_PORT_ACCESS "Access"
IDS_SPECIFIC_RESERVED1 "Reserved 1"
IDS_SPECIFIC_RESERVED2 "Reserved 2"
IDS_SPECIFIC_DATASIZE "Data Size"
END
STRINGTABLE
BEGIN
IDS_PORT_PORT_IO "Port"
IDS_PORT_MEMORY_IO "Paměť"
IDS_INTERRUPT_EDGE_SENSITIVE "Spouštěné hranou"
IDS_INTERRUPT_LEVEL_SENSITIVE "Spouštěné úrovní"
IDS_MEMORY_READ_ONLY "Jen pro čtení"
IDS_MEMORY_WRITE_ONLY "Jen pro zápis"
IDS_MEMORY_READ_WRITE "Čtení / Zápis"
IDS_PORT_MEMORY_IO "Memory"
IDS_INTERRUPT_EDGE_SENSITIVE "Edge Sensitive"
IDS_INTERRUPT_LEVEL_SENSITIVE "Level Sensitive"
IDS_MEMORY_READ_ONLY "Read Only"
IDS_MEMORY_WRITE_ONLY "Write Only"
IDS_MEMORY_READ_WRITE "Read / Write"
END
STRINGTABLE
BEGIN
IDS_BUS_UNDEFINED "Nedefinováno"
IDS_BUS_INTERNAL "Vnitřní"
IDS_BUS_UNDEFINED "Undefined"
IDS_BUS_INTERNAL "Internal"
IDS_BUS_ISA "ISA"
IDS_BUS_EISA "EISA"
IDS_BUS_MICROCHANNEL "MicroChannel"
@@ -448,10 +448,10 @@ BEGIN
IDS_BUS_MPIBUS "MPI-Bus"
IDS_BUS_MPSABUS "MPSA-Bus"
IDS_BUS_PROCESSORINTERNAL "Processor Internal"
IDS_BUS_INTERNALPOWERBUS "Vnitřní napájecí sběrnice"
IDS_BUS_PNPISABUS "Sběrnice PnP-ISA"
IDS_BUS_PNPBUS "Sběrnice PnP"
IDS_BUS_UNKNOWNTYPE "Neznámý typ rozhraní"
IDS_BUS_INTERNALPOWERBUS "Internal Power Bus"
IDS_BUS_PNPISABUS "PnP-ISA Bus"
IDS_BUS_PNPBUS "PnP Bus"
IDS_BUS_UNKNOWNTYPE "Unknown Interface Type"
END
/*****************************************************************/

View File

@@ -20,7 +20,6 @@
*/
#include "regedit.h"
#include <strsafe.h>
const WCHAR g_szGeneralRegKey[] = L"Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Regedit";
@@ -130,14 +129,11 @@ extern void SaveSettings(void)
rootName = get_root_key_name(hRootKey);
/* Load "My Computer" string and complete it */
if (LoadStringW(hInst, IDS_MY_COMPUTER, szBuffer, COUNT_OF(szBuffer)) &&
SUCCEEDED(StringCbCatW(szBuffer, sizeof(szBuffer), L"\\")) &&
SUCCEEDED(StringCbCatW(szBuffer, sizeof(szBuffer), rootName)) &&
SUCCEEDED(StringCbCatW(szBuffer, sizeof(szBuffer), L"\\")) &&
SUCCEEDED(StringCbCatW(szBuffer, sizeof(szBuffer), keyPath)))
{
RegSetValueExW(hKey, L"LastKey", 0, REG_SZ, (LPBYTE)szBuffer, (DWORD)wcslen(szBuffer) * sizeof(WCHAR));
}
LoadStringW(hInst, IDS_MY_COMPUTER, szBuffer, COUNT_OF(szBuffer));
wcscat(szBuffer, L"\\"); wcscat(szBuffer, rootName);
wcscat(szBuffer, L"\\"); wcscat(szBuffer, keyPath);
RegSetValueExW(hKey, L"LastKey", 0, REG_SZ, (LPBYTE)szBuffer, (DWORD)wcslen(szBuffer) * sizeof(WCHAR));
}
/* Get statusbar settings */

View File

@@ -1,17 +0,0 @@
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
DLG_SCRNSAVECONFIGURE DIALOGEX 0, 0, 273, 178
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Nastavení spořiče obrazovky 3D Text"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "OK", IDOK, 216, 7, 50, 14
PUSHBUTTON "Storno", IDCANCEL, 216, 24, 50, 14
EDITTEXT IDC_MESSAGE_TEXT, 18, 28, 122, 14, ES_AUTOHSCROLL
LTEXT "Vlastní text", IDC_STATIC, 18, 17, 65, 8
END
STRINGTABLE
BEGIN
IDS_DESCRIPTION "Spořič obrazovky 3D Text"
END

View File

@@ -19,15 +19,12 @@ IDI_ICON ICON DISCARDABLE "res/icon_3dtext.ico"
/* UTF-8 */
#pragma code_page(65001)
#ifdef LANGUAGE_BG_BG
#include "lang/bg-BG.rc"
#endif
#ifdef LANGUAGE_CS_CZ
#include "lang/cs-CZ.rc"
#endif
#ifdef LANGUAGE_DE_DE
#include "lang/de-DE.rc"
#endif
#ifdef LANGUAGE_BG_BG
#include "lang/bg-BG.rc"
#endif
#ifdef LANGUAGE_EL_GR
#include "lang/el-GR.rc"
#endif

View File

@@ -1,7 +0,0 @@
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
STRINGTABLE
BEGIN
IDS_DESCRIPTION "Spořič obrazovky Přihlášení"
IDS_TEXT "Žádná nastavení nejsou potřeba."
END

View File

@@ -26,9 +26,6 @@ IDB_SERVER BITMAP "res/1.bmp"
#ifdef LANGUAGE_BG_BG
#include "lang/bg-BG.rc"
#endif
#ifdef LANGUAGE_CS_CZ
#include "lang/cs-CZ.rc"
#endif
#ifdef LANGUAGE_DE_DE
#include "lang/de-DE.rc"
#endif

View File

@@ -56,11 +56,12 @@ ParseArguments(struct CommandLineOptions* pOpts, int argc, WCHAR *argv[])
break;
case L'c': /* Comment on reason for shutdown */
if (index+1 > argc)
return ERROR_INVALID_DATA;
if(CheckCommentLength(argv[index+1]))
{
pOpts->message = argv[index+1];
if (index+1 <= argc)
pOpts->message = argv[index+1];
else
return ERROR_INVALID_DATA;
index++;
}
else
@@ -71,9 +72,10 @@ ParseArguments(struct CommandLineOptions* pOpts, int argc, WCHAR *argv[])
break;
case L'd': /* Reason code [p|u:]xx:yy */
if (index+1 >= argc)
if (index+1 <= argc)
pOpts->reason = ParseReasonCode(argv[index+1]);
else
return ERROR_INVALID_DATA;
pOpts->reason = ParseReasonCode(argv[index+1]);
index++;
break;
@@ -99,10 +101,7 @@ ParseArguments(struct CommandLineOptions* pOpts, int argc, WCHAR *argv[])
break;
case L'm': /* Target remote systems (UNC name/IP address) */
if (index+1 >= argc)
return ERROR_INVALID_DATA;
pOpts->remote_system = argv[index+1];
index++;
break;
case L'p': /* Turn off local computer with no warning/time-out */
@@ -119,12 +118,9 @@ ParseArguments(struct CommandLineOptions* pOpts, int argc, WCHAR *argv[])
break;
case L't': /* Shutdown delay */
if (index+1 >= argc)
return ERROR_INVALID_DATA;
pOpts->shutdown_delay = _wtoi(argv[index+1]);
if (pOpts->shutdown_delay > 0)
pOpts->force = TRUE;
index++;
break;
default:

View File

@@ -30,35 +30,35 @@ BEGIN
MENUITEM "Otevřít...", ID_FILE_OPEN
MENUITEM "Uložit", ID_FILE_SAVE, GRAYED
MENUITEM "Uložit jako...", ID_FILE_SAVEAS, GRAYED
MENUITEM "Obnovit...", ID_FILE_RESTORE, GRAYED
MENUITEM "Vlastnosti", ID_FILE_PROPERTIES
MENUITEM "Restore...", ID_FILE_RESTORE, GRAYED
MENUITEM "Properties", ID_FILE_PROPERTIES
MENUITEM SEPARATOR
MENUITEM "Konec", ID_FILE_EXIT
END
POPUP "&Upravit"
POPUP "&Edit"
BEGIN
MENUITEM "&Kopírovat", ID_EDIT_COPY
MENUITEM "&Vložit", ID_EDIT_PASTE, GRAYED
MENUITEM "Vložit a &sloučit", ID_EDIT_PASTEMIX, GRAYED
MENUITEM "&Copy", ID_EDIT_COPY
MENUITEM "&Paste Insert", ID_EDIT_PASTE, GRAYED
MENUITEM "Paste Mi&x", ID_EDIT_PASTEMIX, GRAYED
MENUITEM SEPARATOR
MENUITEM "V&ložit soubor...", ID_EDIT_INSERTFILE
MENUITEM "Sl&oučit se souborem...", ID_EDIT_MIXFILE
MENUITEM "&Insert File...", ID_EDIT_INSERTFILE
MENUITEM "&Mix with File...", ID_EDIT_MIXFILE
MENUITEM SEPARATOR
MENUITEM "Odstranit &před současnou pozicí",ID_EDIT_DELETEBEFORE, GRAYED
MENUITEM "Odstranit &za současnou pozicí",ID_EDIT_DELETEAFTER, GRAYED
MENUITEM "Delete &Before Current Position",ID_EDIT_DELETEBEFORE, GRAYED
MENUITEM "Delete &After Current Position",ID_EDIT_DELETEAFTER, GRAYED
MENUITEM SEPARATOR
MENUITEM "Vlas&tnosti zvuku", ID_EDIT_AUDIOPROPS
MENUITEM "A&udio Properties", ID_EDIT_AUDIOPROPS
END
POPUP "&Efekty"
POPUP "Effect&s"
BEGIN
MENUITEM "&Zvýšit hlasitost (o 25%)", ID_EFFECTS_INCVOL
MENUITEM "&Snížit hlasitost", ID_EFFECTS_DECVOL
MENUITEM "&Increase Volume (by 25%)", ID_EFFECTS_INCVOL
MENUITEM "&Decrease Volume", ID_EFFECTS_DECVOL
MENUITEM SEPARATOR
MENUITEM "Z&rychlit(o 100%)", ID_EFFECTS_INCSPD
MENUITEM "Z&pomalit", ID_EFFECTS_DECSPD
MENUITEM "&Increase Speed (by 100%)", ID_EFFECTS_INCSPD
MENUITEM "&Decrease Speed", ID_EFFECTS_DECSPD
MENUITEM SEPARATOR
MENUITEM "&Přidat ozvěnu", ID_EFFECTS_ECHO
MENUITEM "&Pozpátku", ID_EFFECTS_REVERSE
MENUITEM "&Add Echo", ID_EFFECTS_ECHO
MENUITEM "&Reverse", ID_EFFECTS_REVERSE
END
POPUP "&?"
BEGIN
@@ -76,7 +76,7 @@ STRINGTABLE
BEGIN
IDS_STRPOS "Pozice: %.2f s"
IDS_STRDUR "Délka: %.2f s"
IDS_STRBUF "Vyrovnávací paměť: %.2f kb"
IDS_STRBUF "Buffer: %.2f kb"
IDS_STRFMT "%.1f kHz %u bitů"
IDS_STRMONO "mono"
IDS_STRSTEREO "stereo"

View File

@@ -411,7 +411,7 @@ BEGIN
IDS_TAB_IOREADBYTES "I/O přečtené bajty"
IDS_TAB_IOWRITESBYTES "I/O zapsané bajty"
IDS_TAB_IOOTHERBYTES "I/O ostatní bajty"
IDS_TAB_COMMANDLINE "Příkazový řádek"
IDS_TAB_COMMANDLINE "Command Line"
IDS_MENU_SELECTCOLUMNS "&Vybrat sloupce..."
IDS_MENU_16BITTASK "&Zobrazit 16-bitové úlohy"
IDS_MENU_WINDOWS "&Okna"

View File

@@ -572,7 +572,7 @@ BOOL PerfDataGetCommandLine(ULONG Index, LPWSTR lpCommandLine, ULONG nMaxCount)
{
/* Found it. Use it, and add some ellipsis at the very end to make it cute */
wcsncpy(lpCommandLine, cache->str, CMD_LINE_MIN(nMaxCount, cache->len));
wcscpy(lpCommandLine + CMD_LINE_MIN(nMaxCount, cache->len) - wcslen(ellipsis), ellipsis);
wcscpy(lpCommandLine + CMD_LINE_MIN(nMaxCount, cache->len) - sizeof(ellipsis)/sizeof(WCHAR), ellipsis);
return TRUE;
}

View File

@@ -1,261 +0,0 @@
/*
* Copyright 2004 by Krzysztof Foltman
*
* 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
*/
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
IDM_MAINMENU MENU
BEGIN
POPUP "&Soubor"
BEGIN
MENUITEM "&Nový...\tCtrl+N", ID_FILE_NEW
MENUITEM "&Otevřít...\tCtrl+O", ID_FILE_OPEN
MENUITEM "&Uložit\tCtrl+S", ID_FILE_SAVE
MENUITEM "Uložit j&ako...", ID_FILE_SAVEAS
MENUITEM SEPARATOR
MENUITEM "&Tisk...\tCtrl+P", ID_PRINT
MENUITEM "&Náhled tisku", ID_PREVIEW
MENUITEM "Nasta&vení stránky...", ID_PRINTSETUP
MENUITEM SEPARATOR
MENUITEM "U&končit", ID_FILE_EXIT
END
POPUP "&Upravit"
BEGIN
MENUITEM "&Zpět\tCtrl+Z", ID_EDIT_UNDO
MENUITEM "Z&novu\tCtrl+Y", ID_EDIT_REDO
MENUITEM SEPARATOR
MENUITEM "&Vyjmout\tCtrl+X", ID_EDIT_CUT
MENUITEM "&Kopírovat\tCtrl+C", ID_EDIT_COPY
MENUITEM "V&ložit\tCtrl+V", ID_EDIT_PASTE
MENUITEM "&Smazat\tDel", ID_EDIT_CLEAR
MENUITEM "V&ybrat vše\tCtrl+A", ID_EDIT_SELECTALL
MENUITEM SEPARATOR
MENUITEM "&Najít...\tCtrl+F", ID_FIND
MENUITEM "Najít &další\tF3", ID_FIND_NEXT
MENUITEM "Na&hradit...\tCtrl+H", ID_REPLACE
MENUITEM SEPARATOR
MENUITEM "&Jen pro čtení", ID_EDIT_READONLY
MENUITEM "Z&měněno", ID_EDIT_MODIFIED
MENUITEM SEPARATOR
POPUP "&Rozšířené"
BEGIN
MENUITEM "&Informace o výběru", ID_EDIT_SELECTIONINFO
MENUITEM "F&ormát znaků", ID_EDIT_CHARFORMAT
MENUITEM "Vý&chozí formát znaků", ID_EDIT_DEFCHARFORMAT
MENUITEM "Formát o&dstavce", ID_EDIT_PARAFORMAT
MENUITEM "Získat te&xt", ID_EDIT_GETTEXT
END
END
POPUP "&Zobrazit"
BEGIN
MENUITEM "&Panel nástrojů", ID_TOGGLE_TOOLBAR
MENUITEM "Panel &formátování", ID_TOGGLE_FORMATBAR
MENUITEM "P&ravítko", ID_TOGGLE_RULER
MENUITEM "&Stavový řádek", ID_TOGGLE_STATUSBAR
MENUITEM SEPARATOR
MENUITEM "&Možnosti...", ID_VIEWPROPERTIES
END
POPUP "&Vložit"
BEGIN
MENUITEM "&Datum a čas...", ID_DATETIME
END
POPUP "&Formát"
BEGIN
MENUITEM "&Písmo...", ID_FONTSETTINGS
MENUITEM "&Odrážky", ID_BULLET
MENUITEM "O&dstavec...", ID_PARAFORMAT
MENUITEM "&Tabulátor...", ID_TABSTOPS
POPUP "Po&zadí"
BEGIN
MENUITEM "&Systém\tCtrl+1", ID_BACK_1
MENUITEM "&Bledě žlutá\tCtrl+2", ID_BACK_2
END
END
POPUP "&Nápověda"
BEGIN
MENUITEM "&O programu Wine Wordpad", ID_ABOUT
END
END
IDM_POPUP MENU
BEGIN
POPUP ""
BEGIN
MENUITEM "&Vyjmout", ID_EDIT_CUT
MENUITEM "&Kopírovat", ID_EDIT_COPY
MENUITEM "V&ložit", ID_EDIT_PASTE
MENUITEM SEPARATOR
MENUITEM "&Odrážky", ID_BULLET
MENUITEM "&Odstavec...", ID_PARAFORMAT
END
END
IDM_COLOR_POPUP MENU
BEGIN
POPUP ""
BEGIN
MENUITEM "Černá", ID_COLOR_BLACK
MENUITEM "Vínová", ID_COLOR_MAROON
MENUITEM "Zelená", ID_COLOR_GREEN
MENUITEM "Olivová", ID_COLOR_OLIVE
MENUITEM "Námořní modř", ID_COLOR_NAVY
MENUITEM "Fialová", ID_COLOR_PURPLE
MENUITEM "Modrozelená", ID_COLOR_TEAL
MENUITEM "Šedá", ID_COLOR_GRAY
MENUITEM "Stříbrná", ID_COLOR_SILVER
MENUITEM "Červená", ID_COLOR_RED
MENUITEM "Limetková", ID_COLOR_LIME
MENUITEM "Žlutá", ID_COLOR_YELLOW
MENUITEM "Modrá", ID_COLOR_BLUE
MENUITEM "Fuchsie", ID_COLOR_FUCHSIA
MENUITEM "Voda", ID_COLOR_AQUA
MENUITEM "Bílá", ID_COLOR_WHITE
MENUITEM "Automaticky", ID_COLOR_AUTOMATIC
END
END
STRINGTABLE
BEGIN
STRING_ALL_FILES, "Všechny dokumenty (*.*)"
STRING_TEXT_FILES_TXT, "Textové dokumenty (*.txt)"
STRING_TEXT_FILES_UNICODE_TXT, "Textové dokumenty Unicode (*.txt)"
STRING_RICHTEXT_FILES_RTF, "Formát Rich text (*.rtf)"
STRING_NEWFILE_RICHTEXT, "Dokument Rich text"
STRING_NEWFILE_TXT, "Textový dokument"
STRING_NEWFILE_TXT_UNICODE, "Textový dokument Unicode"
STRING_PRINTER_FILES_PRN, "Soubor tisku (*.prn)"
END
STRINGTABLE
BEGIN
STRING_ALIGN_LEFT, "Vlevo"
STRING_ALIGN_RIGHT, "Vpravo"
STRING_ALIGN_CENTER, "Na střed"
END
STRINGTABLE
BEGIN
STRING_VIEWPROPS_TITLE, "Možnosti"
STRING_VIEWPROPS_TEXT, "Text"
STRING_VIEWPROPS_RICHTEXT, "Rich text"
END
STRINGTABLE
BEGIN
STRING_PREVIEW_PRINT, "Tisk"
STRING_PREVIEW_NEXTPAGE, "Další"
STRING_PREVIEW_PREVPAGE, "Předchozí"
STRING_PREVIEW_TWOPAGES, "Dvě strany"
STRING_PREVIEW_ONEPAGE, "Jedna strana"
STRING_PREVIEW_ZOOMIN, "Přiblížit"
STRING_PREVIEW_ZOOMOUT, "Oddálit"
STRING_PREVIEW_CLOSE, "Zavřít"
STRING_PREVIEW_PAGE, "Strana"
STRING_PREVIEW_PAGES, "Strany"
STRING_UNITS_CM, "cm"
STRING_UNITS_IN, "in"
STRING_UNITS_INCH, "palec"
STRING_UNITS_PT, "pt"
END
STRINGTABLE
BEGIN
STRING_DEFAULT_FILENAME, "Dokument"
STRING_PROMPT_SAVE_CHANGES, "Uložit změny do '%s'?"
STRING_SEARCH_FINISHED, "Prohledávání dokumentu dokončeno."
STRING_LOAD_RICHED_FAILED, "Knihovnu RichEdit se nepodařilo načíst."
STRING_SAVE_LOSEFORMATTING, "Vybrali jste uložení jako obyčejný text, veškeré formátovaní bude ztraceno. Přejete si pokračovat?"
STRING_INVALID_NUMBER, "Neplatný formát čísla."
STRING_OLE_STORAGE_NOT_SUPPORTED, "Dokumenty OLE storage nejsou podporovány."
STRING_WRITE_FAILED, "Soubor nebylo možné uložit."
STRING_WRITE_ACCESS_DENIED, "Nemáte přístup k ukládanému souboru."
STRING_OPEN_FAILED, "Soubor nebylo možné otevřít."
STRING_OPEN_ACCESS_DENIED, "Nemáte přistup k otevíranému souboru."
STRING_PRINTING_NOT_IMPLEMENTED, "Podpora tisku zatím chybí."
STRING_MAX_TAB_STOPS, "Není možné přidat více než 32 odražení."
END
IDD_DATETIME DIALOGEX 30, 20, 130, 80
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Datum a čas"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Dostupné formáty",-1,3,2,100,15
LISTBOX IDC_DATETIME,3,12,80,65,LBS_NOINTEGRALHEIGHT | LBS_NOTIFY
DEFPUSHBUTTON "OK",IDOK,87,12,40,12
PUSHBUTTON "Storno",IDCANCEL,87,26,40,12
END
IDD_NEWFILE DIALOGEX 30, 20, 140, 80
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Nový"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Typ nového dokumentu",-1,3,2,100,15
LISTBOX IDC_NEWFILE,3,12,90,65,LBS_NOINTEGRALHEIGHT
DEFPUSHBUTTON "OK",IDOK,97,12,40,12
PUSHBUTTON "Storno",IDCANCEL,97,26,40,12
END
IDD_PARAFORMAT DIALOGEX 30, 20, 220, 110
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Formát odstavce"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Okraje", -1, 10, 10, 140, 68
LTEXT "Vlevo", -1, 15, 22, 60, 13
EDITTEXT IDC_PARA_LEFT, 75, 20, 65, 13
LTEXT "Vpravo", -1, 15, 40, 60, 13
EDITTEXT IDC_PARA_RIGHT, 75, 38, 65, 13
LTEXT "První řádek", -1, 15, 58, 60, 13
EDITTEXT IDC_PARA_FIRST, 75, 56, 65, 13
LTEXT "Zarovnání", -1, 15, 87, 60, 13
COMBOBOX IDC_PARA_ALIGN, 75, 85, 65, 60, CBS_DROPDOWNLIST
DEFPUSHBUTTON "OK", IDOK, 160, 15, 50, 15
PUSHBUTTON "Storno", IDCANCEL, 160, 33, 50, 15
END
IDD_TABSTOPS DIALOGEX 30, 20, 200, 110
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Odražení"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Odražení", -1, 10, 10, 120, 90
COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE
DEFPUSHBUTTON "&Přidat", ID_TAB_ADD, 20, 80, 45, 15
PUSHBUTTON "&Odebrat", ID_TAB_DEL, 72, 80, 45, 15
PUSHBUTTON "OK", IDOK, 135, 15, 58, 15
PUSHBUTTON "Storno", IDCANCEL, 135, 33, 58, 15
PUSHBUTTON "Odebrat &vše", ID_TAB_EMPTY, 135, 51, 58, 15
END
IDD_FORMATOPTS DIALOGEX 0, 0, 280, 110
STYLE DS_SHELLFONT | DS_SYSMODAL
CAPTION ""
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Zalamování řádků", -1, 5, 10, 145, 85
RADIOBUTTON "&Nezalamovat", IDC_PAGEFMT_WN, 10, 25, 138, 15
RADIOBUTTON "Zalamovat podle &okna", IDC_PAGEFMT_WW, 10, 45, 138, 15
RADIOBUTTON "Zalamovat podle o&kraje", IDC_PAGEFMT_WM, 10, 65, 138, 15
GROUPBOX "Lišty nástroju", -1, 155, 10, 115, 85
CHECKBOX "&Lišta nástrojů", IDC_PAGEFMT_TB, 165, 20, 80, 15
CHECKBOX "Lišta &formátování", IDC_PAGEFMT_FB, 165, 38, 80, 15
CHECKBOX "&Pravítko", IDC_PAGEFMT_RU, 165, 56, 80, 15
CHECKBOX "&Stavový řádek", IDC_PAGEFMT_SB, 165, 74, 80, 15
LTEXT "", IDC_PAGEFMT_ID, 0,0,0,0
END

View File

@@ -82,7 +82,7 @@ BEGIN
POPUP "Backgroun&d"
BEGIN
MENUITEM "&System\tCtrl+1", ID_BACK_1
MENUITEM "&Pale yellow\tCtrl+2", ID_BACK_2
MENUITEM "&Pale yellow\tCtrl+2", ID_BACK_2
END
END
POPUP "&Help"

View File

@@ -70,11 +70,6 @@ IDC_ZOOM CURSOR "res/zoom.cur"
#include <reactos/manifest_exe.rc>
/* UTF-8 */
#pragma code_page(65001)
#ifdef LANGUAGE_CS_CZ
#include "lang/cs-CZ.rc"
#endif
#ifdef LANGUAGE_DA_DK
#include "lang/da-DK.rc"
#endif

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