mirror of
https://github.com/reactos/reactos
synced 2025-10-08 09:22:51 +02:00
Compare commits
17 Commits
ReactOS-0.
...
ReactOS-0.
Author | SHA1 | Date | |
---|---|---|---|
|
7d7a459001 | ||
|
2c1648e5f9 | ||
|
9b9a5609dd | ||
|
85c2c6dd94 | ||
|
6bb13bc0d3 | ||
|
2a3428d7d1 | ||
|
128f19486c | ||
|
0118cfff6b | ||
|
434e256e43 | ||
|
9eef31a413 | ||
|
dd1295246d | ||
|
9ea9b7db36 | ||
|
8b8de8b853 | ||
|
45d79c2a20 | ||
|
c0f99c646f | ||
|
95aa925ed9 | ||
|
09dc089cfe |
@@ -28,6 +28,7 @@ add_subdirectory(network)
|
||||
add_subdirectory(notepad)
|
||||
add_subdirectory(osk)
|
||||
add_subdirectory(rapps)
|
||||
add_subdirectory(rapps_new)
|
||||
add_subdirectory(regedit)
|
||||
add_subdirectory(regedt32)
|
||||
add_subdirectory(sc)
|
||||
|
@@ -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;
|
||||
|
@@ -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
|
||||
|
@@ -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
|
@@ -1,4 +1,3 @@
|
||||
add_subdirectory(at)
|
||||
add_subdirectory(clip)
|
||||
add_subdirectory(comp)
|
||||
add_subdirectory(cscript)
|
||||
@@ -10,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)
|
||||
|
@@ -1,8 +0,0 @@
|
||||
|
||||
include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/conutils)
|
||||
|
||||
add_executable(at at.c at.rc)
|
||||
set_module_type(at win32cui UNICODE)
|
||||
target_link_libraries(at conutils ${PSEH_LIB})
|
||||
add_importlibs(at msvcrt kernel32 user32 netapi32)
|
||||
add_cd_file(TARGET at DESTINATION reactos/system32 FOR all)
|
@@ -1,936 +0,0 @@
|
||||
/*
|
||||
* PROJECT: ReactOS AT utility
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* FILE: base/applications/cmdutils/at/at.c
|
||||
* PURPOSE: ReactOS AT utility
|
||||
* PROGRAMMERS: Eric Kohl <eric.kohl@reactos.org>
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <windef.h>
|
||||
#include <winbase.h>
|
||||
#include <winuser.h>
|
||||
#include <wincon.h>
|
||||
#include <winnls.h>
|
||||
#include <lm.h>
|
||||
|
||||
#include <conutils.h>
|
||||
|
||||
#include "resource.h"
|
||||
|
||||
|
||||
PWSTR pszDaysOfWeekArray[7] = {NULL, NULL, NULL, NULL, NULL, NULL, NULL};
|
||||
|
||||
|
||||
static
|
||||
VOID
|
||||
FreeDaysOfWeekArray(VOID)
|
||||
{
|
||||
INT i;
|
||||
|
||||
for (i = 0; i < 7; i++)
|
||||
{
|
||||
if (pszDaysOfWeekArray[i] != NULL)
|
||||
HeapFree(GetProcessHeap(), 0, pszDaysOfWeekArray[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
BOOL
|
||||
InitDaysOfWeekArray(VOID)
|
||||
{
|
||||
INT i, nLength;
|
||||
|
||||
for (i = 0; i < 7; i++)
|
||||
{
|
||||
nLength = GetLocaleInfo(LOCALE_USER_DEFAULT,
|
||||
LOCALE_SABBREVDAYNAME1 + i,
|
||||
NULL,
|
||||
0);
|
||||
|
||||
pszDaysOfWeekArray[i] = HeapAlloc(GetProcessHeap(),
|
||||
HEAP_ZERO_MEMORY,
|
||||
nLength * sizeof(WCHAR));
|
||||
if (pszDaysOfWeekArray[i] == NULL)
|
||||
{
|
||||
FreeDaysOfWeekArray();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
GetLocaleInfo(LOCALE_USER_DEFAULT,
|
||||
LOCALE_SABBREVDAYNAME1 + i,
|
||||
pszDaysOfWeekArray[i],
|
||||
nLength);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
BOOL
|
||||
ParseTime(
|
||||
PWSTR pszTime,
|
||||
PULONG pulJobHour,
|
||||
PULONG pulJobMinute)
|
||||
{
|
||||
WCHAR szHour[3], szMinute[3], szAmPm[5];
|
||||
PWSTR startPtr, endPtr;
|
||||
ULONG ulHour = 0, ulMinute = 0;
|
||||
INT nLength;
|
||||
|
||||
if (pszTime == NULL)
|
||||
return FALSE;
|
||||
|
||||
startPtr = pszTime;
|
||||
|
||||
/* Extract the hour string */
|
||||
nLength = 0;
|
||||
while (*startPtr != L'\0' && iswdigit(*startPtr))
|
||||
{
|
||||
if (nLength >= 2)
|
||||
return FALSE;
|
||||
|
||||
szHour[nLength] = *startPtr;
|
||||
nLength++;
|
||||
|
||||
startPtr++;
|
||||
}
|
||||
szHour[nLength] = L'\0';
|
||||
|
||||
/* Check for a valid time separator */
|
||||
if (*startPtr != L':')
|
||||
return FALSE;
|
||||
|
||||
/* Skip the time separator */
|
||||
startPtr++;
|
||||
|
||||
/* Extract the minute string */
|
||||
nLength = 0;
|
||||
while (*startPtr != L'\0' && iswdigit(*startPtr))
|
||||
{
|
||||
if (nLength >= 2)
|
||||
return FALSE;
|
||||
|
||||
szMinute[nLength] = *startPtr;
|
||||
nLength++;
|
||||
|
||||
startPtr++;
|
||||
}
|
||||
szMinute[nLength] = L'\0';
|
||||
|
||||
/* Extract the optional AM/PM indicator string */
|
||||
nLength = 0;
|
||||
while (*startPtr != L'\0')
|
||||
{
|
||||
if (nLength >= 4)
|
||||
return FALSE;
|
||||
|
||||
if (!iswspace(*startPtr))
|
||||
{
|
||||
szAmPm[nLength] = *startPtr;
|
||||
nLength++;
|
||||
}
|
||||
|
||||
startPtr++;
|
||||
}
|
||||
szAmPm[nLength] = L'\0';
|
||||
|
||||
/* Convert the hour string */
|
||||
ulHour = wcstoul(szHour, &endPtr, 10);
|
||||
if (ulHour == 0 && *endPtr != UNICODE_NULL)
|
||||
return FALSE;
|
||||
|
||||
/* Convert the minute string */
|
||||
ulMinute = wcstoul(szMinute, &endPtr, 10);
|
||||
if (ulMinute == 0 && *endPtr != UNICODE_NULL)
|
||||
return FALSE;
|
||||
|
||||
/* Check for valid AM/PM indicator */
|
||||
if (wcslen(szAmPm) > 0 &&
|
||||
_wcsicmp(szAmPm, L"a") != 0 &&
|
||||
_wcsicmp(szAmPm, L"am") != 0 &&
|
||||
_wcsicmp(szAmPm, L"p") != 0 &&
|
||||
_wcsicmp(szAmPm, L"pm") != 0)
|
||||
return FALSE;
|
||||
|
||||
/* Check for the valid minute range [0-59] */
|
||||
if (ulMinute > 59)
|
||||
return FALSE;
|
||||
|
||||
if (wcslen(szAmPm) > 0)
|
||||
{
|
||||
/* 12 hour time format */
|
||||
|
||||
/* Check for the valid hour range [1-12] */
|
||||
if (ulHour == 0 || ulHour > 12)
|
||||
return FALSE;
|
||||
|
||||
/* Convert 12 hour format to 24 hour format */
|
||||
if (_wcsicmp(szAmPm, L"a") == 0 ||
|
||||
_wcsicmp(szAmPm, L"am") == 0)
|
||||
{
|
||||
if (ulHour == 12)
|
||||
ulHour = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ulHour >= 1 && ulHour <= 11)
|
||||
ulHour += 12;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* 24 hour time format */
|
||||
|
||||
/* Check for the valid hour range [0-23] */
|
||||
if (ulHour > 23)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (pulJobHour != NULL)
|
||||
*pulJobHour = ulHour;
|
||||
|
||||
if (pulJobMinute != NULL)
|
||||
*pulJobMinute = ulMinute;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
BOOL
|
||||
ParseId(
|
||||
PWSTR pszId,
|
||||
PULONG pulId)
|
||||
{
|
||||
PWSTR startPtr, endPtr;
|
||||
ULONG ulId = 0;
|
||||
BOOL bResult = FALSE;
|
||||
|
||||
startPtr = pszId;
|
||||
endPtr = NULL;
|
||||
ulId = wcstoul(startPtr, &endPtr, 10);
|
||||
if (endPtr != NULL && *endPtr == UNICODE_NULL)
|
||||
{
|
||||
bResult = TRUE;
|
||||
|
||||
if (pulId != NULL)
|
||||
*pulId = ulId;
|
||||
}
|
||||
|
||||
return bResult;
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
BOOL
|
||||
ParseDaysOfMonth(
|
||||
PWSTR pszBuffer,
|
||||
PULONG pulDaysOfMonth)
|
||||
{
|
||||
PWSTR startPtr, endPtr;
|
||||
ULONG ulValue;
|
||||
|
||||
if (wcslen(pszBuffer) == 0)
|
||||
return FALSE;
|
||||
|
||||
startPtr = pszBuffer;
|
||||
endPtr = NULL;
|
||||
for (;;)
|
||||
{
|
||||
ulValue = wcstoul(startPtr, &endPtr, 10);
|
||||
if (ulValue == 0)
|
||||
return FALSE;
|
||||
|
||||
if (ulValue > 0 && ulValue <= 31)
|
||||
*pulDaysOfMonth |= (1 << (ulValue - 1));
|
||||
|
||||
if (endPtr != NULL && *endPtr == UNICODE_NULL)
|
||||
return TRUE;
|
||||
|
||||
startPtr = endPtr + 1;
|
||||
endPtr = NULL;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
BOOL
|
||||
ParseDaysOfWeek(
|
||||
PWSTR pszBuffer,
|
||||
PUCHAR pucDaysOfWeek)
|
||||
{
|
||||
PWSTR startPtr, endPtr;
|
||||
INT nLength, i;
|
||||
|
||||
if (wcslen(pszBuffer) == 0)
|
||||
return FALSE;
|
||||
|
||||
startPtr = pszBuffer;
|
||||
endPtr = NULL;
|
||||
for (;;)
|
||||
{
|
||||
endPtr = wcschr(startPtr, L',');
|
||||
if (endPtr == NULL)
|
||||
nLength = wcslen(startPtr);
|
||||
else
|
||||
nLength = (INT)((ULONG_PTR)endPtr - (ULONG_PTR)startPtr) / sizeof(WCHAR);
|
||||
|
||||
for (i = 0; i < 7; i++)
|
||||
{
|
||||
if (nLength == wcslen(pszDaysOfWeekArray[i]) &&
|
||||
_wcsnicmp(startPtr, pszDaysOfWeekArray[i], nLength) == 0)
|
||||
{
|
||||
*pucDaysOfWeek |= (1 << i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (endPtr == NULL)
|
||||
return TRUE;
|
||||
|
||||
startPtr = endPtr + 1;
|
||||
endPtr = NULL;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
VOID
|
||||
PrintErrorMessage(
|
||||
DWORD dwError)
|
||||
{
|
||||
PWSTR pszBuffer = NULL;
|
||||
|
||||
FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
|
||||
NULL,
|
||||
dwError,
|
||||
0,
|
||||
(PWSTR)&pszBuffer,
|
||||
0,
|
||||
NULL);
|
||||
|
||||
ConPrintf(StdErr, L"%s\n", pszBuffer);
|
||||
LocalFree(pszBuffer);
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
VOID
|
||||
PrintHorizontalLine(VOID)
|
||||
{
|
||||
WCHAR szBuffer[80];
|
||||
INT i;
|
||||
|
||||
for (i = 0; i < 79; i++)
|
||||
szBuffer[i] = L'-';
|
||||
szBuffer[79] = UNICODE_NULL;
|
||||
|
||||
ConPrintf(StdOut, L"%s\n", szBuffer);
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
BOOL
|
||||
Confirm(VOID)
|
||||
{
|
||||
HINSTANCE hInstance;
|
||||
WCHAR szYesBuffer[8];
|
||||
WCHAR szNoBuffer[8];
|
||||
WCHAR szInput[80];
|
||||
DWORD dwOldMode;
|
||||
DWORD dwRead = 0;
|
||||
BOOL ret = FALSE;
|
||||
HANDLE hFile;
|
||||
|
||||
hInstance = GetModuleHandleW(NULL);
|
||||
LoadStringW(hInstance, IDS_CONFIRM_YES, szYesBuffer, _countof(szYesBuffer));
|
||||
LoadStringW(hInstance, IDS_CONFIRM_NO, szNoBuffer, _countof(szNoBuffer));
|
||||
|
||||
ZeroMemory(szInput, sizeof(szInput));
|
||||
|
||||
hFile = GetStdHandle(STD_INPUT_HANDLE);
|
||||
GetConsoleMode(hFile, &dwOldMode);
|
||||
|
||||
SetConsoleMode(hFile, ENABLE_LINE_INPUT | ENABLE_ECHO_INPUT);
|
||||
|
||||
for (;;)
|
||||
{
|
||||
ConResPrintf(StdOut, IDS_CONFIRM_QUESTION);
|
||||
|
||||
ReadConsoleW(hFile, szInput, _countof(szInput), &dwRead, NULL);
|
||||
|
||||
szInput[0] = towupper(szInput[0]);
|
||||
if (szInput[0] == szYesBuffer[0])
|
||||
{
|
||||
ret = TRUE;
|
||||
break;
|
||||
}
|
||||
else if (szInput[0] == 13 || szInput[0] == szNoBuffer[0])
|
||||
{
|
||||
ret = FALSE;
|
||||
break;
|
||||
}
|
||||
|
||||
ConResPrintf(StdOut, IDS_CONFIRM_INVALID);
|
||||
}
|
||||
|
||||
SetConsoleMode(hFile, dwOldMode);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
DWORD_PTR
|
||||
GetTimeAsJobTime(VOID)
|
||||
{
|
||||
SYSTEMTIME Time;
|
||||
DWORD_PTR JobTime;
|
||||
|
||||
GetLocalTime(&Time);
|
||||
|
||||
JobTime = (DWORD_PTR)Time.wHour * 3600000 +
|
||||
(DWORD_PTR)Time.wMinute * 60000;
|
||||
|
||||
return JobTime;
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
ULONG
|
||||
GetCurrentDayOfMonth(VOID)
|
||||
{
|
||||
SYSTEMTIME Time;
|
||||
|
||||
GetLocalTime(&Time);
|
||||
|
||||
return 1UL << (Time.wDay - 1);
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
VOID
|
||||
JobTimeToTimeString(
|
||||
PWSTR pszBuffer,
|
||||
INT cchBuffer,
|
||||
WORD wHour,
|
||||
WORD wMinute)
|
||||
{
|
||||
SYSTEMTIME Time = {0, 0, 0, 0, 0, 0, 0, 0};
|
||||
|
||||
Time.wHour = wHour;
|
||||
Time.wMinute = wMinute;
|
||||
|
||||
GetTimeFormat(LOCALE_USER_DEFAULT,
|
||||
TIME_NOSECONDS,
|
||||
&Time,
|
||||
NULL,
|
||||
pszBuffer,
|
||||
cchBuffer);
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
INT
|
||||
PrintJobDetails(
|
||||
PWSTR pszComputerName,
|
||||
ULONG ulJobId)
|
||||
{
|
||||
PAT_INFO pBuffer = NULL;
|
||||
DWORD_PTR CurrentTime;
|
||||
WCHAR szStatusBuffer[16];
|
||||
WCHAR szScheduleBuffer[60];
|
||||
WCHAR szTimeBuffer[16];
|
||||
WCHAR szInteractiveBuffer[16];
|
||||
WCHAR szDateBuffer[8];
|
||||
INT i, nDateLength, nScheduleLength;
|
||||
HINSTANCE hInstance;
|
||||
NET_API_STATUS Status;
|
||||
|
||||
Status = NetScheduleJobGetInfo(pszComputerName,
|
||||
ulJobId,
|
||||
(PBYTE *)&pBuffer);
|
||||
if (Status != NERR_Success)
|
||||
{
|
||||
PrintErrorMessage(Status);
|
||||
return 1;
|
||||
}
|
||||
|
||||
hInstance = GetModuleHandle(NULL);
|
||||
|
||||
if (pBuffer->Flags & JOB_EXEC_ERROR)
|
||||
LoadStringW(hInstance, IDS_ERROR, szStatusBuffer, _countof(szStatusBuffer));
|
||||
else
|
||||
LoadStringW(hInstance, IDS_OK, szStatusBuffer, _countof(szStatusBuffer));
|
||||
|
||||
if (pBuffer->DaysOfMonth != 0)
|
||||
{
|
||||
if (pBuffer->Flags & JOB_RUN_PERIODICALLY)
|
||||
LoadStringW(hInstance, IDS_EVERY, szScheduleBuffer, _countof(szScheduleBuffer));
|
||||
else
|
||||
LoadStringW(hInstance, IDS_NEXT, szScheduleBuffer, _countof(szScheduleBuffer));
|
||||
|
||||
nScheduleLength = wcslen(szScheduleBuffer);
|
||||
for (i = 0; i < 31; i++)
|
||||
{
|
||||
if (pBuffer->DaysOfMonth & (1 << i))
|
||||
{
|
||||
swprintf(szDateBuffer, L" %d", i + 1);
|
||||
nDateLength = wcslen(szDateBuffer);
|
||||
if (nScheduleLength + nDateLength <= 55)
|
||||
{
|
||||
wcscat(szScheduleBuffer, szDateBuffer);
|
||||
nScheduleLength += nDateLength;
|
||||
}
|
||||
else
|
||||
{
|
||||
wcscat(szScheduleBuffer, L"...");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (pBuffer->DaysOfWeek != 0)
|
||||
{
|
||||
if (pBuffer->Flags & JOB_RUN_PERIODICALLY)
|
||||
LoadStringW(hInstance, IDS_EVERY, szScheduleBuffer, _countof(szScheduleBuffer));
|
||||
else
|
||||
LoadStringW(hInstance, IDS_NEXT, szScheduleBuffer, _countof(szScheduleBuffer));
|
||||
|
||||
nScheduleLength = wcslen(szScheduleBuffer);
|
||||
for (i = 0; i < 7; i++)
|
||||
{
|
||||
if (pBuffer->DaysOfWeek & (1 << i))
|
||||
{
|
||||
swprintf(szDateBuffer, L" %s", pszDaysOfWeekArray[i]);
|
||||
nDateLength = wcslen(szDateBuffer);
|
||||
if (nScheduleLength + nDateLength <= 55)
|
||||
{
|
||||
wcscat(szScheduleBuffer, szDateBuffer);
|
||||
nScheduleLength += nDateLength;
|
||||
}
|
||||
else
|
||||
{
|
||||
wcscat(szScheduleBuffer, L"...");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
CurrentTime = GetTimeAsJobTime();
|
||||
if (CurrentTime > pBuffer->JobTime)
|
||||
LoadStringW(hInstance, IDS_TOMORROW, szScheduleBuffer, _countof(szScheduleBuffer));
|
||||
else
|
||||
LoadStringW(hInstance, IDS_TODAY, szScheduleBuffer, _countof(szScheduleBuffer));
|
||||
}
|
||||
|
||||
JobTimeToTimeString(szTimeBuffer,
|
||||
_countof(szTimeBuffer),
|
||||
(WORD)(pBuffer->JobTime / 3600000),
|
||||
(WORD)((pBuffer->JobTime % 3600000) / 60000));
|
||||
|
||||
if (pBuffer->Flags & JOB_NONINTERACTIVE)
|
||||
LoadStringW(hInstance, IDS_NO, szInteractiveBuffer, _countof(szInteractiveBuffer));
|
||||
else
|
||||
LoadStringW(hInstance, IDS_YES, szInteractiveBuffer, _countof(szInteractiveBuffer));
|
||||
|
||||
ConResPrintf(StdOut, IDS_TASKID, ulJobId);
|
||||
ConResPrintf(StdOut, IDS_STATUS, szStatusBuffer);
|
||||
ConResPrintf(StdOut, IDS_SCHEDULE, szScheduleBuffer);
|
||||
ConResPrintf(StdOut, IDS_TIME, szTimeBuffer);
|
||||
ConResPrintf(StdOut, IDS_INTERACTIVE, szInteractiveBuffer);
|
||||
ConResPrintf(StdOut, IDS_COMMAND, pBuffer->Command);
|
||||
|
||||
NetApiBufferFree(pBuffer);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
INT
|
||||
PrintAllJobs(
|
||||
PWSTR pszComputerName)
|
||||
{
|
||||
PAT_ENUM pBuffer = NULL;
|
||||
DWORD dwRead = 0, dwTotal = 0;
|
||||
DWORD dwResume = 0, i;
|
||||
DWORD_PTR CurrentTime;
|
||||
NET_API_STATUS Status;
|
||||
|
||||
WCHAR szScheduleBuffer[32];
|
||||
WCHAR szTimeBuffer[16];
|
||||
WCHAR szDateBuffer[8];
|
||||
HINSTANCE hInstance;
|
||||
INT j, nDateLength, nScheduleLength;
|
||||
|
||||
Status = NetScheduleJobEnum(pszComputerName,
|
||||
(PBYTE *)&pBuffer,
|
||||
MAX_PREFERRED_LENGTH,
|
||||
&dwRead,
|
||||
&dwTotal,
|
||||
&dwResume);
|
||||
if (Status != NERR_Success)
|
||||
{
|
||||
PrintErrorMessage(Status);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (dwTotal == 0)
|
||||
{
|
||||
ConResPrintf(StdOut, IDS_NO_ENTRIES);
|
||||
return 0;
|
||||
}
|
||||
|
||||
ConResPrintf(StdOut, IDS_JOBS_LIST);
|
||||
PrintHorizontalLine();
|
||||
|
||||
hInstance = GetModuleHandle(NULL);
|
||||
|
||||
for (i = 0; i < dwRead; i++)
|
||||
{
|
||||
if (pBuffer[i].DaysOfMonth != 0)
|
||||
{
|
||||
if (pBuffer[i].Flags & JOB_RUN_PERIODICALLY)
|
||||
LoadStringW(hInstance, IDS_EVERY, szScheduleBuffer, _countof(szScheduleBuffer));
|
||||
else
|
||||
LoadStringW(hInstance, IDS_NEXT, szScheduleBuffer, _countof(szScheduleBuffer));
|
||||
|
||||
nScheduleLength = wcslen(szScheduleBuffer);
|
||||
for (j = 0; j < 31; j++)
|
||||
{
|
||||
if (pBuffer[i].DaysOfMonth & (1 << j))
|
||||
{
|
||||
swprintf(szDateBuffer, L" %d", j + 1);
|
||||
nDateLength = wcslen(szDateBuffer);
|
||||
if (nScheduleLength + nDateLength <= 19)
|
||||
{
|
||||
wcscat(szScheduleBuffer, szDateBuffer);
|
||||
nScheduleLength += nDateLength;
|
||||
}
|
||||
else
|
||||
{
|
||||
wcscat(szScheduleBuffer, L"...");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (pBuffer[i].DaysOfWeek != 0)
|
||||
{
|
||||
if (pBuffer[i].Flags & JOB_RUN_PERIODICALLY)
|
||||
LoadStringW(hInstance, IDS_EVERY, szScheduleBuffer, _countof(szScheduleBuffer));
|
||||
else
|
||||
LoadStringW(hInstance, IDS_NEXT, szScheduleBuffer, _countof(szScheduleBuffer));
|
||||
|
||||
nScheduleLength = wcslen(szScheduleBuffer);
|
||||
for (j = 0; j < 7; j++)
|
||||
{
|
||||
if (pBuffer[i].DaysOfWeek & (1 << j))
|
||||
{
|
||||
swprintf(szDateBuffer, L" %s", pszDaysOfWeekArray[j]);
|
||||
nDateLength = wcslen(szDateBuffer);
|
||||
if (nScheduleLength + nDateLength <= 55)
|
||||
{
|
||||
wcscat(szScheduleBuffer, szDateBuffer);
|
||||
nScheduleLength += nDateLength;
|
||||
}
|
||||
else
|
||||
{
|
||||
wcscat(szScheduleBuffer, L"...");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
CurrentTime = GetTimeAsJobTime();
|
||||
if (CurrentTime > pBuffer[i].JobTime)
|
||||
LoadStringW(hInstance, IDS_TOMORROW, szScheduleBuffer, _countof(szScheduleBuffer));
|
||||
else
|
||||
LoadStringW(hInstance, IDS_TODAY, szScheduleBuffer, _countof(szScheduleBuffer));
|
||||
}
|
||||
|
||||
JobTimeToTimeString(szTimeBuffer,
|
||||
_countof(szTimeBuffer),
|
||||
(WORD)(pBuffer[i].JobTime / 3600000),
|
||||
(WORD)((pBuffer[i].JobTime % 3600000) / 60000));
|
||||
|
||||
ConPrintf(StdOut,
|
||||
L" %6lu %-21s %-11s %s\n",
|
||||
pBuffer[i].JobId,
|
||||
szScheduleBuffer,
|
||||
szTimeBuffer,
|
||||
pBuffer[i].Command);
|
||||
}
|
||||
|
||||
NetApiBufferFree(pBuffer);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
INT
|
||||
AddJob(
|
||||
PWSTR pszComputerName,
|
||||
ULONG ulJobHour,
|
||||
ULONG ulJobMinute,
|
||||
ULONG ulDaysOfMonth,
|
||||
UCHAR ucDaysOfWeek,
|
||||
BOOL bInteractiveJob,
|
||||
BOOL bPeriodicJob,
|
||||
PWSTR pszCommand)
|
||||
{
|
||||
AT_INFO InfoBuffer;
|
||||
ULONG ulJobId = 0;
|
||||
NET_API_STATUS Status;
|
||||
|
||||
InfoBuffer.JobTime = (DWORD_PTR)ulJobHour * 3600000 +
|
||||
(DWORD_PTR)ulJobMinute * 60000;
|
||||
InfoBuffer.DaysOfMonth = ulDaysOfMonth;
|
||||
InfoBuffer.DaysOfWeek = ucDaysOfWeek;
|
||||
InfoBuffer.Flags = (bInteractiveJob ? 0 : JOB_NONINTERACTIVE) |
|
||||
(bPeriodicJob ? JOB_RUN_PERIODICALLY : 0);
|
||||
InfoBuffer.Command = pszCommand;
|
||||
|
||||
Status = NetScheduleJobAdd(pszComputerName,
|
||||
(PBYTE)&InfoBuffer,
|
||||
&ulJobId);
|
||||
if (Status != NERR_Success)
|
||||
{
|
||||
PrintErrorMessage(Status);
|
||||
return 1;
|
||||
}
|
||||
|
||||
ConResPrintf(StdOut, IDS_NEW_JOB, ulJobId);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
INT
|
||||
DeleteJob(
|
||||
PWSTR pszComputerName,
|
||||
ULONG ulJobId,
|
||||
BOOL bForceDelete)
|
||||
{
|
||||
NET_API_STATUS Status;
|
||||
|
||||
if (ulJobId == (ULONG)-1 && bForceDelete == FALSE)
|
||||
{
|
||||
ConResPrintf(StdOut, IDS_DELETE_ALL);
|
||||
if (!Confirm())
|
||||
return 0;
|
||||
}
|
||||
|
||||
Status = NetScheduleJobDel(pszComputerName,
|
||||
(ulJobId == (ULONG)-1) ? 0 : ulJobId,
|
||||
(ulJobId == (ULONG)-1) ? -1 : ulJobId);
|
||||
if (Status != NERR_Success)
|
||||
{
|
||||
PrintErrorMessage(Status);
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int wmain(int argc, WCHAR **argv)
|
||||
{
|
||||
PWSTR pszComputerName = NULL;
|
||||
PWSTR pszCommand = NULL;
|
||||
ULONG ulJobId = (ULONG)-1;
|
||||
ULONG ulJobHour = (ULONG)-1;
|
||||
ULONG ulJobMinute = (ULONG)-1;
|
||||
BOOL bDeleteJob = FALSE, bForceDelete = FALSE;
|
||||
BOOL bInteractiveJob = FALSE, bPeriodicJob = FALSE;
|
||||
BOOL bPrintUsage = FALSE;
|
||||
ULONG ulDaysOfMonth = 0;
|
||||
UCHAR ucDaysOfWeek = 0;
|
||||
INT nResult = 0;
|
||||
INT i, minIdx;
|
||||
|
||||
/* Initialize the Console Standard Streams */
|
||||
ConInitStdStreams();
|
||||
|
||||
if (!InitDaysOfWeekArray())
|
||||
return 1;
|
||||
|
||||
/* Parse the computer name */
|
||||
i = 1;
|
||||
minIdx = 1;
|
||||
if (i < argc &&
|
||||
argv[i][0] == L'\\' &&
|
||||
argv[i][1] == L'\\')
|
||||
{
|
||||
pszComputerName = argv[i];
|
||||
i++;
|
||||
minIdx++;
|
||||
}
|
||||
|
||||
/* Parse the time or job id */
|
||||
if (i < argc && argv[i][0] != L'/')
|
||||
{
|
||||
if (ParseTime(argv[i], &ulJobHour, &ulJobMinute))
|
||||
{
|
||||
i++;
|
||||
minIdx++;
|
||||
}
|
||||
else if (ParseId(argv[i], &ulJobId))
|
||||
{
|
||||
i++;
|
||||
minIdx++;
|
||||
}
|
||||
}
|
||||
|
||||
/* Parse the options */
|
||||
for (; i < argc; i++)
|
||||
{
|
||||
if (argv[i][0] == L'/')
|
||||
{
|
||||
if (_wcsicmp(argv[i], L"/?") == 0)
|
||||
{
|
||||
bPrintUsage = TRUE;
|
||||
goto done;
|
||||
}
|
||||
else if (_wcsicmp(argv[i], L"/delete") == 0)
|
||||
{
|
||||
bDeleteJob = TRUE;
|
||||
}
|
||||
else if (_wcsicmp(argv[i], L"/yes") == 0)
|
||||
{
|
||||
bForceDelete = TRUE;
|
||||
}
|
||||
else if (_wcsicmp(argv[i], L"/interactive") == 0)
|
||||
{
|
||||
bInteractiveJob = TRUE;
|
||||
}
|
||||
else if (_wcsnicmp(argv[i], L"/every:", 7) == 0)
|
||||
{
|
||||
bPeriodicJob = TRUE;
|
||||
if (ParseDaysOfMonth(&(argv[i][7]), &ulDaysOfMonth) == FALSE)
|
||||
{
|
||||
if (ParseDaysOfWeek(&(argv[i][7]), &ucDaysOfWeek) == FALSE)
|
||||
{
|
||||
ulDaysOfMonth = GetCurrentDayOfMonth();
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (_wcsnicmp(argv[i], L"/next:", 6) == 0)
|
||||
{
|
||||
bPeriodicJob = FALSE;
|
||||
if (ParseDaysOfMonth(&(argv[i][6]), &ulDaysOfMonth) == FALSE)
|
||||
{
|
||||
if (ParseDaysOfWeek(&(argv[i][6]), &ucDaysOfWeek) == FALSE)
|
||||
{
|
||||
ulDaysOfMonth = GetCurrentDayOfMonth();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
bPrintUsage = TRUE;
|
||||
nResult = 1;
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Parse the command */
|
||||
if (argc > minIdx && argv[argc - 1][0] != L'/')
|
||||
{
|
||||
pszCommand = argv[argc - 1];
|
||||
}
|
||||
|
||||
if (bDeleteJob == TRUE)
|
||||
{
|
||||
/* Check for invalid options or arguments */
|
||||
if (bInteractiveJob == TRUE ||
|
||||
ulJobHour != (ULONG)-1 ||
|
||||
ulJobMinute != (ULONG)-1 ||
|
||||
ulDaysOfMonth != 0 ||
|
||||
ucDaysOfWeek != 0 ||
|
||||
pszCommand != NULL)
|
||||
{
|
||||
bPrintUsage = TRUE;
|
||||
nResult = 1;
|
||||
goto done;
|
||||
}
|
||||
|
||||
nResult = DeleteJob(pszComputerName,
|
||||
ulJobId,
|
||||
bForceDelete);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ulJobHour != (ULONG)-1 && ulJobMinute != (ULONG)-1)
|
||||
{
|
||||
/* Check for invalid options or arguments */
|
||||
if (bForceDelete == TRUE ||
|
||||
pszCommand == NULL)
|
||||
{
|
||||
bPrintUsage = TRUE;
|
||||
nResult = 1;
|
||||
goto done;
|
||||
}
|
||||
|
||||
nResult = AddJob(pszComputerName,
|
||||
ulJobHour,
|
||||
ulJobMinute,
|
||||
ulDaysOfMonth,
|
||||
ucDaysOfWeek,
|
||||
bInteractiveJob,
|
||||
bPeriodicJob,
|
||||
pszCommand);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Check for invalid options or arguments */
|
||||
if (bForceDelete == TRUE ||
|
||||
bInteractiveJob == TRUE ||
|
||||
ulDaysOfMonth != 0 ||
|
||||
ucDaysOfWeek != 0 ||
|
||||
pszCommand != NULL)
|
||||
{
|
||||
bPrintUsage = TRUE;
|
||||
nResult = 1;
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (ulJobId == (ULONG)-1)
|
||||
{
|
||||
nResult = PrintAllJobs(pszComputerName);
|
||||
}
|
||||
else
|
||||
{
|
||||
nResult = PrintJobDetails(pszComputerName,
|
||||
ulJobId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
done:
|
||||
FreeDaysOfWeekArray();
|
||||
|
||||
if (bPrintUsage == TRUE)
|
||||
ConResPuts(StdOut, IDS_USAGE);
|
||||
|
||||
return nResult;
|
||||
}
|
||||
|
||||
/* EOF */
|
@@ -1,26 +0,0 @@
|
||||
#include <windef.h>
|
||||
|
||||
#include "resource.h"
|
||||
|
||||
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS AT Command"
|
||||
#define REACTOS_STR_INTERNAL_NAME "at"
|
||||
#define REACTOS_STR_ORIGINAL_FILENAME "at.exe"
|
||||
#include <reactos/version.rc>
|
||||
|
||||
/* UTF-8 */
|
||||
#pragma code_page(65001)
|
||||
#ifdef LANGUAGE_DE_DE
|
||||
#include "lang/de-DE.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_EN_US
|
||||
#include "lang/en-US.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_RO_RO
|
||||
#include "lang/ro-RO.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_RU_RU
|
||||
#include "lang/ru-RU.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_TR_TR
|
||||
#include "lang/tr-TR.rc"
|
||||
#endif
|
@@ -1,57 +0,0 @@
|
||||
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "Mit dem AT Befehl können Befehle und Programme zu einem vorbestimmten\n\
|
||||
Termin gestartet werden. Der Zeitplandienst muss gestartet sein, um den\n\
|
||||
Befehl AT zu verwenden.\n\n\
|
||||
AT [\\\\Computername] [ [Kennung] [/DELETE] | /DELETE [/YES]]\n\
|
||||
AT [\\\\Computername] Zeit [/INTERACTIVE]\n\
|
||||
[ /EVERY:Datum[,...] | /NEXT:Datum[,...]] ""Befehl""\n\n\
|
||||
\\\\Computername Gibt einen Remotecomputer an. Ohne diesen Parameter werden\n\
|
||||
die Befehle auf dem lokalen Computer ausgeführt.\n\
|
||||
Kennung Eine Identifikationsnummer, die dem geplanten Befehl\n\
|
||||
zugeteilt wird.\n\
|
||||
/DELETE Löscht geplante Befehle. Ohne Kennung werden alle geplanten\n\
|
||||
Befehle auf dem Computer gelöscht.\n\
|
||||
/YES In Verbindung mit /DELETE werden die geplanten Befehle ohne\n\
|
||||
weitere Bestätiging gelöscht.\n\
|
||||
Zeit Gibt die Zeit an, zu der ein Befehl ausgeführt werden soll.\n\
|
||||
/INTERACTIVE Ermöglicht dem Aufrag, Eingaben von dem Benutzer\n\
|
||||
anzunehmen, der angemeldet ist, wenn der Auftrag ausgeführt\n\
|
||||
wird.\n\
|
||||
/EVERY:Datum[,...] Führt den Befehl zu jedem der angegebenen Tage der Woche\n\
|
||||
oder des Monats aus. Ohne Angabe eines Datums wird der\n\
|
||||
aktuelle Tag des Monats angenommen.\n\
|
||||
/NEXT:Datum[,...] Führt den Befehl am nächsten angegebenen Tage der Woche\n\
|
||||
oder des Monats (z.B. nächsten Montag) aus. Ohne Angabe\n\
|
||||
eines Datums wird der aktuelle Tag des Monats angenommen.\n\
|
||||
""Befehl"" Ist der auszuführende Befehl oder das Stapelprogramm.\n"
|
||||
|
||||
IDS_DELETE_ALL "Dieser Vorgang wird alle geplanten Aufträge löschen.\n"
|
||||
IDS_NEW_JOB "Neuer Auftrag hinzugefügt. Kennung = %lu\n"
|
||||
IDS_JOBS_LIST "Statuskenn. Tag Zeit Befehlszeile\n"
|
||||
IDS_NO_ENTRIES "Es sind keine Einträge in der Liste.\n"
|
||||
|
||||
IDS_CONFIRM_QUESTION "Möchten Sie diesen Vorgang fortsetzen? (J/N) [N]: "
|
||||
IDS_CONFIRM_INVALID "\nDies ist eine ungültige Antwort.\n"
|
||||
IDS_CONFIRM_YES "J"
|
||||
IDS_CONFIRM_NO "N"
|
||||
|
||||
IDS_TODAY "Heute"
|
||||
IDS_TOMORROW "Morgen"
|
||||
IDS_EVERY "Jeden"
|
||||
IDS_NEXT "Kommenden"
|
||||
|
||||
IDS_YES "Ja"
|
||||
IDS_NO "Nein"
|
||||
IDS_ERROR "ERROR"
|
||||
IDS_OK "OK"
|
||||
|
||||
IDS_TASKID "Taskkennung: %lu\n"
|
||||
IDS_STATUS "Status: %s\n"
|
||||
IDS_SCHEDULE "Zeitplan: %s\n"
|
||||
IDS_TIME "Zeit: %s\n"
|
||||
IDS_INTERACTIVE "Interaktiv: %s\n"
|
||||
IDS_COMMAND "Befehl: %s\n"
|
||||
END
|
@@ -1,56 +0,0 @@
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "The AT command schedules commands and programs to run on a computer at\n\
|
||||
a specified time and date. The Schedule service must be running to use\n\
|
||||
the AT command.\n\n\
|
||||
AT [\\\\computername] [ [id] [/DELETE] | /DELETE [/YES]]\n\
|
||||
AT [\\\\computername] time [/INTERACTIVE]\n\
|
||||
[ /EVERY:date[,...] | /NEXT:date[,...]] ""command""\n\n\
|
||||
\\\\computername Specifies a remote computer. Commands are scheduled on the \n\
|
||||
local computer if this parameter is omitted.\n\
|
||||
id Is an identification number assigned to a scheduled\n\
|
||||
command.\n\
|
||||
/DELETE Cancels a scheduled command. If id is omitted, all the\n\
|
||||
scheduled commands on the computer are canceled.\n\
|
||||
/YES Used with cancel all jobs command when no further\n\
|
||||
confirmation is desired.\n\
|
||||
time Specifies the time when command is to run.\n\
|
||||
/INTERACTIVE Allows the job to interact with the desktop of the user\n\
|
||||
who is logged on at the time the job runs.\n\
|
||||
/EVERY:date[,...] Runs the command on each specified day(s) of the week or\n\
|
||||
month. If date is omitted, the current day of the month\n\
|
||||
is assumed.\n\
|
||||
/NEXT:date[,...] Runs the specified command on the next occurrence of the\n\
|
||||
day (for example, next Thursday). If date is omitted, the \n\
|
||||
current day of the month is assumed.\n\
|
||||
""command"" Is the command or batch program to be run.\n"
|
||||
|
||||
IDS_DELETE_ALL "This operation will delete all scheduled jobs.\n"
|
||||
IDS_NEW_JOB "Added a new job with job ID = %lu\n"
|
||||
IDS_JOBS_LIST "Status ID Day Time Command Line\n"
|
||||
IDS_NO_ENTRIES "There are no entries in the list.\n"
|
||||
|
||||
IDS_CONFIRM_QUESTION "Do you want to continue this operation? (Y/N) [N]: "
|
||||
IDS_CONFIRM_INVALID "\nThis is an invalid response.\n"
|
||||
IDS_CONFIRM_YES "Y"
|
||||
IDS_CONFIRM_NO "N"
|
||||
|
||||
IDS_TODAY "Today"
|
||||
IDS_TOMORROW "Tomorrow"
|
||||
IDS_EVERY "Every"
|
||||
IDS_NEXT "Next"
|
||||
|
||||
IDS_YES "Yes"
|
||||
IDS_NO "No"
|
||||
IDS_ERROR "ERROR"
|
||||
IDS_OK "OK"
|
||||
|
||||
IDS_TASKID "Task ID: %lu\n"
|
||||
IDS_STATUS "Status: %s\n"
|
||||
IDS_SCHEDULE "Schedule: %s\n"
|
||||
IDS_TIME "Time of day: %s\n"
|
||||
IDS_INTERACTIVE "Interactive: %s\n"
|
||||
IDS_COMMAND "Command: %s\n"
|
||||
END
|
@@ -1,56 +0,0 @@
|
||||
/* Ștefan Fulea (stefan dot fulea at mail dot md) */
|
||||
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "Comanda AT planifică comenzi și programe pentru fi executate într-un\n\
|
||||
calculator la o anumită dată și oră. Serviciul «Schedule» trebuie să fie\n\
|
||||
pornit pentru a utiliza această comandă.\n\n\
|
||||
AT [\\\\numecalculator] [ [id] [/DELETE] | /DELETE [/YES]]\n\
|
||||
AT [\\\\numecalculator] timp [/INTERACTIVE]\n\
|
||||
[ /EVERY:dată[,...] | /NEXT:dată[,...]] ""comandă""\n\n\
|
||||
\\\\numecalculator Specifică un calculator la distanță. Fără acest\n\
|
||||
parametru, planificarea va fi pentru calculatorul local.\n\
|
||||
id Un număr de identificare atribuit comenzii planificate.\n\
|
||||
/DELETE Anulează o comandă planificată. Fără acest parametru,\n\
|
||||
vor fi anulate toate comenzile planificate.\n\
|
||||
/YES Utilizat cu opțiunea «DELETE», pentru suprimarea cerințelor\n\
|
||||
de confirmare a eliminărilor de comenzi planificate.\n\
|
||||
timp Specifică timpul de lansare a comenzii.\n\
|
||||
/INTERACTIVE Permite programelor să interacționeze cu utilizatorul\n\
|
||||
autentificat la momentul execuției planificate.\n\
|
||||
/EVERY:dată[,...] Execută comanda la ziua sau zilele specificate din fiecare\n\
|
||||
săptămână sau lună. Dacă data este omisă, este considerată\n\
|
||||
ziua curentă a lunii.\n\
|
||||
/NEXT:dată[,...] Execută comanda în următoarea zi (spre exemplu marțea\n\
|
||||
viitoare). Dacă data este omisă, e considerată ziua\n\
|
||||
curentă a lunii.\n\
|
||||
""comandă"" Numele comenzii sau programului pentru execuție.\n"
|
||||
|
||||
IDS_DELETE_ALL "Această operație va elimina planificarea pentru toate comenzile.\n"
|
||||
IDS_NEW_JOB "A fost planificată o nouă activitate cu ID = %lu\n"
|
||||
IDS_JOBS_LIST "ID stare Zi Oră Comanda\n"
|
||||
IDS_NO_ENTRIES "Nu există comenzi planificate.\n"
|
||||
|
||||
IDS_CONFIRM_QUESTION "Sigur doriți continuarea acestei operații? (D|N) [N]: "
|
||||
IDS_CONFIRM_INVALID "\nAcesta nu este un răspuns valid.\n"
|
||||
IDS_CONFIRM_YES "D"
|
||||
IDS_CONFIRM_NO "N"
|
||||
|
||||
IDS_TODAY "Astăzi"
|
||||
IDS_TOMORROW "Mâine"
|
||||
IDS_EVERY "În fiecare"
|
||||
IDS_NEXT "În următoarea"
|
||||
|
||||
IDS_YES "Da"
|
||||
IDS_NO "Nu"
|
||||
IDS_ERROR "EROARE"
|
||||
IDS_OK "OK"
|
||||
|
||||
IDS_TASKID "ID sarcină: %lu\n"
|
||||
IDS_STATUS "Stare: %s\n"
|
||||
IDS_SCHEDULE "Pentru: %s\n"
|
||||
IDS_TIME "La ora: %s\n"
|
||||
IDS_INTERACTIVE "Interactiv: %s\n"
|
||||
IDS_COMMAND "Comandă: %s\n"
|
||||
END
|
@@ -1,54 +0,0 @@
|
||||
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "Команда AT предназначена для запуска команд и программ\n\
|
||||
в указанное время по определенным дням. Для работы команды необходимо, чтобы\n\
|
||||
была запущена служба планировщика (Schedule service).\n\n\
|
||||
AT [\\\\имя_компьютера] [ [id] [/DELETE] | /DELETE [/YES]]\n\
|
||||
AT [\\\\имя_компьютера] время [/INTERACTIVE]\n\
|
||||
[ /EVERY:день[,...] | /NEXT:день[,...]] ""команда""\n\n\
|
||||
\\\\имя_компьютера Имя удаленного компьютера. Если этот параметр не указан, \n\
|
||||
используется локальный компьютер.\n\
|
||||
id Порядковый номер запланированной задачи.\n\
|
||||
/DELETE Отменяет запланированную команду. Если параметр id не указан, то\n\
|
||||
все команды, запланированные на данном компьютере, будут отменены.\n\
|
||||
/YES Отмена запроса на подтверждение при отмене всех\n\
|
||||
запланированных задач.\n\
|
||||
время Время запуска команды.\n\
|
||||
/INTERACTIVE Разрешает взаимодействие задачи с пользователем,\n\
|
||||
работающим на компьютере во время запуска задачи.\n\
|
||||
/EVERY:день[,...] Задача будет выполняться каждый указанный день (дни) или\n\
|
||||
месяц. Если дата не указана, используется текущий день \n\
|
||||
месяца.\n\
|
||||
/NEXT:день[,...] Задача будет запущена в следующий указанный день недели\n\
|
||||
(например, в следующий четверг). Если дата не указана, то \n\
|
||||
используется текущий день месяца.\n\
|
||||
""команда"" Команда или имя пакетного файла для запуска.\n"
|
||||
|
||||
IDS_CONFIRM_QUESTION "Продолжить выполнение операции? (Y-да/N-нет) [N] "
|
||||
IDS_CONFIRM_INVALID "\nНедопустимый ответ.\n"
|
||||
IDS_CONFIRM_YES "Y"
|
||||
IDS_CONFIRM_NO "N"
|
||||
|
||||
IDS_NEW_JOB "Добавлено новое задание с ID = %lu\n"
|
||||
IDS_JOBS_LIST "Статус ID День Время Команда\n"
|
||||
IDS_NO_ENTRIES "В списке нет запланированных задач.\n"
|
||||
|
||||
IDS_TODAY "Сегодня"
|
||||
IDS_TOMORROW "Завтра"
|
||||
IDS_EVERY "Каждый"
|
||||
IDS_NEXT "Следующий"
|
||||
|
||||
IDS_YES "Да"
|
||||
IDS_NO "Нет"
|
||||
IDS_ERROR "ОШИБКА"
|
||||
IDS_OK "ОК"
|
||||
|
||||
IDS_TASKID "ID задачи: %lu\n"
|
||||
IDS_STATUS "Состояние: %s\n"
|
||||
IDS_SCHEDULE "Расписание: %s\n"
|
||||
IDS_TIME "Время суток: %s\n"
|
||||
IDS_INTERACTIVE "Интерактивный: %s\n"
|
||||
IDS_COMMAND "Команда: %s\n"
|
||||
END
|
@@ -1,56 +0,0 @@
|
||||
/* TRANSLATOR: 2017 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */
|
||||
|
||||
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "AT komutu, belirlenen bir zamanda bilgisayarda çalıştırmak için komutları\n\
|
||||
ve izlenceleri zamanlar. AT komutunu çalıştırmak için Zamanlayıcı hizmeti \n\
|
||||
çalıştırılmalıdır.\n\n\
|
||||
AT [\\\\bilgisayar adı] [ [kimlik] [/DELETE] | /DELETE [/YES]]\n\
|
||||
AT [\\\\bilgisayar adı] saat [/INTERACTIVE]\n\
|
||||
[ /EVERY:târih[,...] | /NEXT:târih[,...]] ""komut""\n\n\
|
||||
\\\\bilgisayar adı Bir uzak bilgisayarı belirtir. Bu değişken yazılmazsa\n\
|
||||
komutlar yerli bilgisayarda zamanlanır.\n\
|
||||
kimlik Zamanlanan bir komuta atanan bir kimlik numarasıdır.\n\
|
||||
/DELETE Zamanlanan bir komutu iptâl eder. Kimlik yazılmadığında\n\
|
||||
bilgisayardaki tüm zamanlanan komutlar iptâl edilir.\n\
|
||||
/YES Sonraki onaylamalar istenilmediğinde tüm işleri iptâl etme\n\
|
||||
komutuyla birlikte kullanılır.\n\
|
||||
saat Komutun çalıştırılma saatini belirtir.\n\
|
||||
/INTERACTIVE İşe, çalıştırılacağı saatte oturum açmış kullanıcının\n\
|
||||
masaüstüyle etkileşmesine izin verir.\n\
|
||||
/EVERY:târih[,...] Haftanın ya da ayın belirtilen tüm günlerinde komutu çalıştırır.\n\
|
||||
month. Târih yazılmadığında ayın şimdiki gününü varsayar.\n\
|
||||
/NEXT:târih[,...] Günün bir sonraki oluşunda (örneğin bir sonraki perşembede)\n\
|
||||
belirtilen komutu çalıştırır. Târih yazılmadığında ayın\n\
|
||||
şimdiki gününü varsayar.\n\
|
||||
""komut"" Çalıştırılacak komut ya da toplu iş kütüğü.\n"
|
||||
|
||||
IDS_DELETE_ALL "Bu işlem tüm zamanlanan işleri silecek.\n"
|
||||
IDS_NEW_JOB "%lu iş kimliğiyle yeni bir iş eklendi.\n"
|
||||
IDS_JOBS_LIST "Durum Km. Gün Saat Komut Yatacı\n"
|
||||
IDS_NO_ENTRIES "Dizelgede bir giriş yok.\n"
|
||||
|
||||
IDS_CONFIRM_QUESTION "Bu işlemi sürdürmek ister misiniz? (E/H) [H]: "
|
||||
IDS_CONFIRM_INVALID "\nBu geçersiz bir yanıttır.\n"
|
||||
IDS_CONFIRM_YES "E"
|
||||
IDS_CONFIRM_NO "H"
|
||||
|
||||
IDS_TODAY "Bugün"
|
||||
IDS_TOMORROW "Yarın"
|
||||
IDS_EVERY "Her"
|
||||
IDS_NEXT "Bir sonraki"
|
||||
|
||||
IDS_YES "Evet"
|
||||
IDS_NO "Hayır"
|
||||
IDS_ERROR "YANLIŞLIK"
|
||||
IDS_OK "Tamam"
|
||||
|
||||
IDS_TASKID "Görev kimliği: %lu\n"
|
||||
IDS_STATUS "Durum: %s\n"
|
||||
IDS_SCHEDULE "Zamanlama: %s\n"
|
||||
IDS_TIME "Günün saati: %s\n"
|
||||
IDS_INTERACTIVE "Etkileşme: %s\n"
|
||||
IDS_COMMAND "Komut: %s\n"
|
||||
END
|
@@ -1,31 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#define IDS_USAGE 100
|
||||
|
||||
#define IDS_DELETE_ALL 105
|
||||
#define IDS_NEW_JOB 106
|
||||
#define IDS_JOBS_LIST 107
|
||||
#define IDS_NO_ENTRIES 108
|
||||
|
||||
#define IDS_TODAY 109
|
||||
#define IDS_TOMORROW 110
|
||||
#define IDS_EVERY 111
|
||||
#define IDS_NEXT 112
|
||||
|
||||
|
||||
#define IDS_YES 101
|
||||
#define IDS_NO 102
|
||||
#define IDS_ERROR 103
|
||||
#define IDS_OK 104
|
||||
|
||||
#define IDS_TASKID 122
|
||||
#define IDS_STATUS 123
|
||||
#define IDS_SCHEDULE 124
|
||||
#define IDS_TIME 125
|
||||
#define IDS_INTERACTIVE 126
|
||||
#define IDS_COMMAND 127
|
||||
|
||||
#define IDS_CONFIRM_QUESTION 130
|
||||
#define IDS_CONFIRM_INVALID 131
|
||||
#define IDS_CONFIRM_YES 132
|
||||
#define IDS_CONFIRM_NO 133
|
@@ -1,70 +0,0 @@
|
||||
/* TRANSLATOR: 2016 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */
|
||||
|
||||
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "Dizge aygıtlarını yapılandırır.\n\n\
|
||||
Aygıt durumu: MODE [aygıt] [/STATUS]\n\
|
||||
Dizilik giriş: MODE COMm[:] [BAUD=b] [PARITY=p] [DATA=d] [STOP=s]\n\
|
||||
[to=on|off] [xon=on|off] [odsr=on|off]\n\
|
||||
[octs=on|off] [dtr=on|off|hs]\n\
|
||||
[rts=on|off|hs|tg] [idsr=on|off]\n\
|
||||
Yazdırma yönlendirme: MODE LPTn[:]=COMm[:]\n\
|
||||
Kod sayfası seçme: MODE CON[:] CP SELECT=yyy\n\
|
||||
Kod sayfası durumu: MODE CON[:] CP [/STATUS]\n\
|
||||
Görüntü kipi: MODE CON[:] [COLS=c] [LINES=n]\n\
|
||||
Yineleme hızı: MODE CON[:] [RATE=r DELAY=d]\n"
|
||||
|
||||
IDS_QUERY_SERIAL_FOUND " Dizilik aygıt bulundu - %s\n"
|
||||
IDS_QUERY_PRINTER_FOUND " Yazıcı aygıtı bulundu - %s\n"
|
||||
IDS_QUERY_PARALLEL_FOUND " Koşut aygıt bulundu - %s\n"
|
||||
IDS_QUERY_DOSDEV_FOUND " DOS aygıtı bulundu - %s\n"
|
||||
// IDS_QUERY_MISC_FOUND " Başka aygıt bulundu - %s\n"
|
||||
|
||||
// IDS_QUERY_DEVICE_FOUND " %s aygıtı bulundu - %s\n"
|
||||
// IDS_SERIAL "dizilik"
|
||||
// IDS_PRINTER "koşut"
|
||||
// IDS_OTHER "başka"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_DEVICE_STATUS_HEADER "%s aygıtı durumu:"
|
||||
|
||||
IDS_COM_STATUS_BAUD " Baud: %ld\n"
|
||||
IDS_COM_STATUS_PARITY " Eşlik: %s\n"
|
||||
IDS_COM_STATUS_DATA_BITS " Veri İkilleri: %d\n"
|
||||
IDS_COM_STATUS_STOP_BITS " Durma İkilleri: %s\n"
|
||||
IDS_COM_STATUS_TIMEOUT " Süre aşımı: %s\n"
|
||||
IDS_COM_STATUS_XON_XOFF " XON/XOFF: %s\n"
|
||||
IDS_COM_STATUS_CTS_HANDSHAKING " CTS uyuşması: %s\n"
|
||||
IDS_COM_STATUS_DSR_HANDSHAKING " DSR uyuşması: %s\n"
|
||||
IDS_COM_STATUS_DSR_SENSITIVITY " DSR duyarlılığı: %s\n"
|
||||
IDS_COM_STATUS_DTR_CIRCUIT " DTR çevrimi: %s\n"
|
||||
IDS_COM_STATUS_RTS_CIRCUIT " RTS çevrimi: %s\n"
|
||||
|
||||
IDS_CONSOLE_STATUS_LINES " Yataç: %d\n"
|
||||
IDS_CONSOLE_STATUS_COLS " Dikeç: %d\n"
|
||||
IDS_CONSOLE_KBD_RATE " Düğme takımı hızı: %ld\n"
|
||||
IDS_CONSOLE_KBD_DELAY " Düğme takımı gecikmesi: %ld\n"
|
||||
IDS_CONSOLE_CODEPAGE " Kod sayfası: %d\n"
|
||||
|
||||
IDS_PRINTER_OUTPUT_NOT_REROUTED " Yazıcı çıktısı yeniden yönlendirilmiyor.\n"
|
||||
IDS_PRINTER_OUTPUT_REROUTED_SERIAL " Yazıcı çıktısı %s dizilik girişine yönlendiriliyor.\n"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_ERROR_QUERY_DEVICES "YANLIŞLIK: (0x%lx) DOS aygıtı sorgulanamaz.\n"
|
||||
IDS_ERROR_QUERY_DEVICES_FORM " QueryDosDeviceW(%s), %s tanınmamış biçim döndürdü.\n"
|
||||
IDS_ERROR_SET_PARALLEL_STATE "SetParallelState(%d) - DefineDosDevice(%s) (0x%lx)\n"
|
||||
IDS_ERROR_INVALID_PARAMETER "YANLIŞLIK: Geçersiz değişken - %s\n"
|
||||
IDS_ERROR_ILLEGAL_DEVICE_NAME "YANLIŞLIK: Geçersiz aygıt adı - %s (0x%lx)\n"
|
||||
IDS_ERROR_STATUS_GET_DEVICE "YANLIŞLIK: COM%d aygıtının durumu alınamıyor:\n"
|
||||
IDS_ERROR_STATUS_SET_DEVICE "YANLIŞLIK: COM%d aygıtının durumu ayarlanamıyor:\n"
|
||||
IDS_ERROR_INVALID_PARITY_BITS "YANLIŞLIK: %d Eşlik İkilleri için geçersiz değer:\n"
|
||||
IDS_ERROR_INVALID_STOP_BITS "YANLIŞLIK: %d Durma İkilleri için geçersiz değer:\n"
|
||||
IDS_ERROR_NO_MEMORY "YANLIŞLIK: Yeterli bellek yok.\n"
|
||||
IDS_ERROR_SCREEN_LINES_COL "YANLIŞLIK: Görüntülük, belirtilen yataç ve dikeç sayısına ayarlanamıyor.\n"
|
||||
END
|
@@ -23,8 +23,4 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||
#endif
|
||||
#ifdef LANGUAGE_RU_RU
|
||||
#include "lang/ru-RU.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_TR_TR
|
||||
#include "lang/tr-TR.rc"
|
||||
#endif
|
||||
|
||||
#endif
|
@@ -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)
|
@@ -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;
|
||||
}
|
@@ -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;
|
||||
}
|
||||
|
||||
|
@@ -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"
|
||||
}
|
||||
|
@@ -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"
|
||||
}
|
||||
|
@@ -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"
|
||||
}
|
||||
|
@@ -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"
|
||||
}
|
||||
|
@@ -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"
|
||||
}
|
||||
|
@@ -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"
|
||||
}
|
||||
|
@@ -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"
|
||||
}
|
@@ -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;
|
||||
|
@@ -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",
|
||||
|
@@ -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
|
||||
|
@@ -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)
|
||||
|
@@ -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);
|
||||
|
@@ -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
|
||||
|
@@ -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,18 +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"";
|
||||
BOOL g_FontPrint = FALSE;
|
||||
|
||||
static const WCHAR g_szFontViewClassName[] = L"FontViewWClass";
|
||||
|
||||
@@ -93,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;
|
||||
@@ -125,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));
|
||||
@@ -157,24 +150,7 @@ wWinMain(HINSTANCE hThisInstance,
|
||||
else
|
||||
{
|
||||
/* Try to add the font resource from command line */
|
||||
// fileName = argv[1];
|
||||
if (argc == 2)
|
||||
{
|
||||
fileName = argv[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Windows fontview supports the /p option, which displays print dialog */
|
||||
fileName = argv[2];
|
||||
if (wcscmp(argv[1], L"/p") == 0)
|
||||
{
|
||||
g_FontPrint = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
fileName = argv[1];
|
||||
}
|
||||
}
|
||||
fileName = argv[1];
|
||||
g_fileName = fileName;
|
||||
}
|
||||
|
||||
@@ -185,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))
|
||||
{
|
||||
@@ -242,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 */
|
||||
@@ -258,8 +222,6 @@ wWinMain(HINSTANCE hThisInstance,
|
||||
/* Main message loop */
|
||||
while (GetMessage (&msg, NULL, 0, 0))
|
||||
{
|
||||
if (IsDialogMessage(hMainWnd, &msg))
|
||||
continue;
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
@@ -275,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(
|
||||
@@ -298,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(
|
||||
@@ -334,54 +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);
|
||||
|
||||
if (g_FontPrint)
|
||||
PostMessage(hwnd, WM_COMMAND, IDC_PRINT, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -389,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;
|
||||
}
|
||||
@@ -442,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;
|
||||
}
|
||||
|
||||
@@ -576,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;
|
||||
|
||||
|
@@ -6,18 +6,13 @@
|
||||
#define HEADER_SIZE 37
|
||||
#define BUTTON_POS_X 6
|
||||
#define BUTTON_POS_Y 8
|
||||
#define BUTTON_WIDTH 80
|
||||
#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;
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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\
|
||||
Colecție de fonturi TrueType (*.ttc)\0*.ttc\0\
|
||||
Fonturi de tip OpenType (*.otf)\0*.otf\0\
|
||||
Colecție de fonturi OpenType (*.otc)\0*.otc\0\
|
||||
Fișiere de tip Font (*.fon)\0*.fon\0\
|
||||
Orice fișier (*.*)\0*.*\0"
|
||||
IDS_PREVIOUS "< Înap&oi"
|
||||
IDS_NEXT "În&ainte >"
|
||||
END
|
||||
|
@@ -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 "< &Предыдущий"
|
||||
IDS_NEXT "&Следующий >"
|
||||
END
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -1,23 +1,19 @@
|
||||
/* TRANSLATOR: 2013, 2014, 2017 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */
|
||||
/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */
|
||||
|
||||
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_INSTALL "&Kur..."
|
||||
IDS_PRINT "&Yazdır..."
|
||||
IDS_STRING "Pijamalı hasta, yağız şoföre çabucak güvendi. 1234567890"
|
||||
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 Yazı Tipi Derlemi (*.ttc)\0*.ttc\0\
|
||||
OpenType Yazı Tipi (*.otf)\0*.otf\0\
|
||||
OpenType Yazı Tipi Derlemi (*.otc)\0*.otc\0\
|
||||
Yazı Tipi Kütüğü (*.fon)\0*.fon\0\
|
||||
Tüm Kütükler (*.*)\0*.*\0"
|
||||
IDS_PREVIOUS "< &Geri"
|
||||
IDS_NEXT "&İleri >"
|
||||
END
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -15,7 +15,4 @@
|
||||
#define IDS_CHARSUPPER 701
|
||||
#define IDS_SPECIALCHARS 702
|
||||
|
||||
#define IDS_PREVIOUS 800
|
||||
#define IDS_NEXT 801
|
||||
|
||||
#define IDI_TT 800
|
||||
|
@@ -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 "Skóre: %d"
|
||||
IDS_SOL_TIME "Čas: %d"
|
||||
IDS_SOL_SCORE "Score: %d"
|
||||
IDS_SOL_TIME "Time: %d"
|
||||
END
|
||||
|
||||
/* Menus */
|
||||
|
@@ -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
|
@@ -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
|
||||
|
@@ -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;
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
@@ -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:
|
||||
|
@@ -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
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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."
|
||||
|
@@ -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 = FALSE;
|
||||
|
||||
/* 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;
|
||||
|
@@ -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 ¬ 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
|
||||
|
@@ -139,7 +139,7 @@ BEGIN
|
||||
IDS_COPYRIGHT "Telif Hakkı: 2007 - Marc Piulachs (marc.piulachs@codexchange.net)"
|
||||
IDS_APP_TITLE "Olay Görüntüleyicisi"
|
||||
IDS_APP_TITLE_EX "%s - %s Oturum Aç \\\\"
|
||||
IDS_STATUS_MSG "%s -> %lu olay var (dizelgelenmiş: %lu)"
|
||||
IDS_STATUS_MSG "%s -> %lu olay var (listed: %lu)"
|
||||
IDS_LOADING_WAIT "Olay kayıtları yükleniyor. Lütfen bekleyiniz..."
|
||||
IDS_NO_ITEMS "Bu görünümde görüntülenecek bir öğe bile yok." // "No events in this log."
|
||||
IDS_EVENTLOG_SYSTEM "Dizge Kayıtları"
|
||||
|
@@ -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 "Obnovení"
|
||||
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
|
||||
|
@@ -248,6 +248,7 @@ RefreshServiceList(PMAIN_WND_INFO Info)
|
||||
{
|
||||
ENUM_SERVICE_STATUS_PROCESS *pService;
|
||||
LVITEMW lvItem;
|
||||
DWORD NumServices;
|
||||
DWORD Index;
|
||||
|
||||
SendMessage (Info->hListView,
|
||||
@@ -257,9 +258,9 @@ RefreshServiceList(PMAIN_WND_INFO Info)
|
||||
|
||||
(void)ListView_DeleteAllItems(Info->hListView);
|
||||
|
||||
if (GetServiceList(Info))
|
||||
if (GetServiceList(Info, &NumServices))
|
||||
{
|
||||
for (Index = 0; Index < Info->NumServices; Index++)
|
||||
for (Index = 0; Index < NumServices; Index++)
|
||||
{
|
||||
INT i;
|
||||
|
||||
|
@@ -880,7 +880,10 @@ MainWndProc(HWND hwnd,
|
||||
|
||||
case WM_CLOSE:
|
||||
{
|
||||
FreeServiceList(Info);
|
||||
HeapFree(ProcessHeap,
|
||||
0,
|
||||
Info->pAllServices);
|
||||
|
||||
DestroyMenu(Info->hShortcutMenu);
|
||||
DestroyWindow(hwnd);
|
||||
}
|
||||
|
@@ -54,7 +54,6 @@ typedef struct _MAIN_WND_INFO
|
||||
|
||||
ENUM_SERVICE_STATUS_PROCESS *pAllServices;
|
||||
ENUM_SERVICE_STATUS_PROCESS *pCurrentService;
|
||||
DWORD NumServices;
|
||||
|
||||
INT SelectedItem;/* selection number in the list view */
|
||||
INT SortSelection;
|
||||
@@ -116,10 +115,9 @@ BOOL SetServiceConfig(LPQUERY_SERVICE_CONFIG pServiceConfig, LPWSTR lpServiceNam
|
||||
LPWSTR GetServiceDescription(LPWSTR lpServiceName);
|
||||
BOOL SetServiceDescription(LPWSTR lpServiceName, LPWSTR lpDescription);
|
||||
LPWSTR GetExecutablePath(LPWSTR lpServiceName);
|
||||
VOID FreeServiceList(PMAIN_WND_INFO Info);
|
||||
BOOL RefreshServiceList(PMAIN_WND_INFO Info);
|
||||
BOOL UpdateServiceStatus(ENUM_SERVICE_STATUS_PROCESS* pService);
|
||||
BOOL GetServiceList(PMAIN_WND_INFO Info);
|
||||
BOOL GetServiceList(PMAIN_WND_INFO Info, DWORD *NumServices);
|
||||
|
||||
|
||||
/* propsheet.c */
|
||||
|
@@ -9,17 +9,6 @@
|
||||
|
||||
#include "precomp.h"
|
||||
|
||||
|
||||
typedef struct _PAGEDATA
|
||||
{
|
||||
PSERVICEPROPSHEET dlgInfo;
|
||||
BOOL bDisplayNameChanged;
|
||||
BOOL bDescriptionChanged;
|
||||
BOOL bBinaryPathChanged;
|
||||
BOOL bStartTypeChanged;
|
||||
} PAGEDATA, *PPAGEDATA;
|
||||
|
||||
|
||||
static VOID
|
||||
SetButtonStates(PSERVICEPROPSHEET dlgInfo,
|
||||
HWND hwndDlg)
|
||||
@@ -56,12 +45,12 @@ SetButtonStates(PSERVICEPROPSHEET dlgInfo,
|
||||
EnableWindow (hButton, TRUE);
|
||||
}
|
||||
|
||||
hButton = GetDlgItem(hwndDlg, IDC_START_PARAM);
|
||||
EnableWindow(hButton, (State == SERVICE_STOPPED && lpServiceConfig && lpServiceConfig->dwStartType != SERVICE_DISABLED));
|
||||
|
||||
if (lpServiceConfig)
|
||||
if(lpServiceConfig)
|
||||
HeapFree(GetProcessHeap(), 0, lpServiceConfig);
|
||||
|
||||
hButton = GetDlgItem(hwndDlg, IDC_START_PARAM);
|
||||
EnableWindow(hButton, (State == SERVICE_STOPPED));
|
||||
|
||||
/* set the main toolbar */
|
||||
SetMenuAndButtonStates(dlgInfo->Info);
|
||||
}
|
||||
@@ -195,8 +184,8 @@ InitGeneralPage(PSERVICEPROPSHEET dlgInfo,
|
||||
0,
|
||||
(LPARAM)pServiceConfig->lpBinaryPathName);
|
||||
HeapFree(ProcessHeap,
|
||||
0,
|
||||
pServiceConfig);
|
||||
0,
|
||||
pServiceConfig);
|
||||
}
|
||||
|
||||
|
||||
@@ -208,18 +197,19 @@ InitGeneralPage(PSERVICEPROPSHEET dlgInfo,
|
||||
|
||||
if (dlgInfo->Info->bIsUserAnAdmin)
|
||||
{
|
||||
EnableWindow(GetDlgItem(hwndDlg, IDC_EDIT), TRUE);
|
||||
HWND hEdit = GetDlgItem(hwndDlg,
|
||||
IDC_EDIT);
|
||||
EnableWindow(hEdit,
|
||||
TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
VOID
|
||||
SaveDlgInfo(PPAGEDATA pPageData,
|
||||
SaveDlgInfo(PSERVICEPROPSHEET dlgInfo,
|
||||
HWND hwndDlg)
|
||||
{
|
||||
LPQUERY_SERVICE_CONFIG pServiceConfig = NULL;
|
||||
PWSTR pDisplayName = NULL;
|
||||
PWSTR pDescription;
|
||||
INT nLength;
|
||||
HWND hList;
|
||||
DWORD StartUp;
|
||||
|
||||
pServiceConfig = HeapAlloc(ProcessHeap,
|
||||
@@ -229,93 +219,31 @@ SaveDlgInfo(PPAGEDATA pPageData,
|
||||
{
|
||||
pServiceConfig->dwServiceType = SERVICE_NO_CHANGE;
|
||||
pServiceConfig->dwErrorControl = SERVICE_NO_CHANGE;
|
||||
pServiceConfig->dwStartType = SERVICE_NO_CHANGE;
|
||||
|
||||
if (pPageData->bStartTypeChanged)
|
||||
hList = GetDlgItem(hwndDlg, IDC_START_TYPE);
|
||||
StartUp = SendMessage(hList,
|
||||
CB_GETCURSEL,
|
||||
0,
|
||||
0);
|
||||
switch (StartUp)
|
||||
{
|
||||
StartUp = SendDlgItemMessageW(hwndDlg, IDC_START_TYPE, CB_GETCURSEL, 0, 0);
|
||||
switch (StartUp)
|
||||
{
|
||||
case 0:
|
||||
pServiceConfig->dwStartType = SERVICE_AUTO_START;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
pServiceConfig->dwStartType = SERVICE_DEMAND_START;
|
||||
break;
|
||||
case 2:
|
||||
pServiceConfig->dwStartType = SERVICE_DISABLED;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (pPageData->bBinaryPathChanged)
|
||||
{
|
||||
nLength = SendDlgItemMessageW(hwndDlg, IDC_EXEPATH, WM_GETTEXTLENGTH, 0, 0);
|
||||
pServiceConfig->lpBinaryPathName = HeapAlloc(ProcessHeap,
|
||||
HEAP_ZERO_MEMORY,
|
||||
(nLength + 1) * sizeof(WCHAR));
|
||||
if (pServiceConfig->lpBinaryPathName != NULL)
|
||||
SendDlgItemMessageW(hwndDlg, IDC_EXEPATH, WM_GETTEXT, nLength + 1, (LPARAM)pServiceConfig->lpBinaryPathName);
|
||||
}
|
||||
|
||||
if (pPageData->bDisplayNameChanged)
|
||||
{
|
||||
nLength = SendDlgItemMessageW(hwndDlg, IDC_DISP_NAME, WM_GETTEXTLENGTH, 0, 0);
|
||||
pDisplayName = HeapAlloc(ProcessHeap,
|
||||
HEAP_ZERO_MEMORY,
|
||||
(nLength + 1) * sizeof(WCHAR));
|
||||
if (pDisplayName != NULL)
|
||||
{
|
||||
SendDlgItemMessageW(hwndDlg, IDC_DISP_NAME, WM_GETTEXT, nLength + 1, (LPARAM)pDisplayName);
|
||||
|
||||
if (pPageData->dlgInfo->pService->lpDisplayName)
|
||||
HeapFree(ProcessHeap, 0, pPageData->dlgInfo->pService->lpDisplayName);
|
||||
|
||||
pPageData->dlgInfo->pService->lpDisplayName = pDisplayName;
|
||||
pServiceConfig->lpDisplayName = pDisplayName;
|
||||
}
|
||||
case 0: pServiceConfig->dwStartType = SERVICE_AUTO_START; break;
|
||||
case 1: pServiceConfig->dwStartType = SERVICE_DEMAND_START; break;
|
||||
case 2: pServiceConfig->dwStartType = SERVICE_DISABLED; break;
|
||||
}
|
||||
|
||||
if (SetServiceConfig(pServiceConfig,
|
||||
pPageData->dlgInfo->pService->lpServiceName,
|
||||
dlgInfo->pService->lpServiceName,
|
||||
NULL))
|
||||
{
|
||||
if (pPageData->bDisplayNameChanged)
|
||||
ChangeListViewText(pPageData->dlgInfo->Info,
|
||||
pPageData->dlgInfo->pService,
|
||||
LVNAME);
|
||||
|
||||
if (pPageData->bStartTypeChanged)
|
||||
ChangeListViewText(pPageData->dlgInfo->Info,
|
||||
pPageData->dlgInfo->pService,
|
||||
LVSTARTUP);
|
||||
ChangeListViewText(dlgInfo->Info,
|
||||
dlgInfo->pService,
|
||||
LVSTARTUP);
|
||||
}
|
||||
|
||||
if (pServiceConfig->lpBinaryPathName != NULL)
|
||||
HeapFree(ProcessHeap, 0, pServiceConfig->lpBinaryPathName);
|
||||
|
||||
HeapFree(ProcessHeap, 0, pServiceConfig);
|
||||
}
|
||||
|
||||
if (pPageData->bDescriptionChanged)
|
||||
{
|
||||
nLength = SendDlgItemMessageW(hwndDlg, IDC_DESCRIPTION, WM_GETTEXTLENGTH, 0, 0);
|
||||
pDescription = HeapAlloc(ProcessHeap, HEAP_ZERO_MEMORY, (nLength + 1) * sizeof(WCHAR));
|
||||
if (pDescription != NULL)
|
||||
{
|
||||
SendDlgItemMessageW(hwndDlg, IDC_DESCRIPTION, WM_GETTEXT, nLength + 1, (LPARAM)pDescription);
|
||||
|
||||
if (SetServiceDescription(pPageData->dlgInfo->pService->lpServiceName,
|
||||
pDescription))
|
||||
{
|
||||
ChangeListViewText(pPageData->dlgInfo->Info,
|
||||
pPageData->dlgInfo->pService,
|
||||
LVDESC);
|
||||
}
|
||||
|
||||
HeapFree(ProcessHeap, 0, pDescription);
|
||||
}
|
||||
HeapFree(ProcessHeap,
|
||||
0,
|
||||
pServiceConfig);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -329,12 +257,12 @@ GeneralPageProc(HWND hwndDlg,
|
||||
WPARAM wParam,
|
||||
LPARAM lParam)
|
||||
{
|
||||
PPAGEDATA pPageData;
|
||||
PSERVICEPROPSHEET dlgInfo;
|
||||
|
||||
/* Get the window context */
|
||||
pPageData = (PPAGEDATA)GetWindowLongPtr(hwndDlg,
|
||||
GWLP_USERDATA);
|
||||
if (pPageData == NULL && uMsg != WM_INITDIALOG)
|
||||
dlgInfo = (PSERVICEPROPSHEET)GetWindowLongPtr(hwndDlg,
|
||||
GWLP_USERDATA);
|
||||
if (dlgInfo == NULL && uMsg != WM_INITDIALOG)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
@@ -342,60 +270,26 @@ GeneralPageProc(HWND hwndDlg,
|
||||
switch (uMsg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
pPageData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(PAGEDATA));
|
||||
if (pPageData != NULL)
|
||||
{
|
||||
dlgInfo = (PSERVICEPROPSHEET)(((LPPROPSHEETPAGE)lParam)->lParam);
|
||||
if (dlgInfo != NULL)
|
||||
{
|
||||
SetWindowLongPtr(hwndDlg,
|
||||
GWLP_USERDATA,
|
||||
(LONG_PTR)pPageData);
|
||||
|
||||
pPageData->dlgInfo = (PSERVICEPROPSHEET)(((LPPROPSHEETPAGE)lParam)->lParam);
|
||||
if (pPageData->dlgInfo != NULL)
|
||||
{
|
||||
InitGeneralPage(pPageData->dlgInfo, hwndDlg);
|
||||
SetButtonStates(pPageData->dlgInfo, hwndDlg);
|
||||
}
|
||||
(LONG_PTR)dlgInfo);
|
||||
InitGeneralPage(dlgInfo, hwndDlg);
|
||||
SetButtonStates(dlgInfo, hwndDlg);
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_DESTROY:
|
||||
HeapFree(GetProcessHeap(), 0, pPageData);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_COMMAND:
|
||||
switch(LOWORD(wParam))
|
||||
{
|
||||
case IDC_START_TYPE:
|
||||
if (HIWORD(wParam) == CBN_SELCHANGE)
|
||||
{
|
||||
pPageData->bStartTypeChanged = TRUE;
|
||||
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
|
||||
}
|
||||
break;
|
||||
|
||||
case IDC_DISP_NAME:
|
||||
if (HIWORD(wParam) == EN_CHANGE)
|
||||
{
|
||||
pPageData->bDisplayNameChanged = TRUE;
|
||||
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
|
||||
}
|
||||
break;
|
||||
|
||||
case IDC_DESCRIPTION:
|
||||
if (HIWORD(wParam) == EN_CHANGE)
|
||||
{
|
||||
pPageData->bDescriptionChanged = TRUE;
|
||||
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
|
||||
}
|
||||
break;
|
||||
|
||||
case IDC_EXEPATH:
|
||||
if (HIWORD(wParam) == EN_CHANGE)
|
||||
{
|
||||
pPageData->bBinaryPathChanged = TRUE;
|
||||
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
|
||||
}
|
||||
break;
|
||||
break;
|
||||
|
||||
case IDC_START:
|
||||
{
|
||||
@@ -405,88 +299,91 @@ GeneralPageProc(HWND hwndDlg,
|
||||
if (GetDlgItemText(hwndDlg, IDC_START_PARAM, szStartParams, 256) > 0)
|
||||
lpStartParams = szStartParams;
|
||||
|
||||
EnableWindow(GetDlgItem(hwndDlg, IDC_START_PARAM), FALSE);
|
||||
|
||||
RunActionWithProgress(hwndDlg,
|
||||
pPageData->dlgInfo->pService->lpServiceName,
|
||||
pPageData->dlgInfo->pService->lpDisplayName,
|
||||
dlgInfo->pService->lpServiceName,
|
||||
dlgInfo->pService->lpDisplayName,
|
||||
ACTION_START,
|
||||
lpStartParams);
|
||||
|
||||
UpdateServiceStatus(pPageData->dlgInfo->pService);
|
||||
ChangeListViewText(pPageData->dlgInfo->Info, pPageData->dlgInfo->pService, LVSTATUS);
|
||||
SetButtonStates(pPageData->dlgInfo, hwndDlg);
|
||||
SetServiceStatusText(pPageData->dlgInfo, hwndDlg);
|
||||
UpdateServiceStatus(dlgInfo->pService);
|
||||
ChangeListViewText(dlgInfo->Info, dlgInfo->pService, LVSTATUS);
|
||||
SetButtonStates(dlgInfo, hwndDlg);
|
||||
SetServiceStatusText(dlgInfo, hwndDlg);
|
||||
break;
|
||||
}
|
||||
|
||||
case IDC_STOP:
|
||||
RunActionWithProgress(hwndDlg,
|
||||
pPageData->dlgInfo->pService->lpServiceName,
|
||||
pPageData->dlgInfo->pService->lpDisplayName,
|
||||
dlgInfo->pService->lpServiceName,
|
||||
dlgInfo->pService->lpDisplayName,
|
||||
ACTION_STOP,
|
||||
NULL);
|
||||
|
||||
UpdateServiceStatus(pPageData->dlgInfo->pService);
|
||||
ChangeListViewText(pPageData->dlgInfo->Info, pPageData->dlgInfo->pService, LVSTATUS);
|
||||
SetButtonStates(pPageData->dlgInfo, hwndDlg);
|
||||
SetServiceStatusText(pPageData->dlgInfo, hwndDlg);
|
||||
UpdateServiceStatus(dlgInfo->pService);
|
||||
ChangeListViewText(dlgInfo->Info, dlgInfo->pService, LVSTATUS);
|
||||
SetButtonStates(dlgInfo, hwndDlg);
|
||||
SetServiceStatusText(dlgInfo, hwndDlg);
|
||||
break;
|
||||
|
||||
case IDC_PAUSE:
|
||||
RunActionWithProgress(hwndDlg,
|
||||
pPageData->dlgInfo->pService->lpServiceName,
|
||||
pPageData->dlgInfo->pService->lpDisplayName,
|
||||
dlgInfo->pService->lpServiceName,
|
||||
dlgInfo->pService->lpDisplayName,
|
||||
ACTION_PAUSE,
|
||||
NULL);
|
||||
|
||||
UpdateServiceStatus(pPageData->dlgInfo->pService);
|
||||
ChangeListViewText(pPageData->dlgInfo->Info, pPageData->dlgInfo->pService, LVSTATUS);
|
||||
SetButtonStates(pPageData->dlgInfo, hwndDlg);
|
||||
SetServiceStatusText(pPageData->dlgInfo, hwndDlg);
|
||||
UpdateServiceStatus(dlgInfo->pService);
|
||||
ChangeListViewText(dlgInfo->Info, dlgInfo->pService, LVSTATUS);
|
||||
SetButtonStates(dlgInfo, hwndDlg);
|
||||
SetServiceStatusText(dlgInfo, hwndDlg);
|
||||
break;
|
||||
|
||||
case IDC_RESUME:
|
||||
RunActionWithProgress(hwndDlg,
|
||||
pPageData->dlgInfo->pService->lpServiceName,
|
||||
pPageData->dlgInfo->pService->lpDisplayName,
|
||||
dlgInfo->pService->lpServiceName,
|
||||
dlgInfo->pService->lpDisplayName,
|
||||
ACTION_RESUME,
|
||||
NULL);
|
||||
|
||||
UpdateServiceStatus(pPageData->dlgInfo->pService);
|
||||
ChangeListViewText(pPageData->dlgInfo->Info, pPageData->dlgInfo->pService, LVSTATUS);
|
||||
SetButtonStates(pPageData->dlgInfo, hwndDlg);
|
||||
SetServiceStatusText(pPageData->dlgInfo, hwndDlg);
|
||||
UpdateServiceStatus(dlgInfo->pService);
|
||||
ChangeListViewText(dlgInfo->Info, dlgInfo->pService, LVSTATUS);
|
||||
SetButtonStates(dlgInfo, hwndDlg);
|
||||
SetServiceStatusText(dlgInfo, hwndDlg);
|
||||
break;
|
||||
|
||||
case IDC_EDIT:
|
||||
SendDlgItemMessage(hwndDlg, IDC_DISP_NAME, EM_SETREADONLY, FALSE, 0);
|
||||
SendDlgItemMessage(hwndDlg, IDC_DESCRIPTION, EM_SETREADONLY, FALSE, 0);
|
||||
SendDlgItemMessage(hwndDlg, IDC_EXEPATH, EM_SETREADONLY, FALSE, 0);
|
||||
EnableWindow(GetDlgItem(hwndDlg, IDC_EDIT), FALSE);
|
||||
{
|
||||
HWND hName, hDesc, hExePath;
|
||||
|
||||
hName = GetDlgItem(hwndDlg, IDC_DISP_NAME);
|
||||
hDesc = GetDlgItem(hwndDlg, IDC_DESCRIPTION);
|
||||
hExePath = GetDlgItem(hwndDlg, IDC_EXEPATH);
|
||||
|
||||
SendMessage(hName, EM_SETREADONLY, FALSE, 0);
|
||||
SendMessage(hDesc, EM_SETREADONLY, FALSE, 0);
|
||||
SendMessage(hExePath, EM_SETREADONLY, FALSE, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
case IDC_START_PARAM:
|
||||
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_NOTIFY:
|
||||
switch (((LPNMHDR)lParam)->code)
|
||||
{
|
||||
case PSN_APPLY:
|
||||
if (pPageData->bDisplayNameChanged ||
|
||||
pPageData->bDescriptionChanged ||
|
||||
pPageData->bBinaryPathChanged ||
|
||||
pPageData->bStartTypeChanged)
|
||||
{
|
||||
SaveDlgInfo(pPageData, hwndDlg);
|
||||
SetButtonStates(pPageData->dlgInfo, hwndDlg);
|
||||
pPageData->bDisplayNameChanged = FALSE;
|
||||
pPageData->bDescriptionChanged = FALSE;
|
||||
pPageData->bBinaryPathChanged = FALSE;
|
||||
pPageData->bStartTypeChanged = FALSE;
|
||||
}
|
||||
LPNMHDR lpnm = (LPNMHDR)lParam;
|
||||
|
||||
switch (lpnm->code)
|
||||
{
|
||||
case PSN_APPLY:
|
||||
SaveDlgInfo(dlgInfo, hwndDlg);
|
||||
SetButtonStates(dlgInfo, hwndDlg);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
break;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
|
@@ -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);
|
||||
|
@@ -15,7 +15,7 @@ typedef struct _RECOVERYDATA
|
||||
{
|
||||
ENUM_SERVICE_STATUS_PROCESS *pService;
|
||||
LPSERVICE_FAILURE_ACTIONS pServiceFailure;
|
||||
BOOL bChanged;
|
||||
|
||||
} RECOVERYDATA, *PRECOVERYDATA;
|
||||
|
||||
static
|
||||
@@ -367,74 +367,6 @@ BrowseFile(
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
VOID
|
||||
SetFailureActions(
|
||||
HWND hwndDlg)
|
||||
{
|
||||
SERVICE_FAILURE_ACTIONS FailureActions;
|
||||
BOOL bRestartService = FALSE;
|
||||
BOOL bRunProgram = FALSE;
|
||||
BOOL bRebootComputer = FALSE;
|
||||
INT id, index;
|
||||
|
||||
ZeroMemory(&FailureActions, sizeof(FailureActions));
|
||||
|
||||
/* Count the number of valid failure actions */
|
||||
for (id = IDC_FIRST_FAILURE; id <= IDC_SUBSEQUENT_FAILURES; id++)
|
||||
{
|
||||
index = SendDlgItemMessageW(hwndDlg,
|
||||
id,
|
||||
CB_GETCURSEL,
|
||||
0,
|
||||
0);
|
||||
switch (index)
|
||||
{
|
||||
case 1: /* Restart Service */
|
||||
bRestartService = TRUE;
|
||||
FailureActions.cActions++;
|
||||
break;
|
||||
|
||||
case 2: /* Run Program */
|
||||
bRunProgram = TRUE;
|
||||
FailureActions.cActions++;
|
||||
break;
|
||||
|
||||
case 3: /* Reboot Computer */
|
||||
bRebootComputer = TRUE;
|
||||
FailureActions.cActions++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (bRestartService)
|
||||
{
|
||||
// IDC_RESTART_TIME
|
||||
}
|
||||
|
||||
if (bRunProgram)
|
||||
{
|
||||
// IDC_RESTART_TIME
|
||||
}
|
||||
|
||||
if (bRebootComputer)
|
||||
{
|
||||
// IDC_RESTART_TIME
|
||||
}
|
||||
|
||||
|
||||
#if 0
|
||||
typedef struct _SERVICE_FAILURE_ACTIONS {
|
||||
DWORD dwResetPeriod;
|
||||
LPTSTR lpRebootMsg;
|
||||
LPTSTR lpCommand;
|
||||
DWORD cActions;
|
||||
SC_ACTION *lpsaActions;
|
||||
} SERVICE_FAILURE_ACTIONS, *LPSERVICE_FAILURE_ACTIONS;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
INT_PTR
|
||||
CALLBACK
|
||||
RecoveryPageProc(
|
||||
@@ -491,26 +423,6 @@ RecoveryPageProc(
|
||||
if (HIWORD(wParam) == CBN_SELCHANGE)
|
||||
{
|
||||
UpdateFailureActions(hwndDlg, pRecoveryData);
|
||||
pRecoveryData->bChanged = TRUE;
|
||||
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
|
||||
}
|
||||
break;
|
||||
|
||||
case IDC_RESET_TIME:
|
||||
case IDC_RESTART_TIME:
|
||||
case IDC_PROGRAM:
|
||||
case IDC_PARAMETERS:
|
||||
if (HIWORD(wParam) == EN_CHANGE)
|
||||
{
|
||||
pRecoveryData->bChanged = TRUE;
|
||||
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
|
||||
}
|
||||
break;
|
||||
|
||||
case IDC_ADD_FAILCOUNT:
|
||||
if (HIWORD(wParam) == BN_CLICKED)
|
||||
{
|
||||
pRecoveryData->bChanged = TRUE;
|
||||
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
|
||||
}
|
||||
break;
|
||||
@@ -518,9 +430,6 @@ RecoveryPageProc(
|
||||
case IDC_BROWSE_PROGRAM:
|
||||
BrowseFile(hwndDlg);
|
||||
break;
|
||||
|
||||
case IDC_RESTART_OPTIONS:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -528,11 +437,6 @@ RecoveryPageProc(
|
||||
switch (((LPNMHDR)lParam)->code)
|
||||
{
|
||||
case PSN_APPLY:
|
||||
if (pRecoveryData->bChanged)
|
||||
{
|
||||
SetFailureActions(hwndDlg);
|
||||
pRecoveryData->bChanged = FALSE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@@ -253,41 +253,25 @@ SetServiceDescription(LPWSTR lpServiceName,
|
||||
return bRet;
|
||||
}
|
||||
|
||||
VOID
|
||||
FreeServiceList(PMAIN_WND_INFO Info)
|
||||
{
|
||||
DWORD i;
|
||||
|
||||
if (Info->pAllServices != NULL)
|
||||
{
|
||||
for (i = 0; i < Info->NumServices; i++)
|
||||
{
|
||||
if (Info->pAllServices[i].lpServiceName)
|
||||
HeapFree(ProcessHeap, 0, Info->pAllServices[i].lpServiceName);
|
||||
|
||||
if (Info->pAllServices[i].lpDisplayName)
|
||||
HeapFree(ProcessHeap, 0, Info->pAllServices[i].lpDisplayName);
|
||||
}
|
||||
|
||||
HeapFree(ProcessHeap, 0, Info->pAllServices);
|
||||
Info->pAllServices = NULL;
|
||||
Info->NumServices = 0;
|
||||
}
|
||||
}
|
||||
|
||||
BOOL
|
||||
GetServiceList(PMAIN_WND_INFO Info)
|
||||
GetServiceList(PMAIN_WND_INFO Info,
|
||||
DWORD *NumServices)
|
||||
{
|
||||
ENUM_SERVICE_STATUS_PROCESS *pServices = NULL;
|
||||
SC_HANDLE ScHandle;
|
||||
BOOL bRet = FALSE;
|
||||
|
||||
DWORD BytesNeeded = 0;
|
||||
DWORD ResumeHandle = 0;
|
||||
DWORD NumServices = 0;
|
||||
DWORD i;
|
||||
|
||||
FreeServiceList(Info);
|
||||
*NumServices = 0;
|
||||
|
||||
if (Info->pAllServices != NULL)
|
||||
{
|
||||
HeapFree(ProcessHeap,
|
||||
0,
|
||||
Info->pAllServices);
|
||||
Info->pAllServices = NULL;
|
||||
}
|
||||
|
||||
ScHandle = OpenSCManagerW(NULL,
|
||||
NULL,
|
||||
@@ -301,7 +285,7 @@ GetServiceList(PMAIN_WND_INFO Info)
|
||||
NULL,
|
||||
0,
|
||||
&BytesNeeded,
|
||||
&NumServices,
|
||||
NumServices,
|
||||
&ResumeHandle,
|
||||
0))
|
||||
{
|
||||
@@ -309,20 +293,20 @@ GetServiceList(PMAIN_WND_INFO Info)
|
||||
if (GetLastError() == ERROR_MORE_DATA)
|
||||
{
|
||||
/* reserve memory for service info array */
|
||||
pServices = (ENUM_SERVICE_STATUS_PROCESS *)HeapAlloc(ProcessHeap,
|
||||
0,
|
||||
BytesNeeded);
|
||||
if (pServices)
|
||||
Info->pAllServices = (ENUM_SERVICE_STATUS_PROCESS *) HeapAlloc(ProcessHeap,
|
||||
0,
|
||||
BytesNeeded);
|
||||
if (Info->pAllServices)
|
||||
{
|
||||
/* fill array with service info */
|
||||
if (EnumServicesStatusEx(ScHandle,
|
||||
SC_ENUM_PROCESS_INFO,
|
||||
SERVICE_WIN32,
|
||||
SERVICE_STATE_ALL,
|
||||
(LPBYTE)pServices,
|
||||
(LPBYTE)Info->pAllServices,
|
||||
BytesNeeded,
|
||||
&BytesNeeded,
|
||||
&NumServices,
|
||||
NumServices,
|
||||
&ResumeHandle,
|
||||
0))
|
||||
{
|
||||
@@ -336,36 +320,13 @@ GetServiceList(PMAIN_WND_INFO Info)
|
||||
if (ScHandle)
|
||||
CloseServiceHandle(ScHandle);
|
||||
|
||||
Info->pAllServices = (ENUM_SERVICE_STATUS_PROCESS *)HeapAlloc(ProcessHeap,
|
||||
HEAP_ZERO_MEMORY,
|
||||
NumServices * sizeof(ENUM_SERVICE_STATUS_PROCESS));
|
||||
if (Info->pAllServices != NULL)
|
||||
if (!bRet && Info->pAllServices)
|
||||
{
|
||||
Info->NumServices = NumServices;
|
||||
|
||||
for (i = 0; i < NumServices; i++)
|
||||
{
|
||||
Info->pAllServices[i].lpServiceName = HeapAlloc(ProcessHeap,
|
||||
HEAP_ZERO_MEMORY,
|
||||
(wcslen(pServices[i].lpServiceName) + 1) * sizeof(WCHAR));
|
||||
if (Info->pAllServices[i].lpServiceName)
|
||||
wcscpy(Info->pAllServices[i].lpServiceName, pServices[i].lpServiceName);
|
||||
|
||||
Info->pAllServices[i].lpDisplayName = HeapAlloc(ProcessHeap,
|
||||
HEAP_ZERO_MEMORY,
|
||||
(wcslen(pServices[i].lpDisplayName) + 1) * sizeof(WCHAR));
|
||||
if (Info->pAllServices[i].lpDisplayName)
|
||||
wcscpy(Info->pAllServices[i].lpDisplayName, pServices[i].lpDisplayName);
|
||||
|
||||
CopyMemory(&Info->pAllServices[i].ServiceStatusProcess,
|
||||
&pServices[i].ServiceStatusProcess,
|
||||
sizeof(SERVICE_STATUS_PROCESS));
|
||||
}
|
||||
HeapFree(ProcessHeap,
|
||||
0,
|
||||
Info->pAllServices);
|
||||
}
|
||||
|
||||
if (pServices)
|
||||
HeapFree(ProcessHeap, 0, pServices);
|
||||
|
||||
return bRet;
|
||||
}
|
||||
|
||||
|
@@ -53,16 +53,16 @@ DoStartService(LPWSTR ServiceName,
|
||||
lpChar++;
|
||||
}
|
||||
|
||||
/*
|
||||
* Allocate the arguments vector.
|
||||
* Do not add the service name here because services.exe does it for us!
|
||||
*/
|
||||
lpArgsVector = LocalAlloc(LMEM_FIXED, dwArgsCount * sizeof(LPCWSTR));
|
||||
/* Allocate the arguments vector and add one for the service name */
|
||||
lpArgsVector = LocalAlloc(LMEM_FIXED, (dwArgsCount + 1) * sizeof(LPCWSTR));
|
||||
if (!lpArgsVector)
|
||||
return FALSE;
|
||||
|
||||
/* Make the service name the first argument */
|
||||
lpArgsVector[0] = ServiceName;
|
||||
|
||||
/* Fill the arguments vector */
|
||||
dwArgsCount = 0;
|
||||
dwArgsCount = 1;
|
||||
bWhiteSpace = TRUE;
|
||||
lpChar = lpStartParams;
|
||||
while (*lpChar != 0)
|
||||
|
@@ -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
|
||||
|
@@ -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));
|
||||
|
@@ -96,7 +96,7 @@ BEGIN
|
||||
IDS_USER_FULL_NAME "Nume complet"
|
||||
IDS_USER_COMMENT "Comentariu"
|
||||
IDS_USER_USER_COMMENT "Comentariu de utilizator"
|
||||
IDS_USER_COUNTRY_CODE "Cod de țară"
|
||||
IDS_USER_COUNTRY_CODE "Cod de ţară"
|
||||
IDS_USER_ACCOUNT_ACTIVE "Cont activ"
|
||||
IDS_USER_ACCOUNT_EXPIRES "Cont expiră"
|
||||
IDS_USER_PW_LAST_SET "Parolă recent instituită"
|
||||
@@ -104,20 +104,20 @@ BEGIN
|
||||
IDS_USER_PW_CHANGEABLE "Parolă modificabilă"
|
||||
IDS_USER_PW_REQUIRED "Parolă necesară"
|
||||
IDS_USER_CHANGE_PW "Utilizatorul poate schimba parola"
|
||||
IDS_USER_WORKSTATIONS "Stații de lucru permise"
|
||||
IDS_USER_WORKSTATIONS "Staţii de lucru permise"
|
||||
IDS_USER_LOGON_SCRIPT "Script de autentificare"
|
||||
IDS_USER_PROFILE "Profil de utilizator"
|
||||
IDS_USER_HOME_DIR "Director personal"
|
||||
IDS_USER_LAST_LOGON "Ultimă autentificare"
|
||||
IDS_USER_LOGON_HOURS "Ore de autentificare permise"
|
||||
IDS_USER_LOCAL_GROUPS "Apartenență grup local"
|
||||
IDS_USER_GLOBAL_GROUPS "Apartenență grup global"
|
||||
IDS_USER_LOCAL_GROUPS "Apartenenţă grup local"
|
||||
IDS_USER_GLOBAL_GROUPS "Apartenenţă grup global"
|
||||
|
||||
IDS_USER_ENTER_PASSWORD1 "Introduceți o parolă nouă pentru utilizatorul (curent): "
|
||||
IDS_USER_ENTER_PASSWORD1 "Introduceţi o parolă nouă pentru utilizatorul (curent): "
|
||||
IDS_USER_ENTER_PASSWORD2 "Introduceți din nou parola: "
|
||||
IDS_USER_NO_PASSWORD_MATCH "Parolele diferă!"
|
||||
|
||||
IDS_USE_NOW_CONNECTED "Conectarea %s la %s a fost realizată.\n"
|
||||
IDS_USE_NOW_CONNECTED "%s is now connected to %s\n"
|
||||
|
||||
IDS_GENERIC_YES "Da"
|
||||
IDS_GENERIC_NO "Nu"
|
||||
@@ -126,8 +126,8 @@ BEGIN
|
||||
IDS_GENERIC_ALL "Toate"
|
||||
IDS_GENERIC_LOCKED "Blocat"
|
||||
|
||||
IDS_ERROR_OPTION_NOT_SUPPORTED "Opțiunea %s încă nu este admisă.\n"
|
||||
IDS_ERROR_INVALID_OPTION_VALUE "Ați introdus o valoare nevalidă pentru opțiunea %s.\n"
|
||||
IDS_ERROR_SYSTEM_ERROR "A survenit eroarea de sistem %d.\n"
|
||||
IDS_ERROR_NO_ERROR "Comanda a fost executată cu succes.\n"
|
||||
IDS_ERROR_OPTION_NOT_SUPPORTED "Opţiunea %s încă nu este admisă.\n"
|
||||
IDS_ERROR_INVALID_OPTION_VALUE "Aţi introdus o valoare nevalidă pentru opţiunea %s.\n"
|
||||
IDS_ERROR_SYSTEM_ERROR "The system error %d happened.\n"
|
||||
IDS_ERROR_NO_ERROR "The command got executed successfully.\n"
|
||||
END
|
||||
|
@@ -113,7 +113,7 @@ BEGIN
|
||||
IDS_USER_ENTER_PASSWORD2 "Повторите ввод пароля для подтверждения: "
|
||||
IDS_USER_NO_PASSWORD_MATCH "Пароли не совпадают!"
|
||||
|
||||
IDS_USE_NOW_CONNECTED "%s сейчас подключен к %s\n"
|
||||
IDS_USE_NOW_CONNECTED "%s is now connected to %s\n"
|
||||
|
||||
IDS_GENERIC_YES "Да"
|
||||
IDS_GENERIC_NO "Нет"
|
||||
@@ -124,6 +124,6 @@ BEGIN
|
||||
|
||||
IDS_ERROR_OPTION_NOT_SUPPORTED "Опция %s в данный момент не поддерживается.\n"
|
||||
IDS_ERROR_INVALID_OPTION_VALUE "Вы ввели неверный данные для данной опции %s.\n"
|
||||
IDS_ERROR_SYSTEM_ERROR "Произошла системная ошибка: %d.\n"
|
||||
IDS_ERROR_NO_ERROR "Команда успешно выполнена.\n"
|
||||
IDS_ERROR_SYSTEM_ERROR "The system error %d happened.\n"
|
||||
IDS_ERROR_NO_ERROR "The command got executed successfully.\n"
|
||||
END
|
||||
|
@@ -113,7 +113,7 @@ BEGIN
|
||||
IDS_USER_ENTER_PASSWORD2 "Şifreyi yeniden giriniz: "
|
||||
IDS_USER_NO_PASSWORD_MATCH "Şifreler uyuşmuyor!"
|
||||
|
||||
IDS_USE_NOW_CONNECTED "%s şuna bağlandı: %s\n"
|
||||
IDS_USE_NOW_CONNECTED "%s is now connected to %s\n"
|
||||
|
||||
IDS_GENERIC_YES "Evet"
|
||||
IDS_GENERIC_NO "Hayır"
|
||||
@@ -124,6 +124,6 @@ BEGIN
|
||||
|
||||
IDS_ERROR_OPTION_NOT_SUPPORTED "%s seçeneği daha desteklenmiyor.\n"
|
||||
IDS_ERROR_INVALID_OPTION_VALUE "%s seçeneği için geçersiz bir değer girdiniz.\n"
|
||||
IDS_ERROR_SYSTEM_ERROR "%d dizge hatâsı oldu.\n"
|
||||
IDS_ERROR_NO_ERROR "Komut başarılı bir şekilde çalıştırıldı.\n"
|
||||
IDS_ERROR_SYSTEM_ERROR "The system error %d happened.\n"
|
||||
IDS_ERROR_NO_ERROR "The command got executed successfully.\n"
|
||||
END
|
||||
|
@@ -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)
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user