mirror of
https://github.com/reactos/reactos.git
synced 2025-07-31 13:21:39 +00:00
Sync to trunk head (r47736)
svn path=/branches/reactos-yarotows/; revision=47746
This commit is contained in:
commit
5f2d67cb35
862 changed files with 85731 additions and 54875 deletions
4
Makefile
4
Makefile
|
@ -46,6 +46,10 @@
|
|||
# This is faster than the depends target which does a complete dependency
|
||||
# check of the ReactOS codebase.
|
||||
#
|
||||
# bootcdregtest
|
||||
# This target builds an ISO (ReactOS-RegTest.ISO) which is used for unattended
|
||||
# regression testing.
|
||||
#
|
||||
#
|
||||
# Accepted environment variables:
|
||||
#
|
||||
|
|
|
@ -34,8 +34,8 @@
|
|||
<!-- compilerflag compiler="cc,cxx">-gstabs+</compilerflag -->
|
||||
<!-- compilerflag compiler="as">-gstabs+</compilerflag -->
|
||||
<compilerflag>-U_X86_</compilerflag>
|
||||
<compilerflag>-UWIN32</compilerflag>
|
||||
<compilerflag>-Wno-format</compilerflag>
|
||||
<compilerflag>-fno-leading-underscore</compilerflag>
|
||||
</group>
|
||||
|
||||
<group linkerset="ld">
|
||||
|
@ -44,14 +44,31 @@
|
|||
<linkerflag>-section-alignment=0x1000</linkerflag>
|
||||
<linkerflag>--unique=.eh_frame</linkerflag>
|
||||
<linkerflag>-static</linkerflag>
|
||||
<linkerflag>-fno-leading-underscore</linkerflag>
|
||||
<linkerflag>-shared</linkerflag>
|
||||
<linkerflag>--exclude-all-symbols</linkerflag>
|
||||
</group>
|
||||
|
||||
<if property="USERMODE" value="1">
|
||||
<directory name="base">
|
||||
<xi:include href="base/base.rbuild" />
|
||||
<directory name="applications">
|
||||
<xi:include href="base/applications/applications.rbuild" />
|
||||
</directory>
|
||||
<directory name="services">
|
||||
<xi:include href="base/services/services.rbuild" />
|
||||
</directory>
|
||||
<directory name="setup">
|
||||
<xi:include href="base/setup/setup.rbuild" />
|
||||
</directory>
|
||||
<directory name="shell">
|
||||
<directory name="cmd">
|
||||
<xi:include href="base/shell/cmd/cmd.rbuild" />
|
||||
</directory>
|
||||
<directory name="explorer-new">
|
||||
<xi:include href="base/shell/explorer-new/explorer.rbuild" />
|
||||
</directory>
|
||||
</directory>
|
||||
<directory name="system">
|
||||
<xi:include href="base/system/system.rbuild" />
|
||||
</directory>
|
||||
</directory>
|
||||
<directory name="dll">
|
||||
<xi:include href="dll/dll.rbuild" />
|
||||
|
|
|
@ -66,11 +66,11 @@ static const conv_t conv_ANGLE[] = {
|
|||
1 ha .................. = 10000 mq
|
||||
1 jeongbo ............. =
|
||||
1 morgen hungary ...... =
|
||||
1 mu .................. =
|
||||
1 mu .................. = 2000/3 mq
|
||||
1 ping ................ =
|
||||
1 pyeong .............. =
|
||||
1 pyeongbangja ........ =
|
||||
1 rai ................. =
|
||||
1 rai ................. = 1600 mq
|
||||
1 se .................. = 1080*(10/33)^2 mq
|
||||
1 square cm ........... = 0.0001 mq
|
||||
1 square chr .......... =
|
||||
|
@ -101,11 +101,11 @@ static const conv_t conv_AREA[] = {
|
|||
DECLARE_CONV_UNIT(AREA, HECTARES, "$*10000", "$/10000")
|
||||
// DECLARE_CONV_UNIT(AREA, JEONGBO, "$", "$")
|
||||
// DECLARE_CONV_UNIT(AREA, MORGEN_HUNGARY, "$", "$")
|
||||
// DECLARE_CONV_UNIT(AREA, MU, "$", "$")
|
||||
DECLARE_CONV_UNIT(AREA, MU, "$*(2000/3)", "$/(2000/3)")
|
||||
// DECLARE_CONV_UNIT(AREA, PING, "$", "$")
|
||||
// DECLARE_CONV_UNIT(AREA, PYEONG, "$", "$")
|
||||
// DECLARE_CONV_UNIT(AREA, PYEONGBANGJA, "$", "$")
|
||||
// DECLARE_CONV_UNIT(AREA, RAI, "$", "$")
|
||||
DECLARE_CONV_UNIT(AREA, RAI, "$*1600", "$/1600")
|
||||
DECLARE_CONV_UNIT(AREA, SE, "$*108000/1089", "$*1089/108000")
|
||||
DECLARE_CONV_UNIT(AREA, SQUARE_CENTIMETERS, "$*0,0001", "$/0,0001")
|
||||
// DECLARE_CONV_UNIT(AREA, SQUARE_CHR, "$", "$")
|
||||
|
@ -197,9 +197,10 @@ static const conv_t conv_ENERGY[] = {
|
|||
1 barleycorn ..... = 1/3 inch = 0.9144/108 m
|
||||
1 cm ............. = 1/100 m
|
||||
1 chain uk ....... = 22 yards = 22*0.9144 m
|
||||
1 chi ............ =
|
||||
1 chi ............ = 1/3 m
|
||||
1 chou ........... = 3600/33 m
|
||||
1 chr ............ =
|
||||
1 cun ............ = 1/10 chi = 1/30 m
|
||||
1 fathom ......... = 2 yard = 2*0.9144 m
|
||||
1 fathom ungary .. = 1.8964838 m (fixed)
|
||||
1 feet ........... = 12 inch = 0.9144/3 m
|
||||
|
@ -231,7 +232,7 @@ static const conv_t conv_ENERGY[] = {
|
|||
1 sen ............ =
|
||||
1 shaku .......... = 10/33 m
|
||||
1 span ........... = 9 inches = 0.9144/4 m
|
||||
1 sun ............ = 10/330 m
|
||||
1 sun ............ = 1/33 m
|
||||
1 tsuen .......... =
|
||||
1 va ............. =
|
||||
1 yard ........... = 0.9144 m
|
||||
|
@ -244,10 +245,10 @@ static const conv_t conv_LENGTH[] = {
|
|||
DECLARE_CONV_UNIT(LENGTH, BARLEYCORNS, "$*0.9144/108", "$/0.9144*108")
|
||||
DECLARE_CONV_UNIT(LENGTH, CENTIMETERS, "$/100", "$*100")
|
||||
DECLARE_CONV_UNIT(LENGTH, CHAINS_UK, "$*20.1168", "$/20.1168")
|
||||
// DECLARE_CONV_UNIT(LENGTH, CHI, "$", "$")
|
||||
DECLARE_CONV_UNIT(LENGTH, CHI, "$/3", "$*3")
|
||||
DECLARE_CONV_UNIT(LENGTH, CHOU, "$*3600/33", "$*33/3600")
|
||||
// DECLARE_CONV_UNIT(LENGTH, CHR, "$", "$")
|
||||
// DECLARE_CONV_UNIT(LENGTH, CUN, "$", "$")
|
||||
DECLARE_CONV_UNIT(LENGTH, CUN, "$/30", "$*30")
|
||||
DECLARE_CONV_UNIT(LENGTH, FATHOMS, "$*1.8288", "$/1.8288")
|
||||
DECLARE_CONV_UNIT(LENGTH, FATHOMS_HUNGARY, "$*1.8964838", "$/1.8964838")
|
||||
DECLARE_CONV_UNIT(LENGTH, FEET, "$*0.3048", "$/0.3048")
|
||||
|
@ -280,7 +281,7 @@ static const conv_t conv_LENGTH[] = {
|
|||
// DECLARE_CONV_UNIT(LENGTH, SEN, "$", "$")
|
||||
DECLARE_CONV_UNIT(LENGTH, SHAKU, "$*10/33", "$*33/10")
|
||||
DECLARE_CONV_UNIT(LENGTH, SPAN, "$*0.9144/4", "$*4/0.9144")
|
||||
DECLARE_CONV_UNIT(LENGTH, SUN, "$*10/330", "$*330/10")
|
||||
DECLARE_CONV_UNIT(LENGTH, SUN, "$*1/33", "$*33")
|
||||
// DECLARE_CONV_UNIT(LENGTH, TSUEN, "$", "$")
|
||||
// DECLARE_CONV_UNIT(LENGTH, VA, "$", "$")
|
||||
DECLARE_CONV_UNIT(LENGTH, YARDS, "$*0.9144", "$/0.9144")
|
||||
|
@ -330,6 +331,7 @@ static const conv_t conv_PRESSURE[] = {
|
|||
1 hour ...... = 3600 s
|
||||
1 microsecond = 0.000001 s
|
||||
1 millisecond = 0.001 s
|
||||
1 nanosecond. = 0.000000001 s
|
||||
1 minute .... = 60 s
|
||||
1 week ...... = 669600 s
|
||||
*/
|
||||
|
@ -339,6 +341,7 @@ static const conv_t conv_TIME[] = {
|
|||
DECLARE_CONV_UNIT(TIME, HOURS, "$*3600", "$/3600")
|
||||
DECLARE_CONV_UNIT(TIME, MILLISECONDS, "$*0.001", "$/0.001")
|
||||
DECLARE_CONV_UNIT(TIME, MICROSECONDS, "$*0.000001", "$/0.000001")
|
||||
DECLARE_CONV_UNIT(TIME, NANOSECONDS, "$*0.000000001", "$/0.000000001")
|
||||
DECLARE_CONV_UNIT(TIME, SECONDS, "$", "$")
|
||||
DECLARE_CONV_UNIT(TIME, WEEKS, "$*604800", "$/604800")
|
||||
DECLARE_CONV_UNIT(TIME, YEARS, "$*31556952", "$/31556952")
|
||||
|
@ -462,9 +465,9 @@ static const conv_t conv_VOLUME[] = {
|
|||
1 harb ............ =
|
||||
1 jin china ....... =
|
||||
1 jin taiwan ...... =
|
||||
1 Kan ............. =
|
||||
1 Kan ............. = 3750 g
|
||||
1 Kilograms ....... = 1000 g
|
||||
1 Kin ............. =
|
||||
1 Kin ............. = 600 g
|
||||
1 Liang China ..... =
|
||||
1 Liang Taiwan .... =
|
||||
1 monme ........... = 3.75 g
|
||||
|
@ -490,9 +493,9 @@ static const conv_t conv_WEIGHT[] = {
|
|||
// DECLARE_CONV_UNIT(WEIGHT, HARB, "$", "$")
|
||||
// DECLARE_CONV_UNIT(WEIGHT, JIN_CHINA, "$", "$")
|
||||
// DECLARE_CONV_UNIT(WEIGHT, JIN_TAIWAN, "$", "$")
|
||||
// DECLARE_CONV_UNIT(WEIGHT, KAN, "$", "$")
|
||||
DECLARE_CONV_UNIT(WEIGHT, KAN, "$*3750", "$/3750")
|
||||
DECLARE_CONV_UNIT(WEIGHT, KILOGRAMS, "$*1000", "$/1000")
|
||||
// DECLARE_CONV_UNIT(WEIGHT, KIN, "$", "$")
|
||||
DECLARE_CONV_UNIT(WEIGHT, KIN, "$*600", "$/600")
|
||||
// DECLARE_CONV_UNIT(WEIGHT, LIANG_CHINA, "$", "$")
|
||||
// DECLARE_CONV_UNIT(WEIGHT, LIANG_TAIWAN, "$", "$")
|
||||
DECLARE_CONV_UNIT(WEIGHT, MONME, "$*3.75", "$/3.75")
|
||||
|
|
|
@ -639,6 +639,7 @@ STRINGTABLE DISCARDABLE
|
|||
BEGIN
|
||||
IDS_TIME_DAYS "Äíè"
|
||||
IDS_TIME_HOURS "×àñè"
|
||||
IDS_TIME_NANOSECONDS "Nanoseconds"
|
||||
IDS_TIME_MICROSECONDS "Ìèêðîñåêóíäè"
|
||||
IDS_TIME_MILLISECONDS "Ìèëèñåêóíäè"
|
||||
IDS_TIME_MINUTES "Ìèíóòè"
|
||||
|
|
|
@ -644,6 +644,7 @@ STRINGTABLE DISCARDABLE
|
|||
BEGIN
|
||||
IDS_TIME_DAYS "Dny"
|
||||
IDS_TIME_HOURS "Hodiny"
|
||||
IDS_TIME_NANOSECONDS "Nanoseconds"
|
||||
IDS_TIME_MICROSECONDS "Mikrosekundy"
|
||||
IDS_TIME_MILLISECONDS "Milisekundy"
|
||||
IDS_TIME_MINUTES "Minuty"
|
||||
|
|
|
@ -639,6 +639,7 @@ STRINGTABLE DISCARDABLE
|
|||
BEGIN
|
||||
IDS_TIME_DAYS "Tagen"
|
||||
IDS_TIME_HOURS "Stunden"
|
||||
IDS_TIME_NANOSECONDS "Nanosekunden"
|
||||
IDS_TIME_MICROSECONDS "Mikrosekunden"
|
||||
IDS_TIME_MILLISECONDS "Millisekunden"
|
||||
IDS_TIME_MINUTES "Minuten"
|
||||
|
|
|
@ -639,6 +639,7 @@ STRINGTABLE DISCARDABLE
|
|||
BEGIN
|
||||
IDS_TIME_DAYS "ÌÝñåò"
|
||||
IDS_TIME_HOURS "¿ñåò"
|
||||
IDS_TIME_NANOSECONDS "Nanoseconds"
|
||||
IDS_TIME_MICROSECONDS "Ìéêñïäåõôåñüëåðôá"
|
||||
IDS_TIME_MILLISECONDS "Ìéëéäåõôåñüëåðôá"
|
||||
IDS_TIME_MINUTES "ËåðôÜ"
|
||||
|
|
|
@ -639,6 +639,7 @@ STRINGTABLE DISCARDABLE
|
|||
BEGIN
|
||||
IDS_TIME_DAYS "Days"
|
||||
IDS_TIME_HOURS "Hours"
|
||||
IDS_TIME_NANOSECONDS "Nanoseconds"
|
||||
IDS_TIME_MICROSECONDS "Microseconds"
|
||||
IDS_TIME_MILLISECONDS "Milliseconds"
|
||||
IDS_TIME_MINUTES "Minutes"
|
||||
|
|
|
@ -644,6 +644,7 @@ STRINGTABLE DISCARDABLE
|
|||
BEGIN
|
||||
IDS_TIME_DAYS "Días"
|
||||
IDS_TIME_HOURS "Horas"
|
||||
IDS_TIME_NANOSECONDS "Nanoseconds"
|
||||
IDS_TIME_MICROSECONDS "Microsegundos"
|
||||
IDS_TIME_MILLISECONDS "Milisegundos"
|
||||
IDS_TIME_MINUTES "Minutos"
|
||||
|
|
|
@ -639,6 +639,7 @@ STRINGTABLE DISCARDABLE
|
|||
BEGIN
|
||||
IDS_TIME_DAYS "Jours"
|
||||
IDS_TIME_HOURS "Heures"
|
||||
IDS_TIME_NANOSECONDS "Nanoseconds"
|
||||
IDS_TIME_MICROSECONDS "Microsecondes"
|
||||
IDS_TIME_MILLISECONDS "Millisecondes"
|
||||
IDS_TIME_MINUTES "Minutes"
|
||||
|
|
|
@ -639,6 +639,7 @@ STRINGTABLE DISCARDABLE
|
|||
BEGIN
|
||||
IDS_TIME_DAYS "Giorni"
|
||||
IDS_TIME_HOURS "Ore"
|
||||
IDS_TIME_NANOSECONDS "Nanosecondi"
|
||||
IDS_TIME_MICROSECONDS "Microsecondi"
|
||||
IDS_TIME_MILLISECONDS "Millisecondi"
|
||||
IDS_TIME_MINUTES "Minuti"
|
||||
|
|
|
@ -643,6 +643,7 @@ STRINGTABLE DISCARDABLE
|
|||
BEGIN
|
||||
IDS_TIME_DAYS "Days"
|
||||
IDS_TIME_HOURS "Hours"
|
||||
IDS_TIME_NANOSECONDS "Nanoseconds"
|
||||
IDS_TIME_MICROSECONDS "Microseconds"
|
||||
IDS_TIME_MILLISECONDS "Milliseconds"
|
||||
IDS_TIME_MINUTES "Minutes"
|
||||
|
|
|
@ -639,6 +639,7 @@ STRINGTABLE DISCARDABLE
|
|||
BEGIN
|
||||
IDS_TIME_DAYS "Dagen"
|
||||
IDS_TIME_HOURS "Uren"
|
||||
IDS_TIME_NANOSECONDS "Nanoseconds"
|
||||
IDS_TIME_MICROSECONDS "Microseconden"
|
||||
IDS_TIME_MILLISECONDS "Milliseconden"
|
||||
IDS_TIME_MINUTES "Minuten"
|
||||
|
|
|
@ -639,6 +639,7 @@ STRINGTABLE DISCARDABLE
|
|||
BEGIN
|
||||
IDS_TIME_DAYS "**"
|
||||
IDS_TIME_HOURS "**"
|
||||
IDS_TIME_NANOSECONDS "Nanoseconds"
|
||||
IDS_TIME_MICROSECONDS "**"
|
||||
IDS_TIME_MILLISECONDS "**"
|
||||
IDS_TIME_MINUTES "**"
|
||||
|
|
|
@ -464,9 +464,9 @@ END
|
|||
// TYPES OF ANGLES
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_ANGLE_DEGREES "Stopni"
|
||||
IDS_ANGLE_GRADIANS "Gradianów"
|
||||
IDS_ANGLE_RADIANS "Radianów"
|
||||
IDS_ANGLE_DEGREES "Stopnie"
|
||||
IDS_ANGLE_GRADIANS "Gradiany"
|
||||
IDS_ANGLE_RADIANS "Radiany"
|
||||
END
|
||||
|
||||
// TYPES OF AREAS
|
||||
|
@ -489,21 +489,21 @@ BEGIN
|
|||
IDS_AREA_PYEONGBANGJA "Pyeongbangja"
|
||||
IDS_AREA_RAI "Rai"
|
||||
IDS_AREA_SE "Se"
|
||||
IDS_AREA_SQUARE_CENTIMETERS "Centymetrów kwadratowych"
|
||||
IDS_AREA_SQUARE_CHR "Chr kwadratowych"
|
||||
IDS_AREA_SQUARE_FATHOMS "S¹¿ni kwadratowych"
|
||||
IDS_AREA_SQUARE_FATHOMS_HUNGARY "S¹¿ni kwadratowych (Wêgry)"
|
||||
IDS_AREA_SQUARE_FEET "Stóp kwadratowych"
|
||||
IDS_AREA_SQUARE_INCHES "Cali kwadratowych"
|
||||
IDS_AREA_SQUARE_KILOMETERS "Kilometrów kwadratowych"
|
||||
IDS_AREA_SQUARE_LAR "Lar kwadratowych"
|
||||
IDS_AREA_SQUARE_METER "Metrów kwadratowych"
|
||||
IDS_AREA_SQUARE_MILES "Mil kwadratowych"
|
||||
IDS_AREA_SQUARE_MILLIMETERS "Milimetrów kwadratowych"
|
||||
IDS_AREA_SQUARE_SHAKU "Shaku kwadratowych"
|
||||
IDS_AREA_SQUARE_TSUEN "Tsuen kwadratowych"
|
||||
IDS_AREA_SQUARE_VA "Va kwadratowych"
|
||||
IDS_AREA_SQUARE_YARD "Jardów kwadratowych"
|
||||
IDS_AREA_SQUARE_CENTIMETERS "Centymetry kwadratowe"
|
||||
IDS_AREA_SQUARE_CHR "Chr kwadratowe"
|
||||
IDS_AREA_SQUARE_FATHOMS "S¹¿nie kwadratowe"
|
||||
IDS_AREA_SQUARE_FATHOMS_HUNGARY "S¹¿nie kwadratowe (Wêgry)"
|
||||
IDS_AREA_SQUARE_FEET "Stopy kwadratowe"
|
||||
IDS_AREA_SQUARE_INCHES "Cale kwadratowe"
|
||||
IDS_AREA_SQUARE_KILOMETERS "Kilometry kwadratowe"
|
||||
IDS_AREA_SQUARE_LAR "Lar kwadratowe"
|
||||
IDS_AREA_SQUARE_METER "Metry kwadratowe"
|
||||
IDS_AREA_SQUARE_MILES "Mile kwadratowe"
|
||||
IDS_AREA_SQUARE_MILLIMETERS "Milimetry kwadratowe"
|
||||
IDS_AREA_SQUARE_SHAKU "Shaku kwadratowe"
|
||||
IDS_AREA_SQUARE_TSUEN "Tsuen kwadratowe"
|
||||
IDS_AREA_SQUARE_VA "Va kwadratowe"
|
||||
IDS_AREA_SQUARE_YARD "Jardy kwadratowe"
|
||||
IDS_AREA_TAN "Tan"
|
||||
IDS_AREA_TSUBO "Tsubo"
|
||||
END
|
||||
|
@ -511,10 +511,10 @@ END
|
|||
// TYPES OF COMSUMPTIONS
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_CONSUMPTION_KM_PER_L "Kilometrów/litr"
|
||||
IDS_CONSUMPTION_L_PER_100_KM "Litrów/100 kilometróws"
|
||||
IDS_CONSUMPTION_MILES_GALLON_UK "Mil/galon (UK)"
|
||||
IDS_CONSUMPTION_MILES_GALLON_US "Mil/galon (USA)"
|
||||
IDS_CONSUMPTION_KM_PER_L "Kilometry/litr"
|
||||
IDS_CONSUMPTION_L_PER_100_KM "Litry/100 kilometrów"
|
||||
IDS_CONSUMPTION_MILES_GALLON_UK "Mile/galon (UK)"
|
||||
IDS_CONSUMPTION_MILES_GALLON_US "Mile/galon (USA)"
|
||||
END
|
||||
|
||||
// TYPES OF CURRENCIES
|
||||
|
@ -543,56 +543,56 @@ END
|
|||
// TYPES OF ENERGIES
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_ENERGY_15_C_CALORIES "15 °C kalorii"
|
||||
IDS_ENERGY_15_C_CALORIES "15 °C kalorie"
|
||||
IDS_ENERGY_BTUS "British Thermal Unit"
|
||||
IDS_ENERGY_ERGS "Ergów"
|
||||
IDS_ENERGY_EVS "Elektronowolt"
|
||||
IDS_ENERGY_FOOT_POUNDS "Foot-pound"
|
||||
IDS_ENERGY_ERGS "Ergi"
|
||||
IDS_ENERGY_EVS "Elektronowolty"
|
||||
IDS_ENERGY_FOOT_POUNDS "Stopo-funty"
|
||||
IDS_ENERGY_IT_CALORIES "Miêdzynarodowa Tablica kalorii"
|
||||
IDS_ENERGY_IT_KILOCALORIES "Miêdzynarodowa Tablica kilokalorii"
|
||||
IDS_ENERGY_JOULES "D¿uli"
|
||||
IDS_ENERGY_KILOJOULES "Kilod¿uli"
|
||||
IDS_ENERGY_KILOWATT_HOURS "Kilowatogodzin"
|
||||
IDS_ENERGY_NUTRITION_CALORIES "Kalorii spo¿ywczych"
|
||||
IDS_ENERGY_TH_CALORIES "Kalorii termochemicznych"
|
||||
IDS_ENERGY_JOULES "D¿ule"
|
||||
IDS_ENERGY_KILOJOULES "Kilod¿ule"
|
||||
IDS_ENERGY_KILOWATT_HOURS "Kilowatogodziny"
|
||||
IDS_ENERGY_NUTRITION_CALORIES "Kalorie spo¿ywcze"
|
||||
IDS_ENERGY_TH_CALORIES "Kalorie termochemiczne"
|
||||
END
|
||||
|
||||
// TYPES OF LENGTHS
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_LENGTH_ANGSTROMS "Angsztremów"
|
||||
IDS_LENGTH_ASTRONOMICAL_UNITS "Jednostek Astronomicznych"
|
||||
IDS_LENGTH_BARLEYCORNS "Palców"
|
||||
IDS_LENGTH_CENTIMETERS "Centimetrów"
|
||||
IDS_LENGTH_ANGSTROMS "Angsztremy"
|
||||
IDS_LENGTH_ASTRONOMICAL_UNITS "Jednostki Astronomiczne"
|
||||
IDS_LENGTH_BARLEYCORNS "Palce"
|
||||
IDS_LENGTH_CENTIMETERS "Centymetry"
|
||||
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 "S¹¿ni"
|
||||
IDS_LENGTH_FATHOMS_HUNGARY "S¹¿ni (Wêgry)"
|
||||
IDS_LENGTH_FEET "Stóp"
|
||||
IDS_LENGTH_FATHOMS "S¹¿nie"
|
||||
IDS_LENGTH_FATHOMS_HUNGARY "S¹¿nie (Wêgry)"
|
||||
IDS_LENGTH_FEET "Stopy"
|
||||
IDS_LENGTH_FURLONGS "Furlongs"
|
||||
IDS_LENGTH_GAN "Gan"
|
||||
IDS_LENGTH_HANDS "D³oni"
|
||||
IDS_LENGTH_HANDS "D³onie"
|
||||
IDS_LENGTH_HUNH "Hunh"
|
||||
IDS_LENGTH_INCHES "Cali"
|
||||
IDS_LENGTH_INCHES "Cale"
|
||||
IDS_LENGTH_JA "Ja"
|
||||
IDS_LENGTH_JEONG "Jeong"
|
||||
IDS_LENGTH_KABIET "Kabiet"
|
||||
IDS_LENGTH_KEN "Ken"
|
||||
IDS_LENGTH_KEUB "Keub"
|
||||
IDS_LENGTH_KILOMETERS "Kilometerów"
|
||||
IDS_LENGTH_KILOMETERS "Kilometry"
|
||||
IDS_LENGTH_LAR "Lar"
|
||||
IDS_LENGTH_LIGHT_YEARS "Lat œwietlnych"
|
||||
IDS_LENGTH_LIGHT_YEARS "Lata œwietlne"
|
||||
IDS_LENGTH_LINKS_UK "Links (UK)"
|
||||
IDS_LENGTH_METERS "Metrów"
|
||||
IDS_LENGTH_MICRONS "Mikrometrów"
|
||||
IDS_LENGTH_MILES "Mil"
|
||||
IDS_LENGTH_MILLIMETERS "Millimetrów"
|
||||
IDS_LENGTH_NAUTICAL_MILES "Mil morskich"
|
||||
IDS_LENGTH_METERS "Metry"
|
||||
IDS_LENGTH_MICRONS "Mikrometry"
|
||||
IDS_LENGTH_MILES "Mile"
|
||||
IDS_LENGTH_MILLIMETERS "Milimetry"
|
||||
IDS_LENGTH_NAUTICAL_MILES "Mile morskie"
|
||||
IDS_LENGTH_NIEU "Nieu"
|
||||
IDS_LENGTH_PARSECS "Parseków"
|
||||
IDS_LENGTH_PARSECS "Parseki"
|
||||
IDS_LENGTH_PICAS "Picas"
|
||||
IDS_LENGTH_RI_JAPAN "Ri (Japan)"
|
||||
IDS_LENGTH_RI_KOREA "Ri (Korea)"
|
||||
|
@ -604,7 +604,7 @@ BEGIN
|
|||
IDS_LENGTH_SUN "Sun"
|
||||
IDS_LENGTH_TSUEN "Tsuen"
|
||||
IDS_LENGTH_VA "Va"
|
||||
IDS_LENGTH_YARDS "Jardów"
|
||||
IDS_LENGTH_YARDS "Jardy"
|
||||
IDS_LENGTH_YOTE "Yote"
|
||||
IDS_LENGTH_ZHANG "Zhang"
|
||||
END
|
||||
|
@ -613,23 +613,23 @@ END
|
|||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_POWER_BTUS_PER_MINUTE "BTU na minutê"
|
||||
IDS_POWER_FPS_PER_MINUTE "Foot-pound na minutê"
|
||||
IDS_POWER_HORSEPOWER "Koni mechanicznych"
|
||||
IDS_POWER_KILOWATTS "Kilowatów"
|
||||
IDS_POWER_MEGAWATTS "Megawatów"
|
||||
IDS_POWER_WATTS "Watów"
|
||||
IDS_POWER_FPS_PER_MINUTE "Stopo-funty na minutê"
|
||||
IDS_POWER_HORSEPOWER "Konie mechaniczne"
|
||||
IDS_POWER_KILOWATTS "Kilowaty"
|
||||
IDS_POWER_MEGAWATTS "Megawaty"
|
||||
IDS_POWER_WATTS "Waty"
|
||||
END
|
||||
|
||||
// TYPE OF PRESSURES
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_PRESSURE_ATMOSPHERES "Atmosfer"
|
||||
IDS_PRESSURE_BARS "Barów"
|
||||
IDS_PRESSURE_HECTOPASCALS "Hektopaskali"
|
||||
IDS_PRESSURE_KILOPASCALS "Kilopaskali"
|
||||
IDS_PRESSURE_MM_OF_MERCURY "Millimetrów s³upka rtêci"
|
||||
IDS_PRESSURE_PASCALS "Paskali"
|
||||
IDS_PRESSURE_PSI "Funtów na cal kwadratowy"
|
||||
IDS_PRESSURE_ATMOSPHERES "Atmosfery"
|
||||
IDS_PRESSURE_BARS "Bary"
|
||||
IDS_PRESSURE_HECTOPASCALS "Hektopaskale"
|
||||
IDS_PRESSURE_KILOPASCALS "Kilopaskale"
|
||||
IDS_PRESSURE_MM_OF_MERCURY "Milimetry s³upka rtêci"
|
||||
IDS_PRESSURE_PASCALS "Paskale"
|
||||
IDS_PRESSURE_PSI "Funty na cal kwadratowy"
|
||||
END
|
||||
|
||||
// TYPES OF TEMPERATURES
|
||||
|
@ -645,60 +645,61 @@ END
|
|||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_TIME_DAYS "Dni"
|
||||
IDS_TIME_HOURS "Godzin"
|
||||
IDS_TIME_MICROSECONDS "Mikrosekund"
|
||||
IDS_TIME_MILLISECONDS "Milisekund"
|
||||
IDS_TIME_MINUTES "Minut"
|
||||
IDS_TIME_SECONDS "Sekund"
|
||||
IDS_TIME_WEEKS "Tygodni"
|
||||
IDS_TIME_YEARS "Lat"
|
||||
IDS_TIME_HOURS "Godziny"
|
||||
IDS_TIME_NANOSECONDS "Nanosekundy"
|
||||
IDS_TIME_MICROSECONDS "Mikrosekundy"
|
||||
IDS_TIME_MILLISECONDS "Milisekundy"
|
||||
IDS_TIME_MINUTES "Minuty"
|
||||
IDS_TIME_SECONDS "Sekundy"
|
||||
IDS_TIME_WEEKS "Tygodnie"
|
||||
IDS_TIME_YEARS "Lata"
|
||||
END
|
||||
|
||||
// TYPES OF VELOCITIES
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_VELOCITY_CMS_SECOND "Centimetrów/sekundê"
|
||||
IDS_VELOCITY_FEET_HOUR "Stóp/godzinê"
|
||||
IDS_VELOCITY_FEET_SECOND "Stóp/sekundê"
|
||||
IDS_VELOCITY_KILOMETERS_HOUR "Kilometrów/godzinê"
|
||||
IDS_VELOCITY_KNOTS "Wêz³ów"
|
||||
IDS_VELOCITY_MACH "Machów"
|
||||
IDS_VELOCITY_METERS_SECOND "Metrów/sekundê"
|
||||
IDS_VELOCITY_MILES_HOUR "Mil/godzinê"
|
||||
IDS_VELOCITY_CMS_SECOND "Centymetry/sekundê"
|
||||
IDS_VELOCITY_FEET_HOUR "Stopy/godzinê"
|
||||
IDS_VELOCITY_FEET_SECOND "Stopy/sekundê"
|
||||
IDS_VELOCITY_KILOMETERS_HOUR "Kilometry/godzinê"
|
||||
IDS_VELOCITY_KNOTS "Wêz³y"
|
||||
IDS_VELOCITY_MACH "Machy"
|
||||
IDS_VELOCITY_METERS_SECOND "Metry/sekundê"
|
||||
IDS_VELOCITY_MILES_HOUR "Mile/godzinê"
|
||||
END
|
||||
|
||||
// TYPES OF VOLUMES
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_VOLUME_BARRELS_UK "Bary³ek (UK)"
|
||||
IDS_VOLUME_BARRELS_OIL "Bary³ek"
|
||||
IDS_VOLUME_BARRELS_UK "Bary³ki (UK)"
|
||||
IDS_VOLUME_BARRELS_OIL "Bary³ki"
|
||||
IDS_VOLUME_BUN "Bun"
|
||||
IDS_VOLUME_BUSHELS_UK "Buszli (UK)"
|
||||
IDS_VOLUME_BUSHELS_US "Buszli (US)"
|
||||
IDS_VOLUME_CUBIC_CENTIMETERS "Centymetrów szeœciennych"
|
||||
IDS_VOLUME_CUBIC_FEET "Stóp szeœciennych"
|
||||
IDS_VOLUME_CUBIC_INCHES "Cali szeœciennych"
|
||||
IDS_VOLUME_CUBIC_METERS "Metrów szeœciennych"
|
||||
IDS_VOLUME_CUBIC_YARDS "Jardów szeœciennych"
|
||||
IDS_VOLUME_BUSHELS_UK "Buszle (UK)"
|
||||
IDS_VOLUME_BUSHELS_US "Buszle (US)"
|
||||
IDS_VOLUME_CUBIC_CENTIMETERS "Centymetry szeœcienne"
|
||||
IDS_VOLUME_CUBIC_FEET "Stopy szeœcienne"
|
||||
IDS_VOLUME_CUBIC_INCHES "Cale szeœcienne"
|
||||
IDS_VOLUME_CUBIC_METERS "Metry szeœcienne"
|
||||
IDS_VOLUME_CUBIC_YARDS "Jardy szeœcienne"
|
||||
IDS_VOLUME_DOE "Doe"
|
||||
IDS_VOLUME_FLUID_OUNCES_UK "Uncji, p³yn (UK)"
|
||||
IDS_VOLUME_FLUID_OUNCES_US "Uncji, p³yn (US)"
|
||||
IDS_VOLUME_GALLONS_UK "Galonów (UK)"
|
||||
IDS_VOLUME_GALLONS_DRY_US "Galonów, sypkie (US)"
|
||||
IDS_VOLUME_GALLONS_LIQUID_US "Gallons, p³yn (US)"
|
||||
IDS_VOLUME_FLUID_OUNCES_UK "Uncje, p³yn (UK)"
|
||||
IDS_VOLUME_FLUID_OUNCES_US "Uncje, p³yn (US)"
|
||||
IDS_VOLUME_GALLONS_UK "Galony (UK)"
|
||||
IDS_VOLUME_GALLONS_DRY_US "Galony, sypkie (US)"
|
||||
IDS_VOLUME_GALLONS_LIQUID_US "Galony, p³yn (US)"
|
||||
IDS_VOLUME_GOU "Gou"
|
||||
IDS_VOLUME_HOP "Hop"
|
||||
IDS_VOLUME_ICCE "Icce"
|
||||
IDS_VOLUME_KWIAN "Kwian"
|
||||
IDS_VOLUME_LITERS "Litrów"
|
||||
IDS_VOLUME_LITERS "Litry"
|
||||
IDS_VOLUME_MAL "Mal"
|
||||
IDS_VOLUME_MILLILITERS "Milliliters"
|
||||
IDS_VOLUME_PINTS_UK "Pint (UK)"
|
||||
IDS_VOLUME_PINTS_DRY_US "Pint, sypkie (US)"
|
||||
IDS_VOLUME_PINTS_LIQUID_US "Pint, p³yn (US)"
|
||||
IDS_VOLUME_QUARTS_UK "Kwart (UK)"
|
||||
IDS_VOLUME_QUARTS_DRY_US "Kwart, sypkie (US)"
|
||||
IDS_VOLUME_QUARTS_LIQUID_US "Kwart, p³yn (US)"
|
||||
IDS_VOLUME_MILLILITERS "Mililitry"
|
||||
IDS_VOLUME_PINTS_UK "Pinty (UK)"
|
||||
IDS_VOLUME_PINTS_DRY_US "Pinty, sypkie (US)"
|
||||
IDS_VOLUME_PINTS_LIQUID_US "Pinty, p³yn (US)"
|
||||
IDS_VOLUME_QUARTS_UK "Kwarty (UK)"
|
||||
IDS_VOLUME_QUARTS_DRY_US "Kwarty, sypkie (US)"
|
||||
IDS_VOLUME_QUARTS_LIQUID_US "Kwarty, p³yn (US)"
|
||||
IDS_VOLUME_SEKI "Seki"
|
||||
IDS_VOLUME_SYOU "Syou"
|
||||
IDS_VOLUME_TANANLOUNG "Tananloung"
|
||||
|
@ -709,26 +710,26 @@ END
|
|||
// TYPES OF WEIGHTS
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_WEIGHT_BAHT "Bahtów"
|
||||
IDS_WEIGHT_CARATS "Karatów"
|
||||
IDS_WEIGHT_BAHT "Bahty"
|
||||
IDS_WEIGHT_CARATS "Karaty"
|
||||
IDS_WEIGHT_CHUNG "Chung"
|
||||
IDS_WEIGHT_DON "Don"
|
||||
IDS_WEIGHT_GEUN "Geun"
|
||||
IDS_WEIGHT_GRAMS "Gramów"
|
||||
IDS_WEIGHT_GRAMS "Gramy"
|
||||
IDS_WEIGHT_GWAN "Gwan"
|
||||
IDS_WEIGHT_HARB "Harb"
|
||||
IDS_WEIGHT_JIN_CHINA "Jin (China)"
|
||||
IDS_WEIGHT_JIN_TAIWAN "Jin (Taiwan)"
|
||||
IDS_WEIGHT_KAN "Kan"
|
||||
IDS_WEIGHT_KILOGRAMS "Kilogramów"
|
||||
IDS_WEIGHT_KILOGRAMS "Kilogramy"
|
||||
IDS_WEIGHT_KIN "Kin"
|
||||
IDS_WEIGHT_LIANG_CHINA "Liang (China)"
|
||||
IDS_WEIGHT_LIANG_TAIWAN "Liang (Taiwan)"
|
||||
IDS_WEIGHT_MONME "Monme"
|
||||
IDS_WEIGHT_OUNCES_AVOIRDUPOIS "Uncji, avoirdupois"
|
||||
IDS_WEIGHT_OUNCES_TROY "Uncji, aptekarskie"
|
||||
IDS_WEIGHT_POUNDS "Funtów"
|
||||
IDS_WEIGHT_QUINTAL_METRIC "Kwintali"
|
||||
IDS_WEIGHT_OUNCES_AVOIRDUPOIS "Uncje, avoirdupois"
|
||||
IDS_WEIGHT_OUNCES_TROY "Uncje, aptekarskie"
|
||||
IDS_WEIGHT_POUNDS "Funty"
|
||||
IDS_WEIGHT_QUINTAL_METRIC "Kwintale"
|
||||
IDS_WEIGHT_SALOUNG "Saloung"
|
||||
IDS_WEIGHT_STONES "Kamieni"
|
||||
IDS_WEIGHT_TAMLUNG "Tamlung"
|
||||
|
|
|
@ -641,6 +641,7 @@ STRINGTABLE DISCARDABLE
|
|||
BEGIN
|
||||
IDS_TIME_DAYS "Zile"
|
||||
IDS_TIME_HOURS "Ore"
|
||||
IDS_TIME_NANOSECONDS "Nanoseconds"
|
||||
IDS_TIME_MICROSECONDS "Microsecunde"
|
||||
IDS_TIME_MILLISECONDS "Milisecunde"
|
||||
IDS_TIME_MINUTES "Minute"
|
||||
|
|
|
@ -639,6 +639,7 @@ STRINGTABLE DISCARDABLE
|
|||
BEGIN
|
||||
IDS_TIME_DAYS "äåíü"
|
||||
IDS_TIME_HOURS "÷àñ"
|
||||
IDS_TIME_NANOSECONDS "Nanoseconds"
|
||||
IDS_TIME_MICROSECONDS "ìèêðîñåêóíäà"
|
||||
IDS_TIME_MILLISECONDS "ìèëëèñåêóíäà"
|
||||
IDS_TIME_MINUTES "ìèíóòà"
|
||||
|
|
|
@ -647,6 +647,7 @@ STRINGTABLE DISCARDABLE
|
|||
BEGIN
|
||||
IDS_TIME_DAYS "Dni"
|
||||
IDS_TIME_HOURS "Hodiny"
|
||||
IDS_TIME_NANOSECONDS "Nanoseconds"
|
||||
IDS_TIME_MICROSECONDS "Mikrosekundy"
|
||||
IDS_TIME_MILLISECONDS "Milisekundy"
|
||||
IDS_TIME_MINUTES "Minúty"
|
||||
|
|
|
@ -644,6 +644,7 @@ STRINGTABLE DISCARDABLE
|
|||
BEGIN
|
||||
IDS_TIME_DAYS "Days"
|
||||
IDS_TIME_HOURS "Hours"
|
||||
IDS_TIME_NANOSECONDS "Nanoseconds"
|
||||
IDS_TIME_MICROSECONDS "Microseconds"
|
||||
IDS_TIME_MILLISECONDS "Milliseconds"
|
||||
IDS_TIME_MINUTES "Minutes"
|
||||
|
|
|
@ -647,6 +647,7 @@ STRINGTABLE DISCARDABLE
|
|||
BEGIN
|
||||
IDS_TIME_DAYS "Äîáà"
|
||||
IDS_TIME_HOURS "Ãîäèíà"
|
||||
IDS_TIME_NANOSECONDS "Nanoseconds"
|
||||
IDS_TIME_MICROSECONDS "̳êðîñåêóíäà"
|
||||
IDS_TIME_MILLISECONDS "̳ë³ñåêóíäà"
|
||||
IDS_TIME_MINUTES "Õâèëèíà"
|
||||
|
|
|
@ -276,10 +276,11 @@
|
|||
#define IDS_TIME_HOURS 3002
|
||||
#define IDS_TIME_MICROSECONDS 3003
|
||||
#define IDS_TIME_MILLISECONDS 3004
|
||||
#define IDS_TIME_MINUTES 3005
|
||||
#define IDS_TIME_SECONDS 3006
|
||||
#define IDS_TIME_WEEKS 3007
|
||||
#define IDS_TIME_YEARS 3008
|
||||
#define IDS_TIME_NANOSECONDS 3005
|
||||
#define IDS_TIME_MINUTES 3006
|
||||
#define IDS_TIME_SECONDS 3007
|
||||
#define IDS_TIME_WEEKS 3008
|
||||
#define IDS_TIME_YEARS 3009
|
||||
|
||||
/* TYPES OF VELOCITIES */
|
||||
#define IDS_VELOCITY_CMS_SECOND 3100
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
void prepare_rpn_result_2(calc_number_t *rpn, TCHAR *buffer, int size, int base)
|
||||
{
|
||||
TCHAR *ptr, *dst;
|
||||
calc_number_t tmp;
|
||||
int width;
|
||||
|
||||
|
@ -21,9 +20,12 @@ void prepare_rpn_result_2(calc_number_t *rpn, TCHAR *buffer, int size, int base)
|
|||
/* calculate the width of integer number */
|
||||
width = (rpn->f==0) ? 1 : (int)log10(fabs(rpn->f))+1;
|
||||
if (calc.sci_out == TRUE || width > MAX_LD_WIDTH || width < -MAX_LD_WIDTH)
|
||||
ptr = buffer + _stprintf(buffer, TEXT("%#e"), rpn->f);
|
||||
_stprintf(buffer, TEXT("%#e"), rpn->f);
|
||||
else {
|
||||
TCHAR *ptr, *dst;
|
||||
|
||||
ptr = buffer + _stprintf(buffer, TEXT("%#*.*f"), width, ((MAX_LD_WIDTH-width-1)>=0) ? MAX_LD_WIDTH-width-1 : 0, rpn->f);
|
||||
/* format sring ensures there is a '.': */
|
||||
dst = _tcschr(buffer, TEXT('.'));
|
||||
while (--ptr > dst)
|
||||
if (*ptr != TEXT('0'))
|
||||
|
|
|
@ -1110,11 +1110,11 @@ static void handle_context_menu(HWND hWnd, WPARAM wp, LPARAM lp)
|
|||
{
|
||||
TCHAR text[64];
|
||||
HMENU hMenu = CreatePopupMenu();
|
||||
DWORD idm;
|
||||
BOOL idm;
|
||||
|
||||
LoadString(calc.hInstance, IDS_QUICKHELP, text, SIZEOF(text));
|
||||
AppendMenu(hMenu, MF_STRING | MF_ENABLED, IDM_HELP_HELP, text);
|
||||
idm = (DWORD)TrackPopupMenu(hMenu,
|
||||
idm = TrackPopupMenu( hMenu,
|
||||
TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RETURNCMD | TPM_RIGHTBUTTON,
|
||||
LOWORD(lp),
|
||||
HIWORD(lp),
|
||||
|
@ -1123,7 +1123,7 @@ static void handle_context_menu(HWND hWnd, WPARAM wp, LPARAM lp)
|
|||
NULL);
|
||||
DestroyMenu(hMenu);
|
||||
#ifndef DISABLE_HTMLHELP_SUPPORT
|
||||
if (idm != 0) {
|
||||
if (idm) {
|
||||
HH_POPUP popup;
|
||||
|
||||
memset(&popup, 0, sizeof(popup));
|
||||
|
@ -1139,6 +1139,8 @@ static void handle_context_menu(HWND hWnd, WPARAM wp, LPARAM lp)
|
|||
popup.idString = GetWindowLongPtr((HWND)wp, GWL_ID);
|
||||
HtmlHelp((HWND)wp, HTMLHELP_PATH("/popups.txt"), HH_DISPLAY_TEXT_POPUP, (DWORD_PTR)&popup);
|
||||
}
|
||||
#else
|
||||
(void)idm;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -200,7 +200,7 @@ VOID DDRedrawFrame(LPDIRECTDRAWSURFACE lpDDSurface)
|
|||
|
||||
|
||||
BOOL DDOffscreenBufferTest(HWND hWnd, BOOL Fullscreen){
|
||||
UINT TimerID, TimerIDUpdate;
|
||||
UINT_PTR TimerID, TimerIDUpdate;
|
||||
LPDIRECTDRAW lpDD;
|
||||
LPDIRECTDRAWSURFACE lpDDPrimarySurface;
|
||||
LPDIRECTDRAWSURFACE lpDDBackBuffer;
|
||||
|
@ -288,6 +288,7 @@ BOOL DDOffscreenBufferTest(HWND hWnd, BOOL Fullscreen){
|
|||
/* set our timers, TimerID - for test timeout, TimerIDUpdate - for frame updating */
|
||||
TimerID = SetTimer(hWnd, -1, (UINT)TEST_DURATION, NULL);
|
||||
TimerIDUpdate = SetTimer(hWnd, 2, (UINT)10, NULL);
|
||||
(void)TimerIDUpdate;
|
||||
|
||||
while (TRUE)
|
||||
{
|
||||
|
|
|
@ -191,7 +191,7 @@ InitializeDirectInputDialog(HWND hwndDlg)
|
|||
Context.pObj = pObj;
|
||||
Context.hwndDlg = hwndDlg;
|
||||
InitListViewColumns(&Context);
|
||||
hResult = pObj->lpVtbl->EnumDevices(pObj, DI8DEVCLASS_ALL, DirectInputEnumDevCb, (PVOID)&Context, DIEDFL_ALLDEVICES);
|
||||
pObj->lpVtbl->EnumDevices(pObj, DI8DEVCLASS_ALL, DirectInputEnumDevCb, (PVOID)&Context, DIEDFL_ALLDEVICES);
|
||||
|
||||
pObj->lpVtbl->Release(pObj);
|
||||
}
|
||||
|
|
|
@ -203,13 +203,12 @@ EnumerateServiceProviders(HKEY hKey, HWND hDlgCtrl, DIRECTPLAY_GUID * PreDefProv
|
|||
szResult[0] = L'\0';
|
||||
LoadStringW(hInst, PreDefProviders[dwIndex].ResourceID, szResult, sizeof(szResult)/sizeof(WCHAR));
|
||||
szResult[(sizeof(szResult)/sizeof(WCHAR))-1] = L'\0';
|
||||
lResult = SendMessageW(hDlgCtrl, LVM_INSERTITEM, 0, (LPARAM)&Item);
|
||||
Item.iItem = SendMessageW(hDlgCtrl, LVM_INSERTITEM, 0, (LPARAM)&Item);
|
||||
Item.iSubItem = 1;
|
||||
szResult[0] = L'\0';
|
||||
LoadStringW(hInst, IDS_REG_FAIL, szResult, sizeof(szResult)/sizeof(WCHAR));
|
||||
szResult[(sizeof(szResult)/sizeof(WCHAR))-1] = L'\0';
|
||||
Item.iItem = lResult;
|
||||
Item.iSubItem = 1;
|
||||
lResult = SendMessageW(hDlgCtrl, LVM_SETITEM, 0, (LPARAM)&Item);
|
||||
SendMessageW(hDlgCtrl, LVM_SETITEM, 0, (LPARAM)&Item);
|
||||
}
|
||||
|
||||
dwIndex = 0;
|
||||
|
@ -228,8 +227,7 @@ EnumerateServiceProviders(HKEY hKey, HWND hDlgCtrl, DIRECTPLAY_GUID * PreDefProv
|
|||
if (ProviderIndex == UINT_MAX)
|
||||
{
|
||||
/* a custom service provider was found */
|
||||
lResult = ListView_GetItemCount(hDlgCtrl);
|
||||
Item.iItem = lResult;
|
||||
Item.iItem = ListView_GetItemCount(hDlgCtrl);
|
||||
|
||||
/* FIXME
|
||||
* on Windows Vista we need to use RegLoadMUIString which is not available for older systems
|
||||
|
@ -330,7 +328,7 @@ InitializeDirectPlayDialog(HWND hwndDlg)
|
|||
return;
|
||||
|
||||
/* enumerate providers */
|
||||
result = EnumerateServiceProviders(hKey, hDlgCtrl, DirectPlaySP);
|
||||
EnumerateServiceProviders(hKey, hDlgCtrl, DirectPlaySP);
|
||||
RegCloseKey(hKey);
|
||||
}
|
||||
|
||||
|
|
|
@ -275,6 +275,7 @@ void InitializeDirectSoundPage(PDXDIAG_CONTEXT pContext)
|
|||
|
||||
/* release the DSound object */
|
||||
// pObj->lpVtbl->Release(pObj);
|
||||
(void)hResult;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -103,7 +103,7 @@ Display_DrawText(HDC hDC, DISPLAYDATA* pData, int nYPos)
|
|||
/* TODO: Output font info */
|
||||
|
||||
/* Output Character set */
|
||||
hOldFont = SelectObject(hDC, pData->hCharSetFont);
|
||||
SelectObject(hDC, pData->hCharSetFont);
|
||||
GetTextMetrics(hDC, &tm);
|
||||
swprintf(szCaption, L"abcdefghijklmnopqrstuvwxyz");
|
||||
TextOutW(hDC, 0, y, szCaption, wcslen(szCaption));
|
||||
|
|
|
@ -60,13 +60,10 @@ FormatString(
|
|||
static void
|
||||
ErrorMsgBox(HWND hParent, DWORD dwCaptionID, DWORD dwMessageId, ...)
|
||||
{
|
||||
HMODULE hModule;
|
||||
HLOCAL hMemCaption = NULL;
|
||||
HLOCAL hMemText = NULL;
|
||||
va_list args;
|
||||
|
||||
hModule = GetModuleHandle(NULL);
|
||||
|
||||
va_start(args, dwMessageId);
|
||||
FormatString(FORMAT_MESSAGE_ALLOCATE_BUFFER,
|
||||
NULL, dwMessageId, 0, (LPWSTR)&hMemText, 0, &args);
|
||||
|
|
|
@ -33,7 +33,6 @@ CreateTrayIcon(LPTSTR szLCID)
|
|||
HDC hdc, hdcsrc;
|
||||
HBITMAP hBitmap, hBmpNew, hBmpOld;
|
||||
RECT rect;
|
||||
DWORD bkColor, bkText;
|
||||
HFONT hFontOld, hFont = NULL;
|
||||
ICONINFO IconInfo;
|
||||
HICON hIcon = NULL;
|
||||
|
@ -63,8 +62,8 @@ CreateTrayIcon(LPTSTR szLCID)
|
|||
rect.bottom = 16;
|
||||
rect.top = 0;
|
||||
|
||||
bkColor = SetBkColor(hdc, GetSysColor(COLOR_HIGHLIGHT));
|
||||
bkText = SetTextColor(hdc, GetSysColor(COLOR_HIGHLIGHTTEXT));
|
||||
SetBkColor(hdc, GetSysColor(COLOR_HIGHLIGHT));
|
||||
SetTextColor(hdc, GetSysColor(COLOR_HIGHLIGHTTEXT));
|
||||
|
||||
ExtTextOut(hdc, rect.left, rect.top, ETO_OPAQUE, &rect, _T(""), 0, NULL);
|
||||
|
||||
|
|
|
@ -295,7 +295,7 @@ void Draw(HDC aDc)
|
|||
//
|
||||
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
int wmId, wmEvent;
|
||||
int wmId;
|
||||
|
||||
switch (message)
|
||||
{
|
||||
|
@ -354,7 +354,6 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
break;
|
||||
case WM_COMMAND:
|
||||
wmId = LOWORD(wParam);
|
||||
wmEvent = HIWORD(wParam);
|
||||
// Parse the menu selections:
|
||||
switch (wmId)
|
||||
{
|
||||
|
|
|
@ -407,7 +407,7 @@ PlayFile(HWND hwnd, LPTSTR lpFileName)
|
|||
MCI_PLAY_PARMS mciPlay;
|
||||
TCHAR szLocalFileName[MAX_PATH];
|
||||
UINT FileType;
|
||||
DWORD dwError;
|
||||
MCIERROR mciError;
|
||||
|
||||
if (lpFileName == NULL)
|
||||
{
|
||||
|
@ -449,14 +449,14 @@ PlayFile(HWND hwnd, LPTSTR lpFileName)
|
|||
|
||||
SetTimer(hwnd, IDT_PLAYTIMER, 100, (TIMERPROC) PlayTimerProc);
|
||||
|
||||
dwError = mciSendCommand(wDeviceId, MCI_SEEK, MCI_WAIT | MCI_SEEK_TO_START, 0);
|
||||
mciSendCommand(wDeviceId, MCI_SEEK, MCI_WAIT | MCI_SEEK_TO_START, 0);
|
||||
|
||||
mciPlay.dwCallback = (DWORD_PTR)hwnd;
|
||||
mciPlay.dwFrom = 0;
|
||||
mciPlay.dwTo = MaxFilePos;
|
||||
|
||||
dwError = mciSendCommand(wDeviceId, MCI_PLAY, MCI_NOTIFY | MCI_FROM | MCI_TO, (DWORD_PTR)&mciPlay);
|
||||
if (dwError != 0)
|
||||
mciError = mciSendCommand(wDeviceId, MCI_PLAY, MCI_NOTIFY | MCI_FROM | MCI_TO, (DWORD_PTR)&mciPlay);
|
||||
if (mciError != 0)
|
||||
{
|
||||
MessageBox(hwnd, _T("Can't play!"), NULL, MB_OK);
|
||||
}
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
#ifndef _FREELDRPAGE_H_
|
||||
#define _FREELDRPAGE_H_
|
||||
|
||||
extern HWND hFreeLdrPage;
|
||||
|
||||
INT_PTR CALLBACK FreeLdrPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
#ifndef _GENERALPAGE_H_
|
||||
#define _GENERALPAGE_H_
|
||||
|
||||
extern HWND hGeneralPage;
|
||||
|
||||
INT_PTR CALLBACK GeneralPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
#ifndef _SVRPAGE_H_
|
||||
#define _SVRPAGE_H_
|
||||
|
||||
extern HWND hServicesPage;
|
||||
extern HWND hServicesListCtrl;
|
||||
|
||||
INT_PTR CALLBACK ServicesPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
#ifndef _STARTUPPAGE_H_
|
||||
#define _STARTUPPAGE_H_
|
||||
|
||||
extern HWND hStartupPage;
|
||||
extern HWND hStartupPageListCtrl;
|
||||
|
||||
INT_PTR CALLBACK StartupPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
#ifndef _SYSTEMPAGE_H_
|
||||
#define _SYSTEMPAGE_H_
|
||||
|
||||
extern HWND hSystemPage;
|
||||
|
||||
INT_PTR CALLBACK SystemPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
#ifndef _TOOLSPAGE_H_
|
||||
#define _TOOLSPAGE_H_
|
||||
|
||||
extern HWND hToolsPage;
|
||||
extern HWND hToolsListCtrl;
|
||||
|
||||
INT_PTR CALLBACK ToolsPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -506,7 +506,6 @@ QueryEventMessages(LPWSTR lpMachineName,
|
|||
DWORD dwRead, dwNeeded, dwThisRecord, dwTotalRecords = 0, dwCurrentRecord = 1, dwRecordsToRead = 0, dwFlags;
|
||||
LPWSTR lpSourceName;
|
||||
LPWSTR lpComputerName;
|
||||
LPWSTR lpEventStr;
|
||||
LPWSTR lpData;
|
||||
BOOL bResult = TRUE; /* Read succeeded. */
|
||||
|
||||
|
@ -609,9 +608,6 @@ QueryEventMessages(LPWSTR lpMachineName,
|
|||
// This ist the data section of the current event
|
||||
lpData = (LPWSTR)((LPBYTE)pevlr + pevlr->DataOffset);
|
||||
|
||||
// This is the text of the current event
|
||||
lpEventStr = (LPWSTR)((LPBYTE)pevlr + pevlr->StringOffset);
|
||||
|
||||
// Compute the event type
|
||||
EventTimeToSystemTime(pevlr->TimeWritten, &time);
|
||||
|
||||
|
|
|
@ -170,9 +170,7 @@ INT DisplayArpEntries(PTCHAR pszInetAddr, PTCHAR pszIfAddr)
|
|||
|
||||
ZeroMemory(pIpNetTable, sizeof(*pIpNetTable));
|
||||
|
||||
iRet = GetIpNetTable(pIpNetTable, &Size, TRUE);
|
||||
|
||||
if (iRet != NO_ERROR)
|
||||
if (GetIpNetTable(pIpNetTable, &Size, TRUE) != NO_ERROR)
|
||||
{
|
||||
_tprintf(_T("failed to allocate memory for GetIpNetTable\n"));
|
||||
DoFormatMessage();
|
||||
|
@ -201,9 +199,7 @@ INT DisplayArpEntries(PTCHAR pszInetAddr, PTCHAR pszIfAddr)
|
|||
|
||||
ZeroMemory(pIpAddrTable, sizeof(*pIpAddrTable));
|
||||
|
||||
iRet = GetIpAddrTable(pIpAddrTable, &Size, TRUE);
|
||||
|
||||
if (iRet != NO_ERROR)
|
||||
if ((iRet = GetIpAddrTable(pIpAddrTable, &Size, TRUE)) != NO_ERROR)
|
||||
{
|
||||
_tprintf(_T("GetIpAddrTable failed: %d\n"), iRet);
|
||||
DoFormatMessage();
|
||||
|
@ -272,7 +268,7 @@ INT Addhost(PTCHAR pszInetAddr, PTCHAR pszEthAddr, PTCHAR pszIfAddr)
|
|||
PMIB_IPNETTABLE pIpNetTable = NULL;
|
||||
DWORD dwIpAddr = 0;
|
||||
ULONG Size = 0;
|
||||
INT iRet, i, val, c;
|
||||
INT i, val, c;
|
||||
|
||||
/* error checking */
|
||||
|
||||
|
@ -320,9 +316,7 @@ INT Addhost(PTCHAR pszInetAddr, PTCHAR pszEthAddr, PTCHAR pszIfAddr)
|
|||
|
||||
ZeroMemory(pIpNetTable, sizeof(*pIpNetTable));
|
||||
|
||||
iRet = GetIpNetTable(pIpNetTable, &Size, TRUE);
|
||||
|
||||
if (iRet != NO_ERROR)
|
||||
if (GetIpNetTable(pIpNetTable, &Size, TRUE) != NO_ERROR)
|
||||
{
|
||||
_tprintf(_T("failed to allocate memory for GetIpNetTable\n"));
|
||||
DoFormatMessage();
|
||||
|
@ -382,7 +376,7 @@ INT Addhost(PTCHAR pszInetAddr, PTCHAR pszEthAddr, PTCHAR pszIfAddr)
|
|||
|
||||
|
||||
/* Add the ARP entry */
|
||||
if ((iRet = SetIpNetEntry(pAddHost)) != NO_ERROR)
|
||||
if (SetIpNetEntry(pAddHost) != NO_ERROR)
|
||||
{
|
||||
DoFormatMessage();
|
||||
goto cleanup;
|
||||
|
@ -415,7 +409,6 @@ INT Deletehost(PTCHAR pszInetAddr, PTCHAR pszIfAddr)
|
|||
PMIB_IPNETTABLE pIpNetTable = NULL;
|
||||
ULONG Size = 0;
|
||||
DWORD dwIpAddr = 0;
|
||||
INT iRet;
|
||||
BOOL bFlushTable = FALSE;
|
||||
|
||||
/* error checking */
|
||||
|
@ -449,9 +442,7 @@ INT Deletehost(PTCHAR pszInetAddr, PTCHAR pszIfAddr)
|
|||
|
||||
ZeroMemory(pIpNetTable, sizeof(*pIpNetTable));
|
||||
|
||||
iRet = GetIpNetTable(pIpNetTable, &Size, TRUE);
|
||||
|
||||
if (iRet != NO_ERROR)
|
||||
if (GetIpNetTable(pIpNetTable, &Size, TRUE) != NO_ERROR)
|
||||
{
|
||||
_tprintf(_T("failed to allocate memory for GetIpNetTable\n"));
|
||||
DoFormatMessage();
|
||||
|
@ -485,7 +476,7 @@ INT Deletehost(PTCHAR pszInetAddr, PTCHAR pszIfAddr)
|
|||
if (bFlushTable == TRUE)
|
||||
{
|
||||
/* delete arp cache */
|
||||
if ((iRet = FlushIpNetTable(pDelHost->dwIndex)) != NO_ERROR)
|
||||
if (FlushIpNetTable(pDelHost->dwIndex) != NO_ERROR)
|
||||
{
|
||||
DoFormatMessage();
|
||||
goto cleanup;
|
||||
|
@ -501,7 +492,7 @@ INT Deletehost(PTCHAR pszInetAddr, PTCHAR pszIfAddr)
|
|||
pDelHost->dwAddr = dwIpAddr;
|
||||
|
||||
/* Add the ARP entry */
|
||||
if ((iRet = DeleteIpNetEntry(pDelHost)) != NO_ERROR)
|
||||
if (DeleteIpNetEntry(pDelHost) != NO_ERROR)
|
||||
{
|
||||
DoFormatMessage();
|
||||
goto cleanup;
|
||||
|
|
|
@ -345,7 +345,7 @@ getreply(expecteof)
|
|||
cp = reply_string;
|
||||
while ((c = fgetcSocket(cin)) != '\n') {
|
||||
if (c == IAC) { /* handle telnet commands */
|
||||
switch (c = fgetcSocket(cin)) {
|
||||
switch (fgetcSocket(cin)) {
|
||||
case WILL:
|
||||
case WONT:
|
||||
c = fgetcSocket(cin);
|
||||
|
@ -745,7 +745,7 @@ void recvrequest(const char *cmd, const char *local, const char *remote, const c
|
|||
long bytes = 0, hashbytes = HASHBYTES;
|
||||
// struct
|
||||
fd_set mask;
|
||||
register int c, d;
|
||||
register int c;
|
||||
struct timeval start, stop;
|
||||
// struct stat st;
|
||||
|
||||
|
@ -781,6 +781,7 @@ null();// (void) signal(SIGINT, oldintr);
|
|||
null();// oldintr = signal(SIGINT, abortrecv);
|
||||
if (strcmp(local, "-") && *local != '|') {
|
||||
#ifndef _WIN32
|
||||
register int d;
|
||||
// This whole thing is a problem... access Won't work on non-existent files
|
||||
if (access(local, 2) < 0) {
|
||||
char *dir = rindex(local, '/');
|
||||
|
@ -919,7 +920,7 @@ null();// oldintp = signal(SIGPIPE, SIG_IGN);
|
|||
(*closefunc)(fout);
|
||||
return;
|
||||
}
|
||||
errno = d = 0;
|
||||
errno = 0;
|
||||
// while ((c = recv(din, buf, bufsize, 1)) > 0) {
|
||||
// if ((d = write(fileno(fout), buf, c)) != c)
|
||||
// if ((d = write(fileno(fout), buf, c)) != c)
|
||||
|
@ -1106,10 +1107,10 @@ null();// (void) signal(SIGINT,oldintr);
|
|||
lostpeer();
|
||||
}
|
||||
if (din && FD_ISSET(din, &mask)) {
|
||||
while ((c = recv(din, buf, bufsize, 0)) > 0)
|
||||
while (recv(din, buf, bufsize, 0) > 0)
|
||||
;
|
||||
}
|
||||
if ((c = getreply(0)) == ERROR && code == 552) { /* needed for nic style abort */
|
||||
if (getreply(0) == ERROR && code == 552) { /* needed for nic style abort */
|
||||
if (data >= 0) {
|
||||
(void) close(data);
|
||||
data = -1;
|
||||
|
|
|
@ -4,6 +4,17 @@
|
|||
<include base="ftp">.</include>
|
||||
<define name="lint" />
|
||||
|
||||
<!-- FIXME: workarounds until we have a proper oldnames library -->
|
||||
<define name="chdir">_chdir</define>
|
||||
<define name="getcwd">_getcwd</define>
|
||||
<define name="mktemp">_mktemp</define>
|
||||
<define name="unlink">_unlink</define>
|
||||
<define name="close">_close</define>
|
||||
<define name="fileno">_fileno</define>
|
||||
<define name="read">_read</define>
|
||||
<define name="write">_write</define>
|
||||
<define name="lseek">_lseek</define>
|
||||
|
||||
<library>ws2_32</library>
|
||||
<library>iphlpapi</library>
|
||||
<library>oldnames</library>
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
*/
|
||||
|
||||
#include <windows.h>
|
||||
#include <winsock.h>
|
||||
#include <winsock2.h>
|
||||
#include <tchar.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
|
|
@ -90,11 +90,7 @@ BOOL PerformInternalLookup( PCHAR pAddr, PCHAR pResult )
|
|||
BOOL bOk = FALSE;
|
||||
|
||||
/* Makes things easier when parsing the response packet. */
|
||||
UCHAR Header1, Header2;
|
||||
USHORT NumQuestions;
|
||||
USHORT NumAnswers;
|
||||
USHORT NumAuthority;
|
||||
USHORT NumAdditional;
|
||||
USHORT Type;
|
||||
|
||||
if( (strlen( pAddr ) + 1) > 255 ) return FALSE;
|
||||
|
@ -198,12 +194,7 @@ BOOL PerformInternalLookup( PCHAR pAddr, PCHAR pResult )
|
|||
if( !bOk ) goto cleanup;
|
||||
|
||||
/* Start parsing the received packet. */
|
||||
Header1 = RecBuffer[2];
|
||||
Header2 = RecBuffer[3];
|
||||
NumQuestions = ntohs( ((PSHORT)&RecBuffer[4])[0] );
|
||||
NumAnswers = ntohs( ((PSHORT)&RecBuffer[6])[0] );
|
||||
NumAuthority = ntohs( ((PUSHORT)&RecBuffer[8])[0] );
|
||||
NumAdditional = ntohs( ((PUSHORT)&RecBuffer[10])[0] );
|
||||
|
||||
k = 12;
|
||||
|
||||
|
@ -257,11 +248,10 @@ void PerformLookup( PCHAR pAddr )
|
|||
BOOL bOk = FALSE;
|
||||
|
||||
/* Makes things easier when parsing the response packet. */
|
||||
UCHAR Header1, Header2;
|
||||
UCHAR Header2;
|
||||
USHORT NumQuestions;
|
||||
USHORT NumAnswers;
|
||||
USHORT NumAuthority;
|
||||
USHORT NumAdditional;
|
||||
USHORT Type;
|
||||
|
||||
if( (strlen( pAddr ) + 1) > 255 ) return;
|
||||
|
@ -375,12 +365,10 @@ void PerformLookup( PCHAR pAddr )
|
|||
if( !bOk ) goto cleanup;
|
||||
|
||||
/* Start parsing the received packet. */
|
||||
Header1 = RecBuffer[2];
|
||||
Header2 = RecBuffer[3];
|
||||
NumQuestions = ntohs( ((PSHORT)&RecBuffer[4])[0] );
|
||||
NumAnswers = ntohs( ((PSHORT)&RecBuffer[6])[0] );
|
||||
NumAuthority = ntohs( ((PUSHORT)&RecBuffer[8])[0] );
|
||||
NumAdditional = ntohs( ((PUSHORT)&RecBuffer[10])[0] );
|
||||
Type = 0;
|
||||
|
||||
/* Check the RCODE for failure. */
|
||||
|
|
|
@ -400,7 +400,6 @@ static UINT_PTR CALLBACK DIALOG_FileSaveAs_Hook(HWND hDlg, UINT msg, WPARAM wPar
|
|||
{
|
||||
TCHAR szText[128];
|
||||
HWND hCombo;
|
||||
OFNOTIFY *pNotify;
|
||||
|
||||
UNREFERENCED_PARAMETER(wParam);
|
||||
|
||||
|
@ -440,8 +439,6 @@ static UINT_PTR CALLBACK DIALOG_FileSaveAs_Hook(HWND hDlg, UINT msg, WPARAM wPar
|
|||
case WM_NOTIFY:
|
||||
if (((NMHDR *) lParam)->code == CDN_FILEOK)
|
||||
{
|
||||
pNotify = (OFNOTIFY *) lParam;
|
||||
|
||||
hCombo = GetDlgItem(hDlg, ID_ENCODING);
|
||||
if (hCombo)
|
||||
Globals.iEncoding = (int) SendMessage(hCombo, CB_GETCURSEL, 0, 0);
|
||||
|
|
|
@ -98,6 +98,24 @@
|
|||
#define ID_ELLIPSE 614
|
||||
#define ID_RRECT 615
|
||||
|
||||
//the following 16 numbers need to be in order, increasing by 1
|
||||
#define TOOL_FREESEL 1
|
||||
#define TOOL_RECTSEL 2
|
||||
#define TOOL_RUBBER 3
|
||||
#define TOOL_FILL 4
|
||||
#define TOOL_COLOR 5
|
||||
#define TOOL_ZOOM 6
|
||||
#define TOOL_PEN 7
|
||||
#define TOOL_BRUSH 8
|
||||
#define TOOL_AIRBRUSH 9
|
||||
#define TOOL_TEXT 10
|
||||
#define TOOL_LINE 11
|
||||
#define TOOL_BEZIER 12
|
||||
#define TOOL_RECT 13
|
||||
#define TOOL_SHAPE 14
|
||||
#define TOOL_ELLIPSE 15
|
||||
#define TOOL_RRECT 16
|
||||
|
||||
#define ID_ACCELERATORS 800
|
||||
|
||||
#define IDD_MIRRORROTATE 700
|
||||
|
|
|
@ -50,7 +50,7 @@ short lastY;
|
|||
int lineWidth = 1;
|
||||
int shapeStyle = 0;
|
||||
int brushStyle = 0;
|
||||
int activeTool = 7;
|
||||
int activeTool = TOOL_PEN;
|
||||
int airBrushWidth = 5;
|
||||
int rubberRadius = 4;
|
||||
int transpBg = 0;
|
||||
|
|
|
@ -67,7 +67,7 @@ startPaintingL(HDC hdc, short x, short y, int fg, int bg)
|
|||
lastY = y;
|
||||
switch (activeTool)
|
||||
{
|
||||
case 1:
|
||||
case TOOL_FREESEL:
|
||||
ShowWindow(hSelection, SW_HIDE);
|
||||
if (ptStack != NULL)
|
||||
HeapFree(GetProcessHeap(), 0, ptStack);
|
||||
|
@ -76,39 +76,39 @@ startPaintingL(HDC hdc, short x, short y, int fg, int bg)
|
|||
ptStack[0].x = x;
|
||||
ptStack[0].y = y;
|
||||
break;
|
||||
case 10:
|
||||
case 11:
|
||||
case 13:
|
||||
case 15:
|
||||
case 16:
|
||||
case TOOL_TEXT:
|
||||
case TOOL_LINE:
|
||||
case TOOL_RECT:
|
||||
case TOOL_ELLIPSE:
|
||||
case TOOL_RRECT:
|
||||
newReversible();
|
||||
break;
|
||||
case 2:
|
||||
case TOOL_RECTSEL:
|
||||
newReversible();
|
||||
ShowWindow(hSelection, SW_HIDE);
|
||||
rectSel_src[2] = rectSel_src[3] = 0;
|
||||
break;
|
||||
case 3:
|
||||
case TOOL_RUBBER:
|
||||
newReversible();
|
||||
Erase(hdc, x, y, x, y, bg, rubberRadius);
|
||||
break;
|
||||
case 4:
|
||||
case TOOL_FILL:
|
||||
newReversible();
|
||||
Fill(hdc, x, y, fg);
|
||||
break;
|
||||
case 7:
|
||||
case TOOL_PEN:
|
||||
newReversible();
|
||||
SetPixel(hdc, x, y, fg);
|
||||
break;
|
||||
case 8:
|
||||
case TOOL_BRUSH:
|
||||
newReversible();
|
||||
Brush(hdc, x, y, x, y, fg, brushStyle);
|
||||
break;
|
||||
case 9:
|
||||
case TOOL_AIRBRUSH:
|
||||
newReversible();
|
||||
Airbrush(hdc, x, y, fg, airBrushWidth);
|
||||
break;
|
||||
case 12:
|
||||
case TOOL_BEZIER:
|
||||
pointStack[pointSP].x = x;
|
||||
pointStack[pointSP].y = y;
|
||||
if (pointSP == 0)
|
||||
|
@ -117,7 +117,7 @@ startPaintingL(HDC hdc, short x, short y, int fg, int bg)
|
|||
pointSP++;
|
||||
}
|
||||
break;
|
||||
case 14:
|
||||
case TOOL_SHAPE:
|
||||
pointStack[pointSP].x = x;
|
||||
pointStack[pointSP].y = y;
|
||||
if (pointSP + 1 >= 2)
|
||||
|
@ -136,7 +136,7 @@ whilePaintingL(HDC hdc, short x, short y, int fg, int bg)
|
|||
{
|
||||
switch (activeTool)
|
||||
{
|
||||
case 1:
|
||||
case TOOL_FREESEL:
|
||||
if (ptSP == 0)
|
||||
newReversible();
|
||||
ptSP++;
|
||||
|
@ -147,7 +147,7 @@ whilePaintingL(HDC hdc, short x, short y, int fg, int bg)
|
|||
resetToU1();
|
||||
Poly(hdc, ptStack, ptSP + 1, 0, 0, 2, 0, FALSE);
|
||||
break;
|
||||
case 2:
|
||||
case TOOL_RECTSEL:
|
||||
{
|
||||
short tempX;
|
||||
short tempY;
|
||||
|
@ -161,25 +161,25 @@ whilePaintingL(HDC hdc, short x, short y, int fg, int bg)
|
|||
RectSel(hdc, startX, startY, tempX, tempY);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
case TOOL_RUBBER:
|
||||
Erase(hdc, lastX, lastY, x, y, bg, rubberRadius);
|
||||
break;
|
||||
case 7:
|
||||
case TOOL_PEN:
|
||||
Line(hdc, lastX, lastY, x, y, fg, 1);
|
||||
break;
|
||||
case 8:
|
||||
case TOOL_BRUSH:
|
||||
Brush(hdc, lastX, lastY, x, y, fg, brushStyle);
|
||||
break;
|
||||
case 9:
|
||||
case TOOL_AIRBRUSH:
|
||||
Airbrush(hdc, x, y, fg, airBrushWidth);
|
||||
break;
|
||||
case 11:
|
||||
case TOOL_LINE:
|
||||
resetToU1();
|
||||
if (GetAsyncKeyState(VK_SHIFT) < 0)
|
||||
roundTo8Directions(startX, startY, &x, &y);
|
||||
Line(hdc, startX, startY, x, y, fg, lineWidth);
|
||||
break;
|
||||
case 12:
|
||||
case TOOL_BEZIER:
|
||||
resetToU1();
|
||||
pointStack[pointSP].x = x;
|
||||
pointStack[pointSP].y = y;
|
||||
|
@ -197,13 +197,13 @@ whilePaintingL(HDC hdc, short x, short y, int fg, int bg)
|
|||
break;
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
case TOOL_RECT:
|
||||
resetToU1();
|
||||
if (GetAsyncKeyState(VK_SHIFT) < 0)
|
||||
regularize(startX, startY, &x, &y);
|
||||
Rect(hdc, startX, startY, x, y, fg, bg, lineWidth, shapeStyle);
|
||||
break;
|
||||
case 14:
|
||||
case TOOL_SHAPE:
|
||||
resetToU1();
|
||||
pointStack[pointSP].x = x;
|
||||
pointStack[pointSP].y = y;
|
||||
|
@ -213,13 +213,13 @@ whilePaintingL(HDC hdc, short x, short y, int fg, int bg)
|
|||
if (pointSP + 1 >= 2)
|
||||
Poly(hdc, pointStack, pointSP + 1, fg, bg, lineWidth, shapeStyle, FALSE);
|
||||
break;
|
||||
case 15:
|
||||
case TOOL_ELLIPSE:
|
||||
resetToU1();
|
||||
if (GetAsyncKeyState(VK_SHIFT) < 0)
|
||||
regularize(startX, startY, &x, &y);
|
||||
Ellp(hdc, startX, startY, x, y, fg, bg, lineWidth, shapeStyle);
|
||||
break;
|
||||
case 16:
|
||||
case TOOL_RRECT:
|
||||
resetToU1();
|
||||
if (GetAsyncKeyState(VK_SHIFT) < 0)
|
||||
regularize(startX, startY, &x, &y);
|
||||
|
@ -236,7 +236,7 @@ endPaintingL(HDC hdc, short x, short y, int fg, int bg)
|
|||
{
|
||||
switch (activeTool)
|
||||
{
|
||||
case 1:
|
||||
case TOOL_FREESEL:
|
||||
{
|
||||
POINT *ptStackCopy;
|
||||
int i;
|
||||
|
@ -279,6 +279,9 @@ endPaintingL(HDC hdc, short x, short y, int fg, int bg)
|
|||
Poly(hdc, ptStack, ptSP + 1, bg, bg, 1, 2, TRUE);
|
||||
newReversible();
|
||||
|
||||
MaskBlt(hDrawingDC, rectSel_src[0], rectSel_src[1], rectSel_src[2], rectSel_src[3], hSelDC, 0,
|
||||
0, hSelMask, 0, 0, MAKEROP4(SRCCOPY, SRCAND));
|
||||
|
||||
placeSelWin();
|
||||
ShowWindow(hSelection, SW_SHOW);
|
||||
}
|
||||
|
@ -286,7 +289,7 @@ endPaintingL(HDC hdc, short x, short y, int fg, int bg)
|
|||
ptStack = NULL;
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
case TOOL_RECTSEL:
|
||||
resetToU1();
|
||||
if ((rectSel_src[2] != 0) && (rectSel_src[3] != 0))
|
||||
{
|
||||
|
@ -302,35 +305,38 @@ endPaintingL(HDC hdc, short x, short y, int fg, int bg)
|
|||
rectSel_src[1] + rectSel_src[3], bgColor, bgColor, 0, TRUE);
|
||||
newReversible();
|
||||
|
||||
BitBlt(hDrawingDC, rectSel_src[0], rectSel_src[1], rectSel_src[2], rectSel_src[3], hSelDC, 0,
|
||||
0, SRCCOPY);
|
||||
|
||||
placeSelWin();
|
||||
ShowWindow(hSelection, SW_SHOW);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
case TOOL_RUBBER:
|
||||
Erase(hdc, lastX, lastY, x, y, bg, rubberRadius);
|
||||
break;
|
||||
case 7:
|
||||
case TOOL_PEN:
|
||||
Line(hdc, lastX, lastY, x, y, fg, 1);
|
||||
SetPixel(hdc, x, y, fg);
|
||||
break;
|
||||
case 11:
|
||||
case TOOL_LINE:
|
||||
resetToU1();
|
||||
if (GetAsyncKeyState(VK_SHIFT) < 0)
|
||||
roundTo8Directions(startX, startY, &x, &y);
|
||||
Line(hdc, startX, startY, x, y, fg, lineWidth);
|
||||
break;
|
||||
case 12:
|
||||
case TOOL_BEZIER:
|
||||
pointSP++;
|
||||
if (pointSP == 4)
|
||||
pointSP = 0;
|
||||
break;
|
||||
case 13:
|
||||
case TOOL_RECT:
|
||||
resetToU1();
|
||||
if (GetAsyncKeyState(VK_SHIFT) < 0)
|
||||
regularize(startX, startY, &x, &y);
|
||||
Rect(hdc, startX, startY, x, y, fg, bg, lineWidth, shapeStyle);
|
||||
break;
|
||||
case 14:
|
||||
case TOOL_SHAPE:
|
||||
resetToU1();
|
||||
pointStack[pointSP].x = x;
|
||||
pointStack[pointSP].y = y;
|
||||
|
@ -354,13 +360,13 @@ endPaintingL(HDC hdc, short x, short y, int fg, int bg)
|
|||
if (pointSP == 255)
|
||||
pointSP--;
|
||||
break;
|
||||
case 15:
|
||||
case TOOL_ELLIPSE:
|
||||
resetToU1();
|
||||
if (GetAsyncKeyState(VK_SHIFT) < 0)
|
||||
regularize(startX, startY, &x, &y);
|
||||
Ellp(hdc, startX, startY, x, y, fg, bg, lineWidth, shapeStyle);
|
||||
break;
|
||||
case 16:
|
||||
case TOOL_RRECT:
|
||||
resetToU1();
|
||||
if (GetAsyncKeyState(VK_SHIFT) < 0)
|
||||
regularize(startX, startY, &x, &y);
|
||||
|
@ -378,35 +384,35 @@ startPaintingR(HDC hdc, short x, short y, int fg, int bg)
|
|||
lastY = y;
|
||||
switch (activeTool)
|
||||
{
|
||||
case 1:
|
||||
case 10:
|
||||
case 11:
|
||||
case 13:
|
||||
case 15:
|
||||
case 16:
|
||||
case TOOL_FREESEL:
|
||||
case TOOL_TEXT:
|
||||
case TOOL_LINE:
|
||||
case TOOL_RECT:
|
||||
case TOOL_ELLIPSE:
|
||||
case TOOL_RRECT:
|
||||
newReversible();
|
||||
break;
|
||||
case 3:
|
||||
case TOOL_RUBBER:
|
||||
newReversible();
|
||||
Replace(hdc, x, y, x, y, fg, bg, rubberRadius);
|
||||
break;
|
||||
case 4:
|
||||
case TOOL_FILL:
|
||||
newReversible();
|
||||
Fill(hdc, x, y, bg);
|
||||
break;
|
||||
case 7:
|
||||
case TOOL_PEN:
|
||||
newReversible();
|
||||
SetPixel(hdc, x, y, bg);
|
||||
break;
|
||||
case 8:
|
||||
case TOOL_BRUSH:
|
||||
newReversible();
|
||||
Brush(hdc, x, y, x, y, bg, brushStyle);
|
||||
break;
|
||||
case 9:
|
||||
case TOOL_AIRBRUSH:
|
||||
newReversible();
|
||||
Airbrush(hdc, x, y, bg, airBrushWidth);
|
||||
break;
|
||||
case 12:
|
||||
case TOOL_BEZIER:
|
||||
pointStack[pointSP].x = x;
|
||||
pointStack[pointSP].y = y;
|
||||
if (pointSP == 0)
|
||||
|
@ -415,7 +421,7 @@ startPaintingR(HDC hdc, short x, short y, int fg, int bg)
|
|||
pointSP++;
|
||||
}
|
||||
break;
|
||||
case 14:
|
||||
case TOOL_SHAPE:
|
||||
pointStack[pointSP].x = x;
|
||||
pointStack[pointSP].y = y;
|
||||
if (pointSP + 1 >= 2)
|
||||
|
@ -434,25 +440,25 @@ whilePaintingR(HDC hdc, short x, short y, int fg, int bg)
|
|||
{
|
||||
switch (activeTool)
|
||||
{
|
||||
case 3:
|
||||
case TOOL_RUBBER:
|
||||
Replace(hdc, lastX, lastY, x, y, fg, bg, rubberRadius);
|
||||
break;
|
||||
case 7:
|
||||
case TOOL_PEN:
|
||||
Line(hdc, lastX, lastY, x, y, bg, 1);
|
||||
break;
|
||||
case 8:
|
||||
case TOOL_BRUSH:
|
||||
Brush(hdc, lastX, lastY, x, y, bg, brushStyle);
|
||||
break;
|
||||
case 9:
|
||||
case TOOL_AIRBRUSH:
|
||||
Airbrush(hdc, x, y, bg, airBrushWidth);
|
||||
break;
|
||||
case 11:
|
||||
case TOOL_LINE:
|
||||
resetToU1();
|
||||
if (GetAsyncKeyState(VK_SHIFT) < 0)
|
||||
roundTo8Directions(startX, startY, &x, &y);
|
||||
Line(hdc, startX, startY, x, y, bg, lineWidth);
|
||||
break;
|
||||
case 12:
|
||||
case TOOL_BEZIER:
|
||||
resetToU1();
|
||||
pointStack[pointSP].x = x;
|
||||
pointStack[pointSP].y = y;
|
||||
|
@ -470,13 +476,13 @@ whilePaintingR(HDC hdc, short x, short y, int fg, int bg)
|
|||
break;
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
case TOOL_RECT:
|
||||
resetToU1();
|
||||
if (GetAsyncKeyState(VK_SHIFT) < 0)
|
||||
regularize(startX, startY, &x, &y);
|
||||
Rect(hdc, startX, startY, x, y, bg, fg, lineWidth, shapeStyle);
|
||||
break;
|
||||
case 14:
|
||||
case TOOL_SHAPE:
|
||||
resetToU1();
|
||||
pointStack[pointSP].x = x;
|
||||
pointStack[pointSP].y = y;
|
||||
|
@ -486,13 +492,13 @@ whilePaintingR(HDC hdc, short x, short y, int fg, int bg)
|
|||
if (pointSP + 1 >= 2)
|
||||
Poly(hdc, pointStack, pointSP + 1, bg, fg, lineWidth, shapeStyle, FALSE);
|
||||
break;
|
||||
case 15:
|
||||
case TOOL_ELLIPSE:
|
||||
resetToU1();
|
||||
if (GetAsyncKeyState(VK_SHIFT) < 0)
|
||||
regularize(startX, startY, &x, &y);
|
||||
Ellp(hdc, startX, startY, x, y, bg, fg, lineWidth, shapeStyle);
|
||||
break;
|
||||
case 16:
|
||||
case TOOL_RRECT:
|
||||
resetToU1();
|
||||
if (GetAsyncKeyState(VK_SHIFT) < 0)
|
||||
regularize(startX, startY, &x, &y);
|
||||
|
@ -509,31 +515,31 @@ endPaintingR(HDC hdc, short x, short y, int fg, int bg)
|
|||
{
|
||||
switch (activeTool)
|
||||
{
|
||||
case 3:
|
||||
case TOOL_RUBBER:
|
||||
Replace(hdc, lastX, lastY, x, y, fg, bg, rubberRadius);
|
||||
break;
|
||||
case 7:
|
||||
case TOOL_PEN:
|
||||
Line(hdc, lastX, lastY, x, y, bg, 1);
|
||||
SetPixel(hdc, x, y, bg);
|
||||
break;
|
||||
case 11:
|
||||
case TOOL_LINE:
|
||||
resetToU1();
|
||||
if (GetAsyncKeyState(VK_SHIFT) < 0)
|
||||
roundTo8Directions(startX, startY, &x, &y);
|
||||
Line(hdc, startX, startY, x, y, bg, lineWidth);
|
||||
break;
|
||||
case 12:
|
||||
case TOOL_BEZIER:
|
||||
pointSP++;
|
||||
if (pointSP == 4)
|
||||
pointSP = 0;
|
||||
break;
|
||||
case 13:
|
||||
case TOOL_RECT:
|
||||
resetToU1();
|
||||
if (GetAsyncKeyState(VK_SHIFT) < 0)
|
||||
regularize(startX, startY, &x, &y);
|
||||
Rect(hdc, startX, startY, x, y, bg, fg, lineWidth, shapeStyle);
|
||||
break;
|
||||
case 14:
|
||||
case TOOL_SHAPE:
|
||||
resetToU1();
|
||||
pointStack[pointSP].x = x;
|
||||
pointStack[pointSP].y = y;
|
||||
|
@ -557,13 +563,13 @@ endPaintingR(HDC hdc, short x, short y, int fg, int bg)
|
|||
if (pointSP == 255)
|
||||
pointSP--;
|
||||
break;
|
||||
case 15:
|
||||
case TOOL_ELLIPSE:
|
||||
resetToU1();
|
||||
if (GetAsyncKeyState(VK_SHIFT) < 0)
|
||||
regularize(startX, startY, &x, &y);
|
||||
Ellp(hdc, startX, startY, x, y, bg, fg, lineWidth, shapeStyle);
|
||||
break;
|
||||
case 16:
|
||||
case TOOL_RRECT:
|
||||
resetToU1();
|
||||
if (GetAsyncKeyState(VK_SHIFT) < 0)
|
||||
regularize(startX, startY, &x, &y);
|
||||
|
|
|
@ -34,13 +34,13 @@ SettingsWinProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
|
||||
DefWindowProc(hwnd, message, wParam, lParam);
|
||||
|
||||
DrawEdge(hdc, &rect1, BDR_SUNKENOUTER, (activeTool == 6) ? BF_RECT : BF_RECT | BF_MIDDLE);
|
||||
DrawEdge(hdc, &rect2, (activeTool >= 13) ? BDR_SUNKENOUTER : 0, BF_RECT | BF_MIDDLE);
|
||||
DrawEdge(hdc, &rect1, BDR_SUNKENOUTER, (activeTool == TOOL_ZOOM) ? BF_RECT : BF_RECT | BF_MIDDLE);
|
||||
DrawEdge(hdc, &rect2, (activeTool >= TOOL_RECT) ? BDR_SUNKENOUTER : 0, BF_RECT | BF_MIDDLE);
|
||||
switch (activeTool)
|
||||
{
|
||||
case 1:
|
||||
case 2:
|
||||
case 10:
|
||||
case TOOL_FREESEL:
|
||||
case TOOL_RECTSEL:
|
||||
case TOOL_TEXT:
|
||||
{
|
||||
HPEN oldPen = SelectObject(hdc, CreatePen(PS_NULL, 0, 0));
|
||||
SelectObject(hdc, GetSysColorBrush(COLOR_HIGHLIGHT));
|
||||
|
@ -50,7 +50,7 @@ SettingsWinProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
DrawIconEx(hdc, 1, 33, hTranspIcon, 40, 30, 0, NULL, DI_NORMAL);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
case TOOL_RUBBER:
|
||||
{
|
||||
int i;
|
||||
HPEN oldPen = SelectObject(hdc, CreatePen(PS_NULL, 0, 0));
|
||||
|
@ -69,7 +69,7 @@ SettingsWinProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
DeleteObject(SelectObject(hdc, oldPen));
|
||||
break;
|
||||
}
|
||||
case 8:
|
||||
case TOOL_BRUSH:
|
||||
{
|
||||
int i;
|
||||
HPEN oldPen = SelectObject(hdc, CreatePen(PS_NULL, 0, 0));
|
||||
|
@ -82,7 +82,7 @@ SettingsWinProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
GetSysColor((i == brushStyle) ? COLOR_HIGHLIGHTTEXT : COLOR_WINDOWTEXT), i);
|
||||
break;
|
||||
}
|
||||
case 9:
|
||||
case TOOL_AIRBRUSH:
|
||||
{
|
||||
HPEN oldPen = SelectObject(hdc, CreatePen(PS_NULL, 0, 0));
|
||||
SelectObject(hdc, GetSysColorBrush(COLOR_HIGHLIGHT));
|
||||
|
@ -112,8 +112,8 @@ SettingsWinProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
DeleteObject(SelectObject(hdc, oldPen));
|
||||
break;
|
||||
}
|
||||
case 11:
|
||||
case 12:
|
||||
case TOOL_LINE:
|
||||
case TOOL_BEZIER:
|
||||
{
|
||||
int i;
|
||||
HPEN oldPen = SelectObject(hdc, CreatePen(PS_NULL, 0, 0));
|
||||
|
@ -132,10 +132,10 @@ SettingsWinProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
DeleteObject(SelectObject(hdc, oldPen));
|
||||
break;
|
||||
}
|
||||
case 13:
|
||||
case 14:
|
||||
case 15:
|
||||
case 16:
|
||||
case TOOL_RECT:
|
||||
case TOOL_SHAPE:
|
||||
case TOOL_ELLIPSE:
|
||||
case TOOL_RRECT:
|
||||
{
|
||||
int i;
|
||||
HPEN oldPen = SelectObject(hdc, CreatePen(PS_NULL, 0, 0));
|
||||
|
@ -178,23 +178,23 @@ SettingsWinProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
{
|
||||
switch (activeTool)
|
||||
{
|
||||
case 1:
|
||||
case 2:
|
||||
case 10:
|
||||
case TOOL_FREESEL:
|
||||
case TOOL_RECTSEL:
|
||||
case TOOL_TEXT:
|
||||
if ((HIWORD(lParam) > 1) && (HIWORD(lParam) < 64))
|
||||
{
|
||||
transpBg = (HIWORD(lParam) - 2) / 31;
|
||||
SendMessage(hwnd, WM_PAINT, 0, 0);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
case TOOL_RUBBER:
|
||||
if ((HIWORD(lParam) > 1) && (HIWORD(lParam) < 62))
|
||||
{
|
||||
rubberRadius = (HIWORD(lParam) - 2) / 15 + 2;
|
||||
SendMessage(hwnd, WM_PAINT, 0, 0);
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
case TOOL_BRUSH:
|
||||
if ((LOWORD(lParam) > 1) && (LOWORD(lParam) < 40) && (HIWORD(lParam) > 1)
|
||||
&& (HIWORD(lParam) < 62))
|
||||
{
|
||||
|
@ -202,7 +202,7 @@ SettingsWinProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
SendMessage(hwnd, WM_PAINT, 0, 0);
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
case TOOL_AIRBRUSH:
|
||||
if (HIWORD(lParam) < 62)
|
||||
{
|
||||
if (HIWORD(lParam) < 30)
|
||||
|
@ -222,18 +222,18 @@ SettingsWinProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
SendMessage(hwnd, WM_PAINT, 0, 0);
|
||||
}
|
||||
break;
|
||||
case 11:
|
||||
case 12:
|
||||
case TOOL_LINE:
|
||||
case TOOL_BEZIER:
|
||||
if (HIWORD(lParam) <= 62)
|
||||
{
|
||||
lineWidth = (HIWORD(lParam) - 2) / 12 + 1;
|
||||
SendMessage(hwnd, WM_PAINT, 0, 0);
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
case 14:
|
||||
case 15:
|
||||
case 16:
|
||||
case TOOL_RECT:
|
||||
case TOOL_SHAPE:
|
||||
case TOOL_ELLIPSE:
|
||||
case TOOL_RRECT:
|
||||
if (HIWORD(lParam) <= 60)
|
||||
{
|
||||
shapeStyle = (HIWORD(lParam) - 2) / 20;
|
||||
|
|
|
@ -460,19 +460,19 @@ WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
{
|
||||
switch (activeTool)
|
||||
{
|
||||
case 4:
|
||||
case TOOL_FILL:
|
||||
SetCursor(hCurFill);
|
||||
break;
|
||||
case 5:
|
||||
case TOOL_COLOR:
|
||||
SetCursor(hCurColor);
|
||||
break;
|
||||
case 6:
|
||||
case TOOL_ZOOM:
|
||||
SetCursor(hCurZoom);
|
||||
break;
|
||||
case 7:
|
||||
case TOOL_PEN:
|
||||
SetCursor(hCurPen);
|
||||
break;
|
||||
case 9:
|
||||
case TOOL_AIRBRUSH:
|
||||
SetCursor(hCurAirbrush);
|
||||
break;
|
||||
default:
|
||||
|
@ -486,7 +486,7 @@ WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
case WM_LBUTTONDOWN:
|
||||
if (hwnd == hImageArea)
|
||||
{
|
||||
if ((!drawing) || (activeTool == 5))
|
||||
if ((!drawing) || (activeTool == TOOL_COLOR))
|
||||
{
|
||||
SetCapture(hImageArea);
|
||||
drawing = TRUE;
|
||||
|
@ -499,7 +499,7 @@ WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
undo();
|
||||
}
|
||||
SendMessage(hImageArea, WM_PAINT, 0, 0);
|
||||
if ((activeTool == 6) && (zoom < 8000))
|
||||
if ((activeTool == TOOL_ZOOM) && (zoom < 8000))
|
||||
zoomTo(zoom * 2, (short)LOWORD(lParam), (short)HIWORD(lParam));
|
||||
}
|
||||
break;
|
||||
|
@ -507,7 +507,7 @@ WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
case WM_RBUTTONDOWN:
|
||||
if (hwnd == hImageArea)
|
||||
{
|
||||
if ((!drawing) || (activeTool == 5))
|
||||
if ((!drawing) || (activeTool == TOOL_COLOR))
|
||||
{
|
||||
SetCapture(hImageArea);
|
||||
drawing = TRUE;
|
||||
|
@ -520,7 +520,7 @@ WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
undo();
|
||||
}
|
||||
SendMessage(hImageArea, WM_PAINT, 0, 0);
|
||||
if ((activeTool == 6) && (zoom > 125))
|
||||
if ((activeTool == TOOL_ZOOM) && (zoom > 125))
|
||||
zoomTo(zoom / 2, (short)LOWORD(lParam), (short)HIWORD(lParam));
|
||||
}
|
||||
break;
|
||||
|
@ -533,7 +533,7 @@ WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
endPaintingL(hDrawingDC, LOWORD(lParam) * 1000 / zoom, HIWORD(lParam) * 1000 / zoom, fgColor,
|
||||
bgColor);
|
||||
SendMessage(hImageArea, WM_PAINT, 0, 0);
|
||||
if (activeTool == 5)
|
||||
if (activeTool == TOOL_COLOR)
|
||||
{
|
||||
int tempColor =
|
||||
GetPixel(hDrawingDC, LOWORD(lParam) * 1000 / zoom, HIWORD(lParam) * 1000 / zoom);
|
||||
|
@ -553,7 +553,7 @@ WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
endPaintingR(hDrawingDC, LOWORD(lParam) * 1000 / zoom, HIWORD(lParam) * 1000 / zoom, fgColor,
|
||||
bgColor);
|
||||
SendMessage(hImageArea, WM_PAINT, 0, 0);
|
||||
if (activeTool == 5)
|
||||
if (activeTool == TOOL_COLOR)
|
||||
{
|
||||
int tempColor =
|
||||
GetPixel(hDrawingDC, LOWORD(lParam) * 1000 / zoom, HIWORD(lParam) * 1000 / zoom);
|
||||
|
@ -568,16 +568,13 @@ WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
case WM_MOUSEMOVE:
|
||||
if (hwnd == hImageArea)
|
||||
{
|
||||
if ((!drawing) || (activeTool <= 9))
|
||||
short xNow = (short)LOWORD(lParam) * 1000 / zoom;
|
||||
short yNow = (short)HIWORD(lParam) * 1000 / zoom;
|
||||
if ((!drawing) || (activeTool <= TOOL_AIRBRUSH))
|
||||
{
|
||||
TRACKMOUSEEVENT tme;
|
||||
|
||||
TCHAR coordStr[100];
|
||||
_stprintf(coordStr, _T("%d, %d"), (short)LOWORD(lParam) * 1000 / zoom,
|
||||
(short)HIWORD(lParam) * 1000 / zoom);
|
||||
SendMessage(hStatusBar, SB_SETTEXT, 1, (LPARAM) coordStr);
|
||||
|
||||
if (activeTool == 6)
|
||||
if (activeTool == TOOL_ZOOM)
|
||||
{
|
||||
SendMessage(hImageArea, WM_PAINT, 0, 0);
|
||||
drawZoomFrame((short)LOWORD(lParam), (short)HIWORD(lParam));
|
||||
|
@ -588,32 +585,73 @@ WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
tme.hwndTrack = hImageArea;
|
||||
tme.dwHoverTime = 0;
|
||||
TrackMouseEvent(&tme);
|
||||
|
||||
if (!drawing)
|
||||
{
|
||||
TCHAR coordStr[100];
|
||||
_stprintf(coordStr, _T("%d, %d"), xNow, yNow);
|
||||
SendMessage(hStatusBar, SB_SETTEXT, 1, (LPARAM) coordStr);
|
||||
}
|
||||
}
|
||||
if (drawing)
|
||||
{
|
||||
/* values displayed in statusbar */
|
||||
short xRel = xNow - startX;
|
||||
short yRel = yNow - startY;
|
||||
/* freesel, rectsel and text tools always show numbers limited to fit into image area */
|
||||
if ((activeTool == TOOL_FREESEL) || (activeTool == TOOL_RECTSEL) || (activeTool == TOOL_TEXT))
|
||||
{
|
||||
if (xRel < 0)
|
||||
xRel = (xNow < 0) ? -startX : xRel;
|
||||
else if (xNow > imgXRes)
|
||||
xRel = imgXRes-startX;
|
||||
if (yRel < 0)
|
||||
yRel = (yNow < 0) ? -startY : yRel;
|
||||
else if (yNow > imgYRes)
|
||||
yRel = imgYRes-startY;
|
||||
}
|
||||
/* rectsel and shape tools always show non-negative numbers when drawing */
|
||||
if ((activeTool == TOOL_RECTSEL) || (activeTool == TOOL_SHAPE))
|
||||
{
|
||||
if (xRel < 0)
|
||||
xRel = -xRel;
|
||||
if (yRel < 0)
|
||||
yRel = -yRel;
|
||||
}
|
||||
/* while drawing, update cursor coordinates only for tools 3, 7, 8, 9, 14 */
|
||||
switch(activeTool)
|
||||
{
|
||||
case TOOL_RUBBER:
|
||||
case TOOL_PEN:
|
||||
case TOOL_BRUSH:
|
||||
case TOOL_AIRBRUSH:
|
||||
case TOOL_SHAPE:
|
||||
{
|
||||
TCHAR coordStr[100];
|
||||
_stprintf(coordStr, _T("%d, %d"), xNow, yNow);
|
||||
SendMessage(hStatusBar, SB_SETTEXT, 1, (LPARAM) coordStr);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ((wParam & MK_LBUTTON) != 0)
|
||||
{
|
||||
whilePaintingL(hDrawingDC, (short)LOWORD(lParam) * 1000 / zoom,
|
||||
(short)HIWORD(lParam) * 1000 / zoom, fgColor, bgColor);
|
||||
whilePaintingL(hDrawingDC, xNow, yNow, fgColor, bgColor);
|
||||
SendMessage(hImageArea, WM_PAINT, 0, 0);
|
||||
if ((activeTool >= 10) || (activeTool == 2))
|
||||
if ((activeTool >= TOOL_TEXT) || (activeTool == TOOL_RECTSEL) || (activeTool == TOOL_FREESEL))
|
||||
{
|
||||
TCHAR sizeStr[100];
|
||||
_stprintf(sizeStr, _T("%d x %d"), (short)LOWORD(lParam) * 1000 / zoom - startX,
|
||||
(short)HIWORD(lParam) * 1000 / zoom - startY);
|
||||
_stprintf(sizeStr, _T("%d x %d"), xRel, yRel);
|
||||
SendMessage(hStatusBar, SB_SETTEXT, 2, (LPARAM) sizeStr);
|
||||
}
|
||||
}
|
||||
if ((wParam & MK_RBUTTON) != 0)
|
||||
{
|
||||
whilePaintingR(hDrawingDC, (short)LOWORD(lParam) * 1000 / zoom,
|
||||
(short)HIWORD(lParam) * 1000 / zoom, fgColor, bgColor);
|
||||
whilePaintingR(hDrawingDC, xNow, yNow, fgColor, bgColor);
|
||||
SendMessage(hImageArea, WM_PAINT, 0, 0);
|
||||
if (activeTool >= 10)
|
||||
if (activeTool >= TOOL_TEXT)
|
||||
{
|
||||
TCHAR sizeStr[100];
|
||||
_stprintf(sizeStr, _T("%d x %d"), (short)LOWORD(lParam) * 1000 / zoom - startX,
|
||||
(short)HIWORD(lParam) * 1000 / zoom - startY);
|
||||
_stprintf(sizeStr, _T("%d x %d"), xRel, yRel);
|
||||
SendMessage(hStatusBar, SB_SETTEXT, 2, (LPARAM) sizeStr);
|
||||
}
|
||||
}
|
||||
|
@ -623,7 +661,7 @@ WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
|
||||
case WM_MOUSELEAVE:
|
||||
SendMessage(hStatusBar, SB_SETTEXT, 1, (LPARAM) _T(""));
|
||||
if (activeTool == 6)
|
||||
if (activeTool == TOOL_ZOOM)
|
||||
SendMessage(hImageArea, WM_PAINT, 0, 0);
|
||||
break;
|
||||
|
||||
|
@ -747,7 +785,7 @@ WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
/* remove selection window and already painted content using undo(),
|
||||
paint Rect for rectangular selections and nothing for freeform selections */
|
||||
undo();
|
||||
if (activeTool == 2)
|
||||
if (activeTool == TOOL_RECTSEL)
|
||||
{
|
||||
newReversible();
|
||||
Rect(hDrawingDC, rectSel_dest[0], rectSel_dest[1], rectSel_dest[2] + rectSel_dest[0],
|
||||
|
@ -756,7 +794,7 @@ WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|||
break;
|
||||
}
|
||||
case IDM_EDITSELECTALL:
|
||||
if (activeTool == 2)
|
||||
if (activeTool == TOOL_RECTSEL)
|
||||
{
|
||||
startPaintingL(hDrawingDC, 0, 0, fgColor, bgColor);
|
||||
whilePaintingL(hDrawingDC, imgXRes, imgYRes, fgColor, bgColor);
|
||||
|
|
|
@ -185,7 +185,7 @@ BEGIN
|
|||
IDS_UPDATES "Aktualisierungen"
|
||||
IDS_APPLICATIONS "Anwendungen"
|
||||
IDS_CHOOSE_FOLDER_TEXT "Wählen Sie ein Verzeichnis aus, das zum Herunterladen verwendet werden soll:"
|
||||
IDS_CHOOSE_FOLDER_ERROR "Sie haben ein nicht existentes Verzeichnis angegeben!"
|
||||
IDS_CHOOSE_FOLDER_ERROR "Sie haben ein nicht existierendes Verzeichnis angegeben! Neu anlegen?"
|
||||
IDS_USER_NOT_ADMIN "Sie müssen als Administrator angemeldet sein, um den Anwendungsmanager zu starten!"
|
||||
IDS_APP_REG_REMOVE "Sind Sie sich sicher, dass Sie die Daten dieses Programms aus der Registry entfernen möchten?"
|
||||
IDS_INFORMATION "Informationen"
|
||||
|
|
|
@ -185,7 +185,7 @@ BEGIN
|
|||
IDS_UPDATES "Updates"
|
||||
IDS_APPLICATIONS "Applications"
|
||||
IDS_CHOOSE_FOLDER_TEXT "Choose a folder which will store Downloads:"
|
||||
IDS_CHOOSE_FOLDER_ERROR "The folder you have specified does not exist."
|
||||
IDS_CHOOSE_FOLDER_ERROR "The folder you have specified does not exist. Create it?"
|
||||
IDS_USER_NOT_ADMIN "You must be an administrator to start ""ReactOS Applications Manager""!"
|
||||
IDS_APP_REG_REMOVE "Are you sure you want to delete the data on the installed program from the registry?"
|
||||
IDS_INFORMATION "Information"
|
||||
|
|
|
@ -156,7 +156,7 @@ BEGIN
|
|||
IDS_CAT_DEVEL "Sviluppo"
|
||||
IDS_CAT_DRIVERS "Drivers"
|
||||
IDS_CAT_EDU "Edutainment"
|
||||
IDS_CAT_ENGINEER "Engineering"
|
||||
IDS_CAT_ENGINEER "Scienze"
|
||||
IDS_CAT_FINANCE "Finanza"
|
||||
IDS_CAT_GAMES "Giochi e divertimento"
|
||||
IDS_CAT_GRAPHICS "Graphica"
|
||||
|
@ -174,18 +174,18 @@ BEGIN
|
|||
IDS_APPTITLE "ReactOS Applications Manager"
|
||||
IDS_SEARCH_TEXT "Cerca..."
|
||||
IDS_INSTALL "Installa"
|
||||
IDS_UNINSTALL "Disinstall"
|
||||
IDS_UNINSTALL "Disinstalla"
|
||||
IDS_MODIFY "Modifica"
|
||||
IDS_APPS_COUNT "Numero applicazioni: %d"
|
||||
IDS_WELCOME_TITLE "Benvenuto!\n\n"
|
||||
IDS_WELCOME_TEXT "Scegliere una categoria a sinistra, poi scegliere una applicazione da installare o disinstallare.\nReactOS Web Site: "
|
||||
IDS_WELCOME_URL "http://www.reactos.org"
|
||||
IDS_INSTALLED "Installato"
|
||||
IDS_AVAILABLEFORINST "Disponibile"
|
||||
IDS_AVAILABLEFORINST "Disponibile per l'installazione"
|
||||
IDS_UPDATES "Aggiornamenti"
|
||||
IDS_APPLICATIONS "Applicazioni"
|
||||
IDS_CHOOSE_FOLDER_TEXT "Scegliere una cartella dove scaricare le applicazioni:"
|
||||
IDS_CHOOSE_FOLDER_ERROR "La cartella indicata non esiste."
|
||||
IDS_CHOOSE_FOLDER_ERROR "La cartella indicata non esiste. Vuoi crearla?"
|
||||
IDS_USER_NOT_ADMIN "Dovete essere Amministratore per avviare ""ReactOS Applications Manager""!"
|
||||
IDS_APP_REG_REMOVE "Sicuro di voler cancellare dal registry i dati sui programmi installati?"
|
||||
IDS_INFORMATION "Informazioni"
|
||||
|
|
|
@ -187,7 +187,7 @@ BEGIN
|
|||
IDS_UPDATES "Uaktualnienia"
|
||||
IDS_APPLICATIONS "Aplikacje"
|
||||
IDS_CHOOSE_FOLDER_TEXT "Wybierz katalog w którym bêda zapisywane pobrane programy:"
|
||||
IDS_CHOOSE_FOLDER_ERROR "Wybra³eœ nieistniej¹cy katalog!"
|
||||
IDS_CHOOSE_FOLDER_ERROR "Wybrałeś nieistniejący katalog! Czy chcesz utworzyć nowy?"
|
||||
IDS_USER_NOT_ADMIN "Musisz mieæ uprawnienia administratora aby uruchomiæ ""ReactOS Applications Manager""!"
|
||||
IDS_APP_REG_REMOVE "Czy na pewno chcesz usun¹æ wpis tego programu z rejestru?"
|
||||
IDS_INFORMATION "Informacja"
|
||||
|
|
|
@ -8,35 +8,20 @@ Description = The most popular and one of the best free Web Browsers out there.
|
|||
Size = 5.8M
|
||||
Category = 5
|
||||
URLSite = http://www.mozilla.com/en-US/
|
||||
URLDownload = http://194.71.11.70/pub/www/clients/mozilla.org/firefox/releases/2.0.0.20/win32/en-US/Firefox%20Setup%202.0.0.20.exe
|
||||
URLDownload = http://svn.reactos.org/packages/Firefox%20Setup%202.0.0.20.exe
|
||||
CDPath = none
|
||||
|
||||
[Section.0407]
|
||||
Description = Der populärste und einer der besten freien Webbrowser.
|
||||
Size = 5.5M
|
||||
URLSite = http://www.mozilla-europe.org/de/
|
||||
URLDownload = http://194.71.11.70/pub/www/clients/mozilla.org/firefox/releases/2.0.0.20/win32/de/Firefox%20Setup%202.0.0.20.exe
|
||||
|
||||
[Section.040a]
|
||||
Description = El más popular y uno de los mejores navegadores web gratuitos que hay.
|
||||
Size = 5.6M
|
||||
URLSite = http://www.mozilla-europe.org/es/
|
||||
URLDownload = http://194.71.11.70/pub/www/clients/mozilla.org/firefox/releases/2.0.0.20/win32/es-ES/Firefox%20Setup%202.0.0.20.exe
|
||||
|
||||
[Section.0414]
|
||||
Description = Mest populære og best også gratis nettleserene der ute.
|
||||
Size = 5.6M
|
||||
URLSite = http://www.mozilla-europe.org/no/
|
||||
URLDownload = http://194.71.11.70/pub/www/clients/mozilla.org/firefox/releases/2.0.0.20/win32/nb-NO/Firefox%20Setup%202.0.0.20.exe
|
||||
|
||||
[Section.0415]
|
||||
Description = Najpopularniejsza i jedna z najlepszych darmowych przeglądarek internetowych.
|
||||
Size = 6.3M
|
||||
URLSite = http://www.mozilla-europe.org/pl/
|
||||
URLDownload = http://194.71.11.70/pub/www/clients/mozilla.org/firefox/releases/2.0.0.20/win32/pl/Firefox%20Setup%202.0.0.20.exe
|
||||
|
||||
[Section.0419]
|
||||
Description = Один из самых популярных и лучших бесплатных браузеров.
|
||||
Size = 6.4M
|
||||
URLSite = http://www.mozilla-europe.org/ru/
|
||||
URLDownload = http://194.71.11.70/pub/www/clients/mozilla.org/firefox/releases/2.0.0.20/win32/ru/Firefox%20Setup%202.0.0.20.exe
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
[Section]
|
||||
Name = Miranda IM
|
||||
Version = 0.8.22
|
||||
Version = 0.8.24
|
||||
Licence = GPL
|
||||
Description = Open source multiprotocol instant messaging application - May not work completely.
|
||||
Size = 1.6MB
|
||||
Size = 1.7MB
|
||||
Category = 5
|
||||
URLSite = http://www.miranda-im.org/
|
||||
URLDownload = http://miranda.googlecode.com/files/miranda-im-v0.8.22-unicode.exe
|
||||
URLDownload = http://miranda.googlecode.com/files/miranda-im-v0.8.24-unicode.exe
|
||||
CDPath = none
|
||||
|
||||
[Section.0407]
|
||||
|
|
|
@ -2,30 +2,29 @@
|
|||
|
||||
[Section]
|
||||
Name = OpenOffice 3.0
|
||||
Version = 3.2.0
|
||||
Version = 3.2.1
|
||||
Licence = LGPL
|
||||
Description = THE Open Source Office Suite.
|
||||
Size = 135.4MB
|
||||
Size = 134.0MB
|
||||
Category = 6
|
||||
URLSite = http://www.openoffice.org/
|
||||
URLDownload = http://ftp.tu-chemnitz.de/pub/openoffice/stable/3.2.0/OOo_3.2.0_Win32Intel_install_en-US.exe
|
||||
URLDownload = http://ftp3.gwdg.de/pub/openoffice/stable/3.2.1/OOo_3.2.1_Win_x86_install_en-US.exe
|
||||
CDPath = none
|
||||
|
||||
[Section.0407]
|
||||
Description = DIE Open Source Office Suite.
|
||||
URLSite = http://de.openoffice.org/
|
||||
Size = 145.8MB
|
||||
URLDownload = http://ftp.tu-chemnitz.de/pub/openoffice/localized/de/3.2.0/OOo_3.2.0_Win32Intel_install_de.exe
|
||||
Size = 144.0MB
|
||||
URLDownload = http://ftp3.gwdg.de/pub/openoffice/localized/de/3.2.1/OOo_3.2.1_Win_x86_install_de.exe
|
||||
|
||||
[Section.040a]
|
||||
Description = La suite de ofimática de código abierto.
|
||||
URLSite = http://es.openoffice.org/
|
||||
Version = 3.1.0
|
||||
Size = 119.4MB
|
||||
URLDownload = http://ftp.tu-chemnitz.de/pub/openoffice/localized/es/3.2.0/OOo_3.2.0_Win32Intel_install_es.exe
|
||||
Size = 144.0MB
|
||||
URLDownload = http://ftp3.gwdg.de/pub/openoffice/localized/es/3.2.1/OOo_3.2.1_Win_x86_install-wJRE_es.exe
|
||||
|
||||
[Section.0415]
|
||||
Description = Otwarty pakiet biurowy.
|
||||
URLSite = http://pl.openoffice.org/
|
||||
Size = 133.2MB
|
||||
URLDownload = http://ftp.tu-chemnitz.de/pub/openoffice/localized/pl/3.2.0/OOo_3.2.0_Win32Intel_install_pl.exe
|
||||
Size = 130.0MB
|
||||
URLDownload = http://ftp3.gwdg.de/pub/openoffice/localized/pl/3.2.1/OOo_3.2.1_Win_x86_install_pl.exe
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
[Section]
|
||||
Name = ReactOS Build Environment
|
||||
Version = 1.5.1
|
||||
Version = 1.5.1.1
|
||||
Licence = GPL
|
||||
Description = Allows you to build the ReactOS Source. For more instructions see ReactOS wiki.
|
||||
Size = 13.5MB
|
||||
Size = 13.8MB
|
||||
Category = 7
|
||||
URLSite = http://reactos.org/wiki/Build_Environment/
|
||||
URLDownload = http://ovh.dl.sourceforge.net/sourceforge/reactos/RosBE-1.5.1.exe
|
||||
URLSite = http://reactos.org/wiki/Build_Environment
|
||||
URLDownload = http://ovh.dl.sourceforge.net/sourceforge/reactos/RosBE-1.5.1.1.exe
|
||||
CDPath = none
|
||||
|
||||
[Section.0407]
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
[Section]
|
||||
Name = SciTE
|
||||
Version = 2.11
|
||||
Version = 2.12
|
||||
Licence = Freeware
|
||||
Description = SciTE is a SCIntilla based Text Editor. Originally built to demonstrate Scintilla, it has grown to be a generally useful editor with facilities for building and running programs.
|
||||
Size = 0.6M
|
||||
Category = 7
|
||||
URLSite = http://www.scintilla.org/
|
||||
URLDownload = http://ovh.dl.sourceforge.net/sourceforge/scintilla/Sc211.exe
|
||||
URLDownload = http://ovh.dl.sourceforge.net/sourceforge/scintilla/Sc212.exe
|
||||
CDPath = none
|
||||
|
||||
[Section.0407]
|
||||
|
|
|
@ -115,7 +115,14 @@ SettingsDlgProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
|
|||
IDS_CHOOSE_FOLDER_ERROR,
|
||||
szMsgText, sizeof(szMsgText) / sizeof(WCHAR));
|
||||
|
||||
MessageBoxW(hDlg, szMsgText, NULL, MB_OK | MB_ICONERROR);
|
||||
if (MessageBoxW(hDlg, szMsgText, NULL, MB_YESNO) == IDYES)
|
||||
{
|
||||
if (CreateDirectoryW(szDir, NULL))
|
||||
{
|
||||
EndDialog(hDlg, LOWORD(wParam));
|
||||
}
|
||||
}
|
||||
|
||||
SetFocus(GetDlgItem(hDlg, IDC_DOWNLOAD_DIR_EDIT));
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -276,7 +276,6 @@ INT_PTR CALLBACK modify_dword_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LP
|
|||
{
|
||||
WNDPROC oldproc;
|
||||
HWND hwndValue;
|
||||
int len;
|
||||
TCHAR ValueString[32];
|
||||
LPTSTR Remainder;
|
||||
DWORD Base;
|
||||
|
@ -319,7 +318,7 @@ INT_PTR CALLBACK modify_dword_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LP
|
|||
dwordEditMode = EDIT_MODE_HEX;
|
||||
if ((hwndValue = GetDlgItem(hwndDlg, IDC_VALUE_DATA)))
|
||||
{
|
||||
if ((len = GetWindowTextLength(hwndValue)))
|
||||
if (GetWindowTextLength(hwndValue))
|
||||
{
|
||||
if (GetWindowText(hwndValue, ValueString, 32))
|
||||
{
|
||||
|
@ -339,7 +338,7 @@ INT_PTR CALLBACK modify_dword_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LP
|
|||
dwordEditMode = EDIT_MODE_DEC;
|
||||
if ((hwndValue = GetDlgItem(hwndDlg, IDC_VALUE_DATA)))
|
||||
{
|
||||
if ((len = GetWindowTextLength(hwndValue)))
|
||||
if (GetWindowTextLength(hwndValue))
|
||||
{
|
||||
if (GetWindowText(hwndValue, ValueString, 32))
|
||||
{
|
||||
|
@ -356,7 +355,7 @@ INT_PTR CALLBACK modify_dword_dlgproc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LP
|
|||
case IDOK:
|
||||
if ((hwndValue = GetDlgItem(hwndDlg, IDC_VALUE_DATA)))
|
||||
{
|
||||
if ((len = GetWindowTextLength(hwndValue)))
|
||||
if (GetWindowTextLength(hwndValue))
|
||||
{
|
||||
if (!GetWindowText(hwndValue, ValueString, 32))
|
||||
{
|
||||
|
|
|
@ -192,7 +192,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP |
|
|||
CAPTION "Modifica Multi-Stringa"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "&Name:",IDC_STATIC,6,6,134,8
|
||||
LTEXT "&Nome:",IDC_STATIC,6,6,134,8
|
||||
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
|
||||
LTEXT "&Dati:",IDC_STATIC,6,35,161,8
|
||||
EDITTEXT IDC_VALUE_DATA,6,46,240,102,ES_MULTILINE |
|
||||
|
|
|
@ -1418,7 +1418,7 @@ static BOOL IsDiskSizeValid(PPARTENTRY PartEntry)
|
|||
if( m < RequiredPartitionDiskSpace)
|
||||
{
|
||||
/* partition is too small so ask for another partion */
|
||||
DPRINT1("Partition too small");
|
||||
DPRINT1("Partition is too small, required disk space is %lu MB\n", RequiredPartitionDiskSpace);
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
|
|
|
@ -1483,17 +1483,17 @@ MUI_ERROR bgBGErrorEntries[] =
|
|||
"<EFBFBD>¥ãá¯¥è® ¤®¡ ¢ï¥ ª« ¢¨ âãà¨â¥ ¯®¤à¥¤¡¨ ¢ ॣ¨áâêà .\n"
|
||||
"ENTER = <20>१ ¯ã᪠¥ ª®¬¯îâêà "
|
||||
},
|
||||
{
|
||||
//ERROR_UPDATE_GEOID,
|
||||
"<EFBFBD> áâனª â ¥ ¬®¦ ¤ ãáâ ®¢¨ ®§ ç¨â¥«ï £¥®£à ä᪮⮠¯®«®¦¥¨¥.\n"
|
||||
"ENTER = <20>१ ¯ã᪠¥ ª®¬¯îâêà "
|
||||
},
|
||||
{
|
||||
//ERROR_INSUFFICIENT_DISKSPACE,
|
||||
"Not enough free space in the selected partition.\n"
|
||||
" * <20> â¨á¥â¥ ª« ¢¨è, § ¤ ¯à®¤ê«¦¨â¥.",
|
||||
NULL
|
||||
},
|
||||
{
|
||||
//ERROR_UPDATE_GEOID,
|
||||
"<EFBFBD> áâனª â ¥ ¬®¦ ¤ ãáâ ®¢¨ ®§ ç¨â¥«ï £¥®£à ä᪮⮠¯®«®¦¥¨¥.\n"
|
||||
"ENTER = <20>१ ¯ã᪠¥ ª®¬¯îâêà "
|
||||
},
|
||||
{
|
||||
NULL,
|
||||
NULL
|
||||
|
|
|
@ -1478,17 +1478,17 @@ MUI_ERROR esESErrorEntries[] =
|
|||
"El instalador no ha podido agregar los layouts de teclado al registro.\n"
|
||||
"ENTER = Reiniciar el equipo"
|
||||
},
|
||||
{
|
||||
//ERROR_UPDATE_GEOID,
|
||||
"El instalador no ha podido configurar el ID geogr fico.\n"
|
||||
"ENTER = Reiniciar el equipo"
|
||||
},
|
||||
{
|
||||
//ERROR_INSUFFICIENT_DISKSPACE,
|
||||
"No hay suficiente espacio disponible en la partici¢n seleccionada.\n"
|
||||
" * Presione una tecla para continuar.",
|
||||
NULL
|
||||
},
|
||||
{
|
||||
//ERROR_UPDATE_GEOID,
|
||||
"El instalador no ha podido configurar el ID geogr fico.\n"
|
||||
"ENTER = Reiniciar el equipo"
|
||||
},
|
||||
{
|
||||
NULL,
|
||||
NULL
|
||||
|
|
|
@ -1468,17 +1468,17 @@ MUI_ERROR etEEErrorEntries[] =
|
|||
"Klaviatuuriasetusi ei ännestunud registrisse lisada.\n"
|
||||
"ENTER = Taask„ivita arvuti"
|
||||
},
|
||||
{
|
||||
//ERROR_UPDATE_GEOID,
|
||||
"Geograafilist asukohta ei ännestunud seadistada.\n"
|
||||
"ENTER = Taask„ivita arvuti"
|
||||
},
|
||||
{
|
||||
//ERROR_INSUFFICIENT_DISKSPACE,
|
||||
"Valitud partitsioonil pole piisavalt ruumi.\n"
|
||||
" * Vajuta suvalist klahvi, et j„tkata.",
|
||||
NULL
|
||||
},
|
||||
{
|
||||
//ERROR_UPDATE_GEOID,
|
||||
"Geograafilist asukohta ei ännestunud seadistada.\n"
|
||||
"ENTER = Taask„ivita arvuti"
|
||||
},
|
||||
{
|
||||
NULL,
|
||||
NULL
|
||||
|
|
|
@ -1484,17 +1484,17 @@ MUI_ERROR frFRErrorEntries[] =
|
|||
"Setup failed to add keyboard layouts to registry.\n"
|
||||
"ENTER = Reboot computer"
|
||||
},
|
||||
{
|
||||
//ERROR_UPDATE_GEOID,
|
||||
"Setup could not set the geo id.\n"
|
||||
"ENTER = Reboot computer"
|
||||
},
|
||||
{
|
||||
//ERROR_INSUFFICIENT_DISKSPACE,
|
||||
"Not enough free space in the selected partition.\n"
|
||||
" * Press any key to continue.",
|
||||
NULL
|
||||
},
|
||||
{
|
||||
//ERROR_UPDATE_GEOID,
|
||||
"Setup could not set the geo id.\n"
|
||||
"ENTER = Reboot computer"
|
||||
},
|
||||
{
|
||||
NULL,
|
||||
NULL
|
||||
|
|
|
@ -1472,17 +1472,17 @@ MUI_ERROR itITErrorEntries[] =
|
|||
"Impossibile aggiungere le nazionalit… di tastiera al registro.\n"
|
||||
"INVIO = Riavviare il computer"
|
||||
},
|
||||
{
|
||||
//ERROR_UPDATE_GEOID,
|
||||
"Setup non ha potuto impostare l'id geografico.\n"
|
||||
"INVIO = Riavviare il computer"
|
||||
},
|
||||
{
|
||||
//ERROR_INSUFFICIENT_DISKSPACE,
|
||||
"Lo spazio disponibile nella partizione selezionata Š insufficiente.\n"
|
||||
" * Premere un tasto qualsiasi per continuare.",
|
||||
NULL
|
||||
},
|
||||
{
|
||||
//ERROR_UPDATE_GEOID,
|
||||
"Setup non ha potuto impostare l'id geografico.\n"
|
||||
"INVIO = Riavviare il computer"
|
||||
},
|
||||
{
|
||||
NULL,
|
||||
NULL
|
||||
|
|
|
@ -1481,17 +1481,17 @@ MUI_ERROR ltLTErrorEntries[] =
|
|||
"Setup failed to add keyboard layouts to registry.\n"
|
||||
"ENTER = Reboot computer"
|
||||
},
|
||||
{
|
||||
//ERROR_UPDATE_GEOID,
|
||||
"Setup could not set the geo id.\n"
|
||||
"ENTER = Reboot computer"
|
||||
},
|
||||
{
|
||||
//ERROR_INSUFFICIENT_DISKSPACE,
|
||||
"Not enough free space in the selected partition.\n"
|
||||
" * Press any key to continue.",
|
||||
NULL
|
||||
},
|
||||
{
|
||||
//ERROR_UPDATE_GEOID,
|
||||
"Setup could not set the geo id.\n"
|
||||
"ENTER = Reboot computer"
|
||||
},
|
||||
{
|
||||
NULL,
|
||||
NULL
|
||||
|
|
|
@ -1499,17 +1499,17 @@ MUI_ERROR nlNLErrorEntries[] =
|
|||
"Setup kan de toetsenbord indelingen niet toevoegen aan de registry.\n"
|
||||
"ENTER = Reboot computer"
|
||||
},
|
||||
{
|
||||
//ERROR_UPDATE_GEOID,
|
||||
"Setup kan de geografische positie niet instellen.\n"
|
||||
"ENTER = Reboot computer"
|
||||
},
|
||||
{
|
||||
//ERROR_INSUFFICIENT_DISKSPACE,
|
||||
"Not enough free space in the selected partition.\n"
|
||||
" * Press any key to continue.",
|
||||
NULL
|
||||
},
|
||||
{
|
||||
//ERROR_UPDATE_GEOID,
|
||||
"Setup kan de geografische positie niet instellen.\n"
|
||||
"ENTER = Reboot computer"
|
||||
},
|
||||
{
|
||||
NULL,
|
||||
NULL
|
||||
|
|
|
@ -1480,17 +1480,17 @@ MUI_ERROR plPLErrorEntries[] =
|
|||
"Instalator nie m˘g<CB98> doda† uk<75>ad˘w klawiatury do rejestru.\n"
|
||||
"ENTER = Restart komputera"
|
||||
},
|
||||
{
|
||||
//ERROR_UPDATE_GEOID,
|
||||
"Instalator nie m¢gˆ ustawi† lokalizacji geograficznej.\n"
|
||||
"ENTER = Restart komputera"
|
||||
},
|
||||
{
|
||||
//ERROR_INSUFFICIENT_DISKSPACE,
|
||||
"Brak wystarczajĄcej wolnej przestrzeni w wybranej partycji.\n"
|
||||
" * Naci<63>nij dowolny klawisz aby kontynuowa†.",
|
||||
NULL
|
||||
},
|
||||
{
|
||||
//ERROR_UPDATE_GEOID,
|
||||
"Instalator nie m¢gˆ ustawi† lokalizacji geograficznej.\n"
|
||||
"ENTER = Restart komputera"
|
||||
},
|
||||
{
|
||||
NULL,
|
||||
NULL
|
||||
|
|
|
@ -1472,17 +1472,17 @@ MUI_ERROR ruRUErrorEntries[] =
|
|||
"Setup failed to add keyboard layouts to registry.\n"
|
||||
"ENTER = Reboot computer"
|
||||
},
|
||||
{
|
||||
//ERROR_UPDATE_GEOID,
|
||||
"Setup could not set the geo id.\n"
|
||||
"ENTER = Reboot computer"
|
||||
},
|
||||
{
|
||||
//ERROR_INSUFFICIENT_DISKSPACE,
|
||||
"Not enough free space in the selected partition.\n"
|
||||
" * Press any key to continue.",
|
||||
NULL
|
||||
},
|
||||
{
|
||||
//ERROR_UPDATE_GEOID,
|
||||
"Setup could not set the geo id.\n"
|
||||
"ENTER = Reboot computer"
|
||||
},
|
||||
{
|
||||
NULL,
|
||||
NULL
|
||||
|
|
|
@ -1482,17 +1482,17 @@ MUI_ERROR skSKErrorEntries[] =
|
|||
"Inçtal tor zlyhal pri prid van¡ rozlo§en¡ kl vesnice do registrov.\n"
|
||||
"ENTER = Reçtart poŸ¡taŸa"
|
||||
},
|
||||
{
|
||||
//ERROR_UPDATE_GEOID,
|
||||
"Inçtal tor nemohol nastaviœ geo id.\n"
|
||||
"ENTER = Reçtart poŸ¡taŸa"
|
||||
},
|
||||
{
|
||||
//ERROR_INSUFFICIENT_DISKSPACE,
|
||||
"Not enough free space in the selected partition.\n"
|
||||
" * Press any key to continue.",
|
||||
NULL
|
||||
},
|
||||
{
|
||||
//ERROR_UPDATE_GEOID,
|
||||
"Inçtal tor nemohol nastaviœ geo id.\n"
|
||||
"ENTER = Reçtart poŸ¡taŸa"
|
||||
},
|
||||
{
|
||||
NULL,
|
||||
NULL
|
||||
|
|
|
@ -1472,17 +1472,17 @@ MUI_ERROR svSEErrorEntries[] =
|
|||
"Setup failed to add keyboard layouts to registry.\n"
|
||||
"ENTER = Reboot computer"
|
||||
},
|
||||
{
|
||||
//ERROR_UPDATE_GEOID,
|
||||
"Setup could not set the geo id.\n"
|
||||
"ENTER = Reboot computer"
|
||||
},
|
||||
{
|
||||
//ERROR_INSUFFICIENT_DISKSPACE,
|
||||
"Not enough free space in the selected partition.\n"
|
||||
" * Press any key to continue.",
|
||||
NULL
|
||||
},
|
||||
{
|
||||
//ERROR_UPDATE_GEOID,
|
||||
"Setup could not set the geo id.\n"
|
||||
"ENTER = Reboot computer"
|
||||
},
|
||||
{
|
||||
NULL,
|
||||
NULL
|
||||
|
|
|
@ -1478,17 +1478,17 @@ MUI_ERROR ukUAErrorEntries[] =
|
|||
"<EFBFBD>¥ ¢¤ «®áì ¤®¤ ⨠஧ª« ¤ª¨ ª« ¢i âãਠ¤® à¥óáâàã.\n"
|
||||
"ENTER = <20>¥à¥§ ¢ â ¦¨â¨ ª®¬¯'îâ¥à"
|
||||
},
|
||||
{
|
||||
//ERROR_UPDATE_GEOID,
|
||||
"<EFBFBD>¥ ¢¤ «®áì ¢áâ ®¢¨â¨ geo id.\n"
|
||||
"ENTER = <20>¥à¥§ ¢ â ¦¨â¨ ª®¬¯'îâ¥à"
|
||||
},
|
||||
{
|
||||
//ERROR_INSUFFICIENT_DISKSPACE,
|
||||
"Not enough free space in the selected partition.\n"
|
||||
" * Press any key to continue.",
|
||||
NULL
|
||||
},
|
||||
{
|
||||
//ERROR_UPDATE_GEOID,
|
||||
"<EFBFBD>¥ ¢¤ «®áì ¢áâ ®¢¨â¨ geo id.\n"
|
||||
"ENTER = <20>¥à¥§ ¢ â ¦¨â¨ ª®¬¯'îâ¥à"
|
||||
},
|
||||
{
|
||||
NULL,
|
||||
NULL
|
||||
|
|
|
@ -111,7 +111,7 @@ DetectVMware(int *Version)
|
|||
|
||||
/* try to open the file */
|
||||
static BOOL
|
||||
FileExists(WCHAR *Path, WCHAR *File)
|
||||
DoesFileExist(WCHAR *Path, WCHAR *File)
|
||||
{
|
||||
WCHAR FileName[MAX_PATH + 1];
|
||||
HANDLE FileHandle;
|
||||
|
@ -195,9 +195,9 @@ IsVMwareCDInDrive(WCHAR *Drv)
|
|||
continue;
|
||||
}
|
||||
|
||||
if(FileExists(SrcPath, vmx_fb) &&
|
||||
(FileExists(SrcPath, vmx_mode) || FileExists(SrcPath, vmx_mode_v6)) &&
|
||||
FileExists(SrcPath, vmx_svga))
|
||||
if(DoesFileExist(SrcPath, vmx_fb) &&
|
||||
(DoesFileExist(SrcPath, vmx_mode) || DoesFileExist(SrcPath, vmx_mode_v6)) &&
|
||||
DoesFileExist(SrcPath, vmx_svga))
|
||||
{
|
||||
*Drv = Current;
|
||||
return TRUE;
|
||||
|
@ -1070,9 +1070,9 @@ wWinMain(HINSTANCE hInstance,
|
|||
|
||||
SetCurrentDirectory(DestinationPath);
|
||||
|
||||
DriverFilesFound = FileExists(DestinationPath, vmx_fb) &&
|
||||
FileExists(DestinationPath, vmx_mode) &&
|
||||
FileExists(DestinationDriversPath, vmx_svga);
|
||||
DriverFilesFound = DoesFileExist(DestinationPath, vmx_fb) &&
|
||||
DoesFileExist(DestinationPath, vmx_mode) &&
|
||||
DoesFileExist(DestinationDriversPath, vmx_svga);
|
||||
|
||||
StartVMwConfigWizard = DriverFilesFound && IsVmwSVGAEnabled();
|
||||
|
||||
|
|
|
@ -156,7 +156,7 @@ BOOL bCanExit = TRUE; /* indicates if this shell is exitable */
|
|||
BOOL bCtrlBreak = FALSE; /* Ctrl-Break or Ctrl-C hit */
|
||||
BOOL bIgnoreEcho = FALSE; /* Set this to TRUE to prevent a newline, when executing a command */
|
||||
INT nErrorLevel = 0; /* Errorlevel of last launched external program */
|
||||
BOOL bChildProcessRunning = FALSE;
|
||||
CRITICAL_SECTION ChildProcessRunningLock;
|
||||
BOOL bUnicodeOutput = FALSE;
|
||||
BOOL bDisableBatchEcho = FALSE;
|
||||
BOOL bDelayedExpansion = FALSE;
|
||||
|
@ -436,14 +436,12 @@ Execute (LPTSTR Full, LPTSTR First, LPTSTR Rest, PARSED_COMMAND *Cmd)
|
|||
{
|
||||
if (IsConsoleProcess(prci.hProcess))
|
||||
{
|
||||
/* FIXME: Protect this with critical section */
|
||||
bChildProcessRunning = TRUE;
|
||||
EnterCriticalSection(&ChildProcessRunningLock);
|
||||
dwChildProcessId = prci.dwProcessId;
|
||||
|
||||
WaitForSingleObject (prci.hProcess, INFINITE);
|
||||
|
||||
/* FIXME: Protect this with critical section */
|
||||
bChildProcessRunning = FALSE;
|
||||
LeaveCriticalSection(&ChildProcessRunningLock);
|
||||
|
||||
GetExitCodeProcess (prci.hProcess, &dwExitCode);
|
||||
nErrorLevel = (INT)dwExitCode;
|
||||
|
@ -665,9 +663,9 @@ ExecutePipeline(PARSED_COMMAND *Cmd)
|
|||
SetStdHandle(STD_INPUT_HANDLE, hOldConIn);
|
||||
|
||||
/* Wait for all processes to complete */
|
||||
bChildProcessRunning = TRUE;
|
||||
EnterCriticalSection(&ChildProcessRunningLock);
|
||||
WaitForMultipleObjects(nProcesses, hProcess, TRUE, INFINITE);
|
||||
bChildProcessRunning = FALSE;
|
||||
LeaveCriticalSection(&ChildProcessRunningLock);
|
||||
|
||||
/* Use the exit code of the last process in the pipeline */
|
||||
GetExitCodeProcess(hProcess[nProcesses - 1], &dwExitCode);
|
||||
|
@ -1439,13 +1437,16 @@ BOOL WINAPI BreakHandler (DWORD dwCtrlType)
|
|||
}
|
||||
}
|
||||
|
||||
if (bChildProcessRunning == TRUE)
|
||||
if (!TryEnterCriticalSection(&ChildProcessRunningLock))
|
||||
{
|
||||
SelfGenerated = TRUE;
|
||||
GenerateConsoleCtrlEvent (dwCtrlType, 0);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
LeaveCriticalSection(&ChildProcessRunningLock);
|
||||
}
|
||||
|
||||
rec.EventType = KEY_EVENT;
|
||||
rec.Event.KeyEvent.bKeyDown = TRUE;
|
||||
|
@ -1797,6 +1798,7 @@ static VOID Cleanup()
|
|||
RemoveBreakHandler ();
|
||||
SetConsoleMode( GetStdHandle( STD_INPUT_HANDLE ),
|
||||
ENABLE_LINE_INPUT | ENABLE_PROCESSED_INPUT | ENABLE_ECHO_INPUT );
|
||||
DeleteCriticalSection(&ChildProcessRunningLock);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1808,6 +1810,7 @@ int cmd_main (int argc, const TCHAR *argv[])
|
|||
TCHAR startPath[MAX_PATH];
|
||||
CONSOLE_SCREEN_BUFFER_INFO Info;
|
||||
|
||||
InitializeCriticalSection(&ChildProcessRunningLock);
|
||||
lpOriginalEnvironment = DuplicateEnvironment();
|
||||
|
||||
GetCurrentDirectory(MAX_PATH,startPath);
|
||||
|
|
|
@ -604,28 +604,30 @@ INT cmd_copy (LPTSTR param)
|
|||
bTouch = TRUE;
|
||||
bDone = TRUE;
|
||||
}
|
||||
|
||||
if(_tcslen(tmpName) == 2)
|
||||
{
|
||||
if(tmpName[1] == _T(':'))
|
||||
{
|
||||
GetRootPath(tmpName,szSrcPath,MAX_PATH);
|
||||
}
|
||||
}
|
||||
else
|
||||
/* Get the full path to first file in the string of file names */
|
||||
GetFullPathName (tmpName, MAX_PATH, szSrcPath, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
bDone = TRUE;
|
||||
if(_tcslen(arg[nSrc]) == 2 && arg[nSrc][1] == _T(':'))
|
||||
_tcscpy(tmpName, arg[nSrc]);
|
||||
}
|
||||
|
||||
/* Get full path or root names */
|
||||
if(_tcslen(tmpName) == 2 && tmpName[1] == _T(':'))
|
||||
{
|
||||
GetRootPath(arg[nSrc],szSrcPath,MAX_PATH);
|
||||
GetRootPath(tmpName,szSrcPath,MAX_PATH);
|
||||
}
|
||||
else
|
||||
/* Get the full path of the source file */
|
||||
GetFullPathName (arg[nSrc], MAX_PATH, szSrcPath, NULL);
|
||||
{
|
||||
/* Get the full path to first file in the string of file names */
|
||||
GetFullPathName (tmpName, MAX_PATH, szSrcPath, NULL);
|
||||
|
||||
/* We got a device path of form \\.\x */
|
||||
/* FindFirstFile cannot handle this, therefore use the short path */
|
||||
if (szSrcPath[0] == _T('\\') && szSrcPath[1] == _T('\\') &&
|
||||
szSrcPath[2] == _T('.') && szSrcPath[3] == _T('\\'))
|
||||
{
|
||||
_tcscpy(szSrcPath, tmpName);
|
||||
}
|
||||
}
|
||||
|
||||
/* From this point on, we can assume that the shortest path is 3 letters long
|
||||
|
|
|
@ -590,6 +590,16 @@ VOID CompleteFilename (LPTSTR strIN, BOOL bNext, LPTSTR strOut, UINT cusor)
|
|||
|
||||
/* Start the search for all the files */
|
||||
GetFullPathName(szBaseWord, MAX_PATH, szSearchPath, NULL);
|
||||
|
||||
/* Got a device path? Fallback to the the current dir plus the short path */
|
||||
if (szSearchPath[0] == _T('\\') && szSearchPath[1] == _T('\\') &&
|
||||
szSearchPath[2] == _T('.') && szSearchPath[3] == _T('\\'))
|
||||
{
|
||||
GetCurrentDirectory(MAX_PATH, szSearchPath);
|
||||
_tcscat(szSearchPath, _T("\\"));
|
||||
_tcscat(szSearchPath, szBaseWord);
|
||||
}
|
||||
|
||||
if(StartLength > 0)
|
||||
{
|
||||
_tcscat(szSearchPath,_T("*"));
|
||||
|
|
|
@ -284,7 +284,9 @@ _tWinMain(IN HINSTANCE hInstance,
|
|||
TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer"),
|
||||
&hkExplorer) != ERROR_SUCCESS)
|
||||
{
|
||||
/* FIXME - display error */
|
||||
TCHAR Message[256];
|
||||
LoadString(hInstance, IDS_STARTUP_ERROR, Message, 256);
|
||||
MessageBox(NULL, Message, NULL, MB_ICONERROR);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -121,6 +121,7 @@ BEGIN
|
|||
IDS_PROPERTIES "&Свойства"
|
||||
IDS_OPEN_ALL_USERS "&Отваряне на всички потребители"
|
||||
IDS_EXPLORE_ALL_USERS "&Разлистване на всички потребители"
|
||||
IDS_STARTUP_ERROR "The system cannot start explorer because the registry is corrupted or unavailable."
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
|
|
|
@ -126,6 +126,7 @@ BEGIN
|
|||
IDS_PROPERTIES "Vl&astnosti"
|
||||
IDS_OPEN_ALL_USERS "Ote&vøít složku All Users"
|
||||
IDS_EXPLORE_ALL_USERS "Pro&cházet složku All Users"
|
||||
IDS_STARTUP_ERROR "The system cannot start explorer because the registry is corrupted or unavailable."
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
|
|
|
@ -120,6 +120,7 @@ BEGIN
|
|||
IDS_PROPERTIES "E&igenschaften"
|
||||
IDS_OPEN_ALL_USERS "Öffnen (&Alle Benutzer)"
|
||||
IDS_EXPLORE_ALL_USERS "Explorer (A&lle Benutzer)"
|
||||
IDS_STARTUP_ERROR "Das System kann den Explorer nicht starten, weil die Registrierung nicht verfügbar bzw. fehlerhaft ist."
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
|
|
|
@ -120,6 +120,7 @@ BEGIN
|
|||
IDS_PROPERTIES "P&roperties"
|
||||
IDS_OPEN_ALL_USERS "O&pen All Users"
|
||||
IDS_EXPLORE_ALL_USERS "E&xplore All Users"
|
||||
IDS_STARTUP_ERROR "The system cannot start explorer because the registry is corrupted or unavailable."
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
|
|
|
@ -129,6 +129,7 @@ BEGIN
|
|||
IDS_PROPERTIES "P&ropiedades"
|
||||
IDS_OPEN_ALL_USERS "A&brir todos los usuarios"
|
||||
IDS_EXPLORE_ALL_USERS "E&xplorar todos los usuarios"
|
||||
IDS_STARTUP_ERROR "The system cannot start explorer because the registry is corrupted or unavailable."
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
|
|
|
@ -120,6 +120,7 @@ BEGIN
|
|||
IDS_PROPERTIES "P&ropriétés"
|
||||
IDS_OPEN_ALL_USERS "Ouvrir tous les utilisateurs"
|
||||
IDS_EXPLORE_ALL_USERS "E&xplorer tous les utilisateurs"
|
||||
IDS_STARTUP_ERROR "The system cannot start explorer because the registry is corrupted or unavailable."
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
|
|
|
@ -78,11 +78,11 @@ BEGIN
|
|||
LTEXT "This menu style gives you easy access to your folders, favorite programs, and search.", IDC_STATIC, 20,17,150,24, WS_DISABLED
|
||||
PUSHBUTTON "&Personalizzare...", IDC_TASKBARPROP_STARTMENUCUST, 192,4,53,14, WS_DISABLED
|
||||
AUTORADIOBUTTON "Menù avvio &classico", IDC_TASKBARPROP_STARTMENUCLASSIC, 7,47,105,10, WS_DISABLED
|
||||
LTEXT "This menu style gives you the classic look and functionality",-1,20,57,150,24, WS_DISABLED
|
||||
PUSHBUTTON "&Customize...", IDC_TASKBARPROP_STARTMENUCLASSICCUST, 192,44,53,14, WS_DISABLED
|
||||
LTEXT "Questo stile di menù ha funzionalità e aspetto classici",-1,20,57,150,24, WS_DISABLED
|
||||
PUSHBUTTON "&Personalizza...", IDC_TASKBARPROP_STARTMENUCLASSICCUST, 192,44,53,14, WS_DISABLED
|
||||
GROUPBOX "Privacy",IDC_STATIC, 7,100,238,42
|
||||
AUTOCHECKBOX "Store and display a list of recently opened &files", IDC_TASKBARPROP_RECENTFILES, 14,114,224,10, WS_DISABLED
|
||||
AUTOCHECKBOX "Store and display a list of recently opened &programs",IDC_TASKBARPROP_RECENTFOLDERS, 14,128,224,10, WS_DISABLED
|
||||
AUTOCHECKBOX "Memorizza e mostra un elenco di &file aperti di recente", IDC_TASKBARPROP_RECENTFILES, 14,114,224,10, WS_DISABLED
|
||||
AUTOCHECKBOX "Memorizza e mostra un elenco di &programmi aperti di recente",IDC_TASKBARPROP_RECENTFOLDERS, 14,128,224,10, WS_DISABLED
|
||||
END
|
||||
|
||||
IDD_TASKBARPROP_NOTIFICATION DIALOGEX 0, 0, 252, 218
|
||||
|
@ -120,6 +120,7 @@ BEGIN
|
|||
IDS_PROPERTIES "&Proprietà"
|
||||
IDS_OPEN_ALL_USERS "&Apri tutti gli utenti"
|
||||
IDS_EXPLORE_ALL_USERS "&Esplora tutti gli utenti"
|
||||
IDS_STARTUP_ERROR "Impossibile avviare explorer perché il registro è danneggiato o non disponibile."
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
|
|
|
@ -120,6 +120,7 @@ BEGIN
|
|||
IDS_PROPERTIES "プロパティ(&R)"
|
||||
IDS_OPEN_ALL_USERS "開く - All Users(&P)"
|
||||
IDS_EXPLORE_ALL_USERS "エクスプローラ - All Users(&E)"
|
||||
IDS_STARTUP_ERROR "The system cannot start explorer because the registry is corrupted or unavailable."
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
|
|
|
@ -125,6 +125,7 @@ BEGIN
|
|||
IDS_PROPERTIES "속성(&R)"
|
||||
IDS_OPEN_ALL_USERS "열기 - All Users(&P)"
|
||||
IDS_EXPLORE_ALL_USERS "탐색 - All Users(&X)"
|
||||
IDS_STARTUP_ERROR "The system cannot start explorer because the registry is corrupted or unavailable."
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
|
|
|
@ -124,6 +124,7 @@ BEGIN
|
|||
IDS_PROPERTIES "&Parametrai"
|
||||
IDS_OPEN_ALL_USERS "&Atverti visus vartotojus"
|
||||
IDS_EXPLORE_ALL_USERS "&Narðyti visus vartotojus"
|
||||
IDS_STARTUP_ERROR "The system cannot start explorer because the registry is corrupted or unavailable."
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
|
|
|
@ -120,6 +120,7 @@ BEGIN
|
|||
IDS_PROPERTIES "&Eigenschappen"
|
||||
IDS_OPEN_ALL_USERS "&Alle Gebruikers weergeven"
|
||||
IDS_EXPLORE_ALL_USERS "Alle Gebruikers V&erkennen"
|
||||
IDS_STARTUP_ERROR "The system cannot start explorer because the registry is corrupted or unavailable."
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
|
|
|
@ -120,6 +120,7 @@ BEGIN
|
|||
IDS_PROPERTIES "E&genskaper"
|
||||
IDS_OPEN_ALL_USERS "Å&pne alle brukere"
|
||||
IDS_EXPLORE_ALL_USERS "U&tforsk alle brukere"
|
||||
IDS_STARTUP_ERROR "The system cannot start explorer because the registry is corrupted or unavailable."
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
|
|
|
@ -123,6 +123,7 @@ BEGIN
|
|||
IDS_PROPERTIES "W³aœ&ciwoœci"
|
||||
IDS_OPEN_ALL_USERS "&Otwórz - wszyscy u¿ytkownicy"
|
||||
IDS_EXPLORE_ALL_USERS "&Eksploruj - wszyscy u¿ytkownicy"
|
||||
IDS_STARTUP_ERROR "System nie mo¿e uruchomiæ eksploratora poniewa¿ rejestr jest niedostêpny lub uszkodzony."
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
|
|
|
@ -120,6 +120,7 @@ BEGIN
|
|||
IDS_PROPERTIES "P&roprietãþi"
|
||||
IDS_OPEN_ALL_USERS "Deschidere& Toþi Utilizatorii"
|
||||
IDS_EXPLORE_ALL_USERS "E&xplorare Toþi Utilizatorii"
|
||||
IDS_STARTUP_ERROR "The system cannot start explorer because the registry is corrupted or unavailable."
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
|
|
|
@ -122,6 +122,7 @@ BEGIN
|
|||
IDS_PROPERTIES "&Свойства"
|
||||
IDS_OPEN_ALL_USERS "&Все пользователи"
|
||||
IDS_EXPLORE_ALL_USERS "&Обзор Всех пользователей"
|
||||
IDS_STARTUP_ERROR "The system cannot start explorer because the registry is corrupted or unavailable."
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
|
|
|
@ -120,6 +120,7 @@ BEGIN
|
|||
IDS_PROPERTIES "Vl&astnosti"
|
||||
IDS_OPEN_ALL_USERS "&Otvori<72> profil All Users"
|
||||
IDS_EXPLORE_ALL_USERS "&Preskúma<6D> profil All Users"
|
||||
IDS_STARTUP_ERROR "The system cannot start explorer because the registry is corrupted or unavailable."
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
|
|
|
@ -128,6 +128,7 @@ BEGIN
|
|||
IDS_PROPERTIES "Â&ëàñòèâîñò³"
|
||||
IDS_OPEN_ALL_USERS "&Âñ³ êîðèñòóâà÷³"
|
||||
IDS_EXPLORE_ALL_USERS "&Îãëÿä âñ³õ êîðèñòóâà÷³â"
|
||||
IDS_STARTUP_ERROR "The system cannot start explorer because the registry is corrupted or unavailable."
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#define IDS_PROPERTIES 102
|
||||
#define IDS_OPEN_ALL_USERS 103
|
||||
#define IDS_EXPLORE_ALL_USERS 104
|
||||
#define IDS_STARTUP_ERROR 105
|
||||
|
||||
#define IDC_STARTBTN 304
|
||||
|
||||
|
|
|
@ -185,7 +185,7 @@ FormatExCallback (
|
|||
if( *status == FALSE ) {
|
||||
|
||||
LoadString( GetModuleHandle(NULL), STRING_FORMAT_FAIL, (LPTSTR) szMsg,RC_STRING_MAX_SIZE);
|
||||
_tprintf(szMsg);
|
||||
_tprintf("%s", szMsg);
|
||||
Error = TRUE;
|
||||
}
|
||||
break;
|
||||
|
@ -204,7 +204,7 @@ FormatExCallback (
|
|||
case STRUCTUREPROGRESS:
|
||||
case CLUSTERSIZETOOSMALL:
|
||||
LoadString( GetModuleHandle(NULL), STRING_NO_SUPPORT, (LPTSTR) szMsg,RC_STRING_MAX_SIZE);
|
||||
_tprintf(szMsg);
|
||||
_tprintf("%s", szMsg);
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
|
@ -320,7 +320,7 @@ _tmain(int argc, TCHAR *argv[])
|
|||
//
|
||||
if( !LoadFMIFSEntryPoints()) {
|
||||
LoadString( GetModuleHandle(NULL), STRING_FMIFS_FAIL, (LPTSTR) szMsg,RC_STRING_MAX_SIZE);
|
||||
_tprintf(szMsg);
|
||||
_tprintf("%s", szMsg);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -422,7 +422,7 @@ _tmain(int argc, TCHAR *argv[])
|
|||
break;
|
||||
}
|
||||
LoadString( GetModuleHandle(NULL), STRING_ERROR_LABEL, (LPTSTR) szMsg,RC_STRING_MAX_SIZE);
|
||||
_tprintf(szMsg);
|
||||
_tprintf("%s", szMsg);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -471,7 +471,7 @@ _tmain(int argc, TCHAR *argv[])
|
|||
((float)(LONGLONG)totalNumberOfBytes.QuadPart)/(float)(1024.0*1024.0));
|
||||
}
|
||||
LoadString( GetModuleHandle(NULL), STRING_CREATE_FSYS, (LPTSTR) szMsg,RC_STRING_MAX_SIZE);
|
||||
_tprintf(szMsg);
|
||||
_tprintf("%s", szMsg);
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -489,7 +489,7 @@ _tmain(int argc, TCHAR *argv[])
|
|||
#endif
|
||||
if( Error ) return -1;
|
||||
LoadString( GetModuleHandle(NULL), STRING_FMT_COMPLETE, (LPTSTR) szMsg,RC_STRING_MAX_SIZE);
|
||||
_tprintf(szMsg);
|
||||
_tprintf("%s", szMsg);
|
||||
|
||||
//
|
||||
// Enable compression if desired
|
||||
|
@ -504,7 +504,7 @@ _tmain(int argc, TCHAR *argv[])
|
|||
#endif
|
||||
|
||||
LoadString( GetModuleHandle(NULL), STRING_VOL_COMPRESS, (LPTSTR) szMsg,RC_STRING_MAX_SIZE);
|
||||
_tprintf(szMsg);
|
||||
_tprintf("%s", szMsg);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -514,7 +514,7 @@ _tmain(int argc, TCHAR *argv[])
|
|||
if( !GotALabel ) {
|
||||
|
||||
LoadString( GetModuleHandle(NULL), STRING_ENTER_LABEL, (LPTSTR) szMsg,RC_STRING_MAX_SIZE);
|
||||
_tprintf(szMsg);
|
||||
_tprintf("%s", szMsg);
|
||||
_fgetts( input, sizeof(LabelString)/2, stdin );
|
||||
|
||||
input[ _tcslen(input)-1] = 0;
|
||||
|
|
|
@ -225,6 +225,256 @@ Cleanup:
|
|||
}
|
||||
|
||||
|
||||
static NTSTATUS
|
||||
SmpGetFreeDiskSpace(IN PWSTR PageFileName,
|
||||
OUT PLARGE_INTEGER FreeDiskSpaceInMB)
|
||||
{
|
||||
FILE_FS_SIZE_INFORMATION FileFsSize;
|
||||
IO_STATUS_BLOCK IoStatusBlock;
|
||||
HANDLE hFile;
|
||||
UNICODE_STRING NtPathU;
|
||||
LARGE_INTEGER FreeBytes;
|
||||
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||
WCHAR RootPath[5];
|
||||
NTSTATUS Status;
|
||||
|
||||
/*
|
||||
* copy the drive letter, the colon and the slash,
|
||||
* tack a null on the end
|
||||
*/
|
||||
RootPath[0] = PageFileName[0];
|
||||
RootPath[1] = L':';
|
||||
RootPath[2] = L'\\';
|
||||
RootPath[3] = L'\0';
|
||||
|
||||
DPRINT("Root drive X:\\...\"%S\"\n",RootPath);
|
||||
|
||||
if (!RtlDosPathNameToNtPathName_U(RootPath,
|
||||
&NtPathU,
|
||||
NULL,
|
||||
NULL))
|
||||
{
|
||||
DPRINT1("Invalid path to root of drive\n");
|
||||
return STATUS_OBJECT_PATH_INVALID;
|
||||
}
|
||||
|
||||
InitializeObjectAttributes(&ObjectAttributes,
|
||||
&NtPathU,
|
||||
OBJ_CASE_INSENSITIVE,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
/* Get a handle to the root to find the free space on the drive */
|
||||
Status = NtCreateFile(&hFile,
|
||||
0,
|
||||
&ObjectAttributes,
|
||||
&IoStatusBlock,
|
||||
NULL,
|
||||
0,
|
||||
FILE_SHARE_READ | FILE_SHARE_WRITE,
|
||||
FILE_OPEN,
|
||||
0,
|
||||
NULL,
|
||||
0);
|
||||
|
||||
RtlFreeHeap(RtlGetProcessHeap(),
|
||||
0,
|
||||
NtPathU.Buffer);
|
||||
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT1("Could not open a handle to the volume.\n");
|
||||
return Status;
|
||||
}
|
||||
|
||||
Status = NtQueryVolumeInformationFile(hFile,
|
||||
&IoStatusBlock,
|
||||
&FileFsSize,
|
||||
sizeof(FILE_FS_SIZE_INFORMATION),
|
||||
FileFsSizeInformation);
|
||||
|
||||
NtClose(hFile);
|
||||
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT1("Querying the volume free space failed!\n");
|
||||
return Status;
|
||||
}
|
||||
|
||||
FreeBytes.QuadPart = FileFsSize.BytesPerSector *
|
||||
FileFsSize.SectorsPerAllocationUnit *
|
||||
FileFsSize.AvailableAllocationUnits.QuadPart;
|
||||
|
||||
FreeDiskSpaceInMB->QuadPart = FreeBytes.QuadPart >> 20;
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
static NTSTATUS
|
||||
SmpSetDefaultPageFileData(IN PWSTR PageFileName,
|
||||
IN PLARGE_INTEGER InitialSizeInMB,
|
||||
IN PLARGE_INTEGER MaximumSizeInMB)
|
||||
{
|
||||
WCHAR ValueString[MAX_PATH * 2];
|
||||
ULONG ValueLength;
|
||||
|
||||
/* Format the value string */
|
||||
swprintf(ValueString,
|
||||
L"%s %I64u %I64u",
|
||||
PageFileName,
|
||||
InitialSizeInMB->QuadPart,
|
||||
MaximumSizeInMB->QuadPart);
|
||||
|
||||
/*
|
||||
* Append another zero character because it is a multi string value
|
||||
* (REG_MULTI_SZ) and calculate the total string length.
|
||||
*/
|
||||
ValueLength = wcslen(ValueString) + 1;
|
||||
ValueString[ValueLength] = 0;
|
||||
ValueLength++;
|
||||
|
||||
/* Write the page file data */
|
||||
return RtlWriteRegistryValue(RTL_REGISTRY_CONTROL,
|
||||
L"\\Session Manager\\Memory Management",
|
||||
L"PagingFiles",
|
||||
REG_MULTI_SZ,
|
||||
ValueString,
|
||||
ValueLength * sizeof(WCHAR));
|
||||
}
|
||||
|
||||
|
||||
static NTSTATUS
|
||||
SmpCreatePageFile(IN PWSTR PageFileName,
|
||||
IN PLARGE_INTEGER InitialSizeInMB,
|
||||
IN PLARGE_INTEGER MaximumSizeInMB)
|
||||
{
|
||||
LARGE_INTEGER InitialSize;
|
||||
LARGE_INTEGER MaximumSize;
|
||||
UNICODE_STRING FileName;
|
||||
NTSTATUS Status;
|
||||
|
||||
/* Get the NT path name of the page file */
|
||||
if (!RtlDosPathNameToNtPathName_U(PageFileName,
|
||||
&FileName,
|
||||
NULL,
|
||||
NULL))
|
||||
{
|
||||
return STATUS_OBJECT_PATH_INVALID;
|
||||
}
|
||||
|
||||
/* Convert sizes in megabytes to sizes in bytes */
|
||||
InitialSize.QuadPart = InitialSizeInMB->QuadPart << 20;
|
||||
MaximumSize.QuadPart = MaximumSizeInMB->QuadPart << 20;
|
||||
|
||||
/* Create the pageing file */
|
||||
Status = NtCreatePagingFile(&FileName,
|
||||
&InitialSize,
|
||||
&MaximumSize,
|
||||
0);
|
||||
if (! NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT("Creation of paging file %wZ with size %I64d MB failed (status 0x%x)\n",
|
||||
&FileName, InitialSizeInMB->QuadPart, Status);
|
||||
}
|
||||
|
||||
/* Release the file name */
|
||||
RtlFreeHeap(RtlGetProcessHeap(),
|
||||
0,
|
||||
FileName.Buffer);
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
||||
static NTSTATUS
|
||||
SmpCreateDefaultPagingFile(VOID)
|
||||
{
|
||||
SYSTEM_BASIC_INFORMATION SysBasicInfo;
|
||||
LARGE_INTEGER MemorySizeInMB;
|
||||
LARGE_INTEGER FreeDiskSpaceInMB;
|
||||
LARGE_INTEGER InitialSizeInMB;
|
||||
LARGE_INTEGER MaximumSizeInMB;
|
||||
NTSTATUS Status = STATUS_SUCCESS;
|
||||
WCHAR PageFileName[MAX_PATH];
|
||||
|
||||
DPRINT("Creating a default paging file\n");
|
||||
|
||||
Status = NtQuerySystemInformation(SystemBasicInformation,
|
||||
&SysBasicInfo,
|
||||
sizeof(SysBasicInfo),
|
||||
NULL);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT1("Could not query for physical memory size.\n");
|
||||
return Status;
|
||||
}
|
||||
|
||||
DPRINT("PageSize: %d, PhysicalPages: %d, TotalMem: %d\n",
|
||||
SysBasicInfo.PageSize,
|
||||
SysBasicInfo.NumberOfPhysicalPages,
|
||||
(SysBasicInfo.NumberOfPhysicalPages * SysBasicInfo.PageSize) / 1024);
|
||||
|
||||
MemorySizeInMB.QuadPart = (SysBasicInfo.NumberOfPhysicalPages * SysBasicInfo.PageSize) >> 20;
|
||||
|
||||
DPRINT("MemorySize %I64u MB\n",
|
||||
MemorySizeInMB.QuadPart);
|
||||
|
||||
/* Build the default page file name */
|
||||
PageFileName[0] = SharedUserData->NtSystemRoot[0];
|
||||
PageFileName[1] = 0;
|
||||
wcscat(PageFileName, L":\\pagefile.sys");
|
||||
|
||||
Status = SmpGetFreeDiskSpace(PageFileName,
|
||||
&FreeDiskSpaceInMB);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
return Status;
|
||||
}
|
||||
|
||||
DPRINT("FreeDiskSpace %I64u MB\n",
|
||||
FreeDiskSpaceInMB.QuadPart);
|
||||
|
||||
InitialSizeInMB.QuadPart = MemorySizeInMB.QuadPart + (MemorySizeInMB.QuadPart / 2);
|
||||
MaximumSizeInMB.QuadPart = InitialSizeInMB.QuadPart * 2;
|
||||
|
||||
if (InitialSizeInMB.QuadPart > (FreeDiskSpaceInMB.QuadPart / 4))
|
||||
{
|
||||
DPRINT("Inital Size took more then 25%% of free disk space\n");
|
||||
|
||||
/*
|
||||
* Set by percentage of free space
|
||||
* intial is 20%, and max is 25%
|
||||
*/
|
||||
InitialSizeInMB.QuadPart = FreeDiskSpaceInMB.QuadPart / 5;
|
||||
MaximumSizeInMB.QuadPart = FreeDiskSpaceInMB.QuadPart / 4;
|
||||
|
||||
/* The page file is more then a gig, size it down */
|
||||
if (InitialSizeInMB.QuadPart > 1024)
|
||||
{
|
||||
InitialSizeInMB.QuadPart = 1024; /* 1GB */
|
||||
MaximumSizeInMB.QuadPart = 1536; /* 1.5GB */
|
||||
}
|
||||
}
|
||||
|
||||
DPRINT("InitialSize %I64u MB MaximumSize %I64u MB\n",
|
||||
InitialSizeInMB.QuadPart,
|
||||
MaximumSizeInMB.QuadPart);
|
||||
|
||||
Status = SmpSetDefaultPageFileData(PageFileName,
|
||||
&InitialSizeInMB,
|
||||
&MaximumSizeInMB);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
return Status;
|
||||
}
|
||||
|
||||
return SmpCreatePageFile(PageFileName,
|
||||
&InitialSizeInMB,
|
||||
&MaximumSizeInMB);
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS
|
||||
SmCreatePagingFiles(VOID)
|
||||
{
|
||||
|
@ -232,9 +482,8 @@ SmCreatePagingFiles(VOID)
|
|||
NTSTATUS Status;
|
||||
|
||||
DPRINT("creating system paging files\n");
|
||||
/*
|
||||
* Disable paging file on MiniNT/Live CD.
|
||||
*/
|
||||
|
||||
/* Disable paging file on MiniNT/Live CD. */
|
||||
if (RtlCheckRegistryKey(RTL_REGISTRY_CONTROL, L"MiniNT") == STATUS_SUCCESS)
|
||||
{
|
||||
return STATUS_SUCCESS;
|
||||
|
@ -245,14 +494,19 @@ SmCreatePagingFiles(VOID)
|
|||
|
||||
QueryTable[0].Name = L"PagingFiles";
|
||||
QueryTable[0].QueryRoutine = SmpPagingFilesQueryRoutine;
|
||||
QueryTable[0].Flags = RTL_QUERY_REGISTRY_REQUIRED;
|
||||
|
||||
Status = RtlQueryRegistryValues(RTL_REGISTRY_CONTROL,
|
||||
L"\\Session Manager\\Memory Management",
|
||||
QueryTable,
|
||||
NULL,
|
||||
NULL);
|
||||
if (Status == STATUS_OBJECT_NAME_NOT_FOUND)
|
||||
{
|
||||
Status = SmpCreateDefaultPagingFile();
|
||||
}
|
||||
|
||||
return(Status);
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue