mirror of
https://github.com/reactos/reactos.git
synced 2024-07-03 03:04:22 +00:00
sync to trunk head (35945)
svn path=/branches/ros-amd64-bringup/; revision=35954
This commit is contained in:
commit
53181b207f
|
@ -9,6 +9,7 @@ Art Yerkes <ayerkes@speakeasy.net>
|
|||
Ariadne
|
||||
Brandon Turner <turnerb7@msu.edu>
|
||||
Brian Palmer <brianp@sginet.com>
|
||||
Cameron M. Gutman <cgutman@reactos.org>
|
||||
Casper S. Hornstrup <chorns@users.sourceforge.net>
|
||||
Christoph von Wittich <christoph_vw@reactos.org>
|
||||
Daniel Reimer <reimer.daniel@freenet.de>
|
||||
|
@ -60,6 +61,7 @@ Richard Campbell <betam4x@gmail.com>
|
|||
Robert Bergkvist <fragdance@hotmail.com>
|
||||
Robert Dickenson <robd@reactos.org>
|
||||
Royce Mitchell III <royce3@ev1.net>
|
||||
Samuel Serapión <samdwise51@gmail.com>
|
||||
Saveliy Tretiakov <saveliyt@mail.ru>
|
||||
Stefan Ginsberg <stefan__100__@hotmail.com>
|
||||
Steven Edwards <steven_ed4153@yahoo.com>
|
||||
|
|
|
@ -438,9 +438,6 @@ universe:
|
|||
ROS_OUTPUT=output-$(ARCH)-r \
|
||||
world
|
||||
|
||||
sysregtest:
|
||||
$(OUTPUT_)tools$(SEP)sysreg$(SEP)sysreg$(EXEPOSTFIX) tools$(SEP)sysreg$(SEP)txtmode.cfg
|
||||
|
||||
.PHONY: rgenstat
|
||||
rgenstat: $(RGENSTAT_TARGET)
|
||||
$(ECHO_RGENSTAT)
|
||||
|
|
|
@ -68,7 +68,7 @@
|
|||
<define name="__MSVCRT__"/>
|
||||
<compilerflag>-Wno-attributes</compilerflag>
|
||||
<compilerflag>-fno-strict-aliasing</compilerflag>
|
||||
<linkerflag>-s</linkerflag>
|
||||
<linkerflag>--strip-debug</linkerflag>
|
||||
<linkerflag>-static</linkerflag>
|
||||
|
||||
<directory name="media">
|
||||
|
|
|
@ -42,7 +42,9 @@
|
|||
#define IDC_STATIC ((DWORD)-1)
|
||||
#endif
|
||||
|
||||
#define CALC_VERSION TEXT("1.09")
|
||||
#define CALC_VERSION TEXT("1.10")
|
||||
|
||||
#define MAX_CALC_SIZE 256
|
||||
|
||||
/*#define USE_KEYBOARD_HOOK*/
|
||||
|
||||
|
@ -144,7 +146,8 @@ typedef struct {
|
|||
#endif
|
||||
HWND hWnd;
|
||||
DWORD layout;
|
||||
TCHAR buffer[256];
|
||||
TCHAR buffer[MAX_CALC_SIZE];
|
||||
TCHAR source[MAX_CALC_SIZE];
|
||||
TCHAR *ptr;
|
||||
calc_number_t code;
|
||||
calc_number_t prev;
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
|
||||
<module name="calc" type="win32gui" installbase="system32" installname="calc.exe" allowwarnings="true" unicode="yes">
|
||||
<include base="calc">.</include>
|
||||
<define name="DISABLE_HTMLHELP_SUPPORT">1</define>
|
||||
<define name="DISABLE_HTMLHELP_SUPPORT">1</define>
|
||||
<define name="_WIN32_WINNT">0x0501</define>
|
||||
<library>user32</library>
|
||||
<library>gdi32</library>
|
||||
<library>kernel32</library>
|
||||
<file>about.c</file>
|
||||
<file>convert.c</file>
|
||||
<file>convert.c</file>
|
||||
<file>function.c</file>
|
||||
<file>rpn.c</file>
|
||||
<file>utl.c</file>
|
||||
|
|
|
@ -561,4 +561,3 @@ void ConvInit(HWND hWnd)
|
|||
ConvAdjust(hWnd, 0);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
|
|||
|
||||
IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 161
|
||||
STYLE DS_SHELLFONT | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Èç÷èñëèòåëÿí íà ÐåàêòÎÑ"
|
||||
CAPTION "Èç÷èñëèòåëÿò íà ÐåàêòÎÑ"
|
||||
MENU IDR_MENU_SCIENTIFIC_1
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
|
@ -444,31 +444,31 @@ END
|
|||
// types of conversion
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_CONV_AREA "Area"
|
||||
IDS_CONV_CONSUMPTION "Consumption (engines)"
|
||||
IDS_CONV_CURRENCY "Currencies"
|
||||
IDS_CONV_ENERGY "Energy"
|
||||
IDS_CONV_LENGTH "Lenghts"
|
||||
IDS_CONV_POWER "Power"
|
||||
IDS_CONV_PRESSURE "Pressure"
|
||||
IDS_CONV_TEMPERATURE "Temperature"
|
||||
IDS_CONV_VELOCITY "Velocity"
|
||||
IDS_CONV_VOLUME "Volume"
|
||||
IDS_CONV_WEIGHT "Weights"
|
||||
IDS_CONV_AREA "Ïëîù"
|
||||
IDS_CONV_CONSUMPTION "Ïîòðåáëåíèå (äâèãàòåëè)"
|
||||
IDS_CONV_CURRENCY "Ïàðè÷íè åäèíèöè"
|
||||
IDS_CONV_ENERGY "Åíåðãèÿ"
|
||||
IDS_CONV_LENGTH "Äúëæèíè"
|
||||
IDS_CONV_POWER "Ìîùíîñò"
|
||||
IDS_CONV_PRESSURE "Íàëÿãàíå"
|
||||
IDS_CONV_TEMPERATURE "Òåìïåðàòóðà"
|
||||
IDS_CONV_VELOCITY "Ñêîðîñò"
|
||||
IDS_CONV_VOLUME "Îáåì"
|
||||
IDS_CONV_WEIGHT "Òåãëî"
|
||||
END
|
||||
|
||||
// TYPES OF AREAS
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_AREA_ACRES "Acres"
|
||||
IDS_AREA_ACRES_BRAZIL "Acres (Brazil)"
|
||||
IDS_AREA_ACRES_FRANCE "Acres (France)"
|
||||
IDS_AREA_ACRES_SCOTS "Acres (Scots)"
|
||||
IDS_AREA_ACRES_US "Acres (US)"
|
||||
IDS_AREA_ARES "Ares"
|
||||
IDS_AREA_ACRES "Àêðè"
|
||||
IDS_AREA_ACRES_BRAZIL "Àêðè (Áðàçèëñêè)"
|
||||
IDS_AREA_ACRES_FRANCE "Àêðè (Ôðåíñêè)"
|
||||
IDS_AREA_ACRES_SCOTS "Àêðè (Øîòëàíäñêè)"
|
||||
IDS_AREA_ACRES_US "Àêðè (ÑÀÙ)"
|
||||
IDS_AREA_ARES "Àðîâå"
|
||||
IDS_AREA_CHOU "Chou"
|
||||
IDS_AREA_DANBO "Danbo"
|
||||
IDS_AREA_HECTARES "Hectares"
|
||||
IDS_AREA_HECTARES "Õåêòàðè"
|
||||
IDS_AREA_JEONGBO "Jeongbo"
|
||||
IDS_AREA_MORGEN_HUNGARY "Morgen (Hungary)"
|
||||
IDS_AREA_MU "Mu"
|
||||
|
@ -477,21 +477,21 @@ BEGIN
|
|||
IDS_AREA_PYEONGBANGJA "Pyeongbangja"
|
||||
IDS_AREA_RAI "Rai"
|
||||
IDS_AREA_SE "Se"
|
||||
IDS_AREA_SQUARE_CENTIMETERS "Square centimeters"
|
||||
IDS_AREA_SQUARE_CHR "Square chr"
|
||||
IDS_AREA_SQUARE_FATHOMS "Square fathoms"
|
||||
IDS_AREA_SQUARE_FATHOMS_HUNGARY "Square fathoms (Hungary)"
|
||||
IDS_AREA_SQUARE_FEET "Square feet"
|
||||
IDS_AREA_SQUARE_INCHES "Square inches"
|
||||
IDS_AREA_SQUARE_KILOMETERS "Square kilometers"
|
||||
IDS_AREA_SQUARE_LAR "Square lar"
|
||||
IDS_AREA_SQUARE_METER "Square meter"
|
||||
IDS_AREA_SQUARE_MILES "Square miles"
|
||||
IDS_AREA_SQUARE_MILLIMETERS "Square millimeters"
|
||||
IDS_AREA_SQUARE_SHAKU "Square shaku"
|
||||
IDS_AREA_SQUARE_TSUEN "Square tsuen"
|
||||
IDS_AREA_SQUARE_VA "Square va"
|
||||
IDS_AREA_SQUARE_YARD "Square yard"
|
||||
IDS_AREA_SQUARE_CENTIMETERS "Êâàäðàòíè ñàíòèìåòðè"
|
||||
IDS_AREA_SQUARE_CHR "Êâàäðàòíè chr"
|
||||
IDS_AREA_SQUARE_FATHOMS "Êâàäðàòíè ôàäîìè"
|
||||
IDS_AREA_SQUARE_FATHOMS_HUNGARY "Êâàäðàòíè ôàäîìè (óíãàðñêè)"
|
||||
IDS_AREA_SQUARE_FEET "Êâàäðàòíè ñòúïêè"
|
||||
IDS_AREA_SQUARE_INCHES "Êâàäðàòíè öîëîâå"
|
||||
IDS_AREA_SQUARE_KILOMETERS "Êâàäðàòíè êèëîìåòðè"
|
||||
IDS_AREA_SQUARE_LAR "Êâàäðàòíè lar"
|
||||
IDS_AREA_SQUARE_METER "Êâàäðàòíè ìåòðè"
|
||||
IDS_AREA_SQUARE_MILES "Êâàäðàòíè ìèëè"
|
||||
IDS_AREA_SQUARE_MILLIMETERS "Êâàäðàòíè ìèëèìåòðè"
|
||||
IDS_AREA_SQUARE_SHAKU "Êâàäðàòíè shaku"
|
||||
IDS_AREA_SQUARE_TSUEN "Êâàäðàòíè tsuen"
|
||||
IDS_AREA_SQUARE_VA "Êâàäðàòíè va"
|
||||
IDS_AREA_SQUARE_YARD "Êâàäðàòíè ÿðäîâå"
|
||||
IDS_AREA_TAN "Tan"
|
||||
IDS_AREA_TSUBO "Tsubo"
|
||||
END
|
||||
|
@ -499,10 +499,10 @@ END
|
|||
// TYPES OF COMSUMPTIONS
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_CONSUMPTION_KM_PER_L "Kilometer/liter"
|
||||
IDS_CONSUMPTION_L_PER_100_KM "Liters/100 kilometers"
|
||||
IDS_CONSUMPTION_MILES_GALLON_UK "Miles/gallon (UK)"
|
||||
IDS_CONSUMPTION_MILES_GALLON_US "Miles/gallon (US)"
|
||||
IDS_CONSUMPTION_KM_PER_L "Êèëîìåòðè/ëèòúð"
|
||||
IDS_CONSUMPTION_L_PER_100_KM "Ëèòðè/100 êèëîìåòðà"
|
||||
IDS_CONSUMPTION_MILES_GALLON_UK "Ìèëè/ãàëîí (ÎÊ)"
|
||||
IDS_CONSUMPTION_MILES_GALLON_US "Ìèëè/ãàëîí (ÑÀÙ)"
|
||||
END
|
||||
|
||||
// TYPES OF CURRENCIES
|
||||
|
@ -529,54 +529,54 @@ END
|
|||
// TYPES OF ENERGIES
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_ENERGY_15_C_CALORIES "15 ^C calories"
|
||||
IDS_ENERGY_ERGS "Ergs"
|
||||
IDS_ENERGY_IT_CALORIES "International Table calories"
|
||||
IDS_ENERGY_JOULES "Joules"
|
||||
IDS_ENERGY_KILOJOULES "Kilojoules"
|
||||
IDS_ENERGY_KILOWATT_HOURS "Kilowatt hours"
|
||||
IDS_ENERGY_NUTRITION_CALORIES "Nutrition calories"
|
||||
IDS_ENERGY_TH_CALORIES "Thermochemical calorie"
|
||||
IDS_ENERGY_15_C_CALORIES "15 ^C êàëîðèè"
|
||||
IDS_ENERGY_ERGS "Åðãîâå"
|
||||
IDS_ENERGY_IT_CALORIES "Ìåæäóíàðîäíè òàáëè÷íè êàëîðèè"
|
||||
IDS_ENERGY_JOULES "Äæàóëè"
|
||||
IDS_ENERGY_KILOJOULES "Êèëîäæàóëè"
|
||||
IDS_ENERGY_KILOWATT_HOURS "Êèëîâàò/ ÷àñîâå"
|
||||
IDS_ENERGY_NUTRITION_CALORIES "Õðàíèòåëíè êàëîðèè"
|
||||
IDS_ENERGY_TH_CALORIES "Òîïëèííè êàëîðèè"
|
||||
END
|
||||
|
||||
// TYPES OF LENGTHS
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_LENGTH_ANGSTROMS "Angstroms"
|
||||
IDS_LENGTH_ANGSTROMS "Àíãñòðüîìè"
|
||||
IDS_LENGTH_ASTRONOMILA_UNITS "Astronomila units"
|
||||
IDS_LENGTH_BARLEYCORNS "Barleycorns"
|
||||
IDS_LENGTH_CENTIMETERS "Centimeters"
|
||||
IDS_LENGTH_CHAINS_UK "Chains (UK)"
|
||||
IDS_LENGTH_BARLEYCORNS "Å÷åìè÷åíè çúðíà"
|
||||
IDS_LENGTH_CENTIMETERS "Ñàíòèìåòðè"
|
||||
IDS_LENGTH_CHAINS_UK "Âåðèãè (ÎÊ)"
|
||||
IDS_LENGTH_CHI "Chi"
|
||||
IDS_LENGTH_CHOU "Chou"
|
||||
IDS_LENGTH_CHR "Chr"
|
||||
IDS_LENGTH_CUN "Cun"
|
||||
IDS_LENGTH_FATHOMS "Fathoms"
|
||||
IDS_LENGTH_FATHOMS_HUNGARY "Fathoms (Hungary)"
|
||||
IDS_LENGTH_FEET "Feet"
|
||||
IDS_LENGTH_FURLONGS "Furlongs"
|
||||
IDS_LENGTH_FATHOMS "Ñàæåíè"
|
||||
IDS_LENGTH_FATHOMS_HUNGARY "Ñàæåíè (óíãàðñêè)"
|
||||
IDS_LENGTH_FEET "Ñòúïêè"
|
||||
IDS_LENGTH_FURLONGS "Áðàçäè"
|
||||
IDS_LENGTH_GAN "Gan"
|
||||
IDS_LENGTH_HANDS "Hands"
|
||||
IDS_LENGTH_HANDS "Äëàíè"
|
||||
IDS_LENGTH_HUNH "Hunh"
|
||||
IDS_LENGTH_INCHES "Inches"
|
||||
IDS_LENGTH_INCHES "Öîëîâå"
|
||||
IDS_LENGTH_JA "Ja"
|
||||
IDS_LENGTH_JEONG "Jeong"
|
||||
IDS_LENGTH_KABIET "Kabiet"
|
||||
IDS_LENGTH_KEN "Ken"
|
||||
IDS_LENGTH_KEUB "Keub"
|
||||
IDS_LENGTH_KILOMETERS "Kilometers"
|
||||
IDS_LENGTH_KILOMETERS "Êèëîìåòðè"
|
||||
IDS_LENGTH_LAR "Lar"
|
||||
IDS_LENGTH_LIGHT_YEARS "Light years"
|
||||
IDS_LENGTH_LIGHT_YEARS "Ñâåòëèííè ãîäèíè"
|
||||
IDS_LENGTH_LINKS_UK "Links (UK)"
|
||||
IDS_LENGTH_METERS "Meters"
|
||||
IDS_LENGTH_MILES "Miles"
|
||||
IDS_LENGTH_MILLIMETERS "Millimeters"
|
||||
IDS_LENGTH_NAUTICAL_MILES "Nautical miles"
|
||||
IDS_LENGTH_METERS "Ìåòðè"
|
||||
IDS_LENGTH_MILES "Ìèëè"
|
||||
IDS_LENGTH_MILLIMETERS "Ìèëèìåòðè"
|
||||
IDS_LENGTH_NAUTICAL_MILES "Ìîðñêè ìèëè"
|
||||
IDS_LENGTH_NIEU "Nieu"
|
||||
IDS_LENGTH_PARSECS "Parsecs"
|
||||
IDS_LENGTH_PICAS "Picas"
|
||||
IDS_LENGTH_RI_JAPAN "Ri (Japan)"
|
||||
IDS_LENGTH_RI_KOREA "Ri (Korea)"
|
||||
IDS_LENGTH_PARSECS "Ïàðñåöè"
|
||||
IDS_LENGTH_PICAS "Äâàíàäåñåòêè (ïèêè)"
|
||||
IDS_LENGTH_RI_JAPAN "Ri (ÿïîíñêè)"
|
||||
IDS_LENGTH_RI_KOREA "Ri (êîðåéñêè)"
|
||||
IDS_LENGTH_SAWK "Sawk"
|
||||
IDS_LENGTH_SEN "Sen"
|
||||
IDS_LENGTH_SHAKU "Shaku"
|
||||
|
@ -584,7 +584,7 @@ BEGIN
|
|||
IDS_LENGTH_SUN "Sun"
|
||||
IDS_LENGTH_TSUEN "Tsuen"
|
||||
IDS_LENGTH_VA "Va"
|
||||
IDS_LENGTH_YARDS "Yards"
|
||||
IDS_LENGTH_YARDS "ßðäîâå"
|
||||
IDS_LENGTH_YOTE "Yote"
|
||||
IDS_LENGTH_ZHANG "Zhang"
|
||||
END
|
||||
|
@ -592,74 +592,74 @@ END
|
|||
// TYPES OF POWERS
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_POWER_HORSEPOWER "Horsepower"
|
||||
IDS_POWER_KILOWATTS "Kilowatts"
|
||||
IDS_POWER_MEGAWATTS "Megawatts"
|
||||
IDS_POWER_WATTS "Watts"
|
||||
IDS_POWER_HORSEPOWER "Êîíñêè ñèëè"
|
||||
IDS_POWER_KILOWATTS "Êèëîâàòîâå"
|
||||
IDS_POWER_MEGAWATTS "Ìåãàâàòîâå"
|
||||
IDS_POWER_WATTS "Âàòîâå"
|
||||
END
|
||||
|
||||
// TYPE OF PRESSURES
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_PRESSURE_ATMOSPHERES "Atmospheres"
|
||||
IDS_PRESSURE_BARS "Bars"
|
||||
IDS_PRESSURE_MM_OF_MERCURY "Millimeters of mercury"
|
||||
IDS_PRESSURE_PASCALS "Pascals"
|
||||
IDS_PRESSURE_PSI "Pounds-force per square inch"
|
||||
IDS_PRESSURE_ATMOSPHERES "Àòìîñôåðè"
|
||||
IDS_PRESSURE_BARS "Áàðîâå"
|
||||
IDS_PRESSURE_MM_OF_MERCURY "Ìèëèìåòðè æèâà÷åí ñòúëá"
|
||||
IDS_PRESSURE_PASCALS "Ïàñêàëè"
|
||||
IDS_PRESSURE_PSI "Ïàóíäîâå íà êâàäðàòåí öîë"
|
||||
END
|
||||
|
||||
// TYPES OF TEMPERATURES
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_TEMPERATURE_CELSIUS "Celsius"
|
||||
IDS_TEMPERATURE_FAHRENHEIT "Fahrenheit"
|
||||
IDS_TEMPERATURE_KELVIN "Kelvin"
|
||||
IDS_TEMPERATURE_RANKINE "Rankine"
|
||||
IDS_TEMPERATURE_CELSIUS "Öåëçèé"
|
||||
IDS_TEMPERATURE_FAHRENHEIT "Ôàðåíõàéò"
|
||||
IDS_TEMPERATURE_KELVIN "Êåëâèí"
|
||||
IDS_TEMPERATURE_RANKINE "Ðàíêèí"
|
||||
END
|
||||
|
||||
// TYPES OF VELOCITIES
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_VELOCITY_FEET_HOUR "Feet/hour"
|
||||
IDS_VELOCITY_KILOMETERS_HOUR "Kilometers/hour"
|
||||
IDS_VELOCITY_KNOTS "Knots"
|
||||
IDS_VELOCITY_MACH "Mach"
|
||||
IDS_VELOCITY_METERS_SECOND "Meters/second"
|
||||
IDS_VELOCITY_MILES_HOUR "Miles/hour"
|
||||
IDS_VELOCITY_FEET_HOUR "Ñòúïêè/÷àñ"
|
||||
IDS_VELOCITY_KILOMETERS_HOUR "Êèëîìåòðè/÷àñ"
|
||||
IDS_VELOCITY_KNOTS "Âúçëè"
|
||||
IDS_VELOCITY_MACH "Ìàõîâå"
|
||||
IDS_VELOCITY_METERS_SECOND "Ìåòðè/ñåêóíäà"
|
||||
IDS_VELOCITY_MILES_HOUR "Ìèëè/÷àñ"
|
||||
END
|
||||
|
||||
// TYPES OF VOLUMES
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_VOLUME_BARRELS_UK "Barrels (UK)"
|
||||
IDS_VOLUME_BARRELS_OIL "Barrels oil"
|
||||
IDS_VOLUME_BARRELS_UK "Áú÷âè (áàðåëè) (ÎÊ)"
|
||||
IDS_VOLUME_BARRELS_OIL "Ïåòðîëíè áú÷âè"
|
||||
IDS_VOLUME_BUN "Bun"
|
||||
IDS_VOLUME_BUSHELS_UK "Bushels (UK)"
|
||||
IDS_VOLUME_BUSHELS_US "Bushels (US)"
|
||||
IDS_VOLUME_CUBIC_CENTIMETERS "Cubic centimeters"
|
||||
IDS_VOLUME_CUBIC_FEET "Cubic feet"
|
||||
IDS_VOLUME_CUBIC_INCHES "Cubic inches"
|
||||
IDS_VOLUME_CUBIC_METERS "Cubic meters"
|
||||
IDS_VOLUME_CUBIC_YARDS "Cubic yards"
|
||||
IDS_VOLUME_BUSHELS_UK "Áóøåëè (ÎÊ)"
|
||||
IDS_VOLUME_BUSHELS_US "Áóøåëè (ÑÀÙ)"
|
||||
IDS_VOLUME_CUBIC_CENTIMETERS "Êóáè÷íè ñàíòèìåòðè"
|
||||
IDS_VOLUME_CUBIC_FEET "Êóáè÷íè ñòúïêè"
|
||||
IDS_VOLUME_CUBIC_INCHES "Êóáè÷íè öîëîâå"
|
||||
IDS_VOLUME_CUBIC_METERS "Êóáè÷íè ìåòðè"
|
||||
IDS_VOLUME_CUBIC_YARDS "Êóáè÷íè ÿðäîâå"
|
||||
IDS_VOLUME_DOE "Doe"
|
||||
IDS_VOLUME_FLUID_OUNCES_UK "Fluid ounces (UK)"
|
||||
IDS_VOLUME_FLUID_OUNCES_US "Fluid ounces (US)"
|
||||
IDS_VOLUME_GALLONS_UK "Gallons (UK)"
|
||||
IDS_VOLUME_GALLONS_DRY_US "Gallons, dry (US)"
|
||||
IDS_VOLUME_GALLONS_LIQUID_US "Gallons, liquid (US)"
|
||||
IDS_VOLUME_FLUID_OUNCES_UK "Òå÷íè óíöèè (ÎÊ)"
|
||||
IDS_VOLUME_FLUID_OUNCES_US "Òå÷íè óíöèè (ÑÀÙ)"
|
||||
IDS_VOLUME_GALLONS_UK "Ãàëîíè (UK)"
|
||||
IDS_VOLUME_GALLONS_DRY_US "Ãàëîíè, ñóõè (ÑÀÙ)"
|
||||
IDS_VOLUME_GALLONS_LIQUID_US "Ãàëîíè, òå÷íè (ÑÀÙ)"
|
||||
IDS_VOLUME_GOU "Gou"
|
||||
IDS_VOLUME_HOP "Hop"
|
||||
IDS_VOLUME_ICCE "Icce"
|
||||
IDS_VOLUME_KWIAN "Kwian"
|
||||
IDS_VOLUME_LITERS "Liters"
|
||||
IDS_VOLUME_LITERS "Ëèòðè"
|
||||
IDS_VOLUME_MAL "Mal"
|
||||
IDS_VOLUME_MILLILITERS "Milliliters"
|
||||
IDS_VOLUME_PINTS_UK "Pints (UK)"
|
||||
IDS_VOLUME_PINTS_DRY_US "Pints, dry (US)"
|
||||
IDS_VOLUME_PINTS_LIQUID_US "Pints, liquid (US)"
|
||||
IDS_VOLUME_QUARTS_UK "Quarts (UK)"
|
||||
IDS_VOLUME_QUARTS_DRY_US "Quarts, dry (US)"
|
||||
IDS_VOLUME_QUARTS_LIQUID_US "Quarts, liquid (US)"
|
||||
IDS_VOLUME_MILLILITERS "Ìèëèìåòðè"
|
||||
IDS_VOLUME_PINTS_UK "Ïèíòè (ÎÊ)"
|
||||
IDS_VOLUME_PINTS_DRY_US "Ïèíòè, ñóõè (ÑÀÙ)"
|
||||
IDS_VOLUME_PINTS_LIQUID_US "Ïèíòè, òå÷íè (ÑÀÙ)"
|
||||
IDS_VOLUME_QUARTS_UK "Êâàðòè (ÎÊ)"
|
||||
IDS_VOLUME_QUARTS_DRY_US "Êâàðòè, ñóõè (ÑÀÙ)"
|
||||
IDS_VOLUME_QUARTS_LIQUID_US "Êâàðòè, òå÷íè (ÑÀÙ)"
|
||||
IDS_VOLUME_SEKI "Seki"
|
||||
IDS_VOLUME_SYOU "Syou"
|
||||
IDS_VOLUME_TANANLOUNG "Tananloung"
|
||||
|
@ -671,29 +671,29 @@ END
|
|||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_WEIGHT_BAHT "Baht"
|
||||
IDS_WEIGHT_CARATS "Carats"
|
||||
IDS_WEIGHT_CARATS "Êàðàòè"
|
||||
IDS_WEIGHT_CHUNG "Chung"
|
||||
IDS_WEIGHT_DON "Don"
|
||||
IDS_WEIGHT_GEUN "Geun"
|
||||
IDS_WEIGHT_GRAMS "Grams"
|
||||
IDS_WEIGHT_GWAN "Gwan"
|
||||
IDS_WEIGHT_HARB "Harb"
|
||||
IDS_WEIGHT_JIN_CHINA "Jin (China)"
|
||||
IDS_WEIGHT_JIN_TAIWAN "Jin (Taiwan)"
|
||||
IDS_WEIGHT_JIN_CHINA "Äæèíîâå (Êèòàé)"
|
||||
IDS_WEIGHT_JIN_TAIWAN "Äæèíîâå (Òàéâàí)"
|
||||
IDS_WEIGHT_KAN "Kan"
|
||||
IDS_WEIGHT_KILOGRAMS "Kilograms"
|
||||
IDS_WEIGHT_KILOGRAMS "Êèëîãðàìè"
|
||||
IDS_WEIGHT_KIN "Kin"
|
||||
IDS_WEIGHT_LIANG_CHINA "Liang (China)"
|
||||
IDS_WEIGHT_LIANG_TAIWAN "Liang (Taiwan)"
|
||||
IDS_WEIGHT_MONME "Monme"
|
||||
IDS_WEIGHT_OUNCES_AVOIRDUPOIS "Ounces, avoirdupois"
|
||||
IDS_WEIGHT_OUNCES_TROY "Ounces, troy"
|
||||
IDS_WEIGHT_POUNDS "Pounds"
|
||||
IDS_WEIGHT_QUINTAL_METRIC "Quintal (metric)"
|
||||
IDS_WEIGHT_OUNCES_AVOIRDUPOIS "Óíöèè, avoirdupois"
|
||||
IDS_WEIGHT_OUNCES_TROY "Óíöèè, òðîé"
|
||||
IDS_WEIGHT_POUNDS "Ôóíòîâå"
|
||||
IDS_WEIGHT_QUINTAL_METRIC "Öåíòíåðè (ìåòðè÷íè)"
|
||||
IDS_WEIGHT_SALOUNG "Saloung"
|
||||
IDS_WEIGHT_STONES "Stones"
|
||||
IDS_WEIGHT_STONES "Êàìúíè"
|
||||
IDS_WEIGHT_TAMLUNG "Tamlung"
|
||||
IDS_WEIGHT_TONNES "Tonnes"
|
||||
IDS_WEIGHT_TONS_UK "Tons (UK)"
|
||||
IDS_WEIGHT_TONS_US "Tons (US)"
|
||||
IDS_WEIGHT_TONNES "Òîíîâå"
|
||||
IDS_WEIGHT_TONS_UK "Òîíîâå (ÎÊ)"
|
||||
IDS_WEIGHT_TONS_US "Òîíîâå (ÑÀÙ)"
|
||||
END
|
||||
|
|
|
@ -9,14 +9,10 @@ MENU IDR_MENU_SCIENTIFIC_1
|
|||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "",IDC_STATIC,4,16,132,21
|
||||
CONTROL "Heks",IDC_RADIO_HEX,"Button",BS_AUTORADIOBUTTON,8,24,29,
|
||||
10
|
||||
CONTROL "Des",IDC_RADIO_DEC,"Button",BS_AUTORADIOBUTTON,40,24,29,
|
||||
10
|
||||
CONTROL "Okt",IDC_RADIO_OCT,"Button",BS_AUTORADIOBUTTON,72,24,27,
|
||||
10
|
||||
CONTROL "Bin",IDC_RADIO_BIN,"Button",BS_AUTORADIOBUTTON,100,24,
|
||||
26,10
|
||||
CONTROL "Heks",IDC_RADIO_HEX,"Button",BS_AUTORADIOBUTTON,8,24,29,10
|
||||
CONTROL "Des",IDC_RADIO_DEC,"Button",BS_AUTORADIOBUTTON,40,24,29,10
|
||||
CONTROL "Okt",IDC_RADIO_OCT,"Button",BS_AUTORADIOBUTTON,72,24,27,10
|
||||
CONTROL "Bin",IDC_RADIO_BIN,"Button",BS_AUTORADIOBUTTON,100,24,26,10
|
||||
GROUPBOX "",IDC_STATIC,4,36,76,21
|
||||
CONTROL "Inv",IDC_CHECK_INV,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,8,44,26,10
|
||||
|
@ -150,7 +146,7 @@ BEGIN
|
|||
CONTROL "Radianer",IDC_RADIO_RAD,"Button",BS_AUTORADIOBUTTON,192,
|
||||
24,42,10
|
||||
CONTROL "Gradienter",IDC_RADIO_GRAD,"Button",BS_AUTORADIOBUTTON,
|
||||
236,24,44,10
|
||||
236,24,48,10
|
||||
PUSHBUTTON "C",IDC_BUTTON_CANC,272,40,40,17,BS_CENTER | BS_VCENTER |
|
||||
BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
|
||||
PUSHBUTTON "CE",IDC_BUTTON_CE,228,40,40,17,BS_CENTER | BS_VCENTER |
|
||||
|
@ -229,6 +225,84 @@ BEGIN
|
|||
DEFPUSHBUTTON "",IDC_BUTTON_FOCUS,0,0,5,5, NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
|
||||
STYLE WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "ReactOS Kalkulator"
|
||||
MENU IDR_MENU_STANDARD
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "Konverter",IDC_BUTTON_CONVERT,35,105,76,17
|
||||
COMBOBOX IDC_COMBO_CATEGORY,4,31,140,168,CBS_DROPDOWNLIST |
|
||||
WS_VSCROLL | WS_TABSTOP | CBS_SORT
|
||||
LTEXT "Kategori:",IDC_STATIC,4,20,56,8
|
||||
COMBOBOX IDC_COMBO_FROM,4,60,140,168,CBS_DROPDOWNLIST |
|
||||
WS_VSCROLL | WS_TABSTOP | CBS_SORT
|
||||
LTEXT "Konverter fra:",IDC_STATIC,4,49,56,8
|
||||
COMBOBOX IDC_COMBO_TO,4,87,140,168,CBS_DROPDOWNLIST | WS_VSCROLL |
|
||||
WS_TABSTOP | CBS_SORT
|
||||
LTEXT "Konverter til:",IDC_STATIC,4,76,56,8
|
||||
CONTROL "C",IDC_BUTTON_CANC,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,276,24,40,17
|
||||
CONTROL "CE",IDC_BUTTON_CE,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,232,24,40,17
|
||||
CONTROL "Tilbake",IDC_BUTTON_BACK,"Button",BS_OWNERDRAW |
|
||||
BS_CENTER | BS_VCENTER | BS_NOTIFY | WS_TABSTOP,188,24,
|
||||
40,17
|
||||
RTEXT "",IDC_TEXT_OUTPUT,4,4,312,12,SS_CENTERIMAGE,
|
||||
WS_EX_CLIENTEDGE
|
||||
CONTROL "7",IDC_BUTTON_7,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,188,48,24,17
|
||||
CONTROL "4",IDC_BUTTON_4,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,188,67,24,17
|
||||
CONTROL "1",IDC_BUTTON_1,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,188,86,24,17
|
||||
CONTROL "0",IDC_BUTTON_0,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,188,105,24,17
|
||||
CONTROL "8",IDC_BUTTON_8,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,214,48,24,17
|
||||
CONTROL "5",IDC_BUTTON_5,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,214,67,24,17
|
||||
CONTROL "2",IDC_BUTTON_2,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,214,86,24,17
|
||||
CONTROL "+/-",IDC_BUTTON_SIGN,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,214,105,24,17
|
||||
CONTROL "9",IDC_BUTTON_9,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,240,48,24,17
|
||||
CONTROL "6",IDC_BUTTON_6,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,240,67,24,17
|
||||
CONTROL "3",IDC_BUTTON_3,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,240,86,24,17
|
||||
CONTROL ",",IDC_BUTTON_DOT,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,240,105,24,17
|
||||
CONTROL "/",IDC_BUTTON_DIV,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,266,48,24,17
|
||||
CONTROL "*",IDC_BUTTON_MULT,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,266,67,24,17
|
||||
CONTROL "-",IDC_BUTTON_SUB,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,266,86,24,17
|
||||
CONTROL "+",IDC_BUTTON_ADD,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,266,105,24,17
|
||||
CONTROL "Sqrt",IDC_BUTTON_SQRT,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,292,48,24,17
|
||||
CONTROL "%",IDC_BUTTON_PERCENT,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,292,67,24,17
|
||||
CONTROL "1/x",IDC_BUTTON_RX,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,292,86,24,17
|
||||
CONTROL "=",IDC_BUTTON_EQU,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,292,105,24,17
|
||||
CTEXT "",IDC_TEXT_MEMORY,152,24,24,17,SS_CENTERIMAGE,
|
||||
WS_EX_CLIENTEDGE
|
||||
CONTROL "MC",IDC_BUTTON_MC,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,152,48,24,17
|
||||
CONTROL "MR",IDC_BUTTON_MR,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,152,67,24,17
|
||||
CONTROL "MS",IDC_BUTTON_MS,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,152,86,24,17
|
||||
CONTROL "M+",IDC_BUTTON_MP,"Button",BS_OWNERDRAW | BS_CENTER |
|
||||
BS_VCENTER | BS_NOTIFY | WS_TABSTOP,152,105,24,17
|
||||
DEFPUSHBUTTON "",IDC_BUTTON_FOCUS,0,0,5,5,NOT WS_VISIBLE
|
||||
END
|
||||
|
||||
IDD_DIALOG_ABOUT DIALOGEX DISCARDABLE 0, 0, 264, 169
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Om ReactOS kalkulator"
|
||||
|
@ -321,7 +395,7 @@ BEGIN
|
|||
MENUITEM "Word\tF3", IDM_VIEW_WORD, CHECKED
|
||||
MENUITEM "Tegn\tF4", IDM_VIEW_BYTE, CHECKED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Group digits", IDM_VIEW_GROUP, CHECKED
|
||||
MENUITEM "Digital gruppe", IDM_VIEW_GROUP, CHECKED
|
||||
END
|
||||
POPUP "Hjelp"
|
||||
BEGIN
|
||||
|
@ -363,3 +437,229 @@ BEGIN
|
|||
IDS_QUICKHELP "Rask hjelp"
|
||||
END
|
||||
|
||||
// types of conversion
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_CONV_AREA "Område"
|
||||
IDS_CONV_CONSUMPTION "Forbruk (maskin)"
|
||||
IDS_CONV_CURRENCY "Valuta"
|
||||
IDS_CONV_ENERGY "Energi"
|
||||
IDS_CONV_LENGTH "Lengde"
|
||||
IDS_CONV_POWER "Strøm"
|
||||
IDS_CONV_PRESSURE "Trykk"
|
||||
IDS_CONV_TEMPERATURE "Temperatur"
|
||||
IDS_CONV_VELOCITY "Hastighet"
|
||||
IDS_CONV_VOLUME "Volum"
|
||||
IDS_CONV_WEIGHT "Vekt"
|
||||
END
|
||||
|
||||
// TYPES OF AREAS
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_AREA_ACRES "Acres"
|
||||
IDS_AREA_ACRES_BRAZIL "Acres (Brazil)"
|
||||
IDS_AREA_ACRES_FRANCE "Acres (France)"
|
||||
IDS_AREA_ACRES_SCOTS "Acres (Scots)"
|
||||
IDS_AREA_ACRES_US "Acres (US)"
|
||||
IDS_AREA_ARES "Ares"
|
||||
IDS_AREA_CHOU "Chou"
|
||||
IDS_AREA_DANBO "Danbo"
|
||||
IDS_AREA_HECTARES "Hectares"
|
||||
IDS_AREA_JEONGBO "Jeongbo"
|
||||
IDS_AREA_MORGEN_HUNGARY "Morgen (Hungary)"
|
||||
IDS_AREA_MU "Mu"
|
||||
IDS_AREA_PING "Ping"
|
||||
IDS_AREA_PYEONG "Pyeong"
|
||||
IDS_AREA_PYEONGBANGJA "Pyeongbangja"
|
||||
IDS_AREA_RAI "Rai"
|
||||
IDS_AREA_SE "Se"
|
||||
IDS_AREA_SQUARE_CENTIMETERS "Square centimeters"
|
||||
IDS_AREA_SQUARE_CHR "Square chr"
|
||||
IDS_AREA_SQUARE_FATHOMS "Square fathoms"
|
||||
IDS_AREA_SQUARE_FATHOMS_HUNGARY "Square fathoms (Hungary)"
|
||||
IDS_AREA_SQUARE_FEET "Square feet"
|
||||
IDS_AREA_SQUARE_INCHES "Square inches"
|
||||
IDS_AREA_SQUARE_KILOMETERS "Square kilometers"
|
||||
IDS_AREA_SQUARE_LAR "Square lar"
|
||||
IDS_AREA_SQUARE_METER "Square meter"
|
||||
IDS_AREA_SQUARE_MILES "Square miles"
|
||||
IDS_AREA_SQUARE_MILLIMETERS "Square millimeters"
|
||||
IDS_AREA_SQUARE_SHAKU "Square shaku"
|
||||
IDS_AREA_SQUARE_TSUEN "Square tsuen"
|
||||
IDS_AREA_SQUARE_VA "Square va"
|
||||
IDS_AREA_SQUARE_YARD "Square yard"
|
||||
IDS_AREA_TAN "Tan"
|
||||
IDS_AREA_TSUBO "Tsubo"
|
||||
END
|
||||
|
||||
// TYPES OF COMSUMPTIONS
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_CONSUMPTION_KM_PER_L "Kilometer/liter"
|
||||
IDS_CONSUMPTION_L_PER_100_KM "Liters/100 kilometers"
|
||||
IDS_CONSUMPTION_MILES_GALLON_UK "Miles/gallon (UK)"
|
||||
IDS_CONSUMPTION_MILES_GALLON_US "Miles/gallon (US)"
|
||||
END
|
||||
|
||||
// TYPES OF CURRENCIES
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_CURRENCY_AUSTRIAN_SCHILLING "Austrian schilling"
|
||||
IDS_CURRENCY_BELGIAN_FRANC "Belgian franc"
|
||||
IDS_CURRENCY_CYPRIOT_POUND "Cypriot pound"
|
||||
IDS_CURRENCY_DEUTSCHE_MARK "Deutsche Mark"
|
||||
IDS_CURRENCY_DUTCH_GUILDER "Dutch guilder"
|
||||
IDS_CURRENCY_EURO "Euro"
|
||||
IDS_CURRENCY_FINNISH_MARKKA "Finnish markka"
|
||||
IDS_CURRENCY_FRENCH_FRANC "French franc"
|
||||
IDS_CURRENCY_GREEK_DRACHMA "Greek Drachma"
|
||||
IDS_CURRENCY_IRISH_POUND "Irish pound"
|
||||
IDS_CURRENCY_ITALIAN_LIRA "Italian lira"
|
||||
IDS_CURRENCY_LUXEMBOURG_FRANC "Luxembourg franc"
|
||||
IDS_CURRENCY_MALTESE_LIRA "Maltese lira"
|
||||
IDS_CURRENCY_PORTOGUESE_ESCUDO "Portoguese escudo"
|
||||
IDS_CURRENCY_SLOVENIAN_TOLAR "Slovenian tolar"
|
||||
IDS_CURRENCY_SPANISH_PESETA "Spanish peseta"
|
||||
END
|
||||
|
||||
// TYPES OF ENERGIES
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_ENERGY_15_C_CALORIES "15 ^C calories"
|
||||
IDS_ENERGY_ERGS "Ergs"
|
||||
IDS_ENERGY_IT_CALORIES "International Table calories"
|
||||
IDS_ENERGY_JOULES "Joules"
|
||||
IDS_ENERGY_KILOJOULES "Kilojoules"
|
||||
IDS_ENERGY_KILOWATT_HOURS "Kilowatt hours"
|
||||
IDS_ENERGY_NUTRITION_CALORIES "Nutrition calories"
|
||||
IDS_ENERGY_TH_CALORIES "Thermochemical calorie"
|
||||
END
|
||||
|
||||
// TYPES OF LENGTHS
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_LENGTH_ANGSTROMS "Angstroms"
|
||||
IDS_LENGTH_ASTRONOMILA_UNITS "Astronomila units"
|
||||
IDS_LENGTH_BARLEYCORNS "Barleycorns"
|
||||
IDS_LENGTH_CENTIMETERS "Centimeters"
|
||||
IDS_LENGTH_CHAINS_UK "Chains (UK)"
|
||||
IDS_LENGTH_CHI "Chi"
|
||||
IDS_LENGTH_CHOU "Chou"
|
||||
IDS_LENGTH_CHR "Chr"
|
||||
IDS_LENGTH_CUN "Cun"
|
||||
IDS_LENGTH_FATHOMS "Fathoms"
|
||||
IDS_LENGTH_FATHOMS_HUNGARY "Fathoms (Hungary)"
|
||||
IDS_LENGTH_FEET "Feet"
|
||||
IDS_LENGTH_FURLONGS "Furlongs"
|
||||
IDS_LENGTH_GAN "Gan"
|
||||
IDS_LENGTH_HANDS "Hands"
|
||||
IDS_LENGTH_HUNH "Hunh"
|
||||
IDS_LENGTH_INCHES "Inches"
|
||||
IDS_LENGTH_JA "Ja"
|
||||
IDS_LENGTH_JEONG "Jeong"
|
||||
IDS_LENGTH_KABIET "Kabiet"
|
||||
IDS_LENGTH_KEN "Ken"
|
||||
IDS_LENGTH_KEUB "Keub"
|
||||
IDS_LENGTH_KILOMETERS "Kilometers"
|
||||
IDS_LENGTH_LAR "Lar"
|
||||
IDS_LENGTH_LIGHT_YEARS "Light years"
|
||||
IDS_LENGTH_LINKS_UK "Links (UK)"
|
||||
IDS_LENGTH_METERS "Meters"
|
||||
IDS_LENGTH_MILES "Miles"
|
||||
IDS_LENGTH_MILLIMETERS "Millimeters"
|
||||
IDS_LENGTH_NAUTICAL_MILES "Nautical miles"
|
||||
IDS_LENGTH_NIEU "Nieu"
|
||||
IDS_LENGTH_PARSECS "Parsecs"
|
||||
IDS_LENGTH_PICAS "Picas"
|
||||
IDS_LENGTH_RI_JAPAN "Ri (Japan)"
|
||||
IDS_LENGTH_RI_KOREA "Ri (Korea)"
|
||||
IDS_LENGTH_SAWK "Sawk"
|
||||
IDS_LENGTH_SEN "Sen"
|
||||
IDS_LENGTH_SHAKU "Shaku"
|
||||
IDS_LENGTH_SPAN "Span"
|
||||
IDS_LENGTH_SUN "Sun"
|
||||
IDS_LENGTH_TSUEN "Tsuen"
|
||||
IDS_LENGTH_VA "Va"
|
||||
IDS_LENGTH_YARDS "Yards"
|
||||
IDS_LENGTH_YOTE "Yote"
|
||||
IDS_LENGTH_ZHANG "Zhang"
|
||||
END
|
||||
|
||||
// TYPES OF POWERS
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_POWER_HORSEPOWER "hestekrefter"
|
||||
IDS_POWER_KILOWATTS "Kilowatt"
|
||||
IDS_POWER_MEGAWATTS "Megawatt"
|
||||
IDS_POWER_WATTS "Watt"
|
||||
END
|
||||
|
||||
// TYPE OF PRESSURES
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_PRESSURE_ATMOSPHERES "Atmosfæretrykk"
|
||||
IDS_PRESSURE_BARS "Bars"
|
||||
IDS_PRESSURE_MM_OF_MERCURY "Millimeters of mercury"
|
||||
IDS_PRESSURE_PASCALS "Pascals"
|
||||
IDS_PRESSURE_PSI "Pounds-force per square inch"
|
||||
END
|
||||
|
||||
// TYPES OF TEMPERATURES
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_TEMPERATURE_CELSIUS "Celsius"
|
||||
IDS_TEMPERATURE_FAHRENHEIT "Fahrenheit"
|
||||
IDS_TEMPERATURE_KELVIN "Kelvin"
|
||||
IDS_TEMPERATURE_RANKINE "Rankine"
|
||||
END
|
||||
|
||||
// TYPES OF VELOCITIES
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_VELOCITY_FEET_HOUR "Feet/time"
|
||||
IDS_VELOCITY_KILOMETERS_HOUR "kilometer/time"
|
||||
IDS_VELOCITY_KNOTS "Knot"
|
||||
IDS_VELOCITY_MACH "Mach"
|
||||
IDS_VELOCITY_METERS_SECOND "Meter/sekunder"
|
||||
IDS_VELOCITY_MILES_HOUR "Mil/time"
|
||||
END
|
||||
|
||||
// TYPES OF VOLUMES
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_VOLUME_BARRELS_UK "Barrels (UK)"
|
||||
IDS_VOLUME_BARRELS_OIL "Barrels oil"
|
||||
IDS_VOLUME_BUN "Bun"
|
||||
IDS_VOLUME_BUSHELS_UK "Bushels (UK)"
|
||||
IDS_VOLUME_BUSHELS_US "Bushels (US)"
|
||||
IDS_VOLUME_CUBIC_CENTIMETERS "Cubic centimeters"
|
||||
IDS_VOLUME_CUBIC_FEET "Cubic feet"
|
||||
IDS_VOLUME_CUBIC_INCHES "Cubic inches"
|
||||
IDS_VOLUME_CUBIC_METERS "Cubic meters"
|
||||
IDS_VOLUME_CUBIC_YARDS "Cubic yards"
|
||||
IDS_VOLUME_DOE "Doe"
|
||||
IDS_VOLUME_FLUID_OUNCES_UK "Fluid ounces (UK)"
|
||||
IDS_VOLUME_FLUID_OUNCES_US "Fluid ounces (US)"
|
||||
IDS_VOLUME_GALLONS_UK "Gallons (UK)"
|
||||
IDS_VOLUME_GALLONS_DRY_US "Gallons, dry (US)"
|
||||
IDS_VOLUME_GALLONS_LIQUID_US "Gallons, liquid (US)"
|
||||
IDS_VOLUME_GOU "Gou"
|
||||
IDS_VOLUME_HOP "Hop"
|
||||
IDS_VOLUME_ICCE "Icce"
|
||||
IDS_VOLUME_KWIAN "Kwian"
|
||||
IDS_VOLUME_LITERS "Liters"
|
||||
IDS_VOLUME_MAL "Mal"
|
||||
IDS_VOLUME_MILLILITERS "Milliliters"
|
||||
IDS_VOLUME_PINTS_UK "Pints (UK)"
|
||||
IDS_VOLUME_PINTS_DRY_US "Pints, dry (US)"
|
||||
IDS_VOLUME_PINTS_LIQUID_US "Pints, liquid (US)"
|
||||
IDS_VOLUME_QUARTS_UK "Quarts (UK)"
|
||||
IDS_VOLUME_QUARTS_DRY_US "Quarts, dry (US)"
|
||||
IDS_VOLUME_QUARTS_LIQUID_US "Quarts, liquid (US)"
|
||||
IDS_VOLUME_SEKI "Seki"
|
||||
IDS_VOLUME_SYOU "Syou"
|
||||
IDS_VOLUME_TANANLOUNG "Tananloung"
|
||||
IDS_VOLUME_TANG "Tang"
|
||||
IDS_VOLUME_TO "To"
|
||||
END
|
||||
|
||||
|
|
|
@ -310,6 +310,8 @@ void run_operator(calc_node_t *result,
|
|||
operator_list[operation].op_p(&dc, &da, &db);
|
||||
} else
|
||||
operator_list[operation].op_f(&dc, &da, &db);
|
||||
if (_finite(dc.f) == 0)
|
||||
calc.is_nan = TRUE;
|
||||
} else {
|
||||
operator_list[operation].op_i(&dc, &da, &db);
|
||||
/* apply final limitator to result */
|
||||
|
@ -331,7 +333,6 @@ static void evalStack(calc_number_t *number)
|
|||
stack_node_t *op, ip;
|
||||
unsigned int prec;
|
||||
|
||||
percent_mode = FALSE;
|
||||
op = pop();
|
||||
ip = *op;
|
||||
prec = operator_list[ip.node.operation].prec;
|
||||
|
@ -373,6 +374,9 @@ int exec_infix2postfix(calc_number_t *number, unsigned int func)
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (func == RPN_OPERATOR_PERCENT)
|
||||
percent_mode = TRUE;
|
||||
|
||||
tmp.node.number = *number;
|
||||
tmp.node.base = calc.base;
|
||||
tmp.node.operation = func;
|
||||
|
|
|
@ -311,7 +311,6 @@ static void evalStack(calc_number_t *number)
|
|||
unsigned int prec;
|
||||
|
||||
mpfr_init(ip.node.number.mf);
|
||||
percent_mode = FALSE;
|
||||
op = pop();
|
||||
node_copy(&ip, op);
|
||||
prec = operator_list[ip.node.operation].prec;
|
||||
|
@ -355,6 +354,9 @@ int exec_infix2postfix(calc_number_t *number, unsigned int func)
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (func == RPN_OPERATOR_PERCENT)
|
||||
percent_mode = TRUE;
|
||||
|
||||
mpfr_init(tmp.node.number.mf);
|
||||
rpn_copy(&tmp.node.number, number);
|
||||
tmp.node.operation = func;
|
||||
|
|
|
@ -1,3 +1,14 @@
|
|||
1.10 (20080813)
|
||||
=======================
|
||||
* Added Norvegian and Korean translations.
|
||||
* Fixed Polish and Slovak translations.
|
||||
* Fixed percent mode.
|
||||
* Fixed some unsignaled overflow errors.
|
||||
* Fixed conversion method, now scientific notation is recognized too.
|
||||
* Added compilation for UNICODE executables.
|
||||
* Plain MINGW toolchain do not support wWinMain function, so I switched to old WinMain if it is not under ReactOS' build tree.
|
||||
* Detect error if UNICODE version is launched into Win9x (avoid the lock).
|
||||
|
||||
1.09 (20080630)
|
||||
=======================
|
||||
* Fixed bug with Conversion function: "Category" type must be found like "from" and "to" because the combobox sorts its items alphabetically.
|
||||
|
|
|
@ -784,68 +784,18 @@ static void delete_stat_item(int n)
|
|||
|
||||
static char *ReadConversion(const char *formula)
|
||||
{
|
||||
unsigned int len = 256, n;
|
||||
char *str;
|
||||
char *code = NULL;
|
||||
const char *p = formula;
|
||||
char c;
|
||||
calc_number_t x;
|
||||
TCHAR buffer[SIZEOF(calc.buffer)];
|
||||
#ifdef UNICODE
|
||||
char cbuffer[SIZEOF(calc.buffer)];
|
||||
#endif
|
||||
int len = strlen(formula);
|
||||
char *str = (char *)malloc(len+3);
|
||||
|
||||
str = (char *)malloc(len);
|
||||
if (str == NULL)
|
||||
return NULL;
|
||||
|
||||
/* prepare code string */
|
||||
rpn_alloc(&x);
|
||||
convert_text2number(&x);
|
||||
prepare_rpn_result(&x,
|
||||
buffer, SIZEOF(buffer),
|
||||
calc.base);
|
||||
rpn_free(&x);
|
||||
|
||||
#ifdef UNICODE
|
||||
WideCharToMultiByte(CP_ACP, 0, buffer, -1, cbuffer, SIZEOF(cbuffer), NULL, NULL);
|
||||
#endif
|
||||
|
||||
str[0] = '(';
|
||||
n = 1;
|
||||
while (1) {
|
||||
if (code != NULL) {
|
||||
c = *code++;
|
||||
if (*code == '\0')
|
||||
code = NULL;
|
||||
} else
|
||||
c = *p++;
|
||||
memcpy(str+1, formula, len);
|
||||
str[len+1] = ')';
|
||||
str[len+2] = '\0';
|
||||
|
||||
if (c == '\0') {
|
||||
str[n++] = ')';
|
||||
if (n >= len-1) {
|
||||
str = (char *)realloc(str, len += 16);
|
||||
if (str == NULL)
|
||||
return NULL;
|
||||
}
|
||||
break;
|
||||
} else
|
||||
if (c == '$') {
|
||||
#ifdef UNICODE
|
||||
code = cbuffer;
|
||||
#else
|
||||
code = buffer;
|
||||
#endif
|
||||
continue;
|
||||
}
|
||||
str[n++] = c;
|
||||
if (n >= len-1) {
|
||||
str = (char *)realloc(str, len += 16);
|
||||
if (str == NULL)
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
str[n] = '\0';
|
||||
_tcscpy(calc.source, (*calc.buffer == _T('\0')) ? _T("0") : calc.buffer);
|
||||
|
||||
/* clear display content before proceeding */
|
||||
calc.ptr = calc.buffer;
|
||||
|
@ -991,6 +941,11 @@ static char *handle_sequence_input(HWND hwnd, sequence_t *seq)
|
|||
case 'Q': PostMessage(hwnd, WM_COMMAND, (WPARAM)IDC_BUTTON_CANC, 0); break;
|
||||
case 'R': PostMessage(hwnd, WM_COMMAND, (WPARAM)IDC_BUTTON_MR, 0); break;
|
||||
}
|
||||
} else
|
||||
if (ch == '$') {
|
||||
calc.ptr =
|
||||
_tcscpy(calc.buffer, calc.source) +
|
||||
_tcslen(calc.source);
|
||||
} else {
|
||||
for (x=0; x<SIZEOF(key2code); x++) {
|
||||
if (!(key2code[x].mask & BITMASK_IS_ASCII) ||
|
||||
|
@ -1650,13 +1605,15 @@ static INT_PTR CALLBACK DlgMainProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
|
|||
}
|
||||
return TRUE;
|
||||
case WM_HANDLE_FROM:
|
||||
if (handle_sequence_input(hWnd, &calc.Convert[0]) == NULL) {
|
||||
if (calc.is_nan)
|
||||
break;
|
||||
if (handle_sequence_input(hWnd, &calc.Convert[0]) == NULL)
|
||||
PostMessage(hWnd, WM_START_CONV, 0,
|
||||
MAKELPARAM(0x0001, WM_HANDLE_TO));
|
||||
}
|
||||
return TRUE;
|
||||
case WM_HANDLE_TO:
|
||||
handle_sequence_input(hWnd, &calc.Convert[1]);
|
||||
if (!calc.is_nan)
|
||||
handle_sequence_input(hWnd, &calc.Convert[1]);
|
||||
return TRUE;
|
||||
case WM_CLOSE:
|
||||
calc.action = IDC_STATIC;
|
||||
|
@ -1692,7 +1649,11 @@ static INT_PTR CALLBACK DlgMainProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
#if defined(__GNUC__) && !defined(__REACTOS__)
|
||||
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
|
||||
#else
|
||||
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nShowCmd)
|
||||
#endif
|
||||
{
|
||||
MSG msg;
|
||||
DWORD dwLayout;
|
||||
|
@ -1715,7 +1676,9 @@ int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdL
|
|||
else
|
||||
dwLayout = IDD_DIALOG_STANDARD;
|
||||
|
||||
CreateDialog(hInstance, MAKEINTRESOURCE(dwLayout), NULL, DlgMainProc);
|
||||
/* This call will always fail if UNICODE for Win9x */
|
||||
if (NULL == CreateDialog(hInstance, MAKEINTRESOURCE(dwLayout), NULL, (DLGPROC)DlgMainProc))
|
||||
break;
|
||||
|
||||
while (GetMessage(&msg, NULL, 0, 0)) {
|
||||
#ifndef USE_KEYBOARD_HOOK
|
||||
|
|
|
@ -5,11 +5,13 @@
|
|||
* FILE: tools/dbgprint/dbgprint.c
|
||||
* PURPOSE: outputs a text via DbgPrint API
|
||||
* PROGRAMMERS: Johannes Anderwald (johannes.anderwald@student.tugraz.at)
|
||||
* Christoph von Wittich (Christoph_vW@ReactOS.org)
|
||||
*/
|
||||
|
||||
#include <windows.h>
|
||||
#include <tchar.h>
|
||||
#include <debug.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int _tmain(int argc, TCHAR ** argv)
|
||||
{
|
||||
|
@ -29,30 +31,89 @@ int _tmain(int argc, TCHAR ** argv)
|
|||
return -1;
|
||||
}
|
||||
|
||||
buf = HeapAlloc(GetProcessHeap(), 0, (bufsize+1) * sizeof(TCHAR));
|
||||
if (!buf)
|
||||
if (_tcsstr(argv[1], "--winetest") && (argc == 3))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
char psBuffer[128];
|
||||
char psBuffer2[128];
|
||||
char cmd[255];
|
||||
char test[300];
|
||||
FILE *pPipe;
|
||||
FILE *pPipe2;
|
||||
|
||||
offset = 0;
|
||||
for(i = 1; i < argc; i++)
|
||||
{
|
||||
int length = _tcslen(argv[i]);
|
||||
_tcsncpy(&buf[offset], argv[i], length);
|
||||
offset += length;
|
||||
if (i + 1 < argc)
|
||||
/* get available tests */
|
||||
pPipe = _tpopen(argv[2], "r");
|
||||
if (pPipe != NULL)
|
||||
{
|
||||
buf[offset] = _T(' ');
|
||||
while(fgets(psBuffer, 128, pPipe))
|
||||
{
|
||||
if (psBuffer[0] == ' ')
|
||||
{
|
||||
strcpy(cmd, argv[2]);
|
||||
strcat(cmd, " ");
|
||||
strcat(cmd, psBuffer+4);
|
||||
/* run the current test */
|
||||
strcpy(test, "\n\nRunning ");
|
||||
strcat(test, cmd);
|
||||
OutputDebugStringA(test);
|
||||
pPipe2 = _tpopen(cmd, "r");
|
||||
if (pPipe2 != NULL)
|
||||
{
|
||||
while(fgets(psBuffer2, 128, pPipe2))
|
||||
{
|
||||
char *nlptr2 = strchr(psBuffer2, '\n');
|
||||
if (nlptr2)
|
||||
*nlptr2 = '\0';
|
||||
OutputDebugStringA(psBuffer2);
|
||||
}
|
||||
_pclose(pPipe2);
|
||||
}
|
||||
}
|
||||
}
|
||||
_pclose(pPipe);
|
||||
}
|
||||
else
|
||||
{
|
||||
buf[offset] = _T('\n');
|
||||
buf[offset+1] = _T('\0');
|
||||
}
|
||||
offset++;
|
||||
}
|
||||
OutputDebugString(buf);
|
||||
HeapFree(GetProcessHeap(), 0, buf);
|
||||
else if (_tcsstr(argv[1], "--process") && (argc == 3))
|
||||
{
|
||||
char psBuffer[128];
|
||||
FILE *pPipe;
|
||||
|
||||
pPipe = _tpopen(argv[2], "r");
|
||||
if (pPipe != NULL)
|
||||
{
|
||||
while(fgets(psBuffer, 128, pPipe))
|
||||
{
|
||||
OutputDebugStringA(psBuffer);
|
||||
}
|
||||
_pclose(pPipe);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
buf = HeapAlloc(GetProcessHeap(), 0, (bufsize+1) * sizeof(TCHAR));
|
||||
if (!buf)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
offset = 0;
|
||||
for(i = 1; i < argc; i++)
|
||||
{
|
||||
int length = _tcslen(argv[i]);
|
||||
_tcsncpy(&buf[offset], argv[i], length);
|
||||
offset += length;
|
||||
if (i + 1 < argc)
|
||||
{
|
||||
buf[offset] = _T(' ');
|
||||
}
|
||||
else
|
||||
{
|
||||
buf[offset] = _T('\n');
|
||||
buf[offset+1] = _T('\0');
|
||||
}
|
||||
offset++;
|
||||
}
|
||||
OutputDebugString(buf);
|
||||
HeapFree(GetProcessHeap(), 0, buf);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -7,9 +7,9 @@ BEGIN
|
|||
Commande | MORE \n\
|
||||
MORE [Lecteur:][Chemin]Nom du fichier\n\n\
|
||||
[Lecteur:][Chemin]Nom du fichier Un fichier, dont le contenu sera affiché.\n\
|
||||
Commande\t\t Une commande, dont la sortie sera affiché.\n\n\
|
||||
À l'invite ""-- Continuer --"" you pouvez appuyer sur n'importe quelle touche pour afficher la page suivante.\n"
|
||||
Commande\t\t Une commande, dont la sortie sera affichée.\n\n\
|
||||
À l'invite ""-- Continuer --"" Vous pouvez appuyer sur n'importe quelle touche pour afficher la page suivante.\n"
|
||||
|
||||
IDS_CONTINUE, " -- Continuer (100%) -- "
|
||||
IDS_FILE_ACCESS, "Impossible d'accèder au fichier %s."
|
||||
IDS_FILE_ACCESS, "Impossible d'accéder au fichier %s."
|
||||
END
|
||||
|
|
|
@ -4,13 +4,13 @@ IDD_MAIN_DIALOG DIALOGEX DISCARDABLE 0, 0, 478, 280
|
|||
STYLE DS_SHELLFONT | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP |
|
||||
WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU |
|
||||
WS_THICKFRAME
|
||||
CAPTION "ReactX-Diagnostic program"
|
||||
CAPTION "ReactX-diagnose program"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "Tab1",IDC_TAB_CONTROL,"SysTabControl32",WS_TABSTOP,2,2,474,250
|
||||
PUSHBUTTON "&Hjelp", IDC_BUTTON_HELP, 2, 261, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
DEFPUSHBUTTON "&Neste side", IDC_BUTTON_NEXT, 257, 261, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
PUSHBUTTON "&Lagre Alt Informasjon...", IDC_BUTTON_SAVE_INFO, 311, 261, 110, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
PUSHBUTTON "&Lagre alt informasjon...", IDC_BUTTON_SAVE_INFO, 311, 261, 110, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
PUSHBUTTON "&Avslutt", IDC_BUTTON_EXIT, 425, 261, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
|
||||
|
@ -122,7 +122,7 @@ BEGIN
|
|||
RTEXT "Dato:", -1, 275, 45, 55, 10
|
||||
RTEXT "WHQL-Logo:", -1, 275, 55, 55, 10
|
||||
RTEXT "Andre filer:", -1, 275, 65, 55, 10
|
||||
RTEXT "Provider:", -1, 275, 75, 55, 10
|
||||
RTEXT "Fabrikant:", -1, 275, 75, 55, 10
|
||||
LTEXT "", IDC_STATIC_DSOUND_DRIVER, 335, 25, 100, 10
|
||||
LTEXT "", IDC_STATIC_DSOUND_VERSION, 335, 35, 100, 10
|
||||
LTEXT "", IDC_STATIC_DSOUND_DATE, 335, 45, 100, 10
|
||||
|
@ -148,9 +148,9 @@ IDD_INPUT_DIALOG DIALOGEX DISCARDABLE 0, 0, 462, 220
|
|||
STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
GROUPBOX "DirectInput Enheter", -1, 10, 10, 452, 80
|
||||
GROUPBOX "Direkteinndata enheter", -1, 10, 10, 452, 80
|
||||
CONTROL "", IDC_LIST_DEVICE, "SysListView32", LVS_REPORT | WS_CHILD | WS_BORDER | WS_TABSTOP, 20, 22, 432, 60
|
||||
GROUPBOX "Input Enheter", -1, 10, 100, 452, 60
|
||||
GROUPBOX "Inndata enheter", -1, 10, 100, 452, 60
|
||||
CONTROL "", IDC_TREE_PORT, "SysTreeView32", TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 20, 112, 432, 40, 0x00000200
|
||||
GROUPBOX "Informasjon", -1, 10, 170, 452, 50
|
||||
EDITTEXT IDC_RICH_INFO, 20, 182, 432, 30, WS_DISABLED | WS_TABSTOP
|
||||
|
@ -160,7 +160,7 @@ IDD_NETWORK_DIALOG DIALOGEX DISCARDABLE 0, 0, 462, 220
|
|||
STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
GROUPBOX "Registered DirectPlay Service Provider", -1, 10, 10, 452, 80
|
||||
GROUPBOX "Registert DirectPlay tjeneste leverandør", -1, 10, 10, 452, 80
|
||||
CONTROL "", IDC_LIST_PROVIDER, "SysListView32", LVS_REPORT | WS_CHILD | WS_BORDER | WS_TABSTOP, 20, 22, 432, 60
|
||||
END
|
||||
|
||||
|
@ -177,13 +177,13 @@ BEGIN
|
|||
IDS_DISPLAY_DIALOG "Skjerm"
|
||||
IDS_SOUND_DIALOG "Lyd"
|
||||
IDS_MUSIC_DIALOG "Musikk"
|
||||
IDS_INPUT_DIALOG "Input"
|
||||
IDS_INPUT_DIALOG "Inndata"
|
||||
IDS_NETWORK_DIALOG "Nettverk"
|
||||
IDS_HELP_DIALOG "Hjelp"
|
||||
IDS_FORMAT_MB "%I64uMB RAM"
|
||||
IDS_FORMAT_SWAP "%I64u MB brukt, %I64u MB tilgjengelig"
|
||||
IDS_FORMAT_UNIPROC "%s (%u CPU)"
|
||||
IDS_FORMAT_MPPROC "%s (%u CPUs)"
|
||||
IDS_FORMAT_UNIPROC "%s (%u prosessor)"
|
||||
IDS_FORMAT_MPPROC "%s (%u prosesorer)"
|
||||
IDS_VERSION_UNKNOWN "Ukjent versjon"
|
||||
IDS_DEVICE_STATUS_ATTACHED "Koblet til"
|
||||
IDS_DEVICE_STATUS_MISSING "Koblet fra"
|
||||
|
|
|
@ -22,7 +22,7 @@ BEGIN
|
|||
AUTORADIOBUTTON "En tirer trois", IDC_OPT_DRAWTHREE, 14, 32, 52, 10
|
||||
|
||||
AUTOCHECKBOX "Afficher le temp&s", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
|
||||
AUTOCHECKBOX "Barre de s&tatus", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
|
||||
AUTOCHECKBOX "Barre de s&tatut", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
|
||||
PUSHBUTTON "Annuler", IDCANCEL, 101, 97, 50, 14
|
||||
|
|
|
@ -88,8 +88,8 @@ WinHookProc(int code, WPARAM wParam, LPARAM lParam)
|
|||
return CallNextHookEx(hWinHook, code, wParam, lParam);
|
||||
}
|
||||
|
||||
BOOL
|
||||
KbSwitchSetHooks()
|
||||
BOOL WINAPI
|
||||
KbSwitchSetHooks(VOID)
|
||||
{
|
||||
hKeyboardHook = SetWindowsHookEx(WH_KEYBOARD, KeyboardHookProc, hInstance, 0);
|
||||
hLangHook = SetWindowsHookEx(WH_GETMESSAGE, LangHookProc, hInstance, 0);
|
||||
|
@ -101,8 +101,8 @@ KbSwitchSetHooks()
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
VOID
|
||||
KbSwitchDeleteHooks()
|
||||
VOID WINAPI
|
||||
KbSwitchDeleteHooks(VOID)
|
||||
{
|
||||
if (hKeyboardHook) UnhookWindowsHookEx(hKeyboardHook);
|
||||
if (hLangHook) UnhookWindowsHookEx(hLangHook);
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
LIBRARY kbsdll.dll
|
||||
|
||||
EXPORTS
|
||||
KbSwitchSetHooks
|
||||
KbSwitchDeleteHooks
|
||||
|
||||
; EOF
|
|
@ -1,15 +1,15 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE module SYSTEM "../../../../tools/rbuild/project.dtd">
|
||||
<module name="kbsdll" type="win32dll" baseaddress="0x74720000" installbase="system32" installname="kbsdll.dll" unicode="yes">
|
||||
<importlibrary definition="kbsdll.def" />
|
||||
<importlibrary definition="kbsdll.spec.def" />
|
||||
<include base="kbsdll">.</include>
|
||||
<define name="_WIN32_IE">0x0500</define>
|
||||
<define name="_WIN32_WINNT">0x0600</define>
|
||||
<define name="WINVER">0x0600</define>
|
||||
<library>ntdll</library>
|
||||
<library>kernel32</library>
|
||||
<library>user32</library>
|
||||
<library>comctl32</library>
|
||||
<file>kbsdll.c</file>
|
||||
<file>kbsdll.rc</file>
|
||||
<file>kbsdll.spec</file>
|
||||
</module>
|
||||
|
|
2
reactos/base/applications/kbswitch/kbsdll/kbsdll.spec
Normal file
2
reactos/base/applications/kbswitch/kbsdll/kbsdll.spec
Normal file
|
@ -0,0 +1,2 @@
|
|||
@ stdcall KbSwitchSetHooks()
|
||||
@ stdcall KbSwitchDeleteHooks()
|
11
reactos/base/applications/kbswitch/lang/it-IT.rc
Normal file
11
reactos/base/applications/kbswitch/lang/it-IT.rc
Normal file
|
@ -0,0 +1,11 @@
|
|||
LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
|
||||
|
||||
IDR_POPUP MENU
|
||||
BEGIN
|
||||
POPUP "popup"
|
||||
BEGIN
|
||||
MENUITEM "&Preferenze...", ID_PREFERENCES
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Esci", ID_EXIT
|
||||
END
|
||||
END
|
|
@ -4,6 +4,7 @@
|
|||
#include "lang/en-US.rc"
|
||||
#include "lang/es-ES.rc"
|
||||
#include "lang/fr-FR.rc"
|
||||
#include "lang/it-IT.rc"
|
||||
#include "lang/lt-LT.rc"
|
||||
#include "lang/no-NO.rc"
|
||||
#include "lang/pl-PL.rc"
|
||||
|
|
|
@ -36,7 +36,7 @@ BEGIN
|
|||
|
||||
PUSHBUTTON "Rechercher", IDC_BTN_SYSTEM_FIND, 290, 95, 66, 14
|
||||
PUSHBUTTON "&Nouveau", IDC_BTN_SYSTEM_NEW, 290, 115, 66, 14
|
||||
PUSHBUTTON "Édi&ter", IDC_BTN_SYSTEM_EDIT, 290, 135, 66, 14
|
||||
PUSHBUTTON "M&odifier", IDC_BTN_SYSTEM_EDIT, 290, 135, 66, 14
|
||||
|
||||
PUSHBUTTON "Activer tout", IDC_BTN_SYSTEM_ACTIVATE, 123, 155, 66, 14
|
||||
PUSHBUTTON "Désactiver tout",IDC_BTN_SYSTEM_DEACTIVATE, 195, 155, 66, 14
|
||||
|
@ -64,11 +64,11 @@ IDD_GENERAL_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175
|
|||
STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
GROUPBOX "Sélection du Démarrage ", -1, 10, 10, 340, 150,0,WS_EX_TRANSPARENT
|
||||
CONTROL "Démarrage &Normal - charge tous les drivers et services", IDC_CBX_NORMAL_START, "Button", 0x50010009, 20, 30, 185, 10
|
||||
CONTROL "Démarrage &Diagnostic - charge les périphériques de base et services seulement", IDC_CBX_DIAGNOSTIC_START, "Button", 0x50010009, 20, 45, 260, 10
|
||||
CONTROL "Démarrage &Sélectif", IDC_CBX_SELECTIVE_STARTUP, "Button", 0x50010009, 20, 60, 75, 10
|
||||
AUTOCHECKBOX "T&raiter le fichier SYSTEM.INI", IDC_CBX_SYSTEM_INI, 30, 80, 100, 10
|
||||
GROUPBOX "Sélection du mode de démarrage ", -1, 10, 10, 340, 150,0,WS_EX_TRANSPARENT
|
||||
CONTROL "Démarrage &normal - charge tous les pilotes et tous les services", IDC_CBX_NORMAL_START, "Button", 0x50010009, 20, 30, 185, 10
|
||||
CONTROL "Démarrage en mode &diagnostic - charge les périphériques de base et les services seulement", IDC_CBX_DIAGNOSTIC_START, "Button", 0x50010009, 20, 45, 260, 10
|
||||
CONTROL "Démarrage &sélectif", IDC_CBX_SELECTIVE_STARTUP, "Button", 0x50010009, 20, 60, 75, 10
|
||||
AUTOCHECKBOX "T&raiter le fichier System.ini", IDC_CBX_SYSTEM_INI, 30, 80, 100, 10
|
||||
AUTOCHECKBOX "&Charger les Services Système", IDC_CBX_SYSTEM_SERVICE, 30, 95, 105, 10
|
||||
AUTOCHECKBOX "Charger les éléments de démarrage", IDC_CBX_STARTUP_ITEM, 30, 110, 75, 10
|
||||
END
|
||||
|
@ -78,7 +78,7 @@ STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
|
|||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 10, 10, 340, 50, 0x00000200
|
||||
PUSHBUTTON "&Cocher tous les chemins de démarrage", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 70, 12
|
||||
PUSHBUTTON "&Vérifier les chemins de démarrage", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 70, 12
|
||||
PUSHBUTTON "&Par Défaut", IDC_BTN_SET_DEFAULT_BOOT, 100, 65, 70, 12
|
||||
PUSHBUTTON "&Monter", IDC_BTN_MOVE_UP_BOOT_OPTION, 190, 65, 70, 12
|
||||
PUSHBUTTON "&Descendre", IDC_BTN_MOVE_DOWN_BOOT_OPTION, 280, 65, 70, 12
|
||||
|
@ -91,7 +91,7 @@ BEGIN
|
|||
PUSHBUTTON "Options A&vancées...", IDC_BTN_ADVANCED_OPTIONS, 100, 150, 70, 12
|
||||
LTEXT "&Délai:", -1, 280, 91, 30, 10
|
||||
EDITTEXT IDC_TXT_BOOT_TIMEOUT, 310, 90, 25, 12, ES_LEFT
|
||||
LTEXT "sec.", -1, 340, 91, 15, 10
|
||||
LTEXT "secondes", -1, 340, 91, 15, 10
|
||||
END
|
||||
|
||||
IDD_FREELDR_ADVANCED_PAGE DIALOGEX DISCARDABLE 0, 0, 175, 175
|
||||
|
@ -133,7 +133,7 @@ END
|
|||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_SERVICES_COLUMN_SERVICE "Service"
|
||||
IDS_SERVICES_COLUMN_REQ "Requis"
|
||||
IDS_SERVICES_COLUMN_REQ "Essentiel"
|
||||
IDS_SERVICES_COLUMN_VENDOR "Fabricant"
|
||||
IDS_SERVICES_COLUMN_STATUS "État"
|
||||
END
|
||||
|
@ -144,15 +144,15 @@ BEGIN
|
|||
IDS_TOOLS_COLUMN_DESCR "Description"
|
||||
|
||||
IDS_TOOLS_CMD_NAME "Console"
|
||||
IDS_TOOLS_CMD_DESCR ""
|
||||
IDS_TOOLS_CMD_DESCR "Ouvre la console."
|
||||
IDS_TOOLS_CMD_CMD "cmd.exe"
|
||||
|
||||
IDS_TOOLS_INFO_NAME "Version"
|
||||
IDS_TOOLS_INFO_DESCR "Affiche les informations de version."
|
||||
IDS_TOOLS_INFO_DESCR "Affiche la version de ReactOS."
|
||||
IDS_TOOLS_INFO_CMD "winver.exe"
|
||||
|
||||
IDS_TOOLS_REGEDIT_NAME "Editeur de Registre"
|
||||
IDS_TOOLS_REGEDIT_DESCR "Ouvre l'éditeur de Registre"
|
||||
IDS_TOOLS_REGEDIT_NAME "Editeur du Registre"
|
||||
IDS_TOOLS_REGEDIT_DESCR "Ouvre l'éditeur du Registre"
|
||||
IDS_TOOLS_REGEDIT_CMD "regedit.exe"
|
||||
|
||||
IDS_TOOLS_SYSDM_NAME "Propriétés système"
|
||||
|
@ -160,14 +160,14 @@ BEGIN
|
|||
IDS_TOOLS_SYSDM_CMD "control.exe"
|
||||
IDS_TOOLS_SYSDM_PARAM "sysdm.cpl"
|
||||
|
||||
IDS_STARTUP_COLUMN_ELEMENT "Elément"
|
||||
IDS_STARTUP_COLUMN_ELEMENT "Élément"
|
||||
IDS_STARTUP_COLUMN_CMD "Commande"
|
||||
IDS_STARTUP_COLUMN_PATH "Chemin"
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_SERVICES_STATUS_RUNNING "En cours"
|
||||
IDS_SERVICES_STATUS_RUNNING "En cours d'exécution"
|
||||
IDS_SERVICES_STATUS_STOPPED "Arrêté"
|
||||
IDS_SERVICES_YES "Oui"
|
||||
IDS_SERVICES_UNKNOWN "Inconnu"
|
||||
|
|
|
@ -38,8 +38,8 @@ BEGIN
|
|||
PUSHBUTTON "&Ny", IDC_BTN_SYSTEM_NEW, 290, 115, 66, 14
|
||||
PUSHBUTTON "Re&diger", IDC_BTN_SYSTEM_EDIT, 290, 135, 66, 14
|
||||
|
||||
PUSHBUTTON "A&ktiver Alt", IDC_BTN_SYSTEM_ACTIVATE, 123, 155, 66, 14
|
||||
PUSHBUTTON "Dektiver A<",IDC_BTN_SYSTEM_DEACTIVATE, 195, 155, 66, 14
|
||||
PUSHBUTTON "A&ktiver alt", IDC_BTN_SYSTEM_ACTIVATE, 123, 155, 66, 14
|
||||
PUSHBUTTON "D&eaktiver alt",IDC_BTN_SYSTEM_DEACTIVATE, 195, 155, 66, 14
|
||||
END
|
||||
|
||||
IDD_TOOLS_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175
|
||||
|
@ -64,13 +64,13 @@ IDD_GENERAL_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175
|
|||
STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
GROUPBOX "Oppstarts utvalg", -1, 10, 10, 340, 150,0,WS_EX_TRANSPARENT
|
||||
CONTROL "&Normal oppstart - laste inn alle enhetsdrivere og tjenester", IDC_CBX_NORMAL_START, "Button", 0x50010009, 20, 30, 180, 10
|
||||
CONTROL "&Diagnose oppstart - last bare inn grunnleggende enheter og tjenester", IDC_CBX_DIAGNOSTIC_START, "Button", 0x50010009, 20, 45, 195, 10
|
||||
GROUPBOX "Oppstarts valg", -1, 10, 10, 340, 150,0,WS_EX_TRANSPARENT
|
||||
CONTROL "&Normal oppstart - last inn alle enhetsdrivere og tjenester", IDC_CBX_NORMAL_START, "Button", 0x50010009, 20, 30, 236, 10
|
||||
CONTROL "&Diagnose oppstart - last bare inn grunnleggende enheter og tjenester", IDC_CBX_DIAGNOSTIC_START, "Button", 0x50010009, 20, 45, 236, 10
|
||||
CONTROL "&Selektiv oppstart", IDC_CBX_SELECTIVE_STARTUP, "Button", 0x50010009, 20, 60, 70, 10
|
||||
AUTOCHECKBOX "L&ast inn SYSTEM.INI Filen", IDC_CBX_SYSTEM_INI, 30, 80, 95, 10
|
||||
AUTOCHECKBOX "&Last inn System tjenester", IDC_CBX_SYSTEM_SERVICE, 30, 95, 90, 10
|
||||
AUTOCHECKBOX "Las&t inn oppstartselementet", IDC_CBX_STARTUP_ITEM, 30, 110, 75, 10
|
||||
AUTOCHECKBOX "&Last inn Systemtjenester", IDC_CBX_SYSTEM_SERVICE, 30, 95, 105, 10
|
||||
AUTOCHECKBOX "Las&t inn oppstartselementet", IDC_CBX_STARTUP_ITEM, 30, 110, 105, 10
|
||||
END
|
||||
|
||||
IDD_FREELDR_PAGE DIALOGEX DISCARDABLE 0, 0, 362, 175
|
||||
|
@ -78,20 +78,20 @@ STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
|
|||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "", IDC_LIST_BOX, "ListBox", 0x50010141, 10, 10, 340, 50, 0x00000200
|
||||
PUSHBUTTON "&Sjekk alle oppstartsbaner", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 70, 12
|
||||
PUSHBUTTON "&Sjekk oppstartsbaner", IDC_BTN_CHECK_BOOT_PATH, 10, 65, 75, 12
|
||||
PUSHBUTTON "&Sett som standard", IDC_BTN_SET_DEFAULT_BOOT, 100, 65, 70, 12
|
||||
PUSHBUTTON "Flytt &Opp", IDC_BTN_MOVE_UP_BOOT_OPTION, 190, 65, 70, 12
|
||||
PUSHBUTTON "Flytt &Ned", IDC_BTN_MOVE_DOWN_BOOT_OPTION, 280, 65, 70, 12
|
||||
GROUPBOX "Oppstarts alternativer", -1, 10, 80, 250, 90,0,WS_EX_TRANSPARENT
|
||||
CHECKBOX "/Sik&ker oppstart", IDC_CBX_SAFE_BOOT, 15, 90, 50, 10
|
||||
CHECKBOX "/&Ingen grafisk oppstart", IDC_CBX_NO_GUI_BOOT, 15, 105, 55, 10
|
||||
CHECKBOX "/&Oppstart logg", IDC_CBX_BOOT_LOG, 15, 120, 50, 10
|
||||
CHECKBOX "/Enkel& grafikk", IDC_CBX_BASE_VIDEO, 15, 135, 55, 10
|
||||
PUSHBUTTON "Flytt &opp", IDC_BTN_MOVE_UP_BOOT_OPTION, 190, 65, 70, 12
|
||||
PUSHBUTTON "Flytt &ned", IDC_BTN_MOVE_DOWN_BOOT_OPTION, 280, 65, 70, 12
|
||||
GROUPBOX "Oppstarts alternativer", -1, 10, 80, 250, 95,0,WS_EX_TRANSPARENT
|
||||
CHECKBOX "/Sik&ker oppstart", IDC_CBX_SAFE_BOOT, 15, 90, 95, 10
|
||||
CHECKBOX "/&Ingen grafisk oppstart", IDC_CBX_NO_GUI_BOOT, 15, 105, 95, 10
|
||||
CHECKBOX "/&Oppstart logg", IDC_CBX_BOOT_LOG, 15, 120, 80, 10
|
||||
CHECKBOX "/Enkel &grafikk", IDC_CBX_BASE_VIDEO, 15, 135, 95, 10
|
||||
CHECKBOX "/H&jelp", IDC_CBX_SOS, 15, 150, 50, 10
|
||||
PUSHBUTTON "Av&anserte alternativer...", IDC_BTN_ADVANCED_OPTIONS, 100, 150, 70, 12
|
||||
LTEXT "&Tidsavbrudd:", -1, 280, 91, 30, 10
|
||||
EDITTEXT IDC_TXT_BOOT_TIMEOUT, 310, 90, 25, 12, ES_LEFT
|
||||
LTEXT "sek.", -1, 340, 91, 15, 10
|
||||
PUSHBUTTON "Av&anserte alternativer...", IDC_BTN_ADVANCED_OPTIONS, 100, 150, 93, 12
|
||||
LTEXT "&Tidsavbrudd:", -1, 280, 91, 70, 10
|
||||
EDITTEXT IDC_TXT_BOOT_TIMEOUT, 280, 100, 25, 12, ES_LEFT
|
||||
LTEXT "sekunder", -1, 310, 100, 85, 10
|
||||
END
|
||||
|
||||
IDD_FREELDR_ADVANCED_PAGE DIALOGEX DISCARDABLE 0, 0, 175, 175
|
||||
|
|
|
@ -68,7 +68,7 @@ BEGIN
|
|||
IDS_APPNAME "Gestionnaire de périphériques ReactOS"
|
||||
IDS_HINT_BLANK " "
|
||||
IDS_HINT_EXIT " Quitte le programme."
|
||||
IDS_HINT_REFRESH " Actualise la liste des services."
|
||||
IDS_HINT_REFRESH " Actualise la liste des périphériques."
|
||||
IDS_HINT_PROP " Ouvre la feuille de propriétés pour la sélection actuelle."
|
||||
IDS_HINT_HELP " Affiche la fenêtre d'aide."
|
||||
IDS_HINT_ABOUT " À propos du Gestionnaire de Périphériques de ReactOS."
|
||||
|
|
|
@ -13,7 +13,7 @@ BEGIN
|
|||
POPUP "Journa&l"
|
||||
BEGIN
|
||||
MENUITEM "&Application", ID_LOG_APPLICATION, CHECKED
|
||||
MENUITEM "&Securité", ID_LOG_SECURITY
|
||||
MENUITEM "&Sécurité", ID_LOG_SECURITY
|
||||
MENUITEM "&Système", ID_LOG_SYSTEM
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Quitter", IDM_EXIT
|
||||
|
@ -76,7 +76,7 @@ BEGIN
|
|||
LTEXT "Static",IDC_EVENTUSERSTATIC,56,41,72,8
|
||||
LTEXT "Ordinateur :",IDC_STATIC,14,54,36,8
|
||||
LTEXT "Static",IDC_EVENTCOMPUTERSTATIC,56,54,72,8
|
||||
LTEXT "EventID :",IDC_STATIC,133,15,36,8
|
||||
LTEXT "Événement :",IDC_STATIC,133,15,36,8
|
||||
LTEXT "Static",IDC_EVENTIDSTATIC,175,15,87,8
|
||||
LTEXT "Source :",IDC_STATIC,133,28,36,8
|
||||
LTEXT "Static",IDC_EVENTSOURCESTATIC,175,28,87,8
|
||||
|
@ -86,19 +86,19 @@ BEGIN
|
|||
LTEXT "Static",IDC_EVENTCATEGORYSTATIC,175,55,87,8
|
||||
EDITTEXT IDC_EVENTDATAEDIT,14,204,247,44,ES_MULTILINE | ES_READONLY
|
||||
LTEXT "Données",IDC_STATIC,14,194,20,8
|
||||
CONTROL "&Bytes",IDC_BYTESRADIO,"Button",BS_AUTORADIOBUTTON,39,194,34,10
|
||||
CONTROL "&Word",IDC_WORDRADIO,"Button",BS_AUTORADIOBUTTON,77,194,33,10
|
||||
CONTROL "&Octets",IDC_BYTESRADIO,"Button",BS_AUTORADIOBUTTON,39,194,34,10
|
||||
CONTROL "&Mots",IDC_WORDRADIO,"Button",BS_AUTORADIOBUTTON,77,194,33,10
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APP_TITLE "Visionneuse d'événements"
|
||||
IDC_EVENTSTRINGIDNOTFOUND "La description pour l'événement d'ID ( %lu ) dans la source ( %s ) ne peut être trouvée. L'ordinateur local pourrait ne pas avoir les informations registres nécéssaires ou les fichiers DLL de message pour afficher les messages depuis un ordinateur distant."
|
||||
IDC_EVENTLOG_ERROR_TYPE "Error"
|
||||
IDC_EVENTLOG_WARNING_TYPE "Warning"
|
||||
IDC_EVENTLOG_INFORMATION_TYPE "Information"
|
||||
IDC_EVENTLOG_ERROR_TYPE "Erreur"
|
||||
IDC_EVENTLOG_WARNING_TYPE "Avertissement"
|
||||
IDC_EVENTLOG_INFORMATION_TYPE "Informations"
|
||||
IDC_EVENTLOG_AUDIT_SUCCESS "Audit Success"
|
||||
IDC_EVENTLOG_AUDIT_FAILURE "Audit Failure"
|
||||
IDC_EVENTLOG_SUCCESS "Success"
|
||||
IDC_EVENTLOG_UNKNOWN_TYPE "Unknown Event"
|
||||
IDC_EVENTLOG_SUCCESS "Succès"
|
||||
IDC_EVENTLOG_UNKNOWN_TYPE "Événement Inconnu"
|
||||
END
|
||||
|
|
|
@ -131,7 +131,7 @@ BEGIN
|
|||
LTEXT "Îïèñàíèå :", IDC_STATIC, 12, 86, 44, 9
|
||||
PUSHBUTTON "Äîáðå", IDOK, 126, 192, 44, 13
|
||||
PUSHBUTTON "Îòêàç", IDCANCEL, 176, 192, 46, 13
|
||||
LTEXT "Допълнителни настройки (натиснете 'Помощ' за подробности)", IDC_STATIC, 10, 151, 134, 9
|
||||
LTEXT "Допълнителни настройки (натиснете „Помощ“ за подробности)", IDC_STATIC, 10, 151, 134, 9
|
||||
PUSHBUTTON "Ïîìîù", ID_CREATE_HELP, 10, 192, 44, 13
|
||||
END
|
||||
|
||||
|
|
|
@ -15,8 +15,8 @@ BEGIN
|
|||
MENUITEM SEPARATOR
|
||||
MENUITEM "Démarrer", ID_START, GRAYED
|
||||
MENUITEM "Arrêter", ID_STOP, GRAYED
|
||||
MENUITEM "Pause", ID_PAUSE, GRAYED
|
||||
MENUITEM "Relancer", ID_RESUME, GRAYED
|
||||
MENUITEM "Suspendre", ID_PAUSE, GRAYED
|
||||
MENUITEM "Reprendre", ID_RESUME, GRAYED
|
||||
MENUITEM "Redémarrer", ID_RESTART, GRAYED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Rafraîchir", ID_REFRESH
|
||||
|
@ -27,7 +27,7 @@ BEGIN
|
|||
MENUITEM SEPARATOR
|
||||
MENUITEM "Propriétés...", ID_PROP, GRAYED
|
||||
END
|
||||
POPUP "Vue"
|
||||
POPUP "Affichage"
|
||||
BEGIN
|
||||
MENUITEM "Grandes Icônes", ID_VIEW_LARGE
|
||||
MENUITEM "Petites Icônes", ID_VIEW_SMALL
|
||||
|
@ -49,8 +49,8 @@ BEGIN
|
|||
BEGIN
|
||||
MENUITEM "Démarrer", ID_START, GRAYED
|
||||
MENUITEM "Arrêter", ID_STOP, GRAYED
|
||||
MENUITEM "Pause", ID_PAUSE, GRAYED
|
||||
MENUITEM "Relancer", ID_RESUME, GRAYED
|
||||
MENUITEM "Suspendre", ID_PAUSE, GRAYED
|
||||
MENUITEM "Reprendre", ID_RESUME, GRAYED
|
||||
MENUITEM "Redémarrer", ID_RESTART, GRAYED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Rafraîchir", ID_REFRESH
|
||||
|
@ -87,17 +87,17 @@ BEGIN
|
|||
COMBOBOX IDC_START_TYPE, 70, 107, 176, 40, WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST
|
||||
PUSHBUTTON "Démarrer", IDC_START, 6, 155, 54, 15, WS_DISABLED
|
||||
PUSHBUTTON "Arrêter", IDC_STOP, 68, 155, 54, 15, WS_DISABLED
|
||||
PUSHBUTTON "Pause", IDC_PAUSE , 130, 155, 54, 15, WS_DISABLED
|
||||
PUSHBUTTON "Relancer", IDC_RESUME, 192, 155, 54, 15, WS_DISABLED
|
||||
PUSHBUTTON "Suspendre", IDC_PAUSE , 130, 155, 54, 15, WS_DISABLED
|
||||
PUSHBUTTON "Reprendre", IDC_RESUME, 192, 155, 54, 15, WS_DISABLED
|
||||
LTEXT "Nom du service :", IDC_STATIC, 4, 11, 53, 11
|
||||
LTEXT "Nom long :", IDC_STATIC, 4, 29, 53, 11
|
||||
LTEXT "Nom complet :", IDC_STATIC, 4, 29, 53, 11
|
||||
LTEXT "Description :", IDC_STATIC, 4, 51, 53, 11
|
||||
LTEXT "Répertoire de l'exécutable :", IDC_STATIC, 6, 73, 82, 9
|
||||
LTEXT "Démarrage :", IDC_STATIC, 6, 108, 53, 11
|
||||
LTEXT "État du service :", IDC_STATIC, 4, 138, 53, 11
|
||||
LTEXT "Type de démarrage :", IDC_STATIC, 6, 108, 53, 11
|
||||
LTEXT "Statut du service :", IDC_STATIC, 4, 138, 53, 11
|
||||
LTEXT "", IDC_SERV_STATUS, 70, 138, 176, 11, WS_CHILD | WS_VISIBLE
|
||||
LTEXT "Vous pouvez définir les paramètres passés au service lorsque vous le démarrez.",IDC_STATIC, 6,177,240,15
|
||||
LTEXT "Paramètres :", IDC_STATIC, 6, 200, 58, 11
|
||||
LTEXT "Paramètres de démarrage :", IDC_STATIC, 6, 200, 58, 11
|
||||
EDITTEXT IDC_START_PARAM, 68, 199, 178, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
PUSHBUTTON "Éditer", IDC_EDIT, 192, 215, 54, 15, WS_DISABLED
|
||||
END
|
||||
|
@ -109,8 +109,8 @@ STYLE DS_SHELLFONT | WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THIC
|
|||
BEGIN
|
||||
CONTROL "", IDC_DEPEND_TREE1, "SysTreeView32" ,0x50010007, 8, 70, 236, 68, 0x00000200
|
||||
CONTROL "", IDC_DEPEND_TREE2, "SysTreeView32", 0x50010007, 8, 151, 234, 67, 0x00000200
|
||||
LTEXT "Certains services dépendent d'autres services, de pilotes système ou de leur groupe de démarrage. Si un composant système est arrêté ou ne fonctionne pas correctement, les services qui en dépendent peuvent être affectés.", IDC_STATIC,8, 7, 238, 36
|
||||
LTEXT "Ce service dépend des composants suivants", IDC_STATIC, 8, 57, 236, 9
|
||||
LTEXT "Certains services dépendent d'autres services, pilotes système et groupes d'ordre de chargement. Si un composant système est arrêté ou ne fonctionne pas correctement, les services dépendants peuvent être affectés.", IDC_STATIC,8, 7, 238, 36
|
||||
LTEXT "Ce service dépend des composants système suivants", IDC_STATIC, 8, 57, 236, 9
|
||||
LTEXT "", IDC_DEPEND_SERVICE, 8, 38, 236, 13
|
||||
END
|
||||
|
||||
|
@ -125,12 +125,12 @@ BEGIN
|
|||
EDITTEXT IDC_CREATE_DESC, 10, 97, 210, 48, WS_CHILD | WS_VISIBLE
|
||||
EDITTEXT IDC_CREATE_OPTIONS, 10, 162, 210, 13, WS_CHILD | WS_VISIBLE
|
||||
LTEXT "*Nom du service :", IDC_STATIC, 12, 12, 54, 9
|
||||
LTEXT "*Nom long :", IDC_STATIC, 12, 33, 54, 9
|
||||
LTEXT "*Nom complet :", IDC_STATIC, 12, 33, 54, 9
|
||||
LTEXT "*Répertoire de l'exécutable :", IDC_STATIC, 10, 51, 68, 9
|
||||
LTEXT "Description :", IDC_STATIC, 12, 86, 44, 9
|
||||
PUSHBUTTON "OK", IDOK, 126, 192, 44, 13
|
||||
PUSHBUTTON "Annuler", IDCANCEL, 176, 192, 46, 13
|
||||
LTEXT "Options supplémentaires (clicker sur aide pour plus de détails)", IDC_STATIC, 10, 151, 134, 9
|
||||
LTEXT "Options supplémentaires (cliquer sur aide pour plus de détails)", IDC_STATIC, 10, 151, 134, 9
|
||||
PUSHBUTTON "Aide", ID_CREATE_HELP, 10, 192, 44, 13
|
||||
END
|
||||
|
||||
|
@ -171,7 +171,7 @@ END
|
|||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_APPNAME "Gestionnaire de Service ReactOS"
|
||||
IDS_APPNAME "Gestionnaire de Services ReactOS"
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
|
@ -195,7 +195,7 @@ END
|
|||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_NUM_SERVICES "Services: %d"
|
||||
IDS_LICENSE "Ce programme est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier tout en respectant les termes de la ""GNU General Public License"" publiée par la Free Software Foundation; dans sa version 2 (ou selon votre préférence) toute version ultérieure.\r\n\r\nCe programme est distribué dans l'espoir qu'il sera utile, cependant SANS GARANTIE D'AUCUNE SORTE; sans même une garantie implicite de COMMERCIABILITE ou DE CONFORMITE A UNE UTILISATION PARTICULIERE. \r\n\r\nVoir la Licence Publique Générale GNU pour plus de détails. Vous devriez avoir reçu un exemplaire de la Licence Publique Générale GNU avec ce programme ; si ce n'est pas le cas, écrivez à la Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA."
|
||||
IDS_LICENSE "Ce programme est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier tout en respectant les termes de la ""GNU General Public License"" publiée par la Free Software Foundation; dans sa version 2 (ou selon votre préférence) toute version ultérieure.\r\n\r\nCe programme est distribué dans l'espoir qu'il sera utile, cependant SANS GARANTIE D'AUCUNE SORTE; sans même une garantie implicite de COMMERCIABILITÉ ou DE CONFORMITÉ A UNE UTILISATION PARTICULIÈRE. \r\n\r\nVoir la Licence Publique Générale GNU pour plus de détails. Vous devriez avoir reçu un exemplaire de la Licence Publique Générale GNU avec ce programme ; si ce n'est pas le cas, écrivez à la Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA."
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
|
|
|
@ -31,8 +31,8 @@ BEGIN
|
|||
COMBOBOX IDC_BPPCOMBO,56,102,128,80, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
|
||||
CONTROL "",IDC_COLORIMAGE,"Static",SS_OWNERDRAW | SS_SUNKEN, 56,121,127,10
|
||||
LTEXT "OBS: Innstillingen på den eksterne datamaskinen kan overstyre denne innstillingen.",IDC_STATIC,56,143,165,18
|
||||
LTEXT "Mindre",IDC_STATIC,35,42,15,8
|
||||
LTEXT "Større",IDC_STATIC,189,42,17,8
|
||||
LTEXT "Mindre",IDC_STATIC,35,42,22,8
|
||||
LTEXT "Større",IDC_STATIC,189,42,19,8
|
||||
LTEXT "", IDC_SETTINGS_RESOLUTION_TEXT, 56, 62, 120, 10, SS_CENTER
|
||||
END
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ BEGIN
|
|||
\n \
|
||||
For Setclassid, fjernes ClassId hvis det ikke angis en ClassId.\n \
|
||||
\n \
|
||||
Examples:\n \
|
||||
Eksempler:\n \
|
||||
> ipconfig ... Vis informasjon.\n \
|
||||
> ipconfig /all ... Vis detaljert informasjon\n \
|
||||
> ipconfig /renew ... Forny alle kort\n \
|
||||
|
|
|
@ -541,6 +541,7 @@ static BOOL Ping(VOID)
|
|||
}
|
||||
if (Status == SOCKET_ERROR)
|
||||
{
|
||||
LostCount++;
|
||||
if (WSAGetLastError() == WSAEHOSTUNREACH)
|
||||
printf("Destination host unreachable.\n");
|
||||
else
|
||||
|
@ -567,6 +568,8 @@ static BOOL Ping(VOID)
|
|||
printf("\n");
|
||||
#endif /* !NDEBUG */
|
||||
}
|
||||
else
|
||||
LostCount++;
|
||||
if (Status == SOCKET_ERROR)
|
||||
{
|
||||
if (WSAGetLastError() != WSAETIMEDOUT)
|
||||
|
@ -581,7 +584,6 @@ static BOOL Ping(VOID)
|
|||
if (Status == 0)
|
||||
{
|
||||
printf("Request timed out.\n");
|
||||
LostCount++;
|
||||
GlobalFree(Buffer);
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -644,9 +646,13 @@ int main(int argc, char* argv[])
|
|||
printf("\nPing statistics for %s:\n", TargetIP);
|
||||
printf(" Packets: Sent = %d, Received = %d, Lost = %d (%d%% loss),\n",
|
||||
SentCount, SentCount - LostCount, LostCount, Count);
|
||||
printf("Approximate round trip times in milli-seconds:\n");
|
||||
printf(" Minimum = %s, Maximum = %s, Average = %s\n",
|
||||
MinTime, MaxTime, AvgTime);
|
||||
/* Print approximate times or NO approximate times if 100% loss */
|
||||
if ((SentCount - LostCount) > 0)
|
||||
{
|
||||
printf("Approximate round trip times in milli-seconds:\n");
|
||||
printf(" Minimum = %s, Maximum = %s, Average = %s\n",
|
||||
MinTime, MaxTime, AvgTime);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -396,11 +396,7 @@ DecodeResponse(PAPPINFO pInfo)
|
|||
DebugPrint(_T("Rouge packet: header id, process id %d"), TTLExceedHdr->OrigIcmpHeader.id, GetCurrentProcessId());
|
||||
return -1;
|
||||
}
|
||||
#ifndef _WIN64
|
||||
_tprintf(_T("%3lld ms"), (pInfo->lTimeEnd - pInfo->lTimeStart) / pInfo->TicksPerMs.QuadPart);
|
||||
#else
|
||||
_tprintf(_T("%3I64d ms"), (pInfo->lTimeEnd - pInfo->lTimeStart) / pInfo->TicksPerMs.QuadPart);
|
||||
#endif
|
||||
return 0;
|
||||
|
||||
case ECHO_REPLY :
|
||||
|
@ -411,11 +407,7 @@ DecodeResponse(PAPPINFO pInfo)
|
|||
DebugPrint(_T("Rouge packet: header id %d, process id %d"), IcmpHdr->icmpheader.id, GetCurrentProcessId());
|
||||
return -1;
|
||||
}
|
||||
#ifndef _WIN64
|
||||
_tprintf(_T("%3lld ms"), (pInfo->lTimeEnd - pInfo->lTimeStart) / pInfo->TicksPerMs.QuadPart);
|
||||
#else
|
||||
_tprintf(_T("%3I64d ms"), (pInfo->lTimeEnd - pInfo->lTimeStart) / pInfo->TicksPerMs.QuadPart);
|
||||
#endif
|
||||
return 1;
|
||||
|
||||
case DEST_UNREACHABLE :
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE group SYSTEM "../../../tools/rbuild/project.dtd">
|
||||
<group xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
<module name="regedit" type="win32gui" installname="regedit.exe" allowwarnings="true">
|
||||
<module name="regedit" type="win32gui" installname="regedit.exe">
|
||||
<include base="regedit">.</include>
|
||||
<define name="UNICODE" />
|
||||
<define name="_UNICODE" />
|
||||
|
@ -12,6 +12,7 @@
|
|||
<library>user32</library>
|
||||
<library>gdi32</library>
|
||||
<library>advapi32</library>
|
||||
<library>comdlg32</library>
|
||||
<library>ole32</library>
|
||||
<library>shell32</library>
|
||||
<library>comctl32</library>
|
||||
|
|
|
@ -227,17 +227,11 @@ Query(LPCTSTR *ServiceArgs,
|
|||
LPCTSTR ServiceName = *ServiceArgs;
|
||||
|
||||
pStatus = QueryService(ServiceName);
|
||||
if (bExtended)
|
||||
if (pStatus)
|
||||
{
|
||||
PrintService(ServiceName,
|
||||
pStatus,
|
||||
TRUE);
|
||||
}
|
||||
else
|
||||
{
|
||||
PrintService(ServiceName,
|
||||
pStatus,
|
||||
FALSE);
|
||||
bExtended);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
21
reactos/base/applications/screensavers/3dtext/lang/ko-KR.rc
Normal file
21
reactos/base/applications/screensavers/3dtext/lang/ko-KR.rc
Normal file
|
@ -0,0 +1,21 @@
|
|||
/*
|
||||
*Korean Translation by Seungju Kim(www.manatails007.org) manatails007*
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
|
||||
|
||||
DLG_SCRNSAVECONFIGURE DIALOGEX 0, 0, 273, 178
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "3D 텍스트 화면 보호기 설정"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "확인",IDOK,216,7,50,14
|
||||
PUSHBUTTON "취소",IDCANCEL,216,24,50,14
|
||||
EDITTEXT IDC_MESSAGE_TEXT,18,28,122,14,ES_AUTOHSCROLL
|
||||
LTEXT "커스텀 텍스트",IDC_STATIC,18,17,65,8
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_DESCRIPTION "3D 텍스트 화면 보호기"
|
||||
END
|
|
@ -18,6 +18,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
|||
#include "lang/eu-ES.rc"
|
||||
#include "lang/fr-FR.rc"
|
||||
#include "lang/it-IT.rc"
|
||||
#include "lang/ko-KR.rc"
|
||||
#include "lang/lt-LT.rc"
|
||||
#include "lang/no-NO.rc"
|
||||
#include "lang/pl-PL.rc"
|
||||
|
|
11
reactos/base/applications/screensavers/logon/lang/ko-KR.rc
Normal file
11
reactos/base/applications/screensavers/logon/lang/ko-KR.rc
Normal file
|
@ -0,0 +1,11 @@
|
|||
/*
|
||||
*Korean Translation by Seungju Kim(www.manatails007.org) manatails007*
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_DESCRIPTION "로그온 화면 보호기"
|
||||
IDS_TEXT "설정할 것이 없습니다."
|
||||
END
|
|
@ -20,6 +20,7 @@ IDB_SERVER BITMAP DISCARDABLE "res/1.bmp"
|
|||
#include "lang/es-ES.rc"
|
||||
#include "lang/eu-ES.rc"
|
||||
#include "lang/fr-FR.rc"
|
||||
#include "lang/ko-KR.rc"
|
||||
#include "lang/lt-LT.rc"
|
||||
#include "lang/nl-NL.rc"
|
||||
#include "lang/no-NO.rc"
|
||||
|
|
14
reactos/base/applications/shutdown/lang/it-IT.rc
Normal file
14
reactos/base/applications/shutdown/lang/it-IT.rc
Normal file
|
@ -0,0 +1,14 @@
|
|||
LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
|
||||
IDS_USAGE, "Uso: shutdown [-?] [-l | -s | -r] [-f]\n\n\
|
||||
Senza parametri o con -?\tvisualizza questo messaggio\n\
|
||||
-l\t\t\tChiude la sessione\n\
|
||||
-s\t\t\tSpegnimento del computer\n\
|
||||
-r\t\t\tRiavvio del computer\n\
|
||||
-f\t\t\tArresta le applicazioni senza nessun avviso\n\
|
||||
\t\t\tSe non viene specificato nessun altro parametro verrà\n\
|
||||
\t\t\tchiusa la sessione"
|
||||
END
|
|
@ -6,6 +6,7 @@
|
|||
#include "lang/el-GR.rc"
|
||||
#include "lang/en-US.rc"
|
||||
#include "lang/fr-FR.rc"
|
||||
#include "lang/it-IT.rc"
|
||||
#include "lang/ko-KR.rc"
|
||||
#include "lang/lt-LT.rc"
|
||||
#include "lang/no-NO.rc"
|
||||
|
|
46
reactos/base/applications/sndvol32/lang/ko-KR.rc
Normal file
46
reactos/base/applications/sndvol32/lang/ko-KR.rc
Normal file
|
@ -0,0 +1,46 @@
|
|||
/*
|
||||
*Korean Translation by Seungju Kim(www.manatails007.org) manatails007*
|
||||
*/
|
||||
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
|
||||
|
||||
IDM_MAINMENU MENU DISCARDABLE
|
||||
BEGIN
|
||||
POPUP "옵션(&P)"
|
||||
BEGIN
|
||||
MENUITEM "속성(&R)", IDC_PROPERTIES
|
||||
MENUITEM "고급 컨트롤(&A)", IDC_ADVANCED_CONTROLS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "종료(&X)", IDC_EXIT
|
||||
END
|
||||
POPUP "도움말(&H)"
|
||||
BEGIN
|
||||
MENUITEM "도움말 항목(&H)", IDC_HELP_TOPICS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "볼륨 컨트롤 정보(&A)", IDC_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_SNDVOL32 "볼륨 컨트롤"
|
||||
IDS_NOMIXERDEVICES "사용 가능한 믹서 장치가 없습니다! 이 프로그램은 종료됩니다."
|
||||
END
|
||||
|
||||
IDD_PREFERENCES DIALOGEX 0, 0, 224, 250
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "속성"
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x0
|
||||
BEGIN
|
||||
LTEXT "믹서 장치(&M):", -1, 7,8,48,9
|
||||
COMBOBOX IDC_MIXERDEVICE, 55,8,162,80, CBS_DROPDOWNLIST | WS_TABSTOP
|
||||
GROUPBOX "볼륨 조절:", -1, 7,25,211,77
|
||||
PUSHBUTTON "재생(&P)", IDC_PLAYBACK, 13,43,47,8, BS_AUTORADIOBUTTON
|
||||
PUSHBUTTON "녹음(&R)", IDC_RECORDING, 13,61,47,8, BS_AUTORADIOBUTTON
|
||||
PUSHBUTTON "기타(&O):", IDC_OTHER, 13,80,42,8, BS_AUTORADIOBUTTON | WS_DISABLED
|
||||
COMBOBOX IDC_LINE, 55,80,155,50, CBS_DROPDOWNLIST | WS_TABSTOP | WS_DISABLED
|
||||
LTEXT "다음 볼륨 컨트롤 표시:", IDC_LABELCONTROLS, 7, 109, 162, 8
|
||||
CONTROL "", IDC_CONTROLS, "SysListView32", LVS_REPORT | LVS_NOCOLUMNHEADER | WS_TABSTOP | WS_BORDER, 7, 122, 211, 96
|
||||
|
||||
PUSHBUTTON "확인", IDOK, 114,226,50,14
|
||||
PUSHBUTTON "취소", IDCANCEL, 168,226,50,14
|
||||
END
|
|
@ -17,6 +17,7 @@ IDI_MAINAPP ICON DISCARDABLE resources/sndvol32.ico
|
|||
#include "lang/it-IT.rc"
|
||||
#include "lang/ja-JP.rc"
|
||||
#include "lang/lt-LT.rc"
|
||||
#include "lang/ko-KR.rc"
|
||||
#include "lang/nl-NL.rc"
|
||||
#include "lang/no-NO.rc"
|
||||
#include "lang/pl-PL.rc"
|
||||
|
|
|
@ -80,7 +80,7 @@ BEGIN
|
|||
MENUITEM "Sorter &vertikalt", ID_WINDOWS_TILEVERTICALLY
|
||||
MENUITEM "&Minimer", ID_WINDOWS_MINIMIZE
|
||||
MENUITEM "Ma&ksimer", ID_WINDOWS_MAXIMIZE
|
||||
MENUITEM "&Cascade", ID_WINDOWS_CASCADE
|
||||
MENUITEM "&Overlappet", ID_WINDOWS_CASCADE
|
||||
MENUITEM "&Plasser lengst frem", ID_WINDOWS_BRINGTOFRONT
|
||||
END
|
||||
|
||||
|
@ -193,8 +193,8 @@ BEGIN
|
|||
CONTROL "Liste2",IDC_APPLIST,"SysListView32",LVS_REPORT |
|
||||
LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,7,7,233,177
|
||||
PUSHBUTTON "&Ny oppgave...",IDC_NEWTASK,187,189,53,14
|
||||
PUSHBUTTON "&Bytt til",IDC_SWITCHTO,131,189,53,14,WS_DISABLED
|
||||
PUSHBUTTON "&Avslutt oppgave",IDC_ENDTASK,75,189,53,14,WS_DISABLED
|
||||
PUSHBUTTON "&Bytt til",IDC_SWITCHTO,129,189,53,14,WS_DISABLED
|
||||
PUSHBUTTON "&Avslutt oppgave",IDC_ENDTASK,60,189,65,14,WS_DISABLED
|
||||
END
|
||||
|
||||
IDD_PROCESS_PAGE DIALOGEX DISCARDABLE 0, 0, 247, 210
|
||||
|
@ -214,8 +214,8 @@ IDD_PERFORMANCE_PAGE DIALOGEX DISCARDABLE 0, 0, 247, 210
|
|||
STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
GROUPBOX "Bruk av CPU",IDC_CPU_USAGE_FRAME,5,5,60,54,WS_TABSTOP, WS_EX_TRANSPARENT
|
||||
GROUPBOX "Bruk av vekslefil",IDC_MEM_USAGE_FRAME,5,63,60,54,BS_LEFTTEXT, WS_EX_TRANSPARENT
|
||||
GROUPBOX "Prosessorbruk",IDC_CPU_USAGE_FRAME,5,5,70,54,WS_TABSTOP, WS_EX_TRANSPARENT
|
||||
GROUPBOX "Minnebruk",IDC_MEM_USAGE_FRAME,5,63,60,54,BS_LEFTTEXT, WS_EX_TRANSPARENT
|
||||
GROUPBOX "Totalt",IDC_TOTALS_FRAME,5,122,111,39,0,WS_EX_TRANSPARENT
|
||||
GROUPBOX "Tildelt minne (kb)",IDC_COMMIT_CHARGE_FRAME,5,166,111,39,0,WS_EX_TRANSPARENT
|
||||
GROUPBOX "Fysisk minne (kb)",IDC_PHYSICAL_MEMORY_FRAME,131,122,111,39,0,WS_EX_TRANSPARENT
|
||||
|
@ -241,30 +241,30 @@ BEGIN
|
|||
LTEXT "Totalt",IDS_PHYSICAL_MEMORY_TOTAL,137,131,27,8
|
||||
LTEXT "Tilgjengelig",IDS_PHYSICAL_MEMORY_AVAILABLE,137,140,40,8
|
||||
LTEXT "Systembuffer",IDS_PHYSICAL_MEMORY_SYSTEM_CACHE,137,149,46,8
|
||||
EDITTEXT IDC_PHYSICAL_MEMORY_TOTAL,185,131,48,8,ES_RIGHT |
|
||||
EDITTEXT IDC_PHYSICAL_MEMORY_TOTAL,187,131,48,8,ES_RIGHT |
|
||||
ES_READONLY | ES_NUMBER | NOT WS_BORDER
|
||||
EDITTEXT IDC_PHYSICAL_MEMORY_AVAILABLE,185,140,48,8,ES_RIGHT |
|
||||
EDITTEXT IDC_PHYSICAL_MEMORY_AVAILABLE,187,140,48,8,ES_RIGHT |
|
||||
ES_READONLY | ES_NUMBER | NOT WS_BORDER
|
||||
EDITTEXT IDC_PHYSICAL_MEMORY_SYSTEM_CACHE,185,149,48,8,ES_RIGHT |
|
||||
EDITTEXT IDC_PHYSICAL_MEMORY_SYSTEM_CACHE,187,149,48,8,ES_RIGHT |
|
||||
ES_READONLY | ES_NUMBER | NOT WS_BORDER
|
||||
LTEXT "Totalt",IDS_KERNEL_MEMORY_TOTAL,137,174,27,8
|
||||
LTEXT "Sidevekslet",IDS_KERNEL_MEMORY_PAGED,137,184,50,8
|
||||
LTEXT "Ikke sidevekslet",IDS_KERNEL_MEMORY_NONPAGED,137,193,75,8
|
||||
EDITTEXT IDC_KERNEL_MEMORY_TOTAL,185,174,48,8,ES_RIGHT |
|
||||
LTEXT "Sidevekslet",IDS_KERNEL_MEMORY_PAGED,137,184,54,8
|
||||
LTEXT "Ikke sidevekslet",IDS_KERNEL_MEMORY_NONPAGED,137,193,85,8
|
||||
EDITTEXT IDC_KERNEL_MEMORY_TOTAL,187,174,48,8,ES_RIGHT |
|
||||
ES_READONLY | ES_NUMBER | NOT WS_BORDER
|
||||
EDITTEXT IDC_KERNEL_MEMORY_PAGED,185,184,48,8,ES_RIGHT |
|
||||
EDITTEXT IDC_KERNEL_MEMORY_PAGED,187,184,48,8,ES_RIGHT |
|
||||
ES_READONLY | ES_NUMBER | NOT WS_BORDER
|
||||
EDITTEXT IDC_KERNEL_MEMORY_NONPAGED,185,193,48,8,ES_RIGHT |
|
||||
EDITTEXT IDC_KERNEL_MEMORY_NONPAGED,187,193,48,8,ES_RIGHT |
|
||||
ES_READONLY | ES_NUMBER | NOT WS_BORDER
|
||||
GROUPBOX "Bruk av CPU",IDC_CPU_USAGE_HISTORY_FRAME,74,5,168,54,0,WS_EX_TRANSPARENT
|
||||
GROUPBOX "Logg for bruk av sidevekslingsfil",IDC_MEMORY_USAGE_HISTORY_FRAME,74,63,168,54,0,WS_EX_TRANSPARENT
|
||||
PUSHBUTTON "Vis bruk av CPU",IDC_CPU_USAGE_GRAPH,12,17,47,37,0,
|
||||
GROUPBOX "Logg for bruk av prosessor",IDC_CPU_USAGE_HISTORY_FRAME,74,5,168,54,0,WS_EX_TRANSPARENT
|
||||
GROUPBOX "Logg for bruk av fysisk minne",IDC_MEMORY_USAGE_HISTORY_FRAME,74,63,168,54,0,WS_EX_TRANSPARENT
|
||||
PUSHBUTTON "Vis prosessorbruk",IDC_CPU_USAGE_GRAPH,12,17,47,37,0,
|
||||
WS_EX_CLIENTEDGE
|
||||
PUSHBUTTON "Vis bruk av MEM",IDC_MEM_USAGE_GRAPH,12,75,47,37,0,
|
||||
PUSHBUTTON "Vis minnebruk",IDC_MEM_USAGE_GRAPH,12,75,47,37,0,
|
||||
WS_EX_CLIENTEDGE
|
||||
PUSHBUTTON "Logg for bruk av CPU",IDC_CPU_USAGE_HISTORY_GRAPH,81,17,
|
||||
PUSHBUTTON "Logg for prosessorbruk",IDC_CPU_USAGE_HISTORY_GRAPH,81,17,
|
||||
153,37,0,WS_EX_CLIENTEDGE
|
||||
PUSHBUTTON "MEM bruk historie",IDC_MEM_USAGE_HISTORY_GRAPH,81,75,
|
||||
PUSHBUTTON "Minne bruk historie",IDC_MEM_USAGE_HISTORY_GRAPH,81,75,
|
||||
153,37,0,WS_EX_CLIENTEDGE
|
||||
END
|
||||
|
||||
|
@ -356,21 +356,21 @@ END
|
|||
|
||||
IDD_COLUMNS_DIALOG DIALOGEX DISCARDABLE 0, 0, 195, 199
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Velg spaltevis"
|
||||
CAPTION "Velg kolonnene"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,84,178,50,14
|
||||
PUSHBUTTON "Avbryt",IDCANCEL,138,178,50,14
|
||||
LTEXT "Velg spaltevis det vil oppstå på Prosess side av oppgavebehandler.",
|
||||
LTEXT "Velg kolonnene som skal vises på prosesssiden i Oppgavebehandling.",
|
||||
IDC_STATIC,7,7,181,17
|
||||
CONTROL "&Bilde navn",IDC_IMAGENAME,"Button",BS_AUTOCHECKBOX |
|
||||
CONTROL "&Bildenavn",IDC_IMAGENAME,"Button",BS_AUTOCHECKBOX |
|
||||
WS_DISABLED | WS_TABSTOP,7,28,56,10
|
||||
CONTROL "&PID (Prosess identifikator)",IDC_PID,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,7,39,88,10
|
||||
CONTROL "&CPU brukt",IDC_CPUUSAGE,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,7,50,53,10
|
||||
CONTROL "CPU Ti&d",IDC_CPUTIME,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,7,61,48,10
|
||||
CONTROL "&PID (prosessidentifikator)",IDC_PID,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,7,39,93,10
|
||||
CONTROL "&Prosessorbruk",IDC_CPUUSAGE,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,7,50,60,10
|
||||
CONTROL "Prosessorti&d",IDC_CPUTIME,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,7,61,52,10
|
||||
CONTROL "&Minne brukt",IDC_MEMORYUSAGE,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,7,72,63,10
|
||||
CONTROL "Minne brukt &Delta",IDC_MEMORYUSAGEDELTA,"Button",
|
||||
|
@ -378,40 +378,40 @@ BEGIN
|
|||
CONTROL "Ma&ks minne bruk",IDC_PEAKMEMORYUSAGE,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,7,94,82,10
|
||||
CONTROL "Side &mangeler",IDC_PAGEFAULTS,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,7,105,53,10
|
||||
WS_TABSTOP,7,105,56,10
|
||||
CONTROL "&Bruker objekt",IDC_USEROBJECTS,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,7,116,62,10
|
||||
CONTROL "I/O Leser",IDC_IOREADS,"Button",BS_AUTOCHECKBOX |
|
||||
CONTROL "I/O Lest",IDC_IOREADS,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,7,127,49,10
|
||||
CONTROL "I/O Leser Bytes",IDC_IOREADBYTES,"Button",
|
||||
CONTROL "I/O skrevet",IDC_IOREADBYTES,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,7,138,65,10
|
||||
CONTROL "&Sesjon ID",IDC_SESSIONID,"Button",BS_AUTOCHECKBOX |
|
||||
CONTROL "&Økt ID",IDC_SESSIONID,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,7,149,50,10
|
||||
CONTROL "Bruker &Navn",IDC_USERNAME,"Button",BS_AUTOCHECKBOX |
|
||||
CONTROL "Bruker&navn",IDC_USERNAME,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,7,160,51,10
|
||||
CONTROL "Side &mangel Delta",IDC_PAGEFAULTSDELTA,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,107,28,72,10
|
||||
CONTROL "&Virtuelt minne Størrelse",IDC_VIRTUALMEMORYSIZE,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,107,39,77,10
|
||||
CONTROL "&Virtuelt minne størrelse",IDC_VIRTUALMEMORYSIZE,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,107,39,86,10
|
||||
CONTROL "Si&de innsats",IDC_PAGEDPOOL,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,107,50,53,10
|
||||
CONTROL "I&ngen-side innsats",IDC_NONPAGEDPOOL,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,107,61,67,10
|
||||
CONTROL "Base P&rioritet",IDC_BASEPRIORITY,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,107,61,72,10
|
||||
CONTROL "Basisp&rioritet",IDC_BASEPRIORITY,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,107,72,55,10
|
||||
CONTROL "&Handle regne",IDC_HANDLECOUNT,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,107,83,59,10
|
||||
CONTROL "&Tråd medregne",IDC_THREADCOUNT,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,107,94,59,10
|
||||
WS_TABSTOP,107,94,65,10
|
||||
CONTROL "GDI Objekt",IDC_GDIOBJECTS,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,107,105,55,10
|
||||
CONTROL "I/O skriver",IDC_IOWRITES,"Button",BS_AUTOCHECKBOX |
|
||||
CONTROL "I/O skrevet",IDC_IOWRITES,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,107,116,49,10
|
||||
CONTROL "I/O skriver Bytes",IDC_IOWRITEBYTES,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,107,127,65,10
|
||||
CONTROL "I/O skrevne byte",IDC_IOWRITEBYTES,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,107,127,70,10
|
||||
CONTROL "I/O Annet",IDC_IOOTHER,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,107,138,46,10
|
||||
CONTROL "I/O Annet Byte",IDC_IOOTHERBYTES,"Button",
|
||||
CONTROL "I/O Andre byte",IDC_IOOTHERBYTES,"Button",
|
||||
BS_AUTOCHECKBOX | WS_TABSTOP,107,149,65,10
|
||||
END
|
||||
|
||||
|
@ -544,39 +544,39 @@ END
|
|||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
ID_FILE_NEW "Kjør et nytt program"
|
||||
ID_OPTIONS_ALWAYSONTOP "Oppgavebehandler fortsette å være forran av alle andre vinduer uten minimert"
|
||||
ID_OPTIONS_ALWAYSONTOP "Oppgavebehandler fortsette å være over alle andre vinduer med mindre de er minimert"
|
||||
ID_OPTIONS_MINIMIZEONUSE
|
||||
"Oppgavebehandelen er minimert når en SwitchTo operasjon er oppført"
|
||||
"Oppgavebehandling er minimert når en 'Skift til' operasjon utføres"
|
||||
ID_OPTIONS_HIDEWHENMINIMIZED "Skjule oppgavebehandelen når det er minimert"
|
||||
ID_VIEW_REFRESH "Nødvendighet for oppgavebehandelen å oppdateres nå, hensynsløs av oppdatering hastighet innstillingen"
|
||||
ID_VIEW_LARGE "Vis oppgavene ved å bruke store ikoner"
|
||||
ID_VIEW_SMALL "Vis oppgavene ved å bruke små ikoner"
|
||||
ID_VIEW_DETAILS "Vis informasjon om hver oppgave"
|
||||
ID_VIEW_REFRESH "Oppdater nå, uahengig av innstillingene for oppdatering hastighet"
|
||||
ID_VIEW_LARGE "Viser oppgavene ved å bruke store ikoner"
|
||||
ID_VIEW_SMALL "Viser oppgavene ved å bruke små ikoner"
|
||||
ID_VIEW_DETAILS "Viser informasjon om hver oppgave"
|
||||
ID_VIEW_UPDATESPEED_HIGH "Oppdater skjermen to ganger per sekund"
|
||||
ID_VIEW_UPDATESPEED_NORMAL "Oppdater skjermen hver to sekunds"
|
||||
ID_VIEW_UPDATESPEED_LOW "Oppdater skjermen hver fire sekund"
|
||||
ID_VIEW_UPDATESPEED_NORMAL "Oppdater skjermen annenhver sekund"
|
||||
ID_VIEW_UPDATESPEED_LOW "Oppdater skjermen hvert fjerde sekund"
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
ID_VIEW_UPDATESPEED_PAUSED "Kan ikke automatisk oppdateres"
|
||||
ID_VIEW_UPDATESPEED_PAUSED "Skjermen oppdaterer ikke automatisk"
|
||||
ID_WINDOWS_TILEHORIZONTALLY
|
||||
"Tittel vindu horisontalt på skrivebordet"
|
||||
ID_WINDOWS_TILEVERTICALLY "Tittel vindu vertikalt på skrivebordet"
|
||||
"Viser tittel vindu horisontalt på skrivebordet"
|
||||
ID_WINDOWS_TILEVERTICALLY "Viser tittel vindu vertikalt på skrivebordet"
|
||||
ID_WINDOWS_MINIMIZE "Minimalisere vinduet"
|
||||
ID_WINDOWS_MAXIMIZE "Maksimere vinduet"
|
||||
ID_WINDOWS_CASCADE "Cascades vinduet diagonalt på skrivebordet"
|
||||
ID_WINDOWS_BRINGTOFRONT "Bringe vinduet front, men kan ikke bryter til det"
|
||||
ID_HELP_TOPICS "Vis oppgavebehandler emner i hjelp"
|
||||
ID_HELP_ABOUT "Vis program informasjon, versjon nummer, og enerett"
|
||||
ID_FILE_EXIT "Avslutt oppgavebehandler applikasjon"
|
||||
ID_WINDOWS_CASCADE "Overlapper vinduet diagonalt på skrivebordet"
|
||||
ID_WINDOWS_BRINGTOFRONT "Legger vinduet øverst, men kan ikke skifte til det"
|
||||
ID_HELP_TOPICS "Viser emner i hjelp for oppgavebehandling"
|
||||
ID_HELP_ABOUT "Viser program informasjon, versjon nummer, og enerett"
|
||||
ID_FILE_EXIT "Avslutter oppgavebehandling"
|
||||
ID_OPTIONS_SHOW16BITTASKS
|
||||
"Vis 16-bit oppgaver under assosiert ntvdm.exe"
|
||||
ID_VIEW_SELECTCOLUMNS "Velg hva kolonner vil bli synlig på Prosess side"
|
||||
ID_VIEW_SHOWKERNELTIMES "Vis kernel tid i utførelse diagramer"
|
||||
"Viser 16-biters oppgaver under tilknyttende ntvdm.exe"
|
||||
ID_VIEW_SELECTCOLUMNS "Velg hvilken kolonner som vil bli synlig på prosess siden"
|
||||
ID_VIEW_SHOWKERNELTIMES "Viser kjerne tid i ytelses grafene"
|
||||
ID_VIEW_CPUHISTORY_ONEGRAPHALL
|
||||
"En singel historie graf viser totalt CPU bruk"
|
||||
ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU "Hver CPU har dems egene historie graf"
|
||||
"En enkelt logg graf viser totalt prosessorbruk"
|
||||
ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU "Hver prosessor har sin egen logg graf"
|
||||
ID_APPLICATION_PAGE_SWITCHTO
|
||||
"Skaffe en oppgave til forgrunn, endre fokus til den oppgaven"
|
||||
END
|
||||
|
@ -617,10 +617,10 @@ BEGIN
|
|||
IDS_TAB_PID "PID"
|
||||
IDS_TAB_USERNAME "Brukernavn"
|
||||
IDS_TAB_SESSIONID "Sesjon ID"
|
||||
IDS_TAB_CPU "CPU"
|
||||
IDS_TAB_CPUTIME "CPU Tid"
|
||||
IDS_TAB_MEMUSAGE "Bruk av vekslefil"
|
||||
IDS_TAB_PEAKMEMUSAGE "Maks bruk av Mem"
|
||||
IDS_TAB_CPU "Prosessor"
|
||||
IDS_TAB_CPUTIME "Prosessor tid"
|
||||
IDS_TAB_MEMUSAGE "Minnebruk"
|
||||
IDS_TAB_PEAKMEMUSAGE "Maks minnebruk"
|
||||
IDS_TAB_MEMDELTA "Mem Delta"
|
||||
IDS_TAB_PAGEFAULT "Side mangel"
|
||||
IDS_TAB_PFDELTA "PF Delta"
|
||||
|
@ -638,21 +638,21 @@ BEGIN
|
|||
IDS_TAB_IOREADBYTES "I/O Leser Byte"
|
||||
IDS_TAB_IOWRITESBYTES "I/O Skriver Byte"
|
||||
IDS_TAB_IOOTHERBYTES "I/O Annet Byte"
|
||||
IDS_MENU_SELECTCOLUMNS "&Velg kollone..."
|
||||
IDS_MENU_SELECTCOLUMNS "&Velg kolonner..."
|
||||
IDS_MENU_16BITTASK "&Vis 16-biter oppgave"
|
||||
IDS_MENU_WINDOWS "&Vinduer"
|
||||
IDS_MENU_LARGEICONS "St&ore Ikoner"
|
||||
IDS_MENU_SMALLICONS "S&må Ikoner"
|
||||
IDS_MENU_LARGEICONS "St&ore ikoner"
|
||||
IDS_MENU_SMALLICONS "S&må ikoner"
|
||||
IDS_MENU_DETAILS "&Detaljer"
|
||||
IDS_MENU_ONEGRAPHALLCPUS "&En Graf, Alle CPU"
|
||||
IDS_MENU_ONEGRAPHPERCPU "En Graf &Per CPU"
|
||||
IDS_MENU_CPUHISTORY "&CPU Historie"
|
||||
IDS_MENU_SHOWKERNELTIMES "&Vis Kernel tider"
|
||||
IDS_MENU_ONEGRAPHALLCPUS "&En Graf, alle prosessorer"
|
||||
IDS_MENU_ONEGRAPHPERCPU "En Graf &per prosessor"
|
||||
IDS_MENU_CPUHISTORY "&Prosessor Historie"
|
||||
IDS_MENU_SHOWKERNELTIMES "&Vis Kjerne tider"
|
||||
IDS_CREATENEWTASK "Opprett ny oppgave"
|
||||
IDS_CREATENEWTASK_DESC "Skriv navnet av et program, mappe, dokument, eller Internett-ressursen, og oppgavebehandelen vil åpne det for deg."
|
||||
IDS_MSG_ACCESSPROCESSAFF "Ikke i stand til tilgang eller sette Prosess slektskap"
|
||||
IDS_CREATENEWTASK_DESC "Skriv navnet på et program, mappe, dokument, eller Internett-ressursen, som oppgavebehandelen vil åpne for deg."
|
||||
IDS_MSG_ACCESSPROCESSAFF "Ikke mulig å fo tilgang eller sette prosess slektskap"
|
||||
IDS_MSG_PROCESSONEPRO "Prosessen må ha tiltrekning med minst en prosessor."
|
||||
IDS_MSG_INVALIDOPTION "Ugyldig Operasjon"
|
||||
IDS_MSG_INVALIDOPTION "Ugyldig operasjon"
|
||||
IDS_MSG_UNABLEDEBUGPROCESS "Ute av stand til feilsøking prosess"
|
||||
IDS_MSG_WARNINGDEBUG "ADVARSEL: Feilretning denne prosess kan følge å miste data.\nEr du sikker du vil tilknytte feilsøkingsprogramet?"
|
||||
IDS_MSG_TASKMGRWARNING "Oppgavebehandler advarsel"
|
||||
|
@ -660,7 +660,7 @@ BEGIN
|
|||
IDS_MSG_UNABLETERMINATEPRO "Ikke i stand til å avslutte prosess"
|
||||
IDS_MSG_UNABLECHANGEPRIORITY "Ikke i stand til endre prioritet"
|
||||
IDS_MSG_WARNINGCHANGEPRIORITY "ADVARSEL: Endring av prioritet klasse av denne prosess kan\nforutsake uønsket resultat inkluderer systemet kan bli ustabilt. Er du\nsikker på at du vil endre prioritet klassen?"
|
||||
IDS_MSG_TRAYICONCPUUSAGE "Bruk av CPU : %d%%"
|
||||
IDS_MSG_TRAYICONCPUUSAGE "Bruk av CPU: %d%%"
|
||||
IDS_STATUS_MEMUSAGE "Tildelt minne: %dK / %dK"
|
||||
IDS_STATUS_CPUUSAGE "Bruk av CPU: %3d%%"
|
||||
IDS_STATUS_PROCESSES "Prosesser: %d"
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
|
||||
<module name="taskmgr" type="win32gui" installbase="system32" installname="taskmgr.exe" unicode="yes" allowwarnings="true">
|
||||
<module name="taskmgr" type="win32gui" installbase="system32" installname="taskmgr.exe" unicode="yes">
|
||||
<include base="taskmgr">.</include>
|
||||
<define name="_WIN32_IE">0x0501</define>
|
||||
<define name="_WIN32_WINNT">0x0501</define>
|
||||
<library>msvcrt</library>
|
||||
<library>ntdll</library>
|
||||
<library>kernel32</library>
|
||||
<library>advapi32</library>
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<library>shell32</library>
|
||||
<library>user32</library>
|
||||
<library>gdi32</library>
|
||||
<library>msvcrt</library>
|
||||
<library>advapi32</library>
|
||||
<library>kernel32</library>
|
||||
<library>comctl32</library>
|
||||
|
|
|
@ -108,7 +108,7 @@ HKEY FindAdapterKey( PDHCP_ADAPTER Adapter ) {
|
|||
PCHAR TargetKeyName = NULL;
|
||||
PCHAR *EnumKeysLinkage = GetSubkeyNames( EnumKeyName, "\\Linkage" );
|
||||
PCHAR *EnumKeysTop = GetSubkeyNames( EnumKeyName, "" );
|
||||
PCHAR RootDevice = NULL, DriverDesc = NULL;
|
||||
PCHAR RootDevice = NULL;
|
||||
HKEY EnumKey, OutKey = NULL;
|
||||
DWORD Error = ERROR_SUCCESS;
|
||||
|
||||
|
@ -121,12 +121,9 @@ HKEY FindAdapterKey( PDHCP_ADAPTER Adapter ) {
|
|||
for( i = 0; EnumKeysLinkage[i]; i++ ) {
|
||||
RootDevice = RegReadString
|
||||
( EnumKey, EnumKeysLinkage[i], "RootDevice" );
|
||||
DriverDesc = RegReadString
|
||||
( EnumKey, EnumKeysTop[i], "DriverDesc" );
|
||||
|
||||
if( DriverDesc &&
|
||||
RootDevice &&
|
||||
!strcmp( DriverDesc, Adapter->DhclientInfo.name ) ) {
|
||||
if( RootDevice &&
|
||||
!strcmp( RootDevice, Adapter->DhclientInfo.name ) ) {
|
||||
TargetKeyName =
|
||||
(CHAR*) malloc( strlen( TargetKeyNameStart ) +
|
||||
strlen( RootDevice ) +
|
||||
|
@ -138,13 +135,11 @@ HKEY FindAdapterKey( PDHCP_ADAPTER Adapter ) {
|
|||
break;
|
||||
} else {
|
||||
free( RootDevice ); RootDevice = 0;
|
||||
free( DriverDesc ); DriverDesc = 0;
|
||||
}
|
||||
}
|
||||
|
||||
cleanup:
|
||||
if( RootDevice ) free( RootDevice );
|
||||
if( DriverDesc ) free( DriverDesc );
|
||||
if( EnumKeysLinkage ) free( EnumKeysLinkage );
|
||||
if( EnumKeysTop ) free( EnumKeysTop );
|
||||
if( TargetKeyName ) free( TargetKeyName );
|
||||
|
|
|
@ -13,6 +13,9 @@
|
|||
<directory name="rpcss">
|
||||
<xi:include href="rpcss/rpcss.rbuild" />
|
||||
</directory>
|
||||
<directory name="spoolsv">
|
||||
<xi:include href="spoolsv/spoolsv.rbuild" />
|
||||
</directory>
|
||||
<directory name="svchost">
|
||||
<xi:include href="svchost/svchost.rbuild" />
|
||||
</directory>
|
||||
|
|
87
reactos/base/services/spoolsv/spoolsv.c
Normal file
87
reactos/base/services/spoolsv/spoolsv.c
Normal file
|
@ -0,0 +1,87 @@
|
|||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
* FILE: services/spoolsv/spoolsv.c
|
||||
* PURPOSE: Printer spooler
|
||||
* PROGRAMMER: Eric Kohl
|
||||
*/
|
||||
|
||||
/* INCLUDES *****************************************************************/
|
||||
|
||||
#define WIN32_NO_STATUS
|
||||
#include <windows.h>
|
||||
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
/* GLOBALS ******************************************************************/
|
||||
|
||||
#define SERVICE_NAME TEXT("Spooler")
|
||||
|
||||
SERVICE_STATUS_HANDLE ServiceStatusHandle;
|
||||
|
||||
|
||||
/* FUNCTIONS *****************************************************************/
|
||||
|
||||
|
||||
static DWORD WINAPI
|
||||
ServiceControlHandler(DWORD dwControl,
|
||||
DWORD dwEventType,
|
||||
LPVOID lpEventData,
|
||||
LPVOID lpContext)
|
||||
{
|
||||
switch (dwControl)
|
||||
{
|
||||
case SERVICE_CONTROL_STOP:
|
||||
case SERVICE_CONTROL_SHUTDOWN:
|
||||
return ERROR_SUCCESS;
|
||||
|
||||
default :
|
||||
return ERROR_CALL_NOT_IMPLEMENTED;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
static VOID CALLBACK
|
||||
ServiceMain(DWORD argc, LPTSTR *argv)
|
||||
{
|
||||
UNREFERENCED_PARAMETER(argc);
|
||||
UNREFERENCED_PARAMETER(argv);
|
||||
|
||||
DPRINT("ServiceMain() called\n");
|
||||
|
||||
ServiceStatusHandle = RegisterServiceCtrlHandlerExW(SERVICE_NAME,
|
||||
ServiceControlHandler,
|
||||
NULL);
|
||||
|
||||
|
||||
|
||||
DPRINT("ServiceMain() done\n");
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
wmain(int argc, WCHAR *argv[])
|
||||
{
|
||||
SERVICE_TABLE_ENTRY ServiceTable[2] =
|
||||
{
|
||||
{SERVICE_NAME, ServiceMain},
|
||||
{NULL, NULL}
|
||||
};
|
||||
|
||||
UNREFERENCED_PARAMETER(argc);
|
||||
UNREFERENCED_PARAMETER(argv);
|
||||
|
||||
DPRINT("Spoolsv: main() started\n");
|
||||
|
||||
StartServiceCtrlDispatcher(ServiceTable);
|
||||
|
||||
DPRINT("Spoolsv: main() done\n");
|
||||
|
||||
ExitThread(0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* EOF */
|
13
reactos/base/services/spoolsv/spoolsv.rbuild
Normal file
13
reactos/base/services/spoolsv/spoolsv.rbuild
Normal file
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
|
||||
<module name="spoolsv" type="win32cui" installbase="system32" installname="spoolsv.exe" unicode="yes">
|
||||
<include base="spoolsv">.</include>
|
||||
<define name="WINVER">0x600</define>
|
||||
<define name="_WIN32_IE">0x0500</define>
|
||||
<define name="_WIN32_WINNT">0x0600</define>
|
||||
<library>ntdll</library>
|
||||
<library>kernel32</library>
|
||||
<library>advapi32</library>
|
||||
<file>spoolsv.c</file>
|
||||
<file>spoolsv.rc</file>
|
||||
</module>
|
4
reactos/base/services/spoolsv/spoolsv.rc
Normal file
4
reactos/base/services/spoolsv/spoolsv.rc
Normal file
|
@ -0,0 +1,4 @@
|
|||
#define REACTOS_STR_FILE_DESCRIPTION "Spooler-Service\0"
|
||||
#define REACTOS_STR_INTERNAL_NAME "Spoolsv\0"
|
||||
#define REACTOS_STR_ORIGINAL_FILENAME "Spoolsv.exe\0"
|
||||
#include <reactos/version.rc>
|
|
@ -142,7 +142,7 @@ BOOL PrepareService(LPCTSTR ServiceName)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
VOID FreeServices()
|
||||
VOID FreeServices(VOID)
|
||||
{
|
||||
while (FirstService)
|
||||
{
|
||||
|
|
|
@ -32,16 +32,16 @@ SendLine(SOCKET sock, LPSTR lpLine)
|
|||
}
|
||||
else
|
||||
{
|
||||
LogEvent(_T("Chargen: Not sent enough bytes"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Chargen: Not sent enough bytes", 0, 0, LOG_FILE);
|
||||
}
|
||||
}
|
||||
else if (retVal == SOCKET_ERROR)
|
||||
{
|
||||
LogEvent(_T("Chargen: Socket error\n"), WSAGetLastError(), 0, LOG_ERROR);
|
||||
LogEvent(L"Chargen: Socket error\n", WSAGetLastError(), 0, LOG_ERROR);
|
||||
}
|
||||
else
|
||||
{
|
||||
LogEvent(_T("Chargen: unknown error\n"), WSAGetLastError(), 0, LOG_ERROR);
|
||||
LogEvent(L"Chargen: unknown error\n", WSAGetLastError(), 0, LOG_ERROR);
|
||||
}
|
||||
|
||||
return bRet;;
|
||||
|
@ -100,21 +100,21 @@ ChargenHandler(VOID* sock_)
|
|||
|
||||
if (!GenerateChars(sock))
|
||||
{
|
||||
LogEvent(_T("Chargen: Char generation failed"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Chargen: Char generation failed", 0, 0, LOG_FILE);
|
||||
retVal = 1;
|
||||
}
|
||||
|
||||
LogEvent(_T("Chargen: Shutting connection down..."), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Chargen: Shutting connection down...", 0, 0, LOG_FILE);
|
||||
if (ShutdownConnection(sock, FALSE))
|
||||
{
|
||||
LogEvent(_T("Chargen: Connection is down"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Chargen: Connection is down", 0, 0, LOG_FILE);
|
||||
}
|
||||
else
|
||||
{
|
||||
LogEvent(_T("Chargen: Connection shutdown failed"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Chargen: Connection shutdown failed", 0, 0, LOG_FILE);
|
||||
retVal = 1;
|
||||
}
|
||||
|
||||
LogEvent(_T("Chargen: Terminating thread"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Chargen: Terminating thread", 0, 0, LOG_FILE);
|
||||
ExitThread(retVal);
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ SendTime(SOCKET sock, CHAR *time)
|
|||
DWORD stringSize = strlen(time) + 1;
|
||||
if (send(sock, time, stringSize, 0) == SOCKET_ERROR)
|
||||
{
|
||||
LogEvent(_T("DayTime: Error sending data"), WSAGetLastError(), 0, LOG_ERROR);
|
||||
LogEvent(L"DayTime: Error sending data", WSAGetLastError(), 0, LOG_ERROR);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -41,15 +41,15 @@ DaytimeHandler(VOID* Sock_)
|
|||
retVal = 1;
|
||||
}
|
||||
|
||||
LogEvent(_T("DayTime: Shutting connection down"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"DayTime: Shutting connection down", 0, 0, LOG_FILE);
|
||||
if (ShutdownConnection(Sock, FALSE))
|
||||
LogEvent(_T("DayTime: Connection is down"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"DayTime: Connection is down", 0, 0, LOG_FILE);
|
||||
else
|
||||
{
|
||||
LogEvent(_T("DayTime: Connection shutdown failed"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"DayTime: Connection shutdown failed", 0, 0, LOG_FILE);
|
||||
retVal = 1;
|
||||
}
|
||||
|
||||
LogEvent(_T("DayTime: Terminating thread"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"DayTime: Terminating thread", 0, 0, LOG_FILE);
|
||||
ExitThread(retVal);
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
static BOOL
|
||||
RecieveIncomingPackets(SOCKET sock)
|
||||
{
|
||||
char readBuffer[BUFSIZE];
|
||||
CHAR readBuffer[BUFSIZE];
|
||||
INT readBytes;
|
||||
|
||||
do
|
||||
|
@ -24,18 +24,18 @@ RecieveIncomingPackets(SOCKET sock)
|
|||
{
|
||||
TCHAR logBuf[256];
|
||||
|
||||
_stprintf(logBuf, _T("Discard: Received %d bytes from client"), readBytes);
|
||||
_swprintf(logBuf, L"Discard: Received %d bytes from client", readBytes);
|
||||
LogEvent(logBuf, 0, 0, LOG_FILE);
|
||||
}
|
||||
else if (readBytes == SOCKET_ERROR)
|
||||
{
|
||||
LogEvent(_T("Discard: Socket Error"), WSAGetLastError(), 0, LOG_ERROR);
|
||||
LogEvent(L"Discard: Socket Error", WSAGetLastError(), 0, LOG_ERROR);
|
||||
return FALSE;
|
||||
}
|
||||
} while ((readBytes > 0) && (!bShutdown));
|
||||
|
||||
if (!bShutdown)
|
||||
LogEvent(_T("Discard: Connection closed by peer"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Discard: Connection closed by peer", 0, 0, LOG_FILE);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -48,21 +48,21 @@ DiscardHandler(VOID* sock_)
|
|||
|
||||
if (!RecieveIncomingPackets(sock))
|
||||
{
|
||||
LogEvent(_T("Discard: RecieveIncomingPackets failed"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Discard: RecieveIncomingPackets failed", 0, 0, LOG_FILE);
|
||||
retVal = 1;
|
||||
}
|
||||
|
||||
LogEvent(_T("Discard: Shutting connection down"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Discard: Shutting connection down", 0, 0, LOG_FILE);
|
||||
if (ShutdownConnection(sock, TRUE))
|
||||
{
|
||||
LogEvent(_T("Discard: Connection is down."), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Discard: Connection is down.", 0, 0, LOG_FILE);
|
||||
}
|
||||
else
|
||||
{
|
||||
LogEvent(_T("Discard: Connection shutdown failed"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Discard: Connection shutdown failed", 0, 0, LOG_FILE);
|
||||
retVal = 1;
|
||||
}
|
||||
|
||||
LogEvent(_T("Discard: Terminating thread"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Discard: Terminating thread", 0, 0, LOG_FILE);
|
||||
ExitThread(retVal);
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ static BOOL
|
|||
EchoIncomingPackets(SOCKET sock)
|
||||
{
|
||||
CHAR readBuffer[RECV_BUF];
|
||||
TCHAR logBuf[256];
|
||||
WCHAR logBuf[256];
|
||||
INT totalSentBytes;
|
||||
INT readBytes;
|
||||
INT retVal;
|
||||
|
@ -25,7 +25,7 @@ EchoIncomingPackets(SOCKET sock)
|
|||
readBytes = recv(sock, readBuffer, RECV_BUF, 0);
|
||||
if (readBytes > 0)
|
||||
{
|
||||
_stprintf(logBuf, _T("Received %d bytes from client"), readBytes);
|
||||
_swprintf(logBuf, L"Received %d bytes from client", readBytes);
|
||||
LogEvent(logBuf, 0, 0, LOG_FILE);
|
||||
|
||||
totalSentBytes = 0;
|
||||
|
@ -34,33 +34,33 @@ EchoIncomingPackets(SOCKET sock)
|
|||
retVal = send(sock, readBuffer + totalSentBytes, readBytes - totalSentBytes, 0);
|
||||
if (retVal > 0)
|
||||
{
|
||||
_stprintf(logBuf, _T("Sent %d bytes back to client"), retVal);
|
||||
_swprintf(logBuf, L"Sent %d bytes back to client", retVal);
|
||||
LogEvent(logBuf, 0, 0, LOG_FILE);
|
||||
totalSentBytes += retVal;
|
||||
}
|
||||
else if (retVal == SOCKET_ERROR)
|
||||
{
|
||||
LogEvent(_T("Echo: socket error"), WSAGetLastError(), 0, LOG_ERROR);
|
||||
LogEvent(L"Echo: socket error", WSAGetLastError(), 0, LOG_ERROR);
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Client closed connection before we could reply to
|
||||
all the data it sent, so quit early. */
|
||||
LogEvent(_T("Peer unexpectedly dropped connection!"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Peer unexpectedly dropped connection!", 0, 0, LOG_FILE);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (readBytes == SOCKET_ERROR)
|
||||
{
|
||||
LogEvent(_T("Echo: socket error"), WSAGetLastError(), 0, LOG_ERROR);
|
||||
LogEvent(L"Echo: socket error", WSAGetLastError(), 0, LOG_ERROR);
|
||||
return FALSE;
|
||||
}
|
||||
} while ((readBytes != 0) && (!bShutdown));
|
||||
|
||||
if (!bShutdown)
|
||||
LogEvent(_T("Echo: Connection closed by peer"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Echo: Connection closed by peer", 0, 0, LOG_FILE);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -73,22 +73,22 @@ EchoHandler(VOID* sock_)
|
|||
|
||||
if (!EchoIncomingPackets(sock))
|
||||
{
|
||||
LogEvent(_T("Echo: EchoIncomingPackets failed"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Echo: EchoIncomingPackets failed", 0, 0, LOG_FILE);
|
||||
retVal = 1;
|
||||
}
|
||||
|
||||
LogEvent(_T("Echo: Shutting connection down"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Echo: Shutting connection down", 0, 0, LOG_FILE);
|
||||
|
||||
if (ShutdownConnection(sock, TRUE))
|
||||
{
|
||||
LogEvent(_T("Echo: Connection is down"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Echo: Connection is down", 0, 0, LOG_FILE);
|
||||
}
|
||||
else
|
||||
{
|
||||
LogEvent(_T("Echo: Connection shutdown failed"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Echo: Connection shutdown failed", 0, 0, LOG_FILE);
|
||||
retVal = 1;
|
||||
}
|
||||
|
||||
LogEvent(_T("Echo: Terminating thread"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Echo: Terminating thread", 0, 0, LOG_FILE);
|
||||
ExitThread(retVal);
|
||||
}
|
||||
|
|
|
@ -11,31 +11,34 @@
|
|||
|
||||
#define DEBUG
|
||||
|
||||
static LPTSTR lpEventSource = _T("tcpsvcs");
|
||||
static LPCTSTR lpLogFileName = _T("C:\\tcpsvcs_log.log");
|
||||
static HANDLE hLogFile;
|
||||
static LPWSTR lpEventSource = L"tcpsvcs";
|
||||
static LPCWSTR lpLogFileName = L"C:\\tcpsvcs_log.log";
|
||||
static HANDLE hLogFile = NULL;
|
||||
|
||||
static OVERLAPPED olWrite;
|
||||
|
||||
|
||||
// needs work
|
||||
static VOID
|
||||
LogToEventLog(LPCTSTR lpMsg,
|
||||
LogToEventLog(LPCWSTR lpMsg,
|
||||
DWORD errNum,
|
||||
DWORD exitCode,
|
||||
UINT flags)
|
||||
{
|
||||
HANDLE hEventLog;
|
||||
|
||||
hEventLog = RegisterEventSource(NULL, lpEventSource);
|
||||
hEventLog = RegisterEventSourceW(NULL, lpEventSource);
|
||||
if (hEventLog)
|
||||
{
|
||||
ReportEvent(hEventLog,
|
||||
(flags & LOG_ERROR) ? EVENTLOG_ERROR_TYPE : EVENTLOG_SUCCESS,
|
||||
0,
|
||||
0,
|
||||
NULL,
|
||||
1,
|
||||
0,
|
||||
&lpMsg,
|
||||
NULL);
|
||||
ReportEventW(hEventLog,
|
||||
(flags & LOG_ERROR) ? EVENTLOG_ERROR_TYPE : EVENTLOG_SUCCESS,
|
||||
0,
|
||||
0,
|
||||
NULL,
|
||||
1,
|
||||
0,
|
||||
&lpMsg,
|
||||
NULL);
|
||||
|
||||
CloseEventLog(hEventLog);
|
||||
}
|
||||
|
@ -44,45 +47,45 @@ LogToEventLog(LPCTSTR lpMsg,
|
|||
static BOOL
|
||||
OpenLogFile()
|
||||
{
|
||||
hLogFile = CreateFile(lpLogFileName,
|
||||
GENERIC_WRITE,
|
||||
0,
|
||||
NULL,
|
||||
OPEN_ALWAYS,
|
||||
FILE_ATTRIBUTE_NORMAL,
|
||||
NULL);
|
||||
if (hLogFile == INVALID_HANDLE_VALUE)
|
||||
hLogFile = CreateFileW(lpLogFileName,
|
||||
GENERIC_WRITE,
|
||||
FILE_SHARE_READ,
|
||||
NULL,
|
||||
OPEN_ALWAYS,
|
||||
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,
|
||||
NULL);
|
||||
if (hLogFile == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
hLogFile = NULL;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static VOID
|
||||
LogToFile(LPCTSTR lpMsg,
|
||||
LogToFile(LPCWSTR lpMsg,
|
||||
DWORD errNum,
|
||||
DWORD exitCode,
|
||||
UINT flags)
|
||||
{
|
||||
LPTSTR lpFullMsg = NULL;
|
||||
LPWSTR lpFullMsg = NULL;
|
||||
DWORD msgLen;
|
||||
|
||||
if (!OpenLogFile())
|
||||
return;
|
||||
|
||||
msgLen = _tcslen(lpMsg) + 1;
|
||||
msgLen = wcslen(lpMsg) + 1;
|
||||
|
||||
if (flags & LOG_ERROR)
|
||||
{
|
||||
LPVOID lpSysMsg;
|
||||
DWORD eMsgLen;
|
||||
|
||||
eMsgLen = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
|
||||
NULL,
|
||||
errNum,
|
||||
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
|
||||
(LPTSTR)&lpSysMsg,
|
||||
0,
|
||||
NULL);
|
||||
eMsgLen = FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
|
||||
NULL,
|
||||
errNum,
|
||||
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
|
||||
(LPTSTR)&lpSysMsg,
|
||||
0,
|
||||
NULL);
|
||||
|
||||
msgLen = msgLen + eMsgLen + 40;
|
||||
|
||||
|
@ -91,9 +94,9 @@ LogToFile(LPCTSTR lpMsg,
|
|||
msgLen * sizeof(TCHAR));
|
||||
if (lpFullMsg)
|
||||
{
|
||||
_sntprintf(lpFullMsg,
|
||||
_snwprintf(lpFullMsg,
|
||||
msgLen,
|
||||
_T("%s : %s\tErrNum = %lu ExitCode = %lu\r\n"),
|
||||
L"%s : %s\tErrNum = %lu ExitCode = %lu\r\n",
|
||||
lpMsg,
|
||||
lpSysMsg,
|
||||
errNum,
|
||||
|
@ -112,9 +115,9 @@ LogToFile(LPCTSTR lpMsg,
|
|||
msgLen * sizeof(TCHAR));
|
||||
if (lpFullMsg)
|
||||
{
|
||||
_sntprintf(lpFullMsg,
|
||||
_snwprintf(lpFullMsg,
|
||||
msgLen,
|
||||
_T("%s\r\n"),
|
||||
L"%s\r\n",
|
||||
lpMsg);
|
||||
}
|
||||
}
|
||||
|
@ -122,17 +125,50 @@ LogToFile(LPCTSTR lpMsg,
|
|||
if (lpFullMsg)
|
||||
{
|
||||
DWORD bytesWritten;
|
||||
DWORD dwRet;
|
||||
BOOL bRet;
|
||||
|
||||
SetFilePointer(hLogFile, 0, NULL, FILE_END);
|
||||
|
||||
WriteFile(hLogFile,
|
||||
lpFullMsg,
|
||||
_tcslen(lpFullMsg) * sizeof(TCHAR),
|
||||
&bytesWritten,
|
||||
NULL);
|
||||
if (bytesWritten == 0)
|
||||
bRet = WriteFile(hLogFile,
|
||||
lpFullMsg,
|
||||
wcslen(lpFullMsg) * sizeof(WCHAR),
|
||||
&bytesWritten,
|
||||
&olWrite);
|
||||
if (!bRet)
|
||||
{
|
||||
LogToEventLog(_T("Failed to write to log file"),
|
||||
if (GetLastError() != ERROR_IO_PENDING)
|
||||
{
|
||||
bRet = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Write is pending
|
||||
dwRet = WaitForSingleObject(olWrite.hEvent, INFINITE);
|
||||
|
||||
switch (dwRet)
|
||||
{
|
||||
// event has been signaled
|
||||
case WAIT_OBJECT_0:
|
||||
{
|
||||
bRet = GetOverlappedResult(hLogFile,
|
||||
&olWrite,
|
||||
&bytesWritten,
|
||||
FALSE);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
// An error has occurred in WaitForSingleObject.
|
||||
// This usually indicates a problem with the
|
||||
// OVERLAPPED structure's event handle.
|
||||
bRet = FALSE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!bRet || bytesWritten == 0)
|
||||
{
|
||||
LogToEventLog(L"Failed to write to log file",
|
||||
GetLastError(),
|
||||
0,
|
||||
LOG_EVENTLOG | LOG_ERROR);
|
||||
|
@ -143,8 +179,6 @@ LogToFile(LPCTSTR lpMsg,
|
|||
lpFullMsg);
|
||||
}
|
||||
|
||||
CloseHandle(hLogFile);
|
||||
|
||||
if (exitCode > 0)
|
||||
ExitProcess(exitCode);
|
||||
}
|
||||
|
@ -152,7 +186,7 @@ LogToFile(LPCTSTR lpMsg,
|
|||
|
||||
|
||||
VOID
|
||||
LogEvent(LPCTSTR lpMsg,
|
||||
LogEvent(LPCWSTR lpMsg,
|
||||
DWORD errNum,
|
||||
DWORD exitCode,
|
||||
UINT flags)
|
||||
|
@ -165,39 +199,64 @@ LogEvent(LPCTSTR lpMsg,
|
|||
LogToEventLog(lpMsg, errNum, exitCode, flags);
|
||||
}
|
||||
|
||||
VOID
|
||||
BOOL
|
||||
InitLogging()
|
||||
{
|
||||
WCHAR wcBom = 0xFEFF;
|
||||
#ifdef DEBUG
|
||||
BOOL bRet = FALSE;
|
||||
|
||||
DeleteFile(lpLogFileName);
|
||||
|
||||
#ifdef _UNICODE
|
||||
if (OpenLogFile())
|
||||
ZeroMemory(&olWrite, sizeof(OVERLAPPED));
|
||||
olWrite.Offset = 0xFFFFFFFF;
|
||||
olWrite.OffsetHigh = 0xFFFFFFFF;
|
||||
olWrite.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
|
||||
if (olWrite.hEvent)
|
||||
{
|
||||
DWORD bytesWritten;
|
||||
DeleteFileW(lpLogFileName);
|
||||
|
||||
WriteFile(hLogFile,
|
||||
&wcBom,
|
||||
sizeof(WCHAR),
|
||||
&bytesWritten,
|
||||
NULL);
|
||||
if (bytesWritten == 0)
|
||||
if (OpenLogFile())
|
||||
{
|
||||
LogToEventLog(_T("Failed to write to log file"),
|
||||
GetLastError(),
|
||||
0,
|
||||
LOG_EVENTLOG | LOG_ERROR);
|
||||
}
|
||||
WCHAR wcBom = 0xFEFF;
|
||||
DWORD bytesWritten;
|
||||
|
||||
CloseHandle(hLogFile);
|
||||
bRet = WriteFile(hLogFile,
|
||||
&wcBom,
|
||||
sizeof(WCHAR),
|
||||
&bytesWritten,
|
||||
&olWrite);
|
||||
if (!bRet)
|
||||
{
|
||||
if (GetLastError() != ERROR_IO_PENDING)
|
||||
{
|
||||
LogToEventLog(L"Failed to write to log file",
|
||||
GetLastError(),
|
||||
0,
|
||||
LOG_EVENTLOG | LOG_ERROR);
|
||||
}
|
||||
else
|
||||
{
|
||||
bRet = TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return bRet;
|
||||
#else
|
||||
return TRUE;
|
||||
#endif
|
||||
}
|
||||
|
||||
VOID
|
||||
UninitLogging()
|
||||
{
|
||||
FlushFileBuffers(hLogFile);
|
||||
CloseHandle(hLogFile);
|
||||
if (hLogFile)
|
||||
{
|
||||
FlushFileBuffers(hLogFile);
|
||||
CloseHandle(hLogFile);
|
||||
}
|
||||
|
||||
if (olWrite.hEvent)
|
||||
{
|
||||
CloseHandle(olWrite.hEvent);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
#include "tcpsvcs.h"
|
||||
|
||||
static LPCTSTR lpFilePath = _T("\\drivers\\etc\\quotes");
|
||||
static WCHAR szFilePath[] = L"\\drivers\\etc\\quotes";
|
||||
|
||||
static BOOL
|
||||
SendQuote(SOCKET sock, char* Quote)
|
||||
|
@ -25,33 +25,33 @@ static BOOL
|
|||
RetrieveQuote(SOCKET sock)
|
||||
{
|
||||
HANDLE hFile;
|
||||
TCHAR lpFullPath[MAX_PATH + 20];
|
||||
WCHAR szFullPath[MAX_PATH + 20];
|
||||
DWORD dwBytesRead;
|
||||
LPSTR lpQuotes;
|
||||
LPSTR lpStr;
|
||||
DWORD quoteNum;
|
||||
DWORD NumQuotes = 0;
|
||||
INT quoteNum;
|
||||
INT NumQuotes = 0;
|
||||
INT i;
|
||||
|
||||
if(!GetSystemDirectory(lpFullPath, MAX_PATH))
|
||||
if(!GetSystemDirectoryW(szFullPath, MAX_PATH))
|
||||
{
|
||||
LogEvent(_T("QOTD: Getting system path failed"), GetLastError(), 0, LOG_FILE);
|
||||
LogEvent(L"QOTD: Getting system path failed", GetLastError(), 0, LOG_FILE);
|
||||
return FALSE;
|
||||
}
|
||||
_tcscat(lpFullPath, lpFilePath);
|
||||
wcscat(szFullPath, szFilePath);
|
||||
|
||||
|
||||
LogEvent(_T("QOTD: Opening quotes file"), 0, 0, LOG_FILE);
|
||||
hFile = CreateFile(lpFullPath,
|
||||
GENERIC_READ,
|
||||
0,
|
||||
NULL,
|
||||
OPEN_EXISTING,
|
||||
FILE_ATTRIBUTE_NORMAL,
|
||||
NULL);
|
||||
LogEvent(L"QOTD: Opening quotes file", 0, 0, LOG_FILE);
|
||||
hFile = CreateFileW(szFullPath,
|
||||
GENERIC_READ,
|
||||
0,
|
||||
NULL,
|
||||
OPEN_EXISTING,
|
||||
FILE_ATTRIBUTE_NORMAL,
|
||||
NULL);
|
||||
if (hFile == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
LogEvent(_T("QOTD: Error opening quotes file"), GetLastError(), 0, LOG_FILE);
|
||||
LogEvent(L"QOTD: Error opening quotes file", GetLastError(), 0, LOG_FILE);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -105,7 +105,7 @@ RetrieveQuote(SOCKET sock)
|
|||
|
||||
/* send the quote */
|
||||
if (!SendQuote(sock, lpStart))
|
||||
LogEvent(_T("QOTD: Error sending data"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"QOTD: Error sending data", 0, 0, LOG_FILE);
|
||||
break;
|
||||
}
|
||||
else
|
||||
|
@ -133,22 +133,22 @@ QotdHandler(VOID* sock_)
|
|||
|
||||
if (!RetrieveQuote(sock))
|
||||
{
|
||||
LogEvent(_T("QOTD: Error retrieving quote"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"QOTD: Error retrieving quote", 0, 0, LOG_FILE);
|
||||
retVal = 1;
|
||||
}
|
||||
|
||||
LogEvent(_T("QOTD: Shutting connection down"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"QOTD: Shutting connection down", 0, 0, LOG_FILE);
|
||||
if (ShutdownConnection(sock, FALSE))
|
||||
{
|
||||
LogEvent(_T("QOTD: Connection is down"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"QOTD: Connection is down", 0, 0, LOG_FILE);
|
||||
}
|
||||
else
|
||||
{
|
||||
LogEvent(_T("QOTD: Connection shutdown failed"), 0, 0, LOG_FILE);
|
||||
LogEvent(_T("QOTD: Terminating thread"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"QOTD: Connection shutdown failed", 0, 0, LOG_FILE);
|
||||
LogEvent(L"QOTD: Terminating thread", 0, 0, LOG_FILE);
|
||||
retVal = 1;
|
||||
}
|
||||
|
||||
LogEvent(_T("QOTD: Terminating thread"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"QOTD: Terminating thread", 0, 0, LOG_FILE);
|
||||
ExitThread(retVal);
|
||||
}
|
||||
|
|
|
@ -33,17 +33,17 @@ SetUpListener(USHORT Port)
|
|||
}
|
||||
else
|
||||
{
|
||||
LogEvent(_T("listen() failed"), WSAGetLastError(), 0, LOG_ERROR);
|
||||
LogEvent(L"listen() failed", WSAGetLastError(), 0, LOG_ERROR);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LogEvent(_T("bind() failed"), WSAGetLastError(), 0, LOG_ERROR);
|
||||
LogEvent(L"bind() failed", WSAGetLastError(), 0, LOG_ERROR);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LogEvent(_T("socket() failed"), WSAGetLastError(), 0, LOG_ERROR);
|
||||
LogEvent(L"socket() failed", WSAGetLastError(), 0, LOG_ERROR);
|
||||
}
|
||||
|
||||
return bSetup ? sock : INVALID_SOCKET;
|
||||
|
@ -53,14 +53,14 @@ SetUpListener(USHORT Port)
|
|||
static VOID
|
||||
AcceptConnections(SOCKET listeningSocket,
|
||||
LPTHREAD_START_ROUTINE lpService,
|
||||
LPTSTR lpName)
|
||||
LPWSTR lpName)
|
||||
{
|
||||
SOCKADDR_IN client;
|
||||
SOCKET sock;
|
||||
HANDLE hThread;
|
||||
TIMEVAL timeVal;
|
||||
FD_SET readFD;
|
||||
TCHAR logBuf[256];
|
||||
WCHAR logBuf[256];
|
||||
INT timeOut = 2000;
|
||||
|
||||
timeVal.tv_sec = timeOut / 1000;
|
||||
|
@ -83,14 +83,14 @@ AcceptConnections(SOCKET listeningSocket,
|
|||
sock = accept(listeningSocket, (SOCKADDR*)&client, &addrSize);
|
||||
if (sock != INVALID_SOCKET)
|
||||
{
|
||||
_stprintf(logBuf,
|
||||
_T("Accepted connection to %s server from %s:%d"),
|
||||
_swprintf(logBuf,
|
||||
L"Accepted connection to %s server from %S:%d",
|
||||
lpName,
|
||||
inet_ntoa(client.sin_addr),
|
||||
ntohs(client.sin_port));
|
||||
LogEvent(logBuf, 0, 0, LOG_FILE);
|
||||
|
||||
_stprintf(logBuf, _T("Creating worker thread for %s"), lpName);
|
||||
_swprintf(logBuf, L"Creating worker thread for %s", lpName);
|
||||
LogEvent(logBuf, 0, 0, LOG_FILE);
|
||||
|
||||
if (!bShutdown)
|
||||
|
@ -102,7 +102,7 @@ AcceptConnections(SOCKET listeningSocket,
|
|||
}
|
||||
else
|
||||
{
|
||||
_stprintf(logBuf, _T("Failed to start worker thread for the %s server"),
|
||||
_swprintf(logBuf, L"Failed to start worker thread for the %s server",
|
||||
lpName);
|
||||
LogEvent(logBuf, 0, 0, LOG_FILE);
|
||||
}
|
||||
|
@ -110,13 +110,13 @@ AcceptConnections(SOCKET listeningSocket,
|
|||
}
|
||||
else
|
||||
{
|
||||
LogEvent(_T("accept failed"), WSAGetLastError(), 0, LOG_ERROR);
|
||||
LogEvent(L"accept failed", WSAGetLastError(), 0, LOG_ERROR);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (selRet == SOCKET_ERROR)
|
||||
{
|
||||
LogEvent(_T("select failed"), WSAGetLastError(), 0, LOG_ERROR);
|
||||
LogEvent(L"select failed", WSAGetLastError(), 0, LOG_ERROR);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -125,14 +125,14 @@ BOOL
|
|||
ShutdownConnection(SOCKET sock,
|
||||
BOOL bRec)
|
||||
{
|
||||
TCHAR logBuf[256];
|
||||
WCHAR logBuf[256];
|
||||
|
||||
/* Disallow any further data sends. This will tell the other side
|
||||
that we want to go away now. If we skip this step, we don't
|
||||
shut the connection down nicely. */
|
||||
if (shutdown(sock, SD_SEND) == SOCKET_ERROR)
|
||||
{
|
||||
LogEvent(_T("Error in shutdown()"), WSAGetLastError(), 0, LOG_ERROR);
|
||||
LogEvent(L"Error in shutdown()", WSAGetLastError(), 0, LOG_ERROR);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -148,7 +148,7 @@ ShutdownConnection(SOCKET sock,
|
|||
ret = recv(sock, readBuffer, BUF, 0);
|
||||
if (ret >= 0)
|
||||
{
|
||||
_stprintf(logBuf, _T("FYI, received %d unexpected bytes during shutdown"), ret);
|
||||
_swprintf(logBuf, L"FYI, received %d unexpected bytes during shutdown", ret);
|
||||
LogEvent(logBuf, 0, 0, LOG_FILE);
|
||||
}
|
||||
} while (ret > 0);
|
||||
|
@ -169,7 +169,7 @@ StartServer(LPVOID lpParam)
|
|||
|
||||
pServices = (PSERVICES)lpParam;
|
||||
|
||||
_stprintf(logBuf, _T("Starting %s server"), pServices->Name);
|
||||
_swprintf(logBuf, L"Starting %s server", pServices->lpName);
|
||||
LogEvent(logBuf, 0, 0, LOG_FILE);
|
||||
|
||||
if (!bShutdown)
|
||||
|
@ -177,23 +177,23 @@ StartServer(LPVOID lpParam)
|
|||
listeningSocket = SetUpListener(htons(pServices->Port));
|
||||
if (!bShutdown && listeningSocket != INVALID_SOCKET)
|
||||
{
|
||||
_stprintf(logBuf,
|
||||
_T("%s is waiting for connections on port %d"),
|
||||
pServices->Name,
|
||||
_swprintf(logBuf,
|
||||
L"%s is waiting for connections on port %d",
|
||||
pServices->lpName,
|
||||
pServices->Port);
|
||||
LogEvent(logBuf, 0, 0, LOG_FILE);
|
||||
|
||||
AcceptConnections(listeningSocket, pServices->Service, pServices->Name);
|
||||
AcceptConnections(listeningSocket, pServices->lpService, pServices->lpName);
|
||||
}
|
||||
else
|
||||
{
|
||||
LogEvent(_T("Socket error when setting up listener"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Socket error when setting up listener", 0, 0, LOG_FILE);
|
||||
}
|
||||
}
|
||||
|
||||
_stprintf(logBuf,
|
||||
_T("Exiting %s thread"),
|
||||
pServices->Name);
|
||||
_swprintf(logBuf,
|
||||
L"Exiting %s thread",
|
||||
pServices->lpName);
|
||||
LogEvent(logBuf, 0, 0, LOG_FILE);
|
||||
ExitThread(0);
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
#include "tcpsvcs.h"
|
||||
|
||||
static LPTSTR ServiceName = _T("tcpsvcs");
|
||||
static WCHAR ServiceName[] = L"tcpsvcs";
|
||||
|
||||
volatile BOOL bShutdown = FALSE;
|
||||
volatile BOOL bPause = FALSE;
|
||||
|
@ -23,11 +23,11 @@ typedef struct _ServiceInfo
|
|||
static SERVICES
|
||||
Services[NUM_SERVICES] =
|
||||
{
|
||||
{ECHO_PORT, _T("Echo"), EchoHandler},
|
||||
{DISCARD_PORT, _T("Discard"), DiscardHandler},
|
||||
{DAYTIME_PORT, _T("Daytime"), DaytimeHandler},
|
||||
{QOTD_PORT, _T("QOTD"), QotdHandler},
|
||||
{CHARGEN_PORT, _T("Chargen"), ChargenHandler}
|
||||
{ECHO_PORT, L"Echo", EchoHandler},
|
||||
{DISCARD_PORT, L"Discard", DiscardHandler},
|
||||
{DAYTIME_PORT, L"Daytime", DaytimeHandler},
|
||||
{QOTD_PORT, L"QOTD", QotdHandler},
|
||||
{CHARGEN_PORT, L"Chargen", ChargenHandler}
|
||||
};
|
||||
|
||||
|
||||
|
@ -36,7 +36,7 @@ UpdateStatus(PSERVICEINFO pServInfo,
|
|||
DWORD NewStatus,
|
||||
DWORD Check)
|
||||
{
|
||||
TCHAR szSet[50];
|
||||
WCHAR szSet[50];
|
||||
|
||||
if (Check > 0)
|
||||
pServInfo->servStatus.dwCheckPoint += Check;
|
||||
|
@ -46,15 +46,15 @@ UpdateStatus(PSERVICEINFO pServInfo,
|
|||
if (NewStatus > 0)
|
||||
pServInfo->servStatus.dwCurrentState = NewStatus;
|
||||
|
||||
_sntprintf(szSet,
|
||||
_snwprintf(szSet,
|
||||
49,
|
||||
_T("Service state 0x%lu, CheckPoint %lu"),
|
||||
L"Service state 0x%lu, CheckPoint %lu",
|
||||
pServInfo->servStatus.dwCurrentState,
|
||||
pServInfo->servStatus.dwCheckPoint);
|
||||
LogEvent(szSet, 0, 0, LOG_FILE);
|
||||
|
||||
if (!SetServiceStatus(pServInfo->hStatus, &pServInfo->servStatus))
|
||||
LogEvent(_T("Cannot set service status"), GetLastError(), 0, LOG_ALL);
|
||||
LogEvent(L"Cannot set service status", GetLastError(), 0, LOG_ALL);
|
||||
}
|
||||
|
||||
|
||||
|
@ -64,25 +64,25 @@ CreateServers(PSERVICEINFO pServInfo)
|
|||
DWORD dwThreadId[NUM_SERVICES];
|
||||
HANDLE hThread[NUM_SERVICES];
|
||||
WSADATA wsaData;
|
||||
TCHAR buf[256];
|
||||
WCHAR buf[256];
|
||||
INT i;
|
||||
DWORD RetVal;
|
||||
|
||||
if ((RetVal = WSAStartup(MAKEWORD(2, 2), &wsaData)) != 0)
|
||||
{
|
||||
_stprintf(buf, _T("WSAStartup() failed : %lu\n"), RetVal);
|
||||
_swprintf(buf, L"WSAStartup() failed : %lu\n", RetVal);
|
||||
LogEvent(buf, 0, 100, LOG_ALL);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
UpdateStatus(pServInfo, 0, 1);
|
||||
|
||||
LogEvent(_T("\nCreating server Threads"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"\nCreating server Threads", 0, 0, LOG_FILE);
|
||||
|
||||
/* Create worker threads. */
|
||||
for(i = 0; i < NUM_SERVICES; i++)
|
||||
for (i = 0; i < NUM_SERVICES; i++)
|
||||
{
|
||||
_stprintf(buf, _T("Creating thread for %s server"), Services[i].Name);
|
||||
_swprintf(buf, L"Creating thread for %s server", Services[i].lpName);
|
||||
LogEvent(buf, 0, 0, LOG_FILE);
|
||||
|
||||
hThread[i] = CreateThread(NULL,
|
||||
|
@ -94,29 +94,30 @@ CreateServers(PSERVICEINFO pServInfo)
|
|||
|
||||
if (hThread[i] == NULL)
|
||||
{
|
||||
_stprintf(buf, _T("\nFailed to start %s server\n"), Services[i].Name);
|
||||
_swprintf(buf, L"\nError creating %s server thread\n", Services[i].lpName);
|
||||
LogEvent(buf, GetLastError(), 0, LOG_ALL);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
UpdateStatus(pServInfo, 0, 1);
|
||||
}
|
||||
|
||||
LogEvent(_T("Setting service status to running"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Setting service status to running", 0, 0, LOG_FILE);
|
||||
UpdateStatus(pServInfo, SERVICE_RUNNING, 0);
|
||||
|
||||
/* Wait until all threads have terminated. */
|
||||
WaitForMultipleObjects(NUM_SERVICES, hThread, TRUE, INFINITE);
|
||||
|
||||
for(i = 0; i < NUM_SERVICES; i++)
|
||||
for (i = 0; i < NUM_SERVICES; i++)
|
||||
{
|
||||
if (hThread[i] != NULL)
|
||||
CloseHandle(hThread[i]);
|
||||
}
|
||||
|
||||
LogEvent(_T("Detaching Winsock2"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Detaching Winsock2", 0, 0, LOG_FILE);
|
||||
WSACleanup();
|
||||
|
||||
return 0;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
VOID WINAPI
|
||||
|
@ -131,7 +132,7 @@ ServerCtrlHandler(DWORD dwControl,
|
|||
{
|
||||
case SERVICE_CONTROL_SHUTDOWN:
|
||||
case SERVICE_CONTROL_STOP:
|
||||
LogEvent(_T("\nSetting the service to SERVICE_STOP_PENDING"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"\nSetting the service to SERVICE_STOP_PENDING", 0, 0, LOG_FILE);
|
||||
InterlockedExchange((LONG *)&bShutdown, TRUE);
|
||||
pServInfo->servStatus.dwWin32ExitCode = 0;
|
||||
pServInfo->servStatus.dwWaitHint = 0;
|
||||
|
@ -139,13 +140,13 @@ ServerCtrlHandler(DWORD dwControl,
|
|||
break;
|
||||
|
||||
case SERVICE_CONTROL_PAUSE: /* not yet implemented */
|
||||
LogEvent(_T("Setting the service to SERVICE_PAUSED"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Setting the service to SERVICE_PAUSED", 0, 0, LOG_FILE);
|
||||
InterlockedExchange((LONG *)&bPause, TRUE);
|
||||
UpdateStatus(pServInfo, SERVICE_PAUSED, 0);
|
||||
break;
|
||||
|
||||
case SERVICE_CONTROL_CONTINUE:
|
||||
LogEvent(_T("Setting the service to SERVICE_RUNNING"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Setting the service to SERVICE_RUNNING", 0, 0, LOG_FILE);
|
||||
InterlockedExchange((LONG *)&bPause, FALSE);
|
||||
UpdateStatus(pServInfo, SERVICE_RUNNING, 0);
|
||||
break;
|
||||
|
@ -155,19 +156,19 @@ ServerCtrlHandler(DWORD dwControl,
|
|||
|
||||
default:
|
||||
if (dwControl > 127 && dwControl < 256) /* user defined */
|
||||
LogEvent(_T("User defined control code"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"User defined control code", 0, 0, LOG_FILE);
|
||||
else
|
||||
LogEvent(_T("ERROR: Bad control code"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"ERROR: Bad control code", 0, 0, LOG_FILE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
VOID WINAPI
|
||||
ServiceMain(DWORD argc, LPTSTR argv[])
|
||||
ServiceMain(DWORD argc, LPWSTR argv[])
|
||||
{
|
||||
SERVICEINFO servInfo;
|
||||
|
||||
LogEvent (_T("Entering ServiceMain."), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Entering ServiceMain.", 0, 0, LOG_FILE);
|
||||
|
||||
servInfo.servStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
|
||||
servInfo.servStatus.dwCurrentState = SERVICE_STOPPED;
|
||||
|
@ -177,43 +178,45 @@ ServiceMain(DWORD argc, LPTSTR argv[])
|
|||
servInfo.servStatus.dwCheckPoint = 0;
|
||||
servInfo.servStatus.dwWaitHint = 2 * CS_TIMEOUT;
|
||||
|
||||
LogEvent(_T("Registering service control handler"), 0, 0, LOG_FILE);
|
||||
servInfo.hStatus = RegisterServiceCtrlHandlerEx(ServiceName,
|
||||
(LPHANDLER_FUNCTION_EX)ServerCtrlHandler,
|
||||
&servInfo);
|
||||
LogEvent(L"Registering service control handler", 0, 0, LOG_FILE);
|
||||
servInfo.hStatus = RegisterServiceCtrlHandlerExW(ServiceName,
|
||||
(LPHANDLER_FUNCTION_EX)ServerCtrlHandler,
|
||||
&servInfo);
|
||||
if (!servInfo.hStatus)
|
||||
LogEvent(_T("Failed to register service\n"), GetLastError(), 100, LOG_ALL);
|
||||
LogEvent(L"Failed to register service", GetLastError(), 100, LOG_ALL);
|
||||
|
||||
UpdateStatus(&servInfo, SERVICE_START_PENDING, 1);
|
||||
|
||||
if (!CreateServers(&servInfo))
|
||||
{
|
||||
LogEvent(L"Error creating servers", GetLastError(), 1, LOG_ALL);
|
||||
servInfo.servStatus.dwServiceSpecificExitCode = 1;
|
||||
UpdateStatus(&servInfo, SERVICE_STOPPED, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
LogEvent(_T("Service threads shut down. Set SERVICE_STOPPED status"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Service threads shut down. Set SERVICE_STOPPED status", 0, 0, LOG_FILE);
|
||||
UpdateStatus(&servInfo, SERVICE_STOPPED, 0);
|
||||
|
||||
LogEvent(_T("Leaving ServiceMain\n"), 0, 0, LOG_FILE);
|
||||
LogEvent(L"Leaving ServiceMain\n", 0, 0, LOG_FILE);
|
||||
}
|
||||
|
||||
|
||||
int _tmain (int argc, LPTSTR argv [])
|
||||
{
|
||||
SERVICE_TABLE_ENTRY ServiceTable[] =
|
||||
SERVICE_TABLE_ENTRYW ServiceTable[] =
|
||||
{
|
||||
{ServiceName, ServiceMain},
|
||||
{NULL, NULL }
|
||||
};
|
||||
|
||||
InitLogging();
|
||||
if (InitLogging())
|
||||
{
|
||||
if (!StartServiceCtrlDispatcherW(ServiceTable))
|
||||
LogEvent(L"failed to start the service control dispatcher", GetLastError(), 101, LOG_ALL);
|
||||
|
||||
if (!StartServiceCtrlDispatcher(ServiceTable))
|
||||
LogEvent(_T("failed to start the service control dispatcher"), GetLastError(), 101, LOG_ALL);
|
||||
|
||||
UninitLogging();
|
||||
UninitLogging();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -3,6 +3,10 @@
|
|||
#include <tchar.h>
|
||||
#include <time.h>
|
||||
|
||||
#ifndef _MSC_VER
|
||||
#define _swprintf swprintf
|
||||
#endif
|
||||
|
||||
#define LOG_FILE 1
|
||||
#define LOG_EVENTLOG 2
|
||||
#define LOG_ERROR 4
|
||||
|
@ -20,19 +24,20 @@
|
|||
|
||||
|
||||
/* data structure to pass to threads */
|
||||
typedef struct _Services {
|
||||
typedef struct _Services
|
||||
{
|
||||
USHORT Port;
|
||||
TCHAR *Name;
|
||||
LPTHREAD_START_ROUTINE Service;
|
||||
LPWSTR lpName;
|
||||
LPTHREAD_START_ROUTINE lpService;
|
||||
} SERVICES, *PSERVICES;
|
||||
|
||||
extern volatile BOOL bShutdown;
|
||||
extern volatile BOOL bPause;
|
||||
|
||||
/* logging functions */
|
||||
VOID InitLogging();
|
||||
BOOL InitLogging();
|
||||
VOID UninitLogging();
|
||||
VOID LogEvent(LPCTSTR lpMsg, DWORD errNum, DWORD exitCode, UINT flags);
|
||||
VOID LogEvent(LPCWSTR lpMsg, DWORD errNum, DWORD exitCode, UINT flags);
|
||||
|
||||
/* skelserver functions */
|
||||
DWORD WINAPI StartServer(LPVOID lpParam);
|
||||
|
|
|
@ -2165,7 +2165,7 @@ PnpEventThread(LPVOID lpParameter)
|
|||
|
||||
/* Process the pnp event */
|
||||
DPRINT("Received PnP Event\n");
|
||||
if (UuidEqual(&PnpEvent->EventGuid, (UUID*)&GUID_DEVICE_ARRIVAL, &RpcStatus))
|
||||
if (UuidEqual(&PnpEvent->EventGuid, (UUID*)&GUID_DEVICE_ENUMERATED, &RpcStatus))
|
||||
{
|
||||
DeviceInstallParams* Params;
|
||||
DWORD len;
|
||||
|
|
|
@ -2,11 +2,128 @@
|
|||
|
||||
LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL
|
||||
|
||||
/* String Tables */
|
||||
STRINGTABLE DISCARDABLE
|
||||
IDD_STARTPAGE DIALOGEX DISCARDABLE 0, 0, 317, 193
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "ReactOS installering"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
IDS_CAPTION "ReactOS Installering"
|
||||
IDS_TEXT "Du kan ikke installere ReactOS direkte fra denne CD!\n\nVennligst restart din datamaskin fra denne CD i anvisning for å installere ReactOS."
|
||||
LTEXT "Velkommen til ReactOS installering veiviseren.", IDC_STARTTITLE, 115, 8, 220, 24
|
||||
LTEXT "Du kan ennå ikke installere ReactOS direkte fra denne CD-en! "\
|
||||
"Vennligst start datamaskinen på nytt og start fra denne platen for å "\
|
||||
"installere ReactOS.", IDC_STATIC, 115, 40, 195, 100
|
||||
LTEXT "Trykk på Fullført for å avslutte installeringen.", IDC_STATIC, 115, 169, 195, 17
|
||||
END
|
||||
|
||||
IDD_LANGSELPAGE DIALOGEX DISCARDABLE 0, 0, 317, 193
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "ReactOS installering"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "IDB_LOGO", IDB_ROSLOGO, "Static", WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, 18, 0, 290, 99
|
||||
CONTROL "Installering språk:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 109, 106, 11
|
||||
CONTROL "", IDC_LANGUAGES, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 107, 176, 142
|
||||
CONTROL "Tastatur eller inndataspråk:", IDC_STATIC, "Static", WS_CHILD | WS_VISIBLE | WS_GROUP | SS_RIGHT, 20, 142, 106, 11
|
||||
CONTROL "", IDC_KEYLAYOUT, "ComboBox", WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST, 132, 141, 176, 81
|
||||
LTEXT "Trykk på Neste for å velge installering type.", IDC_STATIC, 10, 180 ,297, 10
|
||||
END
|
||||
|
||||
IDD_TYPEPAGE DIALOGEX DISCARDABLE 0, 0, 317, 193
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "ReactOS installering"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "Installeringsvalg", IDC_STATIC, "Button", BS_GROUPBOX, 10,0,297,172
|
||||
CONTROL "Installere ReactOS", IDC_INSTALL, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 20, 15, 277, 10
|
||||
CONTROL "Reparere eller oppdatere en installert ReactOS", IDC_SETUP, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED , 20, 30, 277, 10
|
||||
LTEXT "Trykk på Neste for installere enhetene.", IDC_STATIC, 10, 180 ,297, 10
|
||||
END
|
||||
|
||||
IDD_DEVICEPAGE DIALOGEX DISCARDABLE 0, 0, 317, 193
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "ReactOS installering"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "Enhetsinnstillinger", IDC_STATIC, "Button", BS_GROUPBOX, 10,0,297,172
|
||||
LTEXT "Datamaskin:", IDC_STATIC, 20,15, 80, 10
|
||||
CONTROL "", IDC_COMPUTER, "ComboBox", WS_TABSTOP | CBS_DROPDOWNLIST , 100, 15, 150, 80
|
||||
LTEXT "Skjerm:", IDC_STATIC, 20,35, 80, 10
|
||||
CONTROL "", IDC_DISPLAY, "ComboBox", WS_TABSTOP | CBS_DROPDOWNLIST , 100, 35, 150, 80
|
||||
LTEXT "Tastatur:", IDC_STATIC, 20,55, 80, 10
|
||||
CONTROL "", IDC_KEYBOARD, "ComboBox", WS_TABSTOP | CBS_DROPDOWNLIST , 100, 55, 150, 80
|
||||
LTEXT "Trykk på Neste for å installere enhetene.", IDC_STATIC, 10, 180 ,277, 20
|
||||
END
|
||||
|
||||
IDD_DRIVEPAGE DIALOGEX DISCARDABLE 0, 0, 317, 193
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "ReactOS installering"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "ReactOS partisjon installasjon", IDC_STATIC, "Button", BS_GROUPBOX, 10,1,298,176
|
||||
LISTBOX IDC_PARTITION, 20,12,278,142,LBS_HASSTRINGS | WS_VSCROLL
|
||||
PUSHBUTTON "&Opprett", IDC_PARTCREATE, 20,155,50,15
|
||||
PUSHBUTTON "&Slett", IDC_PARTDELETE, 76,155,50,15
|
||||
PUSHBUTTON "&Avansert valg...", IDC_PARTMOREOPTS, 218,155,80,15
|
||||
LTEXT "Trykk på Neste for å starte installasjon prosessen.", IDC_STATIC, 10, 180 ,277, 20
|
||||
END
|
||||
|
||||
IDD_BOOTOPTIONS DIALOGEX DISCARDABLE 0, 0, 305, 105
|
||||
STYLE WS_VISIBLE|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME
|
||||
CAPTION "Avansert partisjon innstillinger"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "Installasjon mappe", IDC_STATIC, "Button", BS_GROUPBOX, 4,1,298,30
|
||||
EDITTEXT IDC_PATH, 10,11,278,13, WS_VISIBLE
|
||||
|
||||
CONTROL "Oppstartslaster installasjon", IDC_STATIC, "Button", BS_GROUPBOX, 4,36,298,41
|
||||
|
||||
CONTROL "Installer oppstartslaster på harddiskens (MBR)", IDC_INSTFREELDR, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 10,46,278,11
|
||||
CONTROL "Ikke installer oppstartslaster", IDC_NOINSTFREELDR, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP | WS_DISABLED , 10,57,278,11
|
||||
END
|
||||
|
||||
IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 193
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "ReactOS installering"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "Installasjon handling", IDC_ACTION, "Button", BS_GROUPBOX, 10,0,297,172
|
||||
LTEXT "Installer filer...", IDC_ACTIVITY, 20, 50, 277, 10
|
||||
LTEXT "test.txt", IDC_ITEM, 30, 80, 257, 10
|
||||
CONTROL "", IDC_PROCESSPROGRESS, "msctls_progress32",
|
||||
PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 20, 120, 277, 8
|
||||
END
|
||||
|
||||
|
||||
IDD_RESTARTPAGE DIALOGEX DISCARDABLE 0, 0, 317, 193
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Fullfører ReactOS installering"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "Fullfører første steget av ReactOS installering", IDC_FINISHTITLE, "Button", BS_GROUPBOX, 10,0,297,172
|
||||
LTEXT "Du har nå fullført første steget av ReactOS installering.", IDC_STATIC, 20, 50, 277, 10
|
||||
|
||||
LTEXT "Når du trykker Fullført, vil din datamaskin starte på nytt.", IDC_STATIC, 20, 80, 277, 10
|
||||
CONTROL "", IDC_RESTART_PROGRESS, "msctls_progress32", PBS_SMOOTH | WS_CHILD | WS_VISIBLE | WS_BORDER, 20, 120, 277, 8
|
||||
LTEXT "Hvis du fortsatt har CD platen i stasjon, fjern denne. Også, for å starte "\
|
||||
"din datamaskin på nytt, trykk på Fullført.", IDC_STATIC, 10, 180, 297, 20
|
||||
END
|
||||
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_LANGTITLE "Språk valg"
|
||||
IDS_LANGSUBTITLE "Velg språk for installering og til ferdig system."
|
||||
IDS_TYPETITLE "Velkommen til ReactOS installering"
|
||||
IDS_TYPESUBTITLE "Velg installering type."
|
||||
IDS_DEVICETITLE "Installer grunnleggende enheter"
|
||||
IDS_DEVICESUBTITLE "Velg innstillingene til skjermen og tastaturet."
|
||||
IDS_DRIVETITLE "Valg av installasjon partisjon og system mappe"
|
||||
IDS_DRIVESUBTITLE "Forbrede installasjon partisjon, system mappe og oppstartslaster."
|
||||
IDS_PROCESSTITLE "Forbrede partisjon, kopiere filer og installere system"
|
||||
IDS_PROCESSSUBTITLE "Opprett og formater partisjon, kopier filer, installere og sett opp oppstartlaster"
|
||||
IDS_RESTARTTITLE "Første steget av installering er fullført"
|
||||
IDS_RESTARTSUBTITLE "Første steget av installering har blitt fullført, start på nytt for å fortsette til andre steget"
|
||||
IDS_ABORTSETUP "ReactOS er ikke fullstendig installert på datamaskinen. Hvis du avslutter nå, trenger du å kjøre installeringen på nytt for å installere Reactos. Vil du virkelig avslutte?"
|
||||
IDS_ABORTSETUP2 "Avbryt installasjonen?"
|
||||
END
|
||||
/* EOF */
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include "lang/de-DE.rc"
|
||||
//#include "lang/el-GR.rc"
|
||||
#include "lang/en-US.rc"
|
||||
#include "lang/no-NO.rc"
|
||||
/*#include "lang/es-ES.rc"
|
||||
#include "lang/fi-FI.rc"*/
|
||||
#include "lang/fr-FR.rc"
|
||||
|
@ -15,7 +16,6 @@
|
|||
#include "lang/it-IT.rc"
|
||||
#include "lang/ja-JP.rc"
|
||||
#include "lang/lt-LT.rc"
|
||||
#include "lang/no-NO.rc"
|
||||
#include "lang/nl-NL.rc"*/
|
||||
#include "lang/pl-PL.rc"
|
||||
/*#include "lang/pt-BR.rc"*/
|
||||
|
|
|
@ -387,6 +387,13 @@ CreateFreeLoaderIniForReactos(PWCHAR IniPath,
|
|||
INSERT_LAST,
|
||||
L"ReactOS_WinLdr",
|
||||
L"\"ReactOS (WinLdr)\"");
|
||||
|
||||
/* ReactOS_Ram="ReactOS (RAM Disk)" */
|
||||
IniCacheInsertKey(IniSection,
|
||||
NULL,
|
||||
INSERT_LAST,
|
||||
L"ReactOS_Ram",
|
||||
L"\"ReactOS (RAM Disk)\"");
|
||||
#endif
|
||||
|
||||
/* Create "ReactOS" section */
|
||||
|
@ -444,7 +451,7 @@ CreateFreeLoaderIniForReactos(PWCHAR IniPath,
|
|||
IniSection = IniCacheAppendSection(IniCache,
|
||||
L"ReactOS_WinLdr");
|
||||
|
||||
/* BootType=ReactOS */
|
||||
/* BootType=Windows2003 */
|
||||
IniCacheInsertKey(IniSection,
|
||||
NULL,
|
||||
INSERT_LAST,
|
||||
|
@ -464,6 +471,31 @@ CreateFreeLoaderIniForReactos(PWCHAR IniPath,
|
|||
INSERT_LAST,
|
||||
L"Options",
|
||||
L"/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS");
|
||||
|
||||
/* Create "ReactOS_WinLdr" section */
|
||||
IniSection = IniCacheAppendSection(IniCache,
|
||||
L"ReactOS_Ram");
|
||||
|
||||
/* BootType=ReactOS */
|
||||
IniCacheInsertKey(IniSection,
|
||||
NULL,
|
||||
INSERT_LAST,
|
||||
L"BootType",
|
||||
L"ReactOS");
|
||||
|
||||
/* SystemPath=ramdisk(0)\\ReactOS */
|
||||
IniCacheInsertKey(IniSection,
|
||||
NULL,
|
||||
INSERT_LAST,
|
||||
L"SystemPath",
|
||||
L"ramdisk(0)\\ReactOS");
|
||||
|
||||
/* Options=/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS /RDIMAGEPATH=reactos.img /RDIMAGEOFFSET=32256*/
|
||||
IniCacheInsertKey(IniSection,
|
||||
NULL,
|
||||
INSERT_LAST,
|
||||
L"Options",
|
||||
L"/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS /RDIMAGEPATH=reactos.img /RDIMAGEOFFSET=32256");
|
||||
#endif
|
||||
|
||||
/* Save the ini file */
|
||||
|
@ -947,7 +979,6 @@ InstallFat32BootCodeToFile(PWSTR SrcPath,
|
|||
NtClose(FileHandle);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
CHECKPOINT1;
|
||||
RtlFreeHeap(ProcessHeap, 0, OrigBootSector);
|
||||
return(Status);
|
||||
}
|
||||
|
|
|
@ -366,7 +366,7 @@ EventThread(IN LPVOID lpParameter)
|
|||
|
||||
/* Process the pnp event */
|
||||
DPRINT("Received PnP Event\n");
|
||||
if (IsEqualIID(&PnpEvent->EventGuid, (REFGUID)&GUID_DEVICE_ARRIVAL))
|
||||
if (IsEqualIID(&PnpEvent->EventGuid, (REFGUID)&GUID_DEVICE_ENUMERATED))
|
||||
{
|
||||
DPRINT1("Device arrival event: %S\n", PnpEvent->TargetDevice.DeviceIds);
|
||||
InstallDevice(hInf, hEnum, hServices, PnpEvent->TargetDevice.DeviceIds);
|
||||
|
|
|
@ -699,7 +699,7 @@ SetupStartPage(PINPUT_RECORD Ir)
|
|||
INFCONTEXT Context;
|
||||
PWCHAR Value;
|
||||
UINT ErrorLine;
|
||||
ULONG ReturnSize;
|
||||
SIZE_T ReturnSize;
|
||||
|
||||
CONSOLE_SetStatusText(MUIGetString(STRING_PLEASEWAIT));
|
||||
|
||||
|
@ -3752,10 +3752,6 @@ RunUSetup(VOID)
|
|||
}
|
||||
}
|
||||
|
||||
/// THE FOLLOWING DPRINT IS FOR THE SYSTEM REGRESSION TOOL
|
||||
/// DO NOT REMOVE!!!
|
||||
DPRINT1("SYSREG_CHECKPOINT:USETUP_COMPLETE\n");
|
||||
|
||||
FreeConsole();
|
||||
|
||||
/* Avoid bugcheck */
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
MUI_LAYOUTS bgBGLayouts[] =
|
||||
{
|
||||
{ L"0402", L"00000402" },
|
||||
{ L"0402", L"00020402" },
|
||||
{ L"0402", L"00030402" },
|
||||
{ L"0409", L"00000409" },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
@ -1086,7 +1088,7 @@ static MUI_ENTRY bgBGLayoutSettingsEntries[] =
|
|||
{
|
||||
6,
|
||||
8,
|
||||
"Please select a layout to be installed by default.",
|
||||
"ˆ§¡¥à¥â¥ ¯®¤à §¡¨à ª« ¢¨ âãà ¯®¤à¥¤¡ .",
|
||||
TEXT_STYLE_NORMAL
|
||||
},
|
||||
{
|
||||
|
|
|
@ -906,7 +906,7 @@ CreatePartitionList (SHORT Left,
|
|||
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||
SYSTEM_DEVICE_INFORMATION Sdi;
|
||||
IO_STATUS_BLOCK Iosb;
|
||||
ULONG ReturnSize;
|
||||
SIZE_T ReturnSize;
|
||||
NTSTATUS Status;
|
||||
ULONG DiskNumber;
|
||||
WCHAR Buffer[MAX_PATH];
|
||||
|
|
|
@ -260,6 +260,7 @@ IsVmwSVGAEnabled(VOID)
|
|||
{
|
||||
return FALSE;
|
||||
}
|
||||
Size = sizeof(DWORD);
|
||||
if(RegQueryValueEx(hReg, L"Start", 0, &Type, (BYTE*)&Value, &Size) != ERROR_SUCCESS ||
|
||||
Type != REG_DWORD)
|
||||
{
|
||||
|
@ -503,7 +504,7 @@ done:
|
|||
}
|
||||
|
||||
cleanup:
|
||||
hThread = (HANDLE)(ULONG_PTR)InterlockedExchange((LONG*)&hInstallationThread, 0);
|
||||
hThread = (HANDLE)InterlockedExchange((LONG*)&hInstallationThread, 0);
|
||||
if(hThread != NULL)
|
||||
{
|
||||
CloseHandle(hThread);
|
||||
|
|
|
@ -139,7 +139,7 @@ VOID ExpandAlias (LPTSTR cmd, INT maxlen)
|
|||
|
||||
}
|
||||
|
||||
INT CommandAlias (LPTSTR cmd, LPTSTR param)
|
||||
INT CommandAlias (LPTSTR param)
|
||||
{
|
||||
LPTSTR ptr;
|
||||
|
||||
|
|
|
@ -188,7 +188,7 @@ ChangeAttribute (LPTSTR pszPath, LPTSTR pszFile, DWORD dwMask,
|
|||
}
|
||||
|
||||
|
||||
INT CommandAttrib (LPTSTR cmd, LPTSTR param)
|
||||
INT CommandAttrib (LPTSTR param)
|
||||
{
|
||||
LPTSTR *arg;
|
||||
INT argc, i;
|
||||
|
|
|
@ -194,6 +194,9 @@ VOID ExitBatch (LPTSTR msg)
|
|||
if (bc->ffind)
|
||||
cmd_free(bc->ffind);
|
||||
|
||||
UndoRedirection(bc->RedirList, NULL);
|
||||
FreeRedirection(bc->RedirList);
|
||||
|
||||
/* Preserve echo state across batch calls */
|
||||
bEcho = bc->bEcho;
|
||||
|
||||
|
@ -213,10 +216,9 @@ VOID ExitBatch (LPTSTR msg)
|
|||
*
|
||||
*/
|
||||
|
||||
BOOL Batch (LPTSTR fullname, LPTSTR firstword, LPTSTR param)
|
||||
BOOL Batch (LPTSTR fullname, LPTSTR firstword, LPTSTR param, BOOL forcenew)
|
||||
{
|
||||
HANDLE hFile;
|
||||
LPTSTR tmp;
|
||||
SetLastError(0);
|
||||
hFile = CreateFile (fullname, GENERIC_READ, FILE_SHARE_WRITE | FILE_SHARE_READ | FILE_SHARE_DELETE, NULL,
|
||||
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL |
|
||||
|
@ -235,7 +237,7 @@ BOOL Batch (LPTSTR fullname, LPTSTR firstword, LPTSTR param)
|
|||
while (bc && bc->forvar)
|
||||
ExitBatch (NULL);
|
||||
|
||||
if (bc == NULL)
|
||||
if (bc == NULL || forcenew)
|
||||
{
|
||||
/* No curent batch file, create a new context */
|
||||
LPBATCH_CONTEXT n = (LPBATCH_CONTEXT)cmd_alloc (sizeof(BATCH_CONTEXT));
|
||||
|
@ -248,9 +250,7 @@ BOOL Batch (LPTSTR fullname, LPTSTR firstword, LPTSTR param)
|
|||
|
||||
n->prev = bc;
|
||||
bc = n;
|
||||
bc->In[0] = _T('\0');
|
||||
bc->Out[0] = _T('\0');
|
||||
bc->Err[0] = _T('\0');
|
||||
bc->RedirList = NULL;
|
||||
}
|
||||
else if (bc->hBatchFile != INVALID_HANDLE_VALUE)
|
||||
{
|
||||
|
@ -263,16 +263,13 @@ BOOL Batch (LPTSTR fullname, LPTSTR firstword, LPTSTR param)
|
|||
cmd_free (bc->raw_params);
|
||||
}
|
||||
|
||||
GetFullPathName(fullname, sizeof(bc->BatchFilePath), bc->BatchFilePath, &tmp);
|
||||
*tmp = '\0';
|
||||
GetFullPathName(fullname, sizeof(bc->BatchFilePath) / sizeof(TCHAR), bc->BatchFilePath, NULL);
|
||||
|
||||
bc->hBatchFile = hFile;
|
||||
SetFilePointer (bc->hBatchFile, 0, NULL, FILE_BEGIN);
|
||||
bc->bEcho = bEcho; /* Preserve echo across batch calls */
|
||||
bc->shiftlevel = 0;
|
||||
bc->bCmdBlock = -1;
|
||||
bc->lCallPosition = 0;
|
||||
bc->lCallPositionHigh = 0;
|
||||
|
||||
bc->ffind = NULL;
|
||||
bc->forvar = _T('\0');
|
||||
|
@ -300,17 +297,23 @@ BOOL Batch (LPTSTR fullname, LPTSTR firstword, LPTSTR param)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
VOID AddBatchRedirection(TCHAR * ifn, TCHAR * ofn, TCHAR * efn)
|
||||
VOID AddBatchRedirection(REDIRECTION **RedirList)
|
||||
{
|
||||
REDIRECTION **ListEnd;
|
||||
|
||||
if(!bc)
|
||||
return;
|
||||
if(_tcslen(ifn))
|
||||
_tcscpy(bc->In,ifn);
|
||||
if(_tcslen(ofn))
|
||||
_tcscpy(bc->Out,ofn);
|
||||
if(_tcslen(efn))
|
||||
_tcscpy(bc->Err,efn);
|
||||
|
||||
/* Prepend the list to the batch context's list */
|
||||
ListEnd = RedirList;
|
||||
while (*ListEnd)
|
||||
ListEnd = &(*ListEnd)->Next;
|
||||
*ListEnd = bc->RedirList;
|
||||
bc->RedirList = *RedirList;
|
||||
|
||||
/* Null out the pointer so that the list will not be cleared prematurely.
|
||||
* These redirections should persist until the batch file exits. */
|
||||
*RedirList = NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -325,10 +328,9 @@ VOID AddBatchRedirection(TCHAR * ifn, TCHAR * ofn, TCHAR * efn)
|
|||
* Set eflag to 0 if line is not to be echoed else 1
|
||||
*/
|
||||
|
||||
LPTSTR ReadBatchLine (LPBOOL bLocalEcho)
|
||||
LPTSTR ReadBatchLine ()
|
||||
{
|
||||
LPTSTR first;
|
||||
LPTSTR ip;
|
||||
|
||||
/* No batch */
|
||||
if (bc == NULL)
|
||||
|
@ -421,8 +423,6 @@ LPTSTR ReadBatchLine (LPBOOL bLocalEcho)
|
|||
|
||||
*dp = _T('\0');
|
||||
|
||||
*bLocalEcho = bEcho;
|
||||
|
||||
return textline;
|
||||
}
|
||||
|
||||
|
@ -439,14 +439,7 @@ LPTSTR ReadBatchLine (LPBOOL bLocalEcho)
|
|||
}
|
||||
TRACE ("ReadBatchLine(): textline: \'%s\'\n", debugstr_aw(textline));
|
||||
|
||||
/* Strip leading spaces and trailing space/control chars */
|
||||
for (first = textline; _istspace (*first); first++)
|
||||
;
|
||||
|
||||
for (ip = first + _tcslen (first) - 1; _istspace (*ip) || _istcntrl (*ip); ip--)
|
||||
;
|
||||
|
||||
*++ip = _T('\0');
|
||||
first = textline;
|
||||
|
||||
/* cmd block over multiple lines (..) */
|
||||
if (bc->bCmdBlock >= 0)
|
||||
|
@ -481,22 +474,6 @@ LPTSTR ReadBatchLine (LPBOOL bLocalEcho)
|
|||
}
|
||||
}
|
||||
|
||||
/* ignore labels and empty lines */
|
||||
if (*first == _T(':') || *first == 0)
|
||||
continue;
|
||||
|
||||
if (*first == _T('@'))
|
||||
{
|
||||
/* don't echo this line */
|
||||
do
|
||||
first++;
|
||||
while (_istspace (*first));
|
||||
|
||||
*bLocalEcho = 0;
|
||||
}
|
||||
else
|
||||
*bLocalEcho = bEcho;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -19,14 +19,10 @@ typedef struct tagBATCHCONTEXT
|
|||
INT shiftlevel;
|
||||
BOOL bEcho; /* Preserve echo flag across batch calls */
|
||||
HANDLE hFind; /* Preserve find handle when doing a for */
|
||||
TCHAR In[MAX_PATH];
|
||||
TCHAR Out[MAX_PATH];
|
||||
TCHAR Err[MAX_PATH];
|
||||
REDIRECTION *RedirList;
|
||||
TCHAR forvar;
|
||||
INT bCmdBlock;
|
||||
BOOL bExecuteBlock[MAX_PATH];
|
||||
LONG lCallPosition; /* store position where to return to after Call :Label */
|
||||
LONG lCallPositionHigh;
|
||||
} BATCH_CONTEXT, *LPBATCH_CONTEXT;
|
||||
|
||||
|
||||
|
@ -45,8 +41,8 @@ extern TCHAR textline[BATCH_BUFFSIZE]; /* Buffer for reading Batch file lines */
|
|||
LPTSTR FindArg (INT);
|
||||
LPTSTR BatchParams (LPTSTR, LPTSTR);
|
||||
VOID ExitBatch (LPTSTR);
|
||||
BOOL Batch (LPTSTR, LPTSTR, LPTSTR);
|
||||
LPTSTR ReadBatchLine (LPBOOL);
|
||||
VOID AddBatchRedirection(TCHAR *, TCHAR *, TCHAR *);
|
||||
BOOL Batch (LPTSTR, LPTSTR, LPTSTR, BOOL);
|
||||
LPTSTR ReadBatchLine();
|
||||
VOID AddBatchRedirection(REDIRECTION **);
|
||||
|
||||
#endif /* _BATCH_H_INCLUDED_ */
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#ifdef INCLUDE_CMD_BEEP
|
||||
|
||||
|
||||
INT cmd_beep (LPTSTR cmd, LPTSTR param)
|
||||
INT cmd_beep (LPTSTR param)
|
||||
{
|
||||
if (_tcsncmp (param, _T("/?"), 2) == 0)
|
||||
{
|
||||
|
|
|
@ -40,11 +40,11 @@
|
|||
* context block.
|
||||
*/
|
||||
|
||||
INT cmd_call (LPTSTR cmd, LPTSTR param)
|
||||
INT cmd_call (LPTSTR param)
|
||||
{
|
||||
LPBATCH_CONTEXT n = NULL;
|
||||
|
||||
TRACE ("cmd_call: (\'%s\',\'%s\')\n", debugstr_aw(cmd), debugstr_aw(param));
|
||||
TRACE ("cmd_call: (\'%s\')\n", debugstr_aw(param));
|
||||
if (!_tcsncmp (param, _T("/?"), 2))
|
||||
{
|
||||
ConOutResPaging(TRUE,STRING_CALL_HELP);
|
||||
|
@ -53,9 +53,18 @@ INT cmd_call (LPTSTR cmd, LPTSTR param)
|
|||
|
||||
if (*param == _T(':') && (bc))
|
||||
{
|
||||
bc->lCallPosition = SetFilePointer(bc->hBatchFile, 0, &bc->lCallPositionHigh, FILE_CURRENT);
|
||||
cmd_goto(_T("goto"), param);
|
||||
return 0;
|
||||
TCHAR *first = param;
|
||||
while (*param && !_istspace(*param))
|
||||
param++;
|
||||
if (*param)
|
||||
{
|
||||
*param++ = _T('\0');
|
||||
while (_istspace(*param))
|
||||
param++;
|
||||
}
|
||||
if (!Batch(bc->BatchFilePath, first, param, TRUE))
|
||||
return 1;
|
||||
return cmd_goto(first);
|
||||
}
|
||||
|
||||
nErrorLevel = 0;
|
||||
|
@ -76,19 +85,8 @@ INT cmd_call (LPTSTR cmd, LPTSTR param)
|
|||
bc->shiftlevel = 0;
|
||||
bc->forvar = 0; /* HBP004 */
|
||||
bc->forproto = NULL; /* HBP004 */
|
||||
bc->RedirList = NULL;
|
||||
ParseCommandLine (param);
|
||||
if (bc->prev)
|
||||
{
|
||||
_tcscpy(bc->In, bc->prev->In);
|
||||
_tcscpy(bc->Out, bc->prev->Out);
|
||||
_tcscpy(bc->Err, bc->prev->Err);
|
||||
}
|
||||
else
|
||||
{
|
||||
bc->In[0] = _T('\0');
|
||||
bc->Out[0] = _T('\0');
|
||||
bc->Err[0] = _T('\0');
|
||||
}
|
||||
|
||||
|
||||
/* Wasn't a batch file so remove conext */
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
#ifdef INCLUDE_CMD_CHCP
|
||||
|
||||
INT CommandChcp (LPTSTR cmd, LPTSTR param)
|
||||
INT CommandChcp (LPTSTR param)
|
||||
{
|
||||
LPTSTR *arg;
|
||||
INT args;
|
||||
|
|
|
@ -100,7 +100,7 @@ IsKeyInString (LPTSTR lpString, TCHAR cKey, BOOL bCaseSensitive)
|
|||
|
||||
|
||||
INT
|
||||
CommandChoice (LPTSTR cmd, LPTSTR param)
|
||||
CommandChoice (LPTSTR param)
|
||||
{
|
||||
LPTSTR lpOptions;
|
||||
TCHAR Options[6];
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
#ifdef INCLUDE_CMD_CLS
|
||||
|
||||
INT cmd_cls (LPTSTR cmd, LPTSTR param)
|
||||
INT cmd_cls (LPTSTR param)
|
||||
{
|
||||
CONSOLE_SCREEN_BUFFER_INFO csbi;
|
||||
COORD coPos;
|
||||
|
|
|
@ -307,10 +307,10 @@ static BOOL RunFile(LPTSTR filename)
|
|||
|
||||
ret = (hShExt)(NULL, _T("open"), filename, NULL, NULL, SW_SHOWNORMAL);
|
||||
|
||||
TRACE ("RunFile: ShellExecuteA/W returned %d\n", ret);
|
||||
TRACE ("RunFile: ShellExecuteA/W returned %d\n", (DWORD)ret);
|
||||
|
||||
FreeLibrary(hShell32);
|
||||
return (PtrToUlong(ret) > 32);
|
||||
return (((DWORD)ret) > 32);
|
||||
}
|
||||
|
||||
|
||||
|
@ -323,7 +323,7 @@ static BOOL RunFile(LPTSTR filename)
|
|||
* Rest - rest of command line
|
||||
*/
|
||||
|
||||
static VOID
|
||||
static BOOL
|
||||
Execute (LPTSTR Full, LPTSTR First, LPTSTR Rest)
|
||||
{
|
||||
TCHAR *szFullName=NULL;
|
||||
|
@ -345,7 +345,7 @@ Execute (LPTSTR Full, LPTSTR First, LPTSTR Rest)
|
|||
{
|
||||
error_out_of_memory();
|
||||
nErrorLevel = 1;
|
||||
return ;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
rest = cmd_alloc ( (_tcslen(Rest) + 512) * sizeof(TCHAR));
|
||||
|
@ -354,7 +354,7 @@ Execute (LPTSTR Full, LPTSTR First, LPTSTR Rest)
|
|||
cmd_free (first);
|
||||
error_out_of_memory();
|
||||
nErrorLevel = 1;
|
||||
return ;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
full = cmd_alloc ( (_tcslen(Full) + 512) * sizeof(TCHAR));
|
||||
|
@ -364,7 +364,7 @@ Execute (LPTSTR Full, LPTSTR First, LPTSTR Rest)
|
|||
cmd_free (rest);
|
||||
error_out_of_memory();
|
||||
nErrorLevel = 1;
|
||||
return ;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
szFullName = cmd_alloc ( (_tcslen(Full) + 512) * sizeof(TCHAR));
|
||||
|
@ -375,7 +375,7 @@ Execute (LPTSTR Full, LPTSTR First, LPTSTR Rest)
|
|||
cmd_free (full);
|
||||
error_out_of_memory();
|
||||
nErrorLevel = 1;
|
||||
return ;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
|
@ -446,7 +446,7 @@ Execute (LPTSTR Full, LPTSTR First, LPTSTR Rest)
|
|||
cmd_free (full);
|
||||
cmd_free (szFullName);
|
||||
nErrorLevel = 1;
|
||||
return;
|
||||
return working;
|
||||
}
|
||||
|
||||
/* get the PATH environment variable and parse it */
|
||||
|
@ -459,7 +459,7 @@ Execute (LPTSTR Full, LPTSTR First, LPTSTR Rest)
|
|||
cmd_free (full);
|
||||
cmd_free (szFullName);
|
||||
nErrorLevel = 1;
|
||||
return;
|
||||
return FALSE;
|
||||
|
||||
}
|
||||
|
||||
|
@ -470,7 +470,7 @@ Execute (LPTSTR Full, LPTSTR First, LPTSTR Rest)
|
|||
if (dot && (!_tcsicmp (dot, _T(".bat")) || !_tcsicmp (dot, _T(".cmd"))))
|
||||
{
|
||||
TRACE ("[BATCH: %s %s]\n", debugstr_aw(szFullName), debugstr_aw(rest));
|
||||
Batch (szFullName, first, rest);
|
||||
Batch (szFullName, first, rest, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -554,6 +554,7 @@ Execute (LPTSTR Full, LPTSTR First, LPTSTR Rest)
|
|||
cmd_free(rest);
|
||||
cmd_free(full);
|
||||
cmd_free (szFullName);
|
||||
return nErrorLevel == 0;
|
||||
}
|
||||
|
||||
|
||||
|
@ -566,7 +567,7 @@ Execute (LPTSTR Full, LPTSTR First, LPTSTR Rest)
|
|||
*
|
||||
*/
|
||||
|
||||
VOID
|
||||
BOOL
|
||||
DoCommand (LPTSTR line)
|
||||
{
|
||||
TCHAR *com = NULL; /* the first word in the command */
|
||||
|
@ -575,6 +576,7 @@ DoCommand (LPTSTR line)
|
|||
LPTSTR rest; /* pointer to the rest of the command line */
|
||||
INT cl;
|
||||
LPCOMMAND cmdptr;
|
||||
BOOL ret = TRUE;
|
||||
|
||||
TRACE ("DoCommand: (\'%s\')\n", debugstr_aw(line));
|
||||
|
||||
|
@ -582,7 +584,7 @@ DoCommand (LPTSTR line)
|
|||
if (com == NULL)
|
||||
{
|
||||
error_out_of_memory();
|
||||
return;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
cp = com;
|
||||
|
@ -640,13 +642,13 @@ DoCommand (LPTSTR line)
|
|||
/* If end of table execute ext cmd */
|
||||
if (cmdptr->name == NULL)
|
||||
{
|
||||
Execute (line, com, rest);
|
||||
ret = Execute (line, com, rest);
|
||||
break;
|
||||
}
|
||||
|
||||
if (!_tcscmp (com, cmdptr->name))
|
||||
{
|
||||
cmdptr->func (com, rest);
|
||||
cmdptr->func (rest);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -667,16 +669,14 @@ DoCommand (LPTSTR line)
|
|||
{
|
||||
/* OK its one of the specials...*/
|
||||
|
||||
/* Terminate first word properly */
|
||||
com[cl] = _T('\0');
|
||||
|
||||
/* Call with new rest */
|
||||
cmdptr->func (com, cstart + cl);
|
||||
cmdptr->func (cstart + cl);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
cmd_free(com);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
@ -687,30 +687,28 @@ DoCommand (LPTSTR line)
|
|||
|
||||
VOID ParseCommandLine (LPTSTR cmd)
|
||||
{
|
||||
TCHAR cmdline[CMDLINE_LENGTH];
|
||||
LPTSTR s;
|
||||
PARSED_COMMAND *Cmd = ParseCommand(cmd);
|
||||
if (Cmd)
|
||||
{
|
||||
ExecuteCommand(Cmd);
|
||||
FreeCommand(Cmd);
|
||||
}
|
||||
}
|
||||
|
||||
static VOID
|
||||
ExecutePipeline(PARSED_COMMAND *Cmd)
|
||||
{
|
||||
#ifdef FEATURE_REDIRECTION
|
||||
TCHAR in[CMDLINE_LENGTH] = _T("");
|
||||
TCHAR out[CMDLINE_LENGTH] = _T("");
|
||||
TCHAR err[CMDLINE_LENGTH] = _T("");
|
||||
TCHAR szTempPath[MAX_PATH] = _T(".\\");
|
||||
TCHAR szFileName[2][MAX_PATH] = {_T(""), _T("")};
|
||||
HANDLE hFile[2] = {INVALID_HANDLE_VALUE, INVALID_HANDLE_VALUE};
|
||||
LPTSTR t = NULL;
|
||||
INT num = 0;
|
||||
INT nRedirFlags = 0;
|
||||
INT Length;
|
||||
UINT Attributes;
|
||||
BOOL bNewBatch = TRUE;
|
||||
HANDLE hOldConIn;
|
||||
HANDLE hOldConOut;
|
||||
HANDLE hOldConErr;
|
||||
#endif /* FEATURE_REDIRECTION */
|
||||
|
||||
_tcscpy (cmdline, cmd);
|
||||
s = &cmdline[0];
|
||||
|
||||
TRACE ("ParseCommandLine: (\'%s\')\n", debugstr_aw(s));
|
||||
//TRACE ("ParseCommandLine: (\'%s\')\n", debugstr_aw(s));
|
||||
|
||||
#ifdef FEATURE_REDIRECTION
|
||||
/* find the temp path to store temporary files */
|
||||
|
@ -731,72 +729,16 @@ VOID ParseCommandLine (LPTSTR cmd)
|
|||
if (szTempPath[_tcslen (szTempPath) - 1] != _T('\\'))
|
||||
_tcscat (szTempPath, _T("\\"));
|
||||
|
||||
/* get the redirections from the command line */
|
||||
num = GetRedirection (s, in, out, err, &nRedirFlags);
|
||||
|
||||
/* more efficient, but do we really need to do this? */
|
||||
for (t = in; _istspace (*t); t++)
|
||||
;
|
||||
_tcscpy (in, t);
|
||||
|
||||
for (t = out; _istspace (*t); t++)
|
||||
;
|
||||
_tcscpy (out, t);
|
||||
|
||||
for (t = err; _istspace (*t); t++)
|
||||
;
|
||||
_tcscpy (err, t);
|
||||
|
||||
if(bc && !_tcslen (in) && _tcslen (bc->In))
|
||||
_tcscpy(in, bc->In);
|
||||
if(bc && !out[0] && _tcslen(bc->Out))
|
||||
{
|
||||
nRedirFlags |= OUTPUT_APPEND;
|
||||
_tcscpy(out, bc->Out);
|
||||
}
|
||||
if(bc && !_tcslen (err) && _tcslen (bc->Err))
|
||||
{
|
||||
nRedirFlags |= ERROR_APPEND;
|
||||
_tcscpy(err, bc->Err);
|
||||
}
|
||||
|
||||
/* Set up the initial conditions ... */
|
||||
/* preserve STDIN, STDOUT and STDERR handles */
|
||||
/* preserve STDIN and STDOUT handles */
|
||||
hOldConIn = GetStdHandle (STD_INPUT_HANDLE);
|
||||
hOldConOut = GetStdHandle (STD_OUTPUT_HANDLE);
|
||||
hOldConErr = GetStdHandle (STD_ERROR_HANDLE);
|
||||
|
||||
/* redirect STDIN */
|
||||
if (in[0])
|
||||
{
|
||||
HANDLE hFile;
|
||||
SECURITY_ATTRIBUTES sa = {sizeof(SECURITY_ATTRIBUTES), NULL, TRUE};
|
||||
|
||||
/* we need make sure the LastError msg is zero before calling CreateFile */
|
||||
SetLastError(0);
|
||||
|
||||
/* Set up pipe for the standard input handler */
|
||||
hFile = CreateFile (in, GENERIC_READ, FILE_SHARE_READ, &sa, OPEN_EXISTING,
|
||||
FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
if (hFile == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
ConErrResPrintf(STRING_CMD_ERROR1, in);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!SetStdHandle (STD_INPUT_HANDLE, hFile))
|
||||
{
|
||||
ConErrResPrintf(STRING_CMD_ERROR1, in);
|
||||
return;
|
||||
}
|
||||
TRACE ("Input redirected from: %s\n", debugstr_aw(in));
|
||||
}
|
||||
|
||||
/* Now do all but the last pipe command */
|
||||
*szFileName[0] = _T('\0');
|
||||
hFile[0] = INVALID_HANDLE_VALUE;
|
||||
|
||||
while (num-- > 1)
|
||||
while (Cmd->Type == C_PIPE)
|
||||
{
|
||||
SECURITY_ATTRIBUTES sa = {sizeof(SECURITY_ATTRIBUTES), NULL, TRUE};
|
||||
|
||||
|
@ -818,7 +760,7 @@ VOID ParseCommandLine (LPTSTR cmd)
|
|||
|
||||
SetStdHandle (STD_OUTPUT_HANDLE, hFile[1]);
|
||||
|
||||
DoCommand (s);
|
||||
ExecuteCommand(Cmd->Subcommands);
|
||||
|
||||
/* close stdout file */
|
||||
SetStdHandle (STD_OUTPUT_HANDLE, hOldConOut);
|
||||
|
@ -851,138 +793,18 @@ VOID ParseCommandLine (LPTSTR cmd)
|
|||
OPEN_EXISTING, FILE_ATTRIBUTE_TEMPORARY, NULL);
|
||||
SetStdHandle (STD_INPUT_HANDLE, hFile[0]);
|
||||
|
||||
s = s + _tcslen (s) + 1;
|
||||
Cmd = Cmd->Subcommands->Next;
|
||||
}
|
||||
|
||||
/* Now set up the end conditions... */
|
||||
/* redirect STDOUT */
|
||||
if (out[0])
|
||||
{
|
||||
/* Final output to here */
|
||||
HANDLE hFile;
|
||||
SECURITY_ATTRIBUTES sa = {sizeof(SECURITY_ATTRIBUTES), NULL, TRUE};
|
||||
SetStdHandle(STD_OUTPUT_HANDLE, hOldConOut);
|
||||
|
||||
/* we need make sure the LastError msg is zero before calling CreateFile */
|
||||
SetLastError(0);
|
||||
|
||||
hFile = CreateFile (out, GENERIC_WRITE, FILE_SHARE_WRITE | FILE_SHARE_READ | FILE_SHARE_DELETE, &sa,
|
||||
(nRedirFlags & OUTPUT_APPEND) ? OPEN_ALWAYS : CREATE_ALWAYS,
|
||||
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_WRITE_THROUGH, NULL);
|
||||
|
||||
if (hFile == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
INT size = _tcslen(out)-1;
|
||||
|
||||
if (out[size] != _T(':'))
|
||||
{
|
||||
ConErrResPrintf(STRING_CMD_ERROR3, out);
|
||||
return;
|
||||
}
|
||||
|
||||
out[size]=_T('\0');
|
||||
hFile = CreateFile (out, GENERIC_WRITE, FILE_SHARE_WRITE | FILE_SHARE_READ | FILE_SHARE_DELETE, &sa,
|
||||
(nRedirFlags & OUTPUT_APPEND) ? OPEN_ALWAYS : CREATE_ALWAYS,
|
||||
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_WRITE_THROUGH, NULL);
|
||||
|
||||
if (hFile == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
ConErrResPrintf(STRING_CMD_ERROR3, out);
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!SetStdHandle (STD_OUTPUT_HANDLE, hFile))
|
||||
{
|
||||
ConErrResPrintf(STRING_CMD_ERROR3, out);
|
||||
return;
|
||||
}
|
||||
|
||||
if (nRedirFlags & OUTPUT_APPEND)
|
||||
{
|
||||
LONG lHighPos = 0;
|
||||
|
||||
if (GetFileType (hFile) == FILE_TYPE_DISK)
|
||||
SetFilePointer (hFile, 0, &lHighPos, FILE_END);
|
||||
}
|
||||
TRACE ("Output redirected to: %s\n", debugstr_aw(out));
|
||||
}
|
||||
else if (hOldConOut != INVALID_HANDLE_VALUE)
|
||||
{
|
||||
/* Restore original stdout */
|
||||
HANDLE hOut = GetStdHandle (STD_OUTPUT_HANDLE);
|
||||
SetStdHandle (STD_OUTPUT_HANDLE, hOldConOut);
|
||||
if (hOldConOut != hOut)
|
||||
CloseHandle (hOut);
|
||||
hOldConOut = INVALID_HANDLE_VALUE;
|
||||
}
|
||||
|
||||
/* redirect STDERR */
|
||||
if (err[0])
|
||||
{
|
||||
/* Final output to here */
|
||||
HANDLE hFile;
|
||||
SECURITY_ATTRIBUTES sa = {sizeof(SECURITY_ATTRIBUTES), NULL, TRUE};
|
||||
|
||||
if (!_tcscmp (err, out))
|
||||
{
|
||||
TRACE ("Stdout and stderr will use the same file!!\n");
|
||||
DuplicateHandle (GetCurrentProcess (),
|
||||
GetStdHandle (STD_OUTPUT_HANDLE),
|
||||
GetCurrentProcess (),
|
||||
&hFile, 0, TRUE, DUPLICATE_SAME_ACCESS);
|
||||
}
|
||||
else
|
||||
{
|
||||
hFile = CreateFile (err,
|
||||
GENERIC_WRITE,
|
||||
FILE_SHARE_WRITE | FILE_SHARE_READ | FILE_SHARE_DELETE,
|
||||
&sa,
|
||||
(nRedirFlags & ERROR_APPEND) ? OPEN_ALWAYS : CREATE_ALWAYS,
|
||||
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_WRITE_THROUGH,
|
||||
NULL);
|
||||
if (hFile == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
ConErrResPrintf(STRING_CMD_ERROR3, err);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (!SetStdHandle (STD_ERROR_HANDLE, hFile))
|
||||
{
|
||||
ConErrResPrintf(STRING_CMD_ERROR3, err);
|
||||
return;
|
||||
}
|
||||
|
||||
if (nRedirFlags & ERROR_APPEND)
|
||||
{
|
||||
LONG lHighPos = 0;
|
||||
|
||||
if (GetFileType (hFile) == FILE_TYPE_DISK)
|
||||
SetFilePointer (hFile, 0, &lHighPos, FILE_END);
|
||||
}
|
||||
TRACE ("Error redirected to: %s\n", debugstr_aw(err));
|
||||
}
|
||||
else if (hOldConErr != INVALID_HANDLE_VALUE)
|
||||
{
|
||||
/* Restore original stderr */
|
||||
HANDLE hErr = GetStdHandle (STD_ERROR_HANDLE);
|
||||
SetStdHandle (STD_ERROR_HANDLE, hOldConErr);
|
||||
if (hOldConErr != hErr)
|
||||
CloseHandle (hErr);
|
||||
hOldConErr = INVALID_HANDLE_VALUE;
|
||||
}
|
||||
|
||||
if(bc)
|
||||
bNewBatch = FALSE;
|
||||
#endif
|
||||
|
||||
/* process final command */
|
||||
DoCommand (s);
|
||||
ExecuteCommand(Cmd);
|
||||
|
||||
#ifdef FEATURE_REDIRECTION
|
||||
if(bNewBatch && bc)
|
||||
AddBatchRedirection(in, out, err);
|
||||
/* close old stdin file */
|
||||
#if 0 /* buggy implementation */
|
||||
SetStdHandle (STD_INPUT_HANDLE, hOldConIn);
|
||||
|
@ -1038,30 +860,55 @@ VOID ParseCommandLine (LPTSTR cmd)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Restore original STDOUT */
|
||||
if (hOldConOut != INVALID_HANDLE_VALUE)
|
||||
{
|
||||
HANDLE hOut = GetStdHandle (STD_OUTPUT_HANDLE);
|
||||
SetStdHandle (STD_OUTPUT_HANDLE, hOldConOut);
|
||||
if (hOldConOut != hOut)
|
||||
CloseHandle (hOut);
|
||||
hOldConOut = INVALID_HANDLE_VALUE;
|
||||
}
|
||||
|
||||
/* Restore original STDERR */
|
||||
if (hOldConErr != INVALID_HANDLE_VALUE)
|
||||
{
|
||||
HANDLE hErr = GetStdHandle (STD_ERROR_HANDLE);
|
||||
SetStdHandle (STD_ERROR_HANDLE, hOldConErr);
|
||||
if (hOldConErr != hErr)
|
||||
CloseHandle (hErr);
|
||||
hOldConErr = INVALID_HANDLE_VALUE;
|
||||
}
|
||||
#endif /* FEATURE_REDIRECTION */
|
||||
}
|
||||
|
||||
BOOL
|
||||
ExecuteCommand(PARSED_COMMAND *Cmd)
|
||||
{
|
||||
BOOL bNewBatch = TRUE;
|
||||
PARSED_COMMAND *Sub;
|
||||
BOOL Success = TRUE;
|
||||
|
||||
if (!PerformRedirection(Cmd->Redirections))
|
||||
return FALSE;
|
||||
|
||||
switch (Cmd->Type)
|
||||
{
|
||||
case C_COMMAND:
|
||||
if(bc)
|
||||
bNewBatch = FALSE;
|
||||
|
||||
Success = DoCommand(Cmd->CommandLine);
|
||||
|
||||
if(bNewBatch && bc)
|
||||
AddBatchRedirection(&Cmd->Redirections);
|
||||
break;
|
||||
case C_QUIET:
|
||||
case C_BLOCK:
|
||||
case C_MULTI:
|
||||
for (Sub = Cmd->Subcommands; Sub; Sub = Sub->Next)
|
||||
Success = ExecuteCommand(Sub);
|
||||
break;
|
||||
case C_IFFAILURE:
|
||||
case C_IFSUCCESS:
|
||||
Sub = Cmd->Subcommands;
|
||||
Success = ExecuteCommand(Sub);
|
||||
if (Success == (Cmd->Type - C_IFFAILURE))
|
||||
{
|
||||
Sub = Sub->Next;
|
||||
Success = ExecuteCommand(Sub);
|
||||
}
|
||||
break;
|
||||
case C_PIPE:
|
||||
ExecutePipeline(Cmd);
|
||||
break;
|
||||
}
|
||||
|
||||
UndoRedirection(Cmd->Redirections, NULL);
|
||||
return Success;
|
||||
}
|
||||
|
||||
BOOL
|
||||
GrowIfNecessary_dbg ( UINT needed, LPTSTR* ret, UINT* retlen, const char *file, int line )
|
||||
{
|
||||
|
@ -1177,14 +1024,16 @@ GetEnvVarOrSpecial ( LPCTSTR varName )
|
|||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
LPCTSTR
|
||||
GetBatchVar ( LPCTSTR varName, UINT* varNameLen )
|
||||
{
|
||||
static LPTSTR ret = NULL;
|
||||
static UINT retlen = 0;
|
||||
DWORD len;
|
||||
|
||||
if ( varNameLen )
|
||||
*varNameLen = 1;
|
||||
*varNameLen = 1;
|
||||
|
||||
switch ( *varName )
|
||||
{
|
||||
|
@ -1192,10 +1041,35 @@ GetBatchVar ( LPCTSTR varName, UINT* varNameLen )
|
|||
varName++;
|
||||
if (_tcsncicmp(varName, _T("dp0"), 3) == 0)
|
||||
{
|
||||
if ( varNameLen )
|
||||
*varNameLen = 4;
|
||||
return bc->BatchFilePath;
|
||||
*varNameLen = 4;
|
||||
len = _tcsrchr(bc->BatchFilePath, _T('\\')) + 1 - bc->BatchFilePath;
|
||||
if (!GrowIfNecessary(len + 1, &ret, &retlen))
|
||||
return NULL;
|
||||
memcpy(ret, bc->BatchFilePath, len * sizeof(TCHAR));
|
||||
ret[len] = _T('\0');
|
||||
return ret;
|
||||
}
|
||||
|
||||
*varNameLen = 2;
|
||||
if (*varName >= _T('0') && *varName <= _T('9')) {
|
||||
LPTSTR arg = FindArg(*varName - _T('0'));
|
||||
|
||||
if (*arg != _T('"'))
|
||||
return arg;
|
||||
|
||||
/* Exclude the leading and trailing quotes */
|
||||
arg++;
|
||||
len = _tcslen(arg);
|
||||
if (arg[len - 1] == _T('"'))
|
||||
len--;
|
||||
|
||||
if (!GrowIfNecessary(len + 1, &ret, &retlen))
|
||||
return NULL;
|
||||
memcpy(ret, arg, len * sizeof(TCHAR));
|
||||
ret[len] = _T('\0');
|
||||
return ret;
|
||||
}
|
||||
break;
|
||||
case _T('0'):
|
||||
case _T('1'):
|
||||
case _T('2'):
|
||||
|
@ -1216,16 +1090,6 @@ GetBatchVar ( LPCTSTR varName, UINT* varNameLen )
|
|||
|
||||
case _T('%'):
|
||||
return _T("%");
|
||||
|
||||
case _T('?'):
|
||||
/* TODO FIXME 10 is only max size for 32-bit */
|
||||
if ( !GrowIfNecessary ( 11, &ret, &retlen ) )
|
||||
return NULL;
|
||||
_sntprintf ( ret, retlen, _T("%u"), nErrorLevel);
|
||||
ret[retlen-1] = 0;
|
||||
if ( varNameLen )
|
||||
*varNameLen = 1;
|
||||
return ret;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
@ -1389,60 +1253,86 @@ too_long:
|
|||
*
|
||||
*/
|
||||
|
||||
BOOL bNoInteractive;
|
||||
BOOL bIsBatch;
|
||||
|
||||
BOOL
|
||||
ReadLine (TCHAR *commandline, BOOL bMore)
|
||||
{
|
||||
TCHAR readline[CMDLINE_LENGTH];
|
||||
LPTSTR ip;
|
||||
|
||||
/* if no batch input then... */
|
||||
if (!(ip = ReadBatchLine()))
|
||||
{
|
||||
if (bNoInteractive)
|
||||
{
|
||||
bExit = TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (bMore)
|
||||
{
|
||||
ConOutPrintf(_T("More? "));
|
||||
}
|
||||
else
|
||||
{
|
||||
/* JPP 19980807 - if echo off, don't print prompt */
|
||||
if (bEcho)
|
||||
PrintPrompt();
|
||||
}
|
||||
|
||||
ReadCommand (readline, CMDLINE_LENGTH - 1);
|
||||
if (CheckCtrlBreak(BREAK_INPUT))
|
||||
{
|
||||
ConOutPuts(_T("\n"));
|
||||
return FALSE;
|
||||
}
|
||||
ip = readline;
|
||||
bIsBatch = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
bIsBatch = TRUE;
|
||||
}
|
||||
|
||||
if (!SubstituteVars(ip, commandline, _T('%'), bIsBatch))
|
||||
return FALSE;
|
||||
|
||||
/* FIXME: !vars! should be substituted later, after parsing. */
|
||||
if (!SubstituteVars(commandline, readline, _T('!'), bIsBatch))
|
||||
return FALSE;
|
||||
_tcscpy(commandline, readline);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static INT
|
||||
ProcessInput (BOOL bFlag)
|
||||
{
|
||||
TCHAR commandline[CMDLINE_LENGTH];
|
||||
TCHAR readline[CMDLINE_LENGTH];
|
||||
LPTSTR ip;
|
||||
BOOL bEchoThisLine;
|
||||
BOOL bIsBatch;
|
||||
PARSED_COMMAND *Cmd;
|
||||
|
||||
bNoInteractive = bFlag;
|
||||
do
|
||||
{
|
||||
/* if no batch input then... */
|
||||
if (!(ip = ReadBatchLine (&bEchoThisLine)))
|
||||
{
|
||||
if (bFlag)
|
||||
return nErrorLevel;
|
||||
|
||||
ReadCommand (readline, CMDLINE_LENGTH);
|
||||
ip = readline;
|
||||
bEchoThisLine = FALSE;
|
||||
bIsBatch = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
bIsBatch = TRUE;
|
||||
}
|
||||
|
||||
/* skip leading blanks */
|
||||
while ( _istspace(*ip) )
|
||||
++ip;
|
||||
|
||||
if (!SubstituteVars(ip, commandline, _T('%'), bIsBatch))
|
||||
Cmd = ParseCommand(NULL);
|
||||
if (!Cmd)
|
||||
continue;
|
||||
|
||||
/* JPP 19980807 */
|
||||
/* Echo batch file line */
|
||||
if (bEchoThisLine)
|
||||
if (bIsBatch && bEcho && Cmd->Type != C_QUIET)
|
||||
{
|
||||
PrintPrompt ();
|
||||
ConOutPuts (commandline);
|
||||
EchoCommand(Cmd);
|
||||
ConOutChar(_T('\n'));
|
||||
}
|
||||
|
||||
/* FIXME: !vars! should be substituted later, after parsing. */
|
||||
if (!SubstituteVars(commandline, readline, _T('!'), bIsBatch))
|
||||
continue;
|
||||
_tcscpy(commandline, readline);
|
||||
|
||||
if (!CheckCtrlBreak(BREAK_INPUT) && *commandline)
|
||||
{
|
||||
ParseCommandLine (commandline);
|
||||
if (bEcho && !bIgnoreEcho && (!bIsBatch || bEchoThisLine))
|
||||
ConOutChar ('\n');
|
||||
bIgnoreEcho = FALSE;
|
||||
}
|
||||
ExecuteCommand(Cmd);
|
||||
if (bEcho && !bIgnoreEcho && (!bIsBatch || Cmd->Type != C_QUIET))
|
||||
ConOutChar ('\n');
|
||||
FreeCommand(Cmd);
|
||||
bIgnoreEcho = FALSE;
|
||||
}
|
||||
while (!bCanExit || !bExit);
|
||||
|
||||
|
@ -1665,10 +1555,10 @@ Initialize (int argc, const TCHAR* argv[])
|
|||
if (!IsExistingFile (_T("\\autoexec.bat")))
|
||||
{
|
||||
#ifdef INCLUDE_CMD_DATE
|
||||
cmd_date (_T(""), _T(""));
|
||||
cmd_date (_T(""));
|
||||
#endif
|
||||
#ifdef INCLUDE_CMD_TIME
|
||||
cmd_time (_T(""), _T(""));
|
||||
cmd_time (_T(""));
|
||||
#endif
|
||||
}
|
||||
else
|
||||
|
|
|
@ -68,39 +68,42 @@ extern OSVERSIONINFO osvi;
|
|||
|
||||
/* Prototypes for ALIAS.C */
|
||||
VOID ExpandAlias (LPTSTR, INT);
|
||||
INT CommandAlias (LPTSTR, LPTSTR);
|
||||
INT CommandAlias (LPTSTR);
|
||||
|
||||
/* Prototypes for ATTRIB.C */
|
||||
INT CommandAttrib (LPTSTR, LPTSTR);
|
||||
INT CommandAttrib (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for BEEP.C */
|
||||
INT cmd_beep (LPTSTR, LPTSTR);
|
||||
INT cmd_beep (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for CALL.C */
|
||||
INT cmd_call (LPTSTR, LPTSTR);
|
||||
INT cmd_call (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for CHCP.C */
|
||||
INT CommandChcp (LPTSTR, LPTSTR);
|
||||
INT CommandChcp (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for CHOICE.C */
|
||||
INT CommandChoice (LPTSTR, LPTSTR);
|
||||
INT CommandChoice (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for CLS.C */
|
||||
INT cmd_cls (LPTSTR, LPTSTR);
|
||||
INT cmd_cls (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for CMD.C */
|
||||
INT ConvertULargeInteger (ULARGE_INTEGER num, LPTSTR des, INT len, BOOL bPutSeperator);
|
||||
VOID ParseCommandLine (LPTSTR);
|
||||
struct _PARSED_COMMAND;
|
||||
BOOL ExecuteCommand(struct _PARSED_COMMAND *Cmd);
|
||||
LPCTSTR GetEnvVarOrSpecial ( LPCTSTR varName );
|
||||
VOID AddBreakHandler (VOID);
|
||||
VOID RemoveBreakHandler (VOID);
|
||||
VOID DoCommand (LPTSTR line);
|
||||
BOOL DoCommand (LPTSTR line);
|
||||
BOOL ReadLine(TCHAR *commandline, BOOL bMore);
|
||||
int cmd_main (int argc, const TCHAR *argv[]);
|
||||
|
||||
extern HANDLE CMD_ModuleHandle;
|
||||
|
@ -119,7 +122,7 @@ typedef struct tagCOMMAND
|
|||
{
|
||||
LPTSTR name;
|
||||
INT flags;
|
||||
INT (*func) (LPTSTR, LPTSTR);
|
||||
INT (*func)(LPTSTR);
|
||||
} COMMAND, *LPCOMMAND;
|
||||
|
||||
extern COMMAND cmds[]; /* The internal command table */
|
||||
|
@ -132,7 +135,7 @@ LPCTSTR GetParsedEnvVar ( LPCTSTR varName, UINT* varNameLen, BOOL ModeSetA );
|
|||
|
||||
/* Prototypes for COLOR.C */
|
||||
VOID SetScreenColor(WORD wArgColor, BOOL bFill);
|
||||
INT CommandColor (LPTSTR, LPTSTR);
|
||||
INT CommandColor (LPTSTR);
|
||||
|
||||
VOID ConInDummy (VOID);
|
||||
VOID ConInDisable (VOID);
|
||||
|
@ -166,39 +169,39 @@ VOID ConErrResPrintf (UINT resID, ...);
|
|||
VOID ConOutResPaging(BOOL NewPage, UINT resID);
|
||||
|
||||
/* Prototypes for COPY.C */
|
||||
INT cmd_copy (LPTSTR, LPTSTR);
|
||||
INT cmd_copy (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for DATE.C */
|
||||
INT cmd_date (LPTSTR, LPTSTR);
|
||||
INT cmd_date (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for DEL.C */
|
||||
INT CommandDelete (LPTSTR, LPTSTR);
|
||||
INT CommandDelete (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for DELAY.C */
|
||||
INT CommandDelay (LPTSTR, LPTSTR);
|
||||
INT CommandDelay (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for DIR.C */
|
||||
INT CommandDir (LPTSTR, LPTSTR);
|
||||
INT CommandDir (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for DIRSTACK.C */
|
||||
VOID InitDirectoryStack (VOID);
|
||||
VOID DestroyDirectoryStack (VOID);
|
||||
INT GetDirectoryStackDepth (VOID);
|
||||
INT CommandPushd (LPTSTR, LPTSTR);
|
||||
INT CommandPopd (LPTSTR, LPTSTR);
|
||||
INT CommandDirs (LPTSTR, LPTSTR);
|
||||
INT CommandPushd (LPTSTR);
|
||||
INT CommandPopd (LPTSTR);
|
||||
INT CommandDirs (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for ECHO.C */
|
||||
INT CommandEcho (LPTSTR, LPTSTR);
|
||||
INT CommandEchos (LPTSTR, LPTSTR);
|
||||
INT CommandEchoerr (LPTSTR, LPTSTR);
|
||||
INT CommandEchoserr (LPTSTR, LPTSTR);
|
||||
INT CommandEcho (LPTSTR);
|
||||
INT CommandEchos (LPTSTR);
|
||||
INT CommandEchoerr (LPTSTR);
|
||||
INT CommandEchoserr (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for ERROR.C */
|
||||
|
@ -232,15 +235,15 @@ VOID CompleteFilename (LPTSTR, BOOL, LPTSTR, UINT);
|
|||
|
||||
|
||||
/* Prototypes for FOR.C */
|
||||
INT cmd_for (LPTSTR, LPTSTR);
|
||||
INT cmd_for (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for FREE.C */
|
||||
INT CommandFree (LPTSTR, LPTSTR);
|
||||
INT CommandFree (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for GOTO.C */
|
||||
INT cmd_goto (LPTSTR, LPTSTR);
|
||||
INT cmd_goto (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for HISTORY.C */
|
||||
|
@ -251,23 +254,23 @@ VOID History_move_to_bottom(VOID);/*F3*/
|
|||
VOID InitHistory(VOID);
|
||||
VOID CleanHistory(VOID);
|
||||
VOID History_del_current_entry(LPTSTR str);/*CTRL-D*/
|
||||
INT CommandHistory (LPTSTR cmd, LPTSTR param);
|
||||
INT CommandHistory (LPTSTR param);
|
||||
#endif
|
||||
|
||||
|
||||
/* Prototypes for INTERNAL.C */
|
||||
VOID InitLastPath (VOID);
|
||||
VOID FreeLastPath (VOID);
|
||||
INT cmd_chdir (LPTSTR, LPTSTR);
|
||||
INT cmd_mkdir (LPTSTR, LPTSTR);
|
||||
INT cmd_rmdir (LPTSTR, LPTSTR);
|
||||
INT CommandExit (LPTSTR, LPTSTR);
|
||||
INT CommandRem (LPTSTR, LPTSTR);
|
||||
INT CommandShowCommands (LPTSTR, LPTSTR);
|
||||
INT CommandShowCommandsDetail (LPTSTR, LPTSTR);
|
||||
INT cmd_chdir (LPTSTR);
|
||||
INT cmd_mkdir (LPTSTR);
|
||||
INT cmd_rmdir (LPTSTR);
|
||||
INT CommandExit (LPTSTR);
|
||||
INT CommandRem (LPTSTR);
|
||||
INT CommandShowCommands (LPTSTR);
|
||||
INT CommandShowCommandsDetail (LPTSTR);
|
||||
|
||||
/* Prototypes for LABEL.C */
|
||||
INT cmd_label (LPTSTR, LPTSTR);
|
||||
INT cmd_label (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for LOCALE.C */
|
||||
|
@ -289,7 +292,7 @@ extern UINT InputCodePage;
|
|||
extern UINT OutputCodePage;
|
||||
|
||||
/* Prototypes for MEMORY.C */
|
||||
INT CommandMemory (LPTSTR, LPTSTR);
|
||||
INT CommandMemory (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for MISC.C */
|
||||
|
@ -301,6 +304,7 @@ BOOL add_entry (LPINT ac, LPTSTR **arg, LPCTSTR entry);
|
|||
LPTSTR *split (LPTSTR, LPINT, BOOL);
|
||||
VOID freep (LPTSTR *);
|
||||
LPTSTR _stpcpy (LPTSTR, LPCTSTR);
|
||||
VOID StripQuotes(LPTSTR);
|
||||
BOOL IsValidPathName (LPCTSTR);
|
||||
BOOL IsExistingFile (LPCTSTR);
|
||||
BOOL IsExistingDirectory (LPCTSTR);
|
||||
|
@ -318,50 +322,73 @@ INT FilePromptYNA (UINT);
|
|||
|
||||
|
||||
/* Prototypes for MOVE.C */
|
||||
INT cmd_move (LPTSTR, LPTSTR);
|
||||
INT cmd_move (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for MSGBOX.C */
|
||||
INT CommandMsgbox (LPTSTR, LPTSTR);
|
||||
INT CommandMsgbox (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes from PARSER.C */
|
||||
enum { C_COMMAND, C_QUIET, C_BLOCK, C_MULTI, C_IFFAILURE, C_IFSUCCESS, C_PIPE };
|
||||
typedef struct _PARSED_COMMAND
|
||||
{
|
||||
struct _PARSED_COMMAND *Subcommands;
|
||||
struct _PARSED_COMMAND *Next;
|
||||
struct _REDIRECTION *Redirections;
|
||||
TCHAR *Tail;
|
||||
BYTE Type;
|
||||
TCHAR CommandLine[];
|
||||
} PARSED_COMMAND;
|
||||
PARSED_COMMAND *ParseCommand(LPTSTR Line);
|
||||
VOID EchoCommand(PARSED_COMMAND *Cmd);
|
||||
VOID FreeCommand(PARSED_COMMAND *Cmd);
|
||||
|
||||
|
||||
/* Prototypes from PATH.C */
|
||||
INT cmd_path (LPTSTR, LPTSTR);
|
||||
INT cmd_path (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes from PROMPT.C */
|
||||
VOID PrintPrompt (VOID);
|
||||
INT cmd_prompt (LPTSTR, LPTSTR);
|
||||
INT cmd_prompt (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for REDIR.C */
|
||||
#define INPUT_REDIRECTION 1
|
||||
#define OUTPUT_REDIRECTION 2
|
||||
#define OUTPUT_APPEND 4
|
||||
#define ERROR_REDIRECTION 8
|
||||
#define ERROR_APPEND 16
|
||||
INT GetRedirection (LPTSTR, LPTSTR, LPTSTR, LPTSTR, LPINT);
|
||||
enum { REDIR_READ, REDIR_WRITE, REDIR_APPEND };
|
||||
typedef struct _REDIRECTION
|
||||
{
|
||||
struct _REDIRECTION *Next;
|
||||
HANDLE OldHandle;
|
||||
BYTE Number;
|
||||
BYTE Type;
|
||||
TCHAR Filename[];
|
||||
} REDIRECTION;
|
||||
BOOL PerformRedirection(REDIRECTION *);
|
||||
VOID UndoRedirection(REDIRECTION *, REDIRECTION *End);
|
||||
INT GetRedirection(LPTSTR, REDIRECTION **);
|
||||
VOID FreeRedirection(REDIRECTION *);
|
||||
|
||||
|
||||
/* Prototypes for REN.C */
|
||||
INT cmd_rename (LPTSTR, LPTSTR);
|
||||
INT cmd_rename (LPTSTR);
|
||||
|
||||
/* Prototypes for REN.C */
|
||||
INT cmd_replace (LPTSTR, LPTSTR);
|
||||
INT cmd_replace (LPTSTR);
|
||||
|
||||
/* Prototypes for SCREEN.C */
|
||||
INT CommandScreen (LPTSTR, LPTSTR);
|
||||
INT CommandScreen (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for SET.C */
|
||||
INT cmd_set (LPTSTR, LPTSTR);
|
||||
INT cmd_set (LPTSTR);
|
||||
|
||||
/* Prototypes for SETLOCAL.C */
|
||||
INT cmd_setlocal (LPTSTR, LPTSTR);
|
||||
INT cmd_endlocal (LPTSTR, LPTSTR);
|
||||
INT cmd_setlocal (LPTSTR);
|
||||
INT cmd_endlocal (LPTSTR);
|
||||
|
||||
/* Prototypes for START.C */
|
||||
INT cmd_start (LPTSTR, LPTSTR);
|
||||
INT cmd_start (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for STRTOCLR.C */
|
||||
|
@ -369,45 +396,45 @@ BOOL StringToColor (LPWORD, LPTSTR *);
|
|||
|
||||
|
||||
/* Prototypes for TIME.C */
|
||||
INT cmd_time (LPTSTR, LPTSTR);
|
||||
INT cmd_time (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for TIMER.C */
|
||||
INT CommandTimer (LPTSTR cmd, LPTSTR param);
|
||||
INT CommandTimer (LPTSTR param);
|
||||
|
||||
|
||||
/* Prototypes for TITLE.C */
|
||||
INT cmd_title (LPTSTR, LPTSTR);
|
||||
INT cmd_title (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for TYPE.C */
|
||||
INT cmd_type (LPTSTR, LPTSTR);
|
||||
INT cmd_type (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for VER.C */
|
||||
VOID ShortVersion (VOID);
|
||||
INT cmd_ver (LPTSTR, LPTSTR);
|
||||
INT cmd_ver (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for VERIFY.C */
|
||||
INT cmd_verify (LPTSTR, LPTSTR);
|
||||
INT cmd_verify (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for VOL.C */
|
||||
INT cmd_vol (LPTSTR, LPTSTR);
|
||||
INT cmd_vol (LPTSTR);
|
||||
|
||||
|
||||
/* Prototypes for WHERE.C */
|
||||
BOOL SearchForExecutable (LPCTSTR, LPTSTR);
|
||||
|
||||
/* Prototypes for WINDOW.C */
|
||||
INT CommandActivate (LPTSTR, LPTSTR);
|
||||
INT CommandWindow (LPTSTR, LPTSTR);
|
||||
INT CommandActivate (LPTSTR);
|
||||
INT CommandWindow (LPTSTR);
|
||||
|
||||
|
||||
/* The MSDOS Batch Commands [MS-DOS 5.0 User's Guide and Reference p359] */
|
||||
int cmd_if(TCHAR *, TCHAR *);
|
||||
int cmd_pause(TCHAR *, TCHAR *);
|
||||
int cmd_shift(TCHAR *, TCHAR *);
|
||||
int cmd_if(TCHAR *);
|
||||
int cmd_pause(TCHAR *);
|
||||
int cmd_shift(TCHAR *);
|
||||
|
||||
#endif /* _CMD_H_INCLUDED_ */
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
<file>misc.c</file>
|
||||
<file>move.c</file>
|
||||
<file>msgbox.c</file>
|
||||
<file>parser.c</file>
|
||||
<file>path.c</file>
|
||||
<file>pause.c</file>
|
||||
<file>prompt.c</file>
|
||||
|
|
|
@ -152,10 +152,6 @@ VOID ReadCommand (LPTSTR str, INT maxlen)
|
|||
/* get screen size */
|
||||
GetScreenSize (&maxx, &maxy);
|
||||
|
||||
/* JPP 19980807 - if echo off, don't print prompt */
|
||||
if (bEcho)
|
||||
PrintPrompt();
|
||||
|
||||
GetCursorXY (&orgx, &orgy);
|
||||
GetCursorXY (&curx, &cury);
|
||||
|
||||
|
@ -431,6 +427,8 @@ VOID ReadCommand (LPTSTR str, INT maxlen)
|
|||
if (str[0])
|
||||
History (0, str);
|
||||
#endif
|
||||
str[charcount++] = _T('\n');
|
||||
str[charcount] = _T('\0');
|
||||
ConInDummy ();
|
||||
ConOutChar (_T('\n'));
|
||||
bReturn = TRUE;
|
||||
|
|
|
@ -93,11 +93,9 @@ COMMAND cmds[] =
|
|||
{_T("dirs"), 0, CommandDirs},
|
||||
#endif
|
||||
|
||||
{_T("echo"), 0, CommandEcho},
|
||||
{_T("echo."), CMD_HIDE, CommandEcho},
|
||||
{_T("echo"), CMD_SPECIAL, CommandEcho},
|
||||
{_T("echos"), 0, CommandEchos},
|
||||
{_T("echoerr"), 0, CommandEchoerr},
|
||||
{_T("echoerr."), CMD_HIDE, CommandEchoerr},
|
||||
{_T("echoerr"), CMD_SPECIAL, CommandEchoerr},
|
||||
{_T("echoserr"), 0, CommandEchoserr},
|
||||
|
||||
{_T("endlocal"), 0, cmd_endlocal},
|
||||
|
|
|
@ -63,7 +63,7 @@ VOID SetScreenColor (WORD wColor, BOOL bNoFill)
|
|||
*
|
||||
* internal dir command
|
||||
*/
|
||||
INT CommandColor (LPTSTR first, LPTSTR rest)
|
||||
INT CommandColor (LPTSTR rest)
|
||||
{
|
||||
if (_tcsncmp (rest, _T("/?"), 2) == 0)
|
||||
{
|
||||
|
|
|
@ -290,7 +290,7 @@ static INT CopyOverwrite (LPTSTR fn)
|
|||
}
|
||||
|
||||
|
||||
INT cmd_copy (LPTSTR cmd, LPTSTR param)
|
||||
INT cmd_copy (LPTSTR param)
|
||||
{
|
||||
LPTSTR *arg;
|
||||
INT argc, i, nFiles, nOverwrite = 0, nSrc = -1, nDes = -1;
|
||||
|
|
|
@ -176,7 +176,7 @@ ParseDate (LPTSTR s)
|
|||
}
|
||||
|
||||
|
||||
INT cmd_date (LPTSTR cmd, LPTSTR param)
|
||||
INT cmd_date (LPTSTR param)
|
||||
{
|
||||
LPTSTR *arg;
|
||||
INT argc;
|
||||
|
|
|
@ -354,7 +354,7 @@ ProcessDirectory(LPTSTR FileName, DWORD* dwFlags, DWORD dwAttrFlags)
|
|||
|
||||
|
||||
|
||||
INT CommandDelete (LPTSTR cmd, LPTSTR param)
|
||||
INT CommandDelete (LPTSTR param)
|
||||
{
|
||||
/*cmd is the command that was given, in this case it will always be "del" or "delete"
|
||||
param is whatever is given after the command*/
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
#ifdef INCLUDE_CMD_DELAY
|
||||
|
||||
|
||||
INT CommandDelay (LPTSTR cmd, LPTSTR param)
|
||||
INT CommandDelay (LPTSTR param)
|
||||
{
|
||||
DWORD val;
|
||||
DWORD mul=1000;
|
||||
|
|
|
@ -1789,7 +1789,7 @@ ULARGE_INTEGER u64Temp; /* A temporary counter */
|
|||
* internal dir command
|
||||
*/
|
||||
INT
|
||||
CommandDir(LPTSTR first, LPTSTR rest)
|
||||
CommandDir(LPTSTR rest)
|
||||
{
|
||||
TCHAR dircmd[256]; /* A variable to store the DIRCMD enviroment variable */
|
||||
TCHAR path[MAX_PATH];
|
||||
|
|
|
@ -140,7 +140,7 @@ INT GetDirectoryStackDepth (VOID)
|
|||
/*
|
||||
* pushd command
|
||||
*/
|
||||
INT CommandPushd (LPTSTR first, LPTSTR rest)
|
||||
INT CommandPushd (LPTSTR rest)
|
||||
{
|
||||
TCHAR curPath[MAX_PATH];
|
||||
TCHAR newPath[MAX_PATH];
|
||||
|
@ -174,7 +174,7 @@ INT CommandPushd (LPTSTR first, LPTSTR rest)
|
|||
/*
|
||||
* popd command
|
||||
*/
|
||||
INT CommandPopd (LPTSTR first, LPTSTR rest)
|
||||
INT CommandPopd (LPTSTR rest)
|
||||
{
|
||||
TCHAR szPath[MAX_PATH];
|
||||
|
||||
|
@ -201,7 +201,7 @@ INT CommandPopd (LPTSTR first, LPTSTR rest)
|
|||
/*
|
||||
* dirs command
|
||||
*/
|
||||
INT CommandDirs (LPTSTR first, LPTSTR rest)
|
||||
INT CommandDirs (LPTSTR rest)
|
||||
{
|
||||
LPDIRENTRY lpDir;
|
||||
|
||||
|
|
|
@ -29,24 +29,11 @@
|
|||
#include <precomp.h>
|
||||
|
||||
|
||||
INT CommandEcho (LPTSTR cmd, LPTSTR param)
|
||||
INT CommandEcho (LPTSTR param)
|
||||
{
|
||||
LPTSTR p1, p2;
|
||||
|
||||
TRACE ("CommandEcho '%s' : '%s'\n", debugstr_aw(cmd), debugstr_aw(param));
|
||||
|
||||
if (_tcsicmp (cmd, _T("echo.")) == 0)
|
||||
{
|
||||
if (param[0] == 0)
|
||||
ConOutChar (_T('\n'));
|
||||
else
|
||||
ConOutPuts (param);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* skip the first delimiter */
|
||||
if (_istspace(*param))
|
||||
param++;
|
||||
TRACE ("CommandEcho: '%s'\n", debugstr_aw(param));
|
||||
|
||||
/* skip all spaces for the check of '/?', 'ON' and 'OFF' */
|
||||
p1 = param;
|
||||
|
@ -83,32 +70,22 @@ INT CommandEcho (LPTSTR cmd, LPTSTR param)
|
|||
}
|
||||
if (*p1 != _T('\0'))
|
||||
{
|
||||
p1 = param;
|
||||
while (NULL != (p1 = _tcschr(p1, _T('^'))))
|
||||
{
|
||||
memmove(p1, p1 + 1, (_tcslen(p1 + 1) + 1) * sizeof(TCHAR));
|
||||
if (*p1)
|
||||
{
|
||||
//skip past the char being escaped
|
||||
p1++;
|
||||
}
|
||||
}
|
||||
ConOutPuts (param);
|
||||
/* skip the first character */
|
||||
ConOutPuts(param + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
ConOutResPrintf(STRING_ECHO_HELP5, bEcho ? D_ON : D_OFF);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
INT CommandEchos (LPTSTR cmd, LPTSTR param)
|
||||
INT CommandEchos (LPTSTR param)
|
||||
{
|
||||
|
||||
TRACE ("CommandEchos '%s' : '%s'\n", debugstr_aw(cmd), debugstr_aw(param));
|
||||
TRACE ("CommandEchos: '%s'\n", debugstr_aw(param));
|
||||
|
||||
if (!_tcsncmp (param, _T("/?"), 2))
|
||||
{
|
||||
|
@ -123,10 +100,10 @@ INT CommandEchos (LPTSTR cmd, LPTSTR param)
|
|||
}
|
||||
|
||||
|
||||
INT CommandEchoerr (LPTSTR cmd, LPTSTR param)
|
||||
INT CommandEchoerr (LPTSTR param)
|
||||
{
|
||||
|
||||
TRACE ("CommandEchoerr '%s' : '%s'\n", debugstr_aw(cmd), debugstr_aw(param));
|
||||
TRACE ("CommandEchoerr: '%s'\n", debugstr_aw(param));
|
||||
|
||||
if (!_tcsncmp (param, _T("/?"), 2))
|
||||
{
|
||||
|
@ -134,26 +111,16 @@ INT CommandEchoerr (LPTSTR cmd, LPTSTR param)
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (_tcsicmp (cmd, _T("echoerr.")) == 0)
|
||||
{
|
||||
if (param[0] == 0)
|
||||
ConErrChar (_T('\n'));
|
||||
else
|
||||
ConErrPuts (param);
|
||||
}
|
||||
else if (*param)
|
||||
{
|
||||
ConErrPuts (param);
|
||||
}
|
||||
ConErrPuts (param);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
INT CommandEchoserr (LPTSTR cmd, LPTSTR param)
|
||||
INT CommandEchoserr (LPTSTR param)
|
||||
{
|
||||
|
||||
TRACE ("CommandEchoserr '%s' : '%s'\n", debugstr_aw(cmd), debugstr_aw(param));
|
||||
TRACE ("CommandEchoserr: '%s'\n", debugstr_aw(param));
|
||||
|
||||
if (!_tcsncmp (param, _T("/?"), 2))
|
||||
{
|
||||
|
|
|
@ -47,14 +47,14 @@
|
|||
* per list element.
|
||||
*/
|
||||
|
||||
INT cmd_for (LPTSTR cmd, LPTSTR param)
|
||||
INT cmd_for (LPTSTR param)
|
||||
{
|
||||
LPBATCH_CONTEXT lpNew;
|
||||
LPTSTR pp;
|
||||
TCHAR var;
|
||||
TCHAR szMsg[RC_STRING_MAX_SIZE];
|
||||
|
||||
TRACE ("cmd_for (\'%s\', \'%s\'\n", debugstr_aw(cmd), debugstr_aw(param));
|
||||
TRACE ("cmd_for (\'%s\')\n", debugstr_aw(param));
|
||||
|
||||
if (!_tcsncmp (param, _T("/?"), 2))
|
||||
{
|
||||
|
@ -138,9 +138,7 @@ INT cmd_for (LPTSTR cmd, LPTSTR param)
|
|||
bc->bEcho = bc->prev->bEcho;
|
||||
else
|
||||
bc->bEcho = bEcho;
|
||||
bc->In[0] = _T('\0');
|
||||
bc->Out[0] = _T('\0');
|
||||
bc->Err[0] = _T('\0');
|
||||
bc->RedirList = NULL;
|
||||
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -84,7 +84,7 @@ PrintDiskInfo (LPTSTR szDisk)
|
|||
}
|
||||
|
||||
|
||||
INT CommandFree (LPTSTR cmd, LPTSTR param)
|
||||
INT CommandFree (LPTSTR param)
|
||||
{
|
||||
LPTSTR szParam;
|
||||
TCHAR szDefPath[MAX_PATH];
|
||||
|
|
|
@ -36,13 +36,13 @@
|
|||
*
|
||||
*/
|
||||
|
||||
INT cmd_goto (LPTSTR cmd, LPTSTR param)
|
||||
INT cmd_goto (LPTSTR param)
|
||||
{
|
||||
TCHAR szMsg[RC_STRING_MAX_SIZE];
|
||||
LPTSTR tmp, tmp2;
|
||||
LONG lNewPosHigh = 0;
|
||||
|
||||
TRACE ("cmd_goto (\'%s\', \'%s\'\n", debugstr_aw(cmd), debugstr_aw(param));
|
||||
TRACE ("cmd_goto (\'%s\')\n", debugstr_aw(param));
|
||||
|
||||
if (!_tcsncmp (param, _T("/?"), 2))
|
||||
{
|
||||
|
@ -75,15 +75,7 @@ INT cmd_goto (LPTSTR cmd, LPTSTR param)
|
|||
/* jump to end of the file */
|
||||
if ( _tcsicmp( param, _T(":eof"))==0)
|
||||
{
|
||||
/* when lCallPosition != 0 we have to return to the caller */
|
||||
if (bc->lCallPosition == 0)
|
||||
SetFilePointer (bc->hBatchFile, 0, &lNewPosHigh, FILE_END);
|
||||
else
|
||||
{
|
||||
SetFilePointer (bc->hBatchFile, (LONG)bc->lCallPosition, &bc->lCallPositionHigh, FILE_BEGIN);
|
||||
bc->lCallPosition = 0;
|
||||
bc->lCallPositionHigh = 0;
|
||||
}
|
||||
SetFilePointer (bc->hBatchFile, 0, &lNewPosHigh, FILE_END);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -74,7 +74,7 @@ VOID set_size(INT new_size);
|
|||
|
||||
|
||||
|
||||
INT CommandHistory (LPTSTR cmd, LPTSTR param)
|
||||
INT CommandHistory (LPTSTR param)
|
||||
{
|
||||
LPTSTR tmp;
|
||||
INT tmp_int;
|
||||
|
|
|
@ -36,12 +36,12 @@
|
|||
#define X_EXEC 1
|
||||
#define X_EMPTY 0x80
|
||||
|
||||
INT cmd_if (LPTSTR cmd, LPTSTR param)
|
||||
INT cmd_if (LPTSTR param)
|
||||
{
|
||||
INT x_flag = 0; /* when set cause 'then' clause to be executed */
|
||||
LPTSTR pp;
|
||||
|
||||
TRACE ("cmd_if: (\'%s\', \'%s\')\n", debugstr_aw(cmd), debugstr_aw(param));
|
||||
TRACE ("cmd_if: (\'%s\')\n", debugstr_aw(param));
|
||||
|
||||
if (!_tcsncmp (param, _T("/?"), 2))
|
||||
{
|
||||
|
|
|
@ -267,7 +267,7 @@ BOOL SetRootPath(TCHAR *InPath)
|
|||
* CD / CHDIR
|
||||
*
|
||||
*/
|
||||
INT cmd_chdir (LPTSTR cmd, LPTSTR param)
|
||||
INT cmd_chdir (LPTSTR param)
|
||||
{
|
||||
|
||||
WIN32_FIND_DATA f;
|
||||
|
@ -455,10 +455,9 @@ MakeFullPath(TCHAR * DirPath)
|
|||
* MD / MKDIR
|
||||
*
|
||||
*/
|
||||
INT cmd_mkdir (LPTSTR cmd, LPTSTR param)
|
||||
INT cmd_mkdir (LPTSTR param)
|
||||
{
|
||||
LPTSTR dir; /* pointer to the directory to change to */
|
||||
LPTSTR place; /* used to search for the \ when no space is used */
|
||||
LPTSTR *p = NULL;
|
||||
INT argc;
|
||||
nErrorLevel = 0;
|
||||
|
@ -469,28 +468,6 @@ INT cmd_mkdir (LPTSTR cmd, LPTSTR param)
|
|||
}
|
||||
|
||||
|
||||
/* check if there is no space between the command and the path */
|
||||
if (param[0] == _T('\0'))
|
||||
{
|
||||
/* search for the \ or . so that both short & long names will work */
|
||||
for (place = cmd; *place; place++)
|
||||
if (*place == _T('.') || *place == _T('\\'))
|
||||
break;
|
||||
|
||||
if (*place)
|
||||
{
|
||||
argc = 0;
|
||||
if (add_entry(&argc, &p, place))
|
||||
dir = place;
|
||||
else
|
||||
dir = NULL;
|
||||
}
|
||||
else
|
||||
/* signal that there are no parameters */
|
||||
dir = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
p = split (param, &argc, FALSE);
|
||||
if (argc > 1)
|
||||
{
|
||||
|
@ -501,7 +478,6 @@ INT cmd_mkdir (LPTSTR cmd, LPTSTR param)
|
|||
}
|
||||
else
|
||||
dir = p[0];
|
||||
}
|
||||
|
||||
if (!dir)
|
||||
{
|
||||
|
@ -573,7 +549,7 @@ BOOL DeleteFolder(LPTSTR FileName)
|
|||
}
|
||||
return RemoveDirectory(FileName);
|
||||
}
|
||||
INT cmd_rmdir (LPTSTR cmd, LPTSTR param)
|
||||
INT cmd_rmdir (LPTSTR param)
|
||||
{
|
||||
TCHAR dir[MAX_PATH]; /* pointer to the directory to change to */
|
||||
TCHAR ch;
|
||||
|
@ -707,7 +683,7 @@ INT cmd_rmdir (LPTSTR cmd, LPTSTR param)
|
|||
* set the exitflag to true
|
||||
*
|
||||
*/
|
||||
INT CommandExit (LPTSTR cmd, LPTSTR param)
|
||||
INT CommandExit (LPTSTR param)
|
||||
{
|
||||
if (!_tcsncmp (param, _T("/?"), 2))
|
||||
{
|
||||
|
@ -741,7 +717,7 @@ INT CommandExit (LPTSTR cmd, LPTSTR param)
|
|||
* does nothing
|
||||
*
|
||||
*/
|
||||
INT CommandRem (LPTSTR cmd, LPTSTR param)
|
||||
INT CommandRem (LPTSTR param)
|
||||
{
|
||||
if (!_tcsncmp (param, _T("/?"), 2))
|
||||
{
|
||||
|
@ -753,13 +729,13 @@ INT CommandRem (LPTSTR cmd, LPTSTR param)
|
|||
#endif /* INCLUDE_CMD_REM */
|
||||
|
||||
|
||||
INT CommandShowCommands (LPTSTR cmd, LPTSTR param)
|
||||
INT CommandShowCommands (LPTSTR param)
|
||||
{
|
||||
PrintCommandList ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
INT CommandShowCommandsDetail (LPTSTR cmd, LPTSTR param)
|
||||
INT CommandShowCommandsDetail (LPTSTR param)
|
||||
{
|
||||
/* If a param was send, display help of correspondent command */
|
||||
if (_tcslen(param))
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
#ifdef INCLUDE_CMD_LABEL
|
||||
|
||||
|
||||
INT cmd_label (LPTSTR cmd, LPTSTR param)
|
||||
INT cmd_label (LPTSTR param)
|
||||
{
|
||||
TCHAR szRootPath[] = _T("A:\\");
|
||||
TCHAR szLabel[80];
|
||||
|
|
|
@ -36,6 +36,7 @@ STRING_CALL_HELP, "Chiama un programma batch da un altro.\n\n\
|
|||
CALL [disco:][percorso]nomefile [Parametri]\n\n\
|
||||
Parametri Indicano le informazioni richieste per il programma batch."
|
||||
|
||||
|
||||
STRING_CD_HELP, "Cambia la cartella corrente o ne visualizza nome\n\n\
|
||||
CHDIR [/D][disco:][percorso]\n\
|
||||
CHDIR[..|.]\n\
|
||||
|
@ -89,21 +90,21 @@ CMD [/[C|K] comando][/P][/Q][/T:bf]\n\n\
|
|||
STRING_COLOR_HELP1, "Definisce i colori predefiniti di primo piano e sfondo.\n\n\
|
||||
COLOR [attr [/-F]] \n\n\
|
||||
attr Indica gli attributi di colore per i messaggi su console\n\
|
||||
/-F Non riempie lo spazio vuoto della consol con gli attributi di colore\n\n\
|
||||
/-F Non riempie lo spazio vuoto della console con gli attributi di colore\n\n\
|
||||
Ci sono tre modi per indicare i colori:\n\
|
||||
1) [bright] nome su [bright] nome (sono necessarie solo le prime tre lettere)\n\
|
||||
2) decimale su decimale\n\
|
||||
3) due cifre esadecimali\n\n\
|
||||
I colori sono:\n\
|
||||
dec esa name dec esa nome\n\
|
||||
0 0 Black 8 8 Gray(Bright black)\n\
|
||||
1 1 Blue 9 9 Bright Blue\n\
|
||||
2 2 Green 10 A Bright Green\n\
|
||||
3 3 Cyan 11 B Bright Cyan\n\
|
||||
4 4 Red 12 C Bright Red\n\
|
||||
5 5 Magenta 13 D Bright Magenta\n\
|
||||
6 6 Yellow 14 E Bright Yellow\n\
|
||||
7 7 White 15 F Bright White\n"
|
||||
0 0 Nero 8 8 Grigio (Nero acceso)\n\
|
||||
1 1 Blu 9 9 Blu acceso\n\
|
||||
2 2 Verde 10 A Verde acceso\n\
|
||||
3 3 Ciano 11 B Ciano acceso\n\
|
||||
4 4 Rosso 12 C Rosso acceso\n\
|
||||
5 5 Magenta 13 D Magenta acceso\n\
|
||||
6 6 Giallo 14 E Giallo acceso\n\
|
||||
7 7 Bianco 15 F Bianco acceso\n"
|
||||
|
||||
STRING_COPY_HELP1, "Sovrascrivi %s (Si/No/Tutti)? "
|
||||
|
||||
|
@ -114,7 +115,7 @@ COPY [/V][/Y|/-Y][/A|/B] sorgente [/A|/B]\n\
|
|||
/A Indica un file di testo ASCII.\n\
|
||||
/B Indica un file binario.\n\
|
||||
destinazione Indica la cartella e/o il nome di file per i nuovi/o file.\n\
|
||||
/V Verifies that new files are written correctly.\n\
|
||||
/V Verifica che i file sono stati scritti correttamente.\n\
|
||||
/Y Elimina le richieste di conferma per le sovrascrittura\n\
|
||||
di un file di destinazione già esistente.\n\
|
||||
/-Y Effettua le richieste di conferma per le sovrascrittura\n\
|
||||
|
@ -205,8 +206,8 @@ STRING_DIR_HELP6, "%16i Cartelle% 15s byte\n"
|
|||
STRING_DIR_HELP7, "\n Cartelle di %s\n\n"
|
||||
STRING_DIR_HELP8, "%16i File% 14s byte\n"
|
||||
|
||||
STRING_DIRSTACK_HELP1, "Salva la directory corrente per l'uso con il comando POPD, poi\n\
|
||||
cambia alla cartella indicata.\n\n\
|
||||
STRING_DIRSTACK_HELP1, "Salva la cartella corrente per l'uso con il comando POPD, poi\n\
|
||||
passa alla cartella indicata.\n\n\
|
||||
PUSHD [percorso | ..]\n\n\
|
||||
percorso Indica la cartella che deve diventare quella corrente\n"
|
||||
|
||||
|
@ -289,9 +290,8 @@ STRING_LABEL_HELP5, "Etichetta del disco (11 Caratteri, INVIO per nessuna)? "
|
|||
|
||||
STRING_LOCALE_HELP1, "L'ora attuale è"
|
||||
|
||||
STRING_MKDIR_HELP, "Crea una directory.\n\n\
|
||||
MKDIR [disco:]percorso\n\
|
||||
MD [disco:]percorso"
|
||||
STRING_MKDIR_HELP, "Crea una cartella.\n\n\
|
||||
MKDIR [disco:]percorso\nMD [disco:]percorso"
|
||||
|
||||
STRING_MEMMORY_HELP1, "Visualizza la quantità della memoria di sistema.\n\n\
|
||||
MEMORY"
|
||||
|
@ -311,7 +311,7 @@ STRING_MOVE_HELP1, "Sovrascrivi %s (Si/No/Tutti)? "
|
|||
STRING_MOVE_HELP2, "Sposta i file o cambia il nome a file e cartelle.\n\n\
|
||||
Per spostare uno o più file:\n\
|
||||
MOVE [/N][disco:][percorso]nomefile1[,...] destinazione\n\n\
|
||||
To rename a directory:\n\
|
||||
Per rinominare una cartella:\n\
|
||||
MOVE [/N][disco:][percorso]]cartella1 cartella2\n\n\
|
||||
[disco:][percorso]nomefile1 indica la posizione e il nome del file\n\
|
||||
o dei file da spostare.\n\
|
||||
|
@ -395,6 +395,46 @@ STRING_REN_HELP2, " %lu file rinominato\n"
|
|||
|
||||
STRING_REN_HELP3, " %lu files rinominati\n"
|
||||
|
||||
STRING_REPLACE_HELP1, "Sostituisce i file.\n\n\
|
||||
REPLACE [disco1:][percorso1]nomefile [disco2:][percorso2] [/A] [/P] [/R] [/W]\n\
|
||||
REPLACE [disco1:][percorso1]nomefile [disco2:][percorso2] [/P] [/R] [/S] [/W] [/U]\n\n\
|
||||
[drive1:][path1]nomefile Specifica il o i file sorgenti.\n\
|
||||
[disco2:][percorso2] Specifica la cartella dove i file devono essere\n\
|
||||
sostituiti.\n\
|
||||
/A Aggiunge i file alla cartella di destinazione. Non può\n\
|
||||
essere usato con /S o /U .\n\
|
||||
/P Chiede conferma prima di sostituire o aggiungere\n\
|
||||
un file.\n\
|
||||
/R Sostituisce sia i file in sola lettura che quelli\n\
|
||||
non protetti.\n\
|
||||
/S Sostituisce i file in tutte le sottocartelle\n\
|
||||
della cartella di destinazione. Non può essere\n\
|
||||
usato con /A .\n\
|
||||
/W Aspetta che sia inserito un disco prima di iniziare.\n\
|
||||
/U Sostituisce (aggiorna) solo i file più vecchi\n\
|
||||
dei file sorgenti. Non può essere usato con /A .\n"
|
||||
|
||||
STRING_REPLACE_HELP2, "Il percorso sorgente è obbligatorio\n"
|
||||
|
||||
STRING_REPLACE_HELP3, "Nessun file sostituito\n"
|
||||
|
||||
STRING_REPLACE_HELP4, "%lu file sostituiti\n"
|
||||
|
||||
STRING_REPLACE_HELP5, "Sostituzione di %s in corso\n"
|
||||
|
||||
STRING_REPLACE_HELP6, "Sostituzione di %s\n"
|
||||
|
||||
STRING_REPLACE_HELP7, "Nessun file aggiunto\n"
|
||||
|
||||
STRING_REPLACE_HELP8, "%lu file aggiunti\n"
|
||||
|
||||
STRING_REPLACE_HELP9, "Aggiungere %s (S/N) "
|
||||
|
||||
STRING_REPLACE_HELP10, "Sostituire %s (S/N) "
|
||||
|
||||
STRING_REPLACE_HELP11, "Aggiunta di %s in corso\n"
|
||||
|
||||
|
||||
STRING_SHIFT_HELP, "Cambia la posizione dei parametri in un batch.\n\n\
|
||||
SHIFT [DOWN]"
|
||||
|
||||
|
@ -490,16 +530,16 @@ STRING_VERSION_HELP7, "\nVersione ReactOS scritto da:\n"
|
|||
|
||||
STRING_VOL_HELP1, " Il Volume del disco %c è %s\n"
|
||||
STRING_VOL_HELP2, " Il Volume del disco %c non ha etichetta\n"
|
||||
STRING_VOL_HELP3, " Il numero diserie del Volume è %04X-%04X\n"
|
||||
STRING_VOL_HELP3, " Il numero di serie del Volume è %04X-%04X\n"
|
||||
STRING_VOL_HELP4, "Visualizza l'etichetta del volume del disco e il numero di serie se disponibili.\n\n\
|
||||
VOL [disco:]"
|
||||
|
||||
STRING_WINDOW_HELP1, "cambia l'aspetto della finestra della console\n\n\
|
||||
WINDOW [/POS[=]sinistra,alto,larghezza,altezza]\n\
|
||||
[MIN|MAX|RESTORE] ['titolo']\n\n\
|
||||
/POS specify window placement and dimensions\n\
|
||||
/POS specifica la posizione e la dimensione della finestra\n\
|
||||
MIN minimizza la finestra\n\
|
||||
MAX massimizzala finestra\n\
|
||||
MAX massimizza la finestra\n\
|
||||
RESTORE ripristina la finestra"
|
||||
|
||||
STRING_WINDOW_HELP2, "cambia l'aspetto della finestra della console\n\n\
|
||||
|
@ -508,7 +548,7 @@ ACTIVATE 'window' [/POS[=]sinistra,alto,larghezza,altezza]\n\
|
|||
window finestra su cui eseguire l'azione\n\
|
||||
/POS indica la posizione e la dimensione della finestra\n\
|
||||
MIN minimizza la finestra\n\
|
||||
MAX massimizzala finestra\n\
|
||||
MAX massimizza la finestra\n\
|
||||
RESTORE ripristina la finestra\n\
|
||||
titolo il nuovo titolo\n"
|
||||
|
||||
|
@ -530,12 +570,12 @@ COPY Copia uno o pi
|
|||
DATE Visualizza o modifica la data.\n\
|
||||
DELETE Cancella uno o più file.\n\
|
||||
DIR Visualizza un elenco di file e sottocartelle in una cartella.\n\
|
||||
ECHO Visualizza messaggi, o abilita e disabilita la visualizzazione dei comandi.\n\
|
||||
ECHO Visualizza messaggi o abilita e disabilita la visualizzazione dei comandi.\n\
|
||||
ERASE Cancella uno o più file.\n\
|
||||
EXIT Esce dall'interprete dei comandi.\n\
|
||||
FOR Esegue un comando per ognuno dei file indicati.\n\
|
||||
FREE Spazio libero.\n\
|
||||
GOTO Salta a una etichettadurante l'esecuzione di un batch.\n\
|
||||
GOTO Salta a una etichetta durante l'esecuzione di un batch.\n\
|
||||
HELP Fornisce informazioni sui comandi di ReactOS.\n\
|
||||
HISTORY Elenco degli ultimi comandi usati\n\
|
||||
IF Esegue elaborazioni condizionali in un batch.\n\
|
||||
|
@ -640,6 +680,14 @@ STRING_ERROR_DRIVER_NOT_READY, "Disco non pronto"
|
|||
|
||||
STRING_PATH_ERROR, "CMD: Non nell'ambiente '%s'\n"
|
||||
|
||||
STRING_REPLACE_ERROR1, "Parametro non valido - %s\n"
|
||||
STRING_REPLACE_ERROR2, "Percorso non trovato - %s\n"
|
||||
STRING_REPLACE_ERROR3, "Il nome del file, della cartella o della etichetta di volume è errato.\n"
|
||||
STRING_REPLACE_ERROR4, "Combinazione di parametri non valida\n"
|
||||
STRING_REPLACE_ERROR5, "Accesso negato - %s\n"
|
||||
STRING_REPLACE_ERROR6, "Nessun file trovato - %s\n"
|
||||
STRING_REPLACE_ERROR7, "Errore esteso 32\n"
|
||||
|
||||
STRING_CMD_SHELLINFO, "\nInterprete di linea di comando di ReactOS"
|
||||
STRING_VERSION_RUNVER, " in esecuzione su %s"
|
||||
STRING_COPY_FILE , " %d file copiati\n"
|
||||
|
|
|
@ -32,7 +32,7 @@ ConvertDWord (DWORD num, LPTSTR des, INT len, BOOL bSeparator)
|
|||
}
|
||||
|
||||
|
||||
INT CommandMemory (LPTSTR cmd, LPTSTR param)
|
||||
INT CommandMemory (LPTSTR param)
|
||||
{
|
||||
MEMORYSTATUS ms;
|
||||
TCHAR szMemoryLoad[20];
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue