Sync to trunk r39350.
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Tue, 3 Feb 2009 22:14:40 +0000 (22:14 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Tue, 3 Feb 2009 22:14:40 +0000 (22:14 +0000)
Usermode is broken. Some idl problem.

svn path=/branches/ros-amd64-bringup/; revision=39352

120 files changed:
1  2  3 
reactos/ReactOS-i386.rbuild
reactos/base/applications/calc/convert.c
reactos/base/applications/calc/lang/bg-BG.rc
reactos/base/applications/calc/lang/cs-CZ.rc
reactos/base/applications/calc/lang/de-DE.rc
reactos/base/applications/calc/lang/en-US.rc
reactos/base/applications/calc/lang/es-ES.rc
reactos/base/applications/calc/lang/fr-FR.rc
reactos/base/applications/calc/lang/it-IT.rc
reactos/base/applications/calc/lang/ko-KR.rc
reactos/base/applications/calc/lang/nl-NL.rc
reactos/base/applications/calc/lang/no-NO.rc
reactos/base/applications/calc/lang/pl-PL.rc
reactos/base/applications/calc/lang/ru-RU.rc
reactos/base/applications/calc/lang/sk-SK.rc
reactos/base/applications/calc/lang/th-TH.rc
reactos/base/applications/calc/lang/uk-UA.rc
reactos/base/applications/calc/resource.h
reactos/base/applications/calc/resource.rc
reactos/base/services/dhcp/dhcp.rbuild
reactos/base/setup/usetup/usetup.h
reactos/base/shell/shell.rbuild
reactos/boot/bootdata/txtsetup.sif
reactos/boot/freeldr/freeldr/include/freeldr.h
reactos/boot/freeldr/freeldr/reactos/imageldr.c
reactos/boot/freeldr/freeldr/reactos/reactos.c
reactos/boot/freeldr/freeldr/reactos/setupldr.c
reactos/dll/3rdparty/dxtn/dxtn.rbuild
reactos/dll/cpl/appwiz-new/appwiz.rbuild
reactos/dll/cpl/intl/intl.rbuild
reactos/dll/cpl/sysdm/hardware.c
reactos/dll/directx/ddraw/ddraw.rbuild
reactos/dll/directx/dinput/dinput.rbuild
reactos/dll/directx/ksuser/ksuser.c
reactos/dll/directx/ksuser/ksuser.h
reactos/dll/nls/idndl/idndl.rbuild
reactos/dll/ntdll/def/ntdll_amd64.def
reactos/dll/ntdll/ldr/utils.c
reactos/dll/win32/advapi32/reg/reg.c
reactos/dll/win32/advapi32/sec/misc.c
reactos/dll/win32/advapi32/service/sctrl.c
reactos/dll/win32/comctl32/comctl32.rbuild
reactos/dll/win32/comctl32/commctrl.c
reactos/dll/win32/imagehlp/imagehlp.rbuild
reactos/dll/win32/itss/itss.rbuild
reactos/dll/win32/kernel32/debug/debugger.c
reactos/dll/win32/kernel32/kernel32.rbuild
reactos/dll/win32/kernel32/mem/virtual.c
reactos/dll/win32/kernel32/misc/stubs.c
reactos/dll/win32/lsasrv/lsasrv.rbuild
reactos/dll/win32/msvcrt/msvcrt-amd64.def
reactos/dll/win32/ole32/ole32.spec
reactos/dll/win32/opengl32/gl.c
reactos/dll/win32/rpcrt4/rpc_transport.c
reactos/dll/win32/user32/include/user32.h
reactos/dll/win32/user32/user32.rbuild
reactos/dll/win32/user32/windows/draw.c
reactos/dll/win32/winmm/driver.c
reactos/dll/win32/winmm/mci.c
reactos/dll/win32/winmm/playsound.c
reactos/dll/win32/winmm/winmm.c
reactos/drivers/filesystems/npfs/fsctrl.c
reactos/drivers/network/afd/afd/listen.c
reactos/drivers/network/afd/afd/main.c
reactos/drivers/network/tcpip/tcpip/dispatch.c
reactos/drivers/serial/serenum/detect.c
reactos/hal/halx86/include/hal.h
reactos/include/crt/setjmp.h
reactos/include/ddk/ntifs.h
reactos/include/ddk/winddk.h
reactos/include/ndk/amd64/ketypes.h
reactos/include/ndk/extypes.h
reactos/include/ndk/rtlfuncs.h
reactos/include/psdk/basetsd.h
reactos/include/psdk/commctrl.h
reactos/include/psdk/richedit.h
reactos/include/psdk/shellapi.h
reactos/include/psdk/vfw.h
reactos/include/psdk/winbase.h
reactos/include/psdk/wincrypt.h
reactos/include/psdk/windef.h
reactos/include/psdk/winnt.h
reactos/include/psdk/winsock.h
reactos/include/psdk/winsock2.h
reactos/include/psdk/winuser.h
reactos/include/reactos/libs/pseh/pseh2.h
reactos/include/reactos/win32k/ntuser.h
reactos/include/reactos/windbgkd.h
reactos/lib/3rdparty/libwine/debug.c
reactos/lib/pseh/pseh.rbuild
reactos/lib/rtl/heap.c
reactos/lib/rtl/image.c
reactos/lib/rtl/rtlp.h
reactos/lib/sdk/crt/crt.rbuild
reactos/lib/sdk/crt/precomp.h
reactos/ntoskrnl/ex/sysinfo.c
reactos/ntoskrnl/include/internal/ex.h
reactos/ntoskrnl/include/internal/ke.h
reactos/ntoskrnl/include/internal/ke_x.h
reactos/ntoskrnl/include/internal/mm.h
reactos/ntoskrnl/include/internal/ntoskrnl.h
reactos/ntoskrnl/io/iomgr/iofunc.c
reactos/ntoskrnl/kdbg/kdb.c
reactos/ntoskrnl/ke/wait.c
reactos/ntoskrnl/mm/anonmem.c
reactos/ntoskrnl/mm/mdlsup.c
reactos/ntoskrnl/mm/mm.c
reactos/ntoskrnl/mm/section.c
reactos/ntoskrnl/ps/query.c
reactos/subsystems/csr/csrsrv/csrsrv.rbuild
reactos/subsystems/win32/win32k/ntuser/hook.c
reactos/subsystems/win32/win32k/ntuser/menu.c
reactos/subsystems/win32/win32k/ntuser/misc.c
reactos/subsystems/win32/win32k/ntuser/painting.c
reactos/subsystems/win32/win32k/ntuser/simplecall.c
reactos/tools/rbuild/backend/mingw/mingw.cpp
reactos/tools/rbuild/backend/mingw/modulehandler.cpp
reactos/tools/rbuild/module.cpp
reactos/tools/tools.mak
reactos/tools/xml.cpp

        <define name="__i386__" />
        <define name="TARGET_i386" host="true" />
   
+       <define name="USE_COMPILER_EXCEPTIONS" />
+  
        <property name="NTOSKRNL_SHARED" value="-file-alignment=0x1000 -section-alignment=0x1000 -shared"/>
 ++     <property name="PLATFORM" value="PC"/>
   
        <if property="OPTIMIZE" value="1">
                <compilerflag>-Os</compilerflag>
@@@@ -291,6 -325,26 -291,6 +325,26 @@@@ static const conv_t conv_PRESSURE[] = 
       DECLARE_CONV_END
   };
   
 -     DECLARE_CONV_UNIT(TIME, MILLISECONDS, "$*0.001",    "$/0.001")
+ +/*
+ +    1 day ....... = 86400 s
+ +    1 hour ...... = 3600 s
+ +    1 microsecond = 0.000001 s
+ +    1 millisecond = 0.001 s
+ +    1 minute .... = 60 s
+ +    1 week ...... = 669600 s
+ +*/
+ +static const conv_t conv_TIME[] = {
+ +    DECLARE_CONV_UNIT(TIME, MINUTES,      "$*60",       "$/60")
+ +    DECLARE_CONV_UNIT(TIME, DAYS,         "$*86400",    "$/86400")
+ +    DECLARE_CONV_UNIT(TIME, HOURS,        "$*3600",     "$/3600")
+++    DECLARE_CONV_UNIT(TIME, MILISECONDS,  "$*0.001",    "$/0.001")
+ +    DECLARE_CONV_UNIT(TIME, MICROSECONDS, "$*0.000001", "$/0.000001")
+ +    DECLARE_CONV_UNIT(TIME, SECONDS,      "$",          "$")
+ +    DECLARE_CONV_UNIT(TIME, WEEKS,        "$*604800",   "$/604800")
+ +    DECLARE_CONV_UNIT(TIME, YEARS,        "$*31556952", "$/31556952")
+ +    DECLARE_CONV_END
+ +};
+ +
   /*
       C = K - 273.15
       F = K * 9/5 - 459.67
@@@@ -618,6 -634,19 -618,6 +634,19 @@@@ BEGI
       IDS_TEMPERATURE_RANKINE         "Ðàíêèí"
   END
   
 -     IDS_TIME_MILLISECONDS "Ìèëèñåêóíäè"
+ +// TYPES OF TIME
+ +STRINGTABLE DISCARDABLE
+ +BEGIN
+ +    IDS_TIME_DAYS         "Äíè"
+ +    IDS_TIME_HOURS        "×àñè"
+ +    IDS_TIME_MICROSECONDS "Ìèêðîñåêóíäè"
+++    IDS_TIME_MILISECONDS  "Ìèëèñåêóíäè"
+ +    IDS_TIME_MINUTES      "Ìèíóòè"
+ +    IDS_TIME_SECONDS      "Ñåêóíäè"
+ +    IDS_TIME_WEEKS        "Ñåäìèöè"
+ +    IDS_TIME_YEARS        "Ãîäèíè"
+ +END
+ +
   // TYPES OF VELOCITIES
   STRINGTABLE DISCARDABLE
   BEGIN
@@@@ -457,6 -459,14 -457,6 +459,14 @@@@ BEGI
       IDS_CONV_POWER          "Výkon"
   END
   
 -     IDS_ANGLE_GRADIANS      "Grady"
 -     IDS_ANGLE_RADIANS       "Radiány"
 -     IDS_ANGLE_DEGREES       "Stupnì"
+ +// TYPES OF ANGLES
+ +STRINGTABLE DISCARDABLE
+ +BEGIN
+++    IDS_ANGLE_GRADIANS "Grady"
+++    IDS_ANGLE_RADIANS  "Radiány"
+++    IDS_ANGLE_DEGREES  "Stupnì"
+ +END
+ +
   // TYPES OF AREAS
   STRINGTABLE DISCARDABLE
   BEGIN
@@@@ -508,8 -518,8 -508,8 +518,9 @@@@ EN
   // TYPES OF CURRENCIES
   STRINGTABLE DISCARDABLE
   BEGIN
 + 
       IDS_CURRENCY_BELGIAN_FRANC      "Belgický frank"
+ +    IDS_CURRENCY_CZECH_KORUNA       "Èeská koruna"
       IDS_CURRENCY_EURO               "Euro"
       IDS_CURRENCY_FINNISH_MARKKA     "Finská marka"
       IDS_CURRENCY_FRENCH_FRANC       "Francouzský frank"
@@@@ -619,6 -639,19 -619,6 +640,19 @@@@ BEGI
       IDS_TEMPERATURE_RANKINE         "Rankina"
   END
   
 -     IDS_TIME_MILLISECONDS "Milisekundy"
+ +// TYPES OF TIME
+ +STRINGTABLE DISCARDABLE
+ +BEGIN
+ +    IDS_TIME_DAYS         "Dny"
+ +    IDS_TIME_HOURS        "Hodiny"
+ +    IDS_TIME_MICROSECONDS "Mikrosekundy"
+++    IDS_TIME_MILISECONDS  "Milisekundy"
+ +    IDS_TIME_MINUTES      "Minuty"
+ +    IDS_TIME_SECONDS      "Sekundy"
+ +    IDS_TIME_YEARS        "Roky"
+ +    IDS_TIME_WEEKS        "Týdny"
+ +END
+ +
   // TYPES OF VELOCITIES
   STRINGTABLE DISCARDABLE
   BEGIN
@@@@ -436,9 -436,10 -436,9 +436,10 @@@@ BEGI
       IDS_QUICKHELP           "Quick help"
   END
   
 - // Types of conversion
 + // types of conversion
   STRINGTABLE DISCARDABLE
   BEGIN
+ +    IDS_CONV_ANGLE          "Angle"
       IDS_CONV_AREA           "Area"
       IDS_CONV_CONSUMPTION    "Consumption (engines)"
       IDS_CONV_CURRENCY       "Currencies"
@@@@ -538,8 -553,8 -538,8 +553,8 @@@@ EN
   // TYPES OF LENGTHS
   STRINGTABLE DISCARDABLE
   BEGIN
 -     IDS_LENGTH_ANGSTROMS            "Ångströms"
 +     IDS_LENGTH_ANGSTROMS            "Angstroms"
- -    IDS_LENGTH_ASTRONOMILA_UNITS    "Astronomila units"
+ +    IDS_LENGTH_ASTRONOMICAL_UNITS   "Astronomical units"
       IDS_LENGTH_BARLEYCORNS          "Barleycorns"
       IDS_LENGTH_CENTIMETERS          "Centimeters"
       IDS_LENGTH_CHAINS_UK            "Chains (UK)"
@@@@ -613,6 -634,19 -613,6 +634,19 @@@@ BEGI
       IDS_TEMPERATURE_RANKINE         "Rankine"
   END
   
 -     IDS_TIME_MILLISECONDS "Milliseconds"
+ +// TYPES OF TIME
+ +STRINGTABLE DISCARDABLE
+ +BEGIN
+ +    IDS_TIME_DAYS         "Days"
+ +    IDS_TIME_HOURS        "Hours"
+ +    IDS_TIME_MICROSECONDS "Microseconds"
+++    IDS_TIME_MILISECONDS  "Miliseconds"
+ +    IDS_TIME_MINUTES      "Minutes"
+ +    IDS_TIME_SECONDS      "Seconds"
+ +    IDS_TIME_WEEKS        "Weeks"
+ +    IDS_TIME_YEARS        "Years"
+ +END
+ +
   // TYPES OF VELOCITIES
   STRINGTABLE DISCARDABLE
   BEGIN
@@@@ -548,8 -558,8 -548,8 +548,8 @@@@ EN
   // TYPES OF LENGTHS
   STRINGTABLE DISCARDABLE
   BEGIN
 -     IDS_LENGTH_ANGSTROMS            "Ångströms"
 +     IDS_LENGTH_ANGSTROMS            "Angstroms"
- -    IDS_LENGTH_ASTRONOMILA_UNITS    "Astronomila units"
+ +    IDS_LENGTH_ASTRONOMICAL_UNITS   "Astronomical units"
       IDS_LENGTH_BARLEYCORNS          "Barleycorns"
       IDS_LENGTH_CENTIMETERS          "Centímetros"
       IDS_LENGTH_CHAINS_UK            "Cadenas (UK)"
index 0000000,3dc9300,0000000..7a6b617
mode 000000,100644,000000..100644
--- /dev/null
--- /dev/null
@@@@ -1,0 -1,731 -1,0 +1,731 @@@@
 -     IDS_TIME_MILLISECONDS "Millisecondes"
+ +LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
+ +
+ +// Dialog
+ +
+ +IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 161
+ +STYLE WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+ +CAPTION "Calculatrice ReactOS"
+ +MENU IDR_MENU_SCIENTIFIC_1
+ +FONT 8, "MS Shell Dlg", 0, 0, 0x1
+ +BEGIN
+ +    GROUPBOX        "",IDC_STATIC,4,16,132,21
+ +    CONTROL         "Hex",IDC_RADIO_HEX,"Button",BS_AUTORADIOBUTTON,8,24,29,10
+ +    CONTROL         "Dec",IDC_RADIO_DEC,"Button",BS_AUTORADIOBUTTON,40,24,29,10
+ +    CONTROL         "Oct",IDC_RADIO_OCT,"Button",BS_AUTORADIOBUTTON,72,24,27,10
+ +    CONTROL         "Bin",IDC_RADIO_BIN,"Button",BS_AUTORADIOBUTTON,100,24,26,10
+ +    GROUPBOX        "",IDC_STATIC,4,36,76,21
+ +    CONTROL         "Inv",IDC_CHECK_INV,"Button",BS_AUTOCHECKBOX | 
+ +                    WS_TABSTOP,8,44,26,10
+ +    CONTROL         "Hyp",IDC_CHECK_HYP,"Button",BS_AUTOCHECKBOX | 
+ +                    WS_TABSTOP,40,44,29,10
+ +    CTEXT           "",IDC_TEXT_PARENT,84,40,24,17,SS_CENTERIMAGE,
+ +                    WS_EX_CLIENTEDGE
+ +    CTEXT           "",IDC_TEXT_MEMORY,112,40,24,17,SS_CENTERIMAGE,
+ +                    WS_EX_CLIENTEDGE
+ +    PUSHBUTTON      "Sta",IDC_BUTTON_STA,4,64,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "Ave",IDC_BUTTON_AVE,4,83,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "Sum",IDC_BUTTON_SUM,4,102,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "s",IDC_BUTTON_S,4,121,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "Dat",IDC_BUTTON_DAT,4,140,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "F-E",IDC_BUTTON_FE,38,64,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "dms",IDC_BUTTON_DMS,38,83,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "sin",IDC_BUTTON_SIN,38,102,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "cos",IDC_BUTTON_COS,38,121,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "tan",IDC_BUTTON_TAN,38,140,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "(",IDC_BUTTON_LEFTPAR,64,64,24,17,BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "Exp",IDC_BUTTON_EXP,64,83,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "x^y",IDC_BUTTON_XeY,64,102,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "x^2",IDC_BUTTON_Xe2,64,121,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "x^3",IDC_BUTTON_Xe3,64,140,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      ")",IDC_BUTTON_RIGHTPAR,90,64,24,17,BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "ln",IDC_BUTTON_LN,90,83,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "log",IDC_BUTTON_LOG,90,102,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "n!",IDC_BUTTON_NF,90,121,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "1/x",IDC_BUTTON_RX,90,140,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "MC",IDC_BUTTON_MC,124,64,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "MR",IDC_BUTTON_MR,124,83,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "MS",IDC_BUTTON_MS,124,102,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "M+",IDC_BUTTON_MP,124,121,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "pi",IDC_BUTTON_PI,124,140,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "7",IDC_BUTTON_7,158,64,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "4",IDC_BUTTON_4,158,83,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "1",IDC_BUTTON_1,158,102,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "0",IDC_BUTTON_0,158,121,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "A",IDC_BUTTON_A,158,140,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "8",IDC_BUTTON_8,184,64,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "5",IDC_BUTTON_5,184,83,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "2",IDC_BUTTON_2,184,102,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "+/-",IDC_BUTTON_SIGN,184,121,24,17,BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "B",IDC_BUTTON_B,184,140,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "9",IDC_BUTTON_9,210,64,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "6",IDC_BUTTON_6,210,83,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "3",IDC_BUTTON_3,210,102,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      ",",IDC_BUTTON_DOT,210,121,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "C",IDC_BUTTON_C,210,140,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "/",IDC_BUTTON_DIV,236,64,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "*",IDC_BUTTON_MULT,236,83,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "-",IDC_BUTTON_SUB,236,102,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "+",IDC_BUTTON_ADD,236,121,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "D",IDC_BUTTON_D,236,140,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "Mod",IDC_BUTTON_MOD,262,64,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "Or",IDC_BUTTON_OR,262,83,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "Lsh",IDC_BUTTON_LSH,262,102,24,17,BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "=",IDC_BUTTON_EQU,262,121,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "E",IDC_BUTTON_E,262,140,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "And",IDC_BUTTON_AND,288,64,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "Xor",IDC_BUTTON_XOR,288,83,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "Not",IDC_BUTTON_NOT,288,102,24,17,BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "Int",IDC_BUTTON_INT,288,121,24,17,BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "F",IDC_BUTTON_F,288,140,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    GROUPBOX        "",IDC_STATIC,140,16,172,21
+ +    CONTROL         "Q-mot",IDC_RADIO_QWORD,"Button",BS_AUTORADIOBUTTON | 
+ +                    NOT WS_VISIBLE,148,24,37,10
+ +    CONTROL         "D-mot",IDC_RADIO_DWORD,"Button",BS_AUTORADIOBUTTON | 
+ +                    NOT WS_VISIBLE,188,24,37,10
+ +    CONTROL         "Mot",IDC_RADIO_WORD,"Button",BS_AUTORADIOBUTTON | NOT 
+ +                    WS_VISIBLE,232,24,33,10
+ +    CONTROL         "Octet",IDC_RADIO_BYTE,"Button",BS_AUTORADIOBUTTON | NOT 
+ +                    WS_VISIBLE,272,24,30,10
+ +    CONTROL         "Degrés",IDC_RADIO_DEG,"Button",BS_AUTORADIOBUTTON,148,24,
+ +                    42,10
+ +    CONTROL         "Radians",IDC_RADIO_RAD,"Button",BS_AUTORADIOBUTTON,192,
+ +                    24,42,10
+ +    CONTROL         "Grades",IDC_RADIO_GRAD,"Button",BS_AUTORADIOBUTTON,
+ +                    236,24,44,10
+ +    PUSHBUTTON      "C",IDC_BUTTON_CANC,272,40,40,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "CE",IDC_BUTTON_CE,228,40,40,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "Retour arrière",IDC_BUTTON_BACK,184,40,40,17,BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    RTEXT           "",IDC_TEXT_OUTPUT,4,4,308,12,SS_CENTERIMAGE,
+ +                    WS_EX_CLIENTEDGE
+ +    DEFPUSHBUTTON   "",IDC_BUTTON_FOCUS,0,0,5,5, NOT WS_VISIBLE
+ +END
+ +
+ +IDD_DIALOG_STANDARD DIALOGEX 0, 0, 172, 127
+ +STYLE WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+ +CAPTION "Calculatrice ReactOS"
+ +MENU IDR_MENU_STANDARD
+ +FONT 8, "MS Shell Dlg", 0, 0, 0x1
+ +BEGIN
+ +    PUSHBUTTON      "C",IDC_BUTTON_CANC,128,24,40,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "CE",IDC_BUTTON_CE,84,24,40,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "Retour arrière",IDC_BUTTON_BACK,40,24,40,17,BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    RTEXT           "",IDC_TEXT_OUTPUT,4,4,164,12,SS_CENTERIMAGE,
+ +                    WS_EX_CLIENTEDGE
+ +    PUSHBUTTON      "7",IDC_BUTTON_7,40,48,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "4",IDC_BUTTON_4,40,67,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "1",IDC_BUTTON_1,40,86,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "0",IDC_BUTTON_0,40,105,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "8",IDC_BUTTON_8,66,48,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "5",IDC_BUTTON_5,66,67,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "2",IDC_BUTTON_2,66,86,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "+/-",IDC_BUTTON_SIGN,66,105,24,17,BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "9",IDC_BUTTON_9,92,48,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "6",IDC_BUTTON_6,92,67,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "3",IDC_BUTTON_3,92,86,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      ",",IDC_BUTTON_DOT,92,105,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "/",IDC_BUTTON_DIV,118,48,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "*",IDC_BUTTON_MULT,118,67,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "-",IDC_BUTTON_SUB,118,86,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "+",IDC_BUTTON_ADD,118,105,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "Sqrt",IDC_BUTTON_SQRT,144,48,24,17,BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "%",IDC_BUTTON_PERCENT,144,67,24,17,BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "1/x",IDC_BUTTON_RX,144,86,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "=",IDC_BUTTON_EQU,144,105,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    CTEXT           "",IDC_TEXT_MEMORY,4,24,24,17,SS_CENTERIMAGE,
+ +                    WS_EX_CLIENTEDGE
+ +    PUSHBUTTON      "MC",IDC_BUTTON_MC,4,48,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "MR",IDC_BUTTON_MR,4,67,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "MS",IDC_BUTTON_MS,4,86,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    PUSHBUTTON      "M+",IDC_BUTTON_MP,4,105,24,17,BS_CENTER | BS_VCENTER | 
+ +                    BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+ +    DEFPUSHBUTTON   "",IDC_BUTTON_FOCUS,0,0,5,5, NOT WS_VISIBLE
+ +END
+ +
+ +IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
+ +STYLE WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+ +CAPTION "Calculatrice ReactOS"
+ +MENU IDR_MENU_STANDARD
+ +FONT 8, "MS Shell Dlg"
+ +BEGIN
+ +    PUSHBUTTON      "Convertir",IDC_BUTTON_CONVERT,35,105,76,17
+ +    COMBOBOX        IDC_COMBO_CATEGORY,4,31,140,168,CBS_DROPDOWNLIST | 
+ +                    WS_VSCROLL | WS_TABSTOP | CBS_SORT
+ +    LTEXT           "Catégorie :",IDC_STATIC,4,20,56,8
+ +    COMBOBOX        IDC_COMBO_FROM,4,60,140,168,CBS_DROPDOWNLIST | 
+ +                    WS_VSCROLL | WS_TABSTOP | CBS_SORT
+ +    LTEXT           "Convertir depuis :",IDC_STATIC,4,49,56,8
+ +    COMBOBOX        IDC_COMBO_TO,4,87,140,168,CBS_DROPDOWNLIST | WS_VSCROLL | 
+ +                    WS_TABSTOP | CBS_SORT
+ +    LTEXT           "Convertir en :",IDC_STATIC,4,76,56,8
+ +    CONTROL         "C",IDC_BUTTON_CANC,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,276,24,40,17
+ +    CONTROL         "CE",IDC_BUTTON_CE,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,232,24,40,17
+ +    CONTROL         "Retour arrière",IDC_BUTTON_BACK,"Button",BS_OWNERDRAW | 
+ +                    BS_CENTER | BS_VCENTER | BS_NOTIFY | WS_TABSTOP,188,24,
+ +                    40,17
+ +    RTEXT           "",IDC_TEXT_OUTPUT,4,4,312,12,SS_CENTERIMAGE,
+ +                    WS_EX_CLIENTEDGE
+ +    CONTROL         "7",IDC_BUTTON_7,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,188,48,24,17
+ +    CONTROL         "4",IDC_BUTTON_4,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,188,67,24,17
+ +    CONTROL         "1",IDC_BUTTON_1,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,188,86,24,17
+ +    CONTROL         "0",IDC_BUTTON_0,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,188,105,24,17
+ +    CONTROL         "8",IDC_BUTTON_8,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,214,48,24,17
+ +    CONTROL         "5",IDC_BUTTON_5,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,214,67,24,17
+ +    CONTROL         "2",IDC_BUTTON_2,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,214,86,24,17
+ +    CONTROL         "+/-",IDC_BUTTON_SIGN,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,214,105,24,17
+ +    CONTROL         "9",IDC_BUTTON_9,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,240,48,24,17
+ +    CONTROL         "6",IDC_BUTTON_6,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,240,67,24,17
+ +    CONTROL         "3",IDC_BUTTON_3,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,240,86,24,17
+ +    CONTROL         ",",IDC_BUTTON_DOT,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,240,105,24,17
+ +    CONTROL         "/",IDC_BUTTON_DIV,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,266,48,24,17
+ +    CONTROL         "*",IDC_BUTTON_MULT,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,266,67,24,17
+ +    CONTROL         "-",IDC_BUTTON_SUB,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,266,86,24,17
+ +    CONTROL         "+",IDC_BUTTON_ADD,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,266,105,24,17
+ +    CONTROL         "Sqrt",IDC_BUTTON_SQRT,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,292,48,24,17
+ +    CONTROL         "%",IDC_BUTTON_PERCENT,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,292,67,24,17
+ +    CONTROL         "1/x",IDC_BUTTON_RX,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,292,86,24,17
+ +    CONTROL         "=",IDC_BUTTON_EQU,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,292,105,24,17
+ +    CTEXT           "",IDC_TEXT_MEMORY,152,24,24,17,SS_CENTERIMAGE,
+ +                    WS_EX_CLIENTEDGE
+ +    CONTROL         "MC",IDC_BUTTON_MC,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,152,48,24,17
+ +    CONTROL         "MR",IDC_BUTTON_MR,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,152,67,24,17
+ +    CONTROL         "MS",IDC_BUTTON_MS,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,152,86,24,17
+ +    CONTROL         "M+",IDC_BUTTON_MP,"Button",BS_OWNERDRAW | BS_CENTER | 
+ +                    BS_VCENTER | BS_NOTIFY | WS_TABSTOP,152,105,24,17
+ +    DEFPUSHBUTTON   "",IDC_BUTTON_FOCUS,0,0,5,5,NOT WS_VISIBLE
+ +END
+ +
+ +IDD_DIALOG_ABOUT DIALOGEX DISCARDABLE  0, 0, 264, 169
+ +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+ +CAPTION "À propos de la Calculatrice ReactOS"
+ +FONT 8, "MS Shell Dlg"
+ +BEGIN
+ +    DEFPUSHBUTTON   "OK",IDOK,105,148,52,16
+ +    CONTROL         IDB_BITMAP_ROS,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE | 
+ +                    SS_REALSIZEIMAGE | WS_BORDER,4,4,104,48
+ +    LTEXT           "Calculatrice ReactOS",IDC_STATIC,120,12,132,8,
+ +                    SS_CENTERIMAGE
+ +    LTEXT           "Version ",IDC_TEXT_VERSION,120,20,132,8,SS_CENTERIMAGE
+ +    LTEXT           "par Carlo Bramini",IDC_STATIC,120,32,132,8,
+ +                    SS_CENTERIMAGE
+ +    GROUPBOX        "",IDC_STATIC,112,0,148,52
+ +    GROUPBOX        "",IDC_STATIC,4,56,256,88
+ +    EDITTEXT        IDC_EDIT_LICENSE,12,68,240,68,ES_MULTILINE | ES_READONLY | 
+ +                    WS_VSCROLL
+ +END
+ +
+ +IDD_DIALOG_STAT DIALOGEX DISCARDABLE  0, 0, 163, 85
+ +STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+ +CAPTION "Statistiques"
+ +FONT 8, "MS Shell Dlg"
+ +BEGIN
+ +    LISTBOX         IDC_LIST_STAT,4,4,156,40,LBS_NOINTEGRALHEIGHT | 
+ +                    WS_VSCROLL | WS_TABSTOP
+ +    PUSHBUTTON      "RET",IDC_BUTTON_RET,4,48,36,16
+ +    PUSHBUTTON      "LOAD",IDC_BUTTON_LOAD,44,48,36,16
+ +    PUSHBUTTON      "CD",IDC_BUTTON_CD,84,48,36,16
+ +    PUSHBUTTON      "CAD",IDC_BUTTON_CAD,124,48,36,16
+ +    CTEXT           "n=0",IDC_TEXT_NITEMS,4,68,156,12,SS_CENTERIMAGE | 
+ +                    SS_SUNKEN
+ +END
+ +
+ +// Menus
+ +
+ +IDR_MENU_SCIENTIFIC_1 MENU DISCARDABLE 
+ +BEGIN
+ +    POPUP "Édition"
+ +    BEGIN
+ +        MENUITEM "Copier\tCTRL-C",              IDM_EDIT_COPY
+ +        MENUITEM "Coller\tCTRL-V",              IDM_EDIT_PASTE
+ +    END
+ +    POPUP "Affichage"
+ +    BEGIN
+ +        MENUITEM "Standard",                    IDM_VIEW_STANDARD, CHECKED
+ +        MENUITEM "Scientifique",                IDM_VIEW_SCIENTIFIC, CHECKED
+ +        MENUITEM "Conversion",                  IDM_VIEW_CONVERSION
+ +        MENUITEM SEPARATOR
+ +        MENUITEM "Hexadécimal\tF5",             IDM_VIEW_HEX, CHECKED
+ +        MENUITEM "Décimal\tF6",                 IDM_VIEW_DEC, CHECKED
+ +        MENUITEM "Octal\tF7",                   IDM_VIEW_OCT, CHECKED
+ +        MENUITEM "Binaire\tF8",                 IDM_VIEW_BIN, CHECKED
+ +        MENUITEM SEPARATOR
+ +        MENUITEM "Degrés\tF2",                  IDM_VIEW_DEG, CHECKED
+ +        MENUITEM "Radians\tF3",                 IDM_VIEW_RAD, CHECKED
+ +        MENUITEM "Grades\tF4",                  IDM_VIEW_GRAD, CHECKED
+ +        MENUITEM SEPARATOR
+ +        MENUITEM "Grouper les chiffres",        IDM_VIEW_GROUP, CHECKED
+ +    END
+ +    POPUP "Aide"
+ +    BEGIN
+ +        MENUITEM "Rubriques d'aide",            IDM_HELP_HELP
+ +        MENUITEM SEPARATOR
+ +        MENUITEM "À propos de la Calculatrice ReactOS", IDM_HELP_ABOUT
+ +    END
+ +END
+ +
+ +IDR_MENU_SCIENTIFIC_2 MENU DISCARDABLE 
+ +BEGIN
+ +    POPUP "Édition"
+ +    BEGIN
+ +        MENUITEM "Copier\tCTRL-C",              IDM_EDIT_COPY
+ +        MENUITEM "Coller\tCTRL-V",              IDM_EDIT_PASTE
+ +    END
+ +    POPUP "Affichage"
+ +    BEGIN
+ +        MENUITEM "Standard",                    IDM_VIEW_STANDARD, CHECKED
+ +        MENUITEM "Scientifique",                IDM_VIEW_SCIENTIFIC, CHECKED
+ +        MENUITEM "Conversion",                  IDM_VIEW_CONVERSION
+ +        MENUITEM SEPARATOR
+ +        MENUITEM "Hexadécimal\tF5",             IDM_VIEW_HEX, CHECKED
+ +        MENUITEM "Décimal\tF6",                 IDM_VIEW_DEC, CHECKED
+ +        MENUITEM "Octal\tF7",                   IDM_VIEW_OCT, CHECKED
+ +        MENUITEM "Binaire\tF8",                 IDM_VIEW_BIN, CHECKED
+ +        MENUITEM SEPARATOR
+ +        MENUITEM "Q-mot\tF12",                  IDM_VIEW_QWORD, CHECKED
+ +        MENUITEM "D-mot\tF2",                   IDM_VIEW_DWORD, CHECKED
+ +        MENUITEM "Mot\tF3",                     IDM_VIEW_WORD, CHECKED
+ +        MENUITEM "Octet\tF4",                   IDM_VIEW_BYTE, CHECKED
+ +        MENUITEM SEPARATOR
+ +        MENUITEM "Grouper les chiffres",        IDM_VIEW_GROUP, CHECKED
+ +    END
+ +    POPUP "Aide"
+ +    BEGIN
+ +        MENUITEM "Rubriques d'aide",            IDM_HELP_HELP
+ +        MENUITEM SEPARATOR
+ +        MENUITEM "À propos de la Calculatrice ReactOS", IDM_HELP_ABOUT
+ +    END
+ +END
+ +
+ +IDR_MENU_STANDARD MENU DISCARDABLE 
+ +BEGIN
+ +    POPUP "Édition"
+ +    BEGIN
+ +        MENUITEM "Copier\tCTRL-C",              IDM_EDIT_COPY
+ +        MENUITEM "Coller\tCTRL-V",              IDM_EDIT_PASTE
+ +    END
+ +    POPUP "Affichage"
+ +    BEGIN
+ +        MENUITEM "Standard",                    IDM_VIEW_STANDARD, CHECKED
+ +        MENUITEM "Scientifique",                IDM_VIEW_SCIENTIFIC, CHECKED
+ +        MENUITEM "Conversion",                  IDM_VIEW_CONVERSION
+ +        MENUITEM SEPARATOR
+ +        MENUITEM "Grouper les chiffres",        IDM_VIEW_GROUP, CHECKED
+ +    END
+ +    POPUP "Aide"
+ +    BEGIN
+ +        MENUITEM "Rubriques d'aide",            IDM_HELP_HELP
+ +        MENUITEM SEPARATOR
+ +        MENUITEM "À propos de la Calculatrice ReactOS", IDM_HELP_ABOUT
+ +    END
+ +END
+ +
+ +// String Tables
+ +
+ +STRINGTABLE DISCARDABLE 
+ +BEGIN
+ +    IDS_STRING_LICENSE      "Calculatrice ReactOS est un logiciel libre distribué sous licence GNU GPL.\r\n\r\nVous pouvez obtenir une copie de la licence GNU GPL ici:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nVous pouvez aussi obtenir une traduction de la licence GNU GPL ici:\r\nhttp://www.gnu.org/licenses/translations.html"
+ +    IDS_MATH_ERROR          "Erreur"
+ +    IDS_QUICKHELP           "Aide rapide"
+ +END
+ +
+ +// types of conversion
+ +STRINGTABLE DISCARDABLE
+ +BEGIN
+ +    IDS_CONV_ANGLE          "Angle"
+ +    IDS_CONV_AREA           "Superficie"
+ +    IDS_CONV_CONSUMPTION    "Consommation (moteurs)"
+ +    IDS_CONV_CURRENCY       "Devises"
+ +    IDS_CONV_ENERGY         "Énergie"
+ +    IDS_CONV_LENGTH         "Longueurs"
+ +    IDS_CONV_POWER          "Puissance"
+ +    IDS_CONV_PRESSURE       "Pression"
+ +    IDS_CONV_TEMPERATURE    "Température"
+ +    IDS_CONV_TIME           "Temps"
+ +    IDS_CONV_VELOCITY       "Vélocité"
+ +    IDS_CONV_VOLUME         "Volume"
+ +    IDS_CONV_WEIGHT         "Poids"
+ +END
+ +
+ +// TYPES OF ANGLES
+ +STRINGTABLE DISCARDABLE
+ +BEGIN
+ +    IDS_ANGLE_DEGREES       "Degrés"
+ +    IDS_ANGLE_GRADIANS      "Grades"
+ +    IDS_ANGLE_RADIANS       "Radians"
+ +END
+ +
+ +// TYPES OF AREAS
+ +STRINGTABLE DISCARDABLE
+ +BEGIN
+ +    IDS_AREA_ACRES                  "Acres"
+ +    IDS_AREA_ACRES_BRAZIL           "Acres (Brazil)"
+ +    IDS_AREA_ACRES_FRANCE           "Acres (France)"
+ +    IDS_AREA_ACRES_SCOTS            "Acres (Scots)"
+ +    IDS_AREA_ACRES_US               "Acres (US)"
+ +    IDS_AREA_ARES                   "Ares"
+ +    IDS_AREA_CHOU                   "Chou"
+ +    IDS_AREA_DANBO                  "Danbo"
+ +    IDS_AREA_HECTARES               "Hectares"
+ +    IDS_AREA_JEONGBO                "Jeongbo"
+ +    IDS_AREA_MORGEN_HUNGARY         "Morgen (Hongrie)"
+ +    IDS_AREA_MU                     "Mu"
+ +    IDS_AREA_PING                   "Ping"
+ +    IDS_AREA_PYEONG                 "Pyeong"
+ +    IDS_AREA_PYEONGBANGJA           "Pyeongbangja"
+ +    IDS_AREA_RAI                    "Rai"
+ +    IDS_AREA_SE                     "Se"
+ +    IDS_AREA_SQUARE_CENTIMETERS     "Centimètres carrés"
+ +    IDS_AREA_SQUARE_CHR             "Chr carré"
+ +    IDS_AREA_SQUARE_FATHOMS         "Fathoms carrés"
+ +    IDS_AREA_SQUARE_FATHOMS_HUNGARY "Fathoms carrés (Hongrie)"
+ +    IDS_AREA_SQUARE_FEET            "Pieds carrés"
+ +    IDS_AREA_SQUARE_INCHES          "Pouces carrés"
+ +    IDS_AREA_SQUARE_KILOMETERS      "Kilomètres carrés"
+ +    IDS_AREA_SQUARE_LAR             "Square lar"
+ +    IDS_AREA_SQUARE_METER           "Mètre carré"
+ +    IDS_AREA_SQUARE_MILES           "Miles carrés"
+ +    IDS_AREA_SQUARE_MILLIMETERS     "Millimètres carrés"
+ +    IDS_AREA_SQUARE_SHAKU           "Shaku carré"
+ +    IDS_AREA_SQUARE_TSUEN           "Tsuen carré"
+ +    IDS_AREA_SQUARE_VA              "Va carré"
+ +    IDS_AREA_SQUARE_YARD            "Yard carré"
+ +    IDS_AREA_TAN                    "Tan"
+ +    IDS_AREA_TSUBO                  "Tsubo"
+ +END
+ +
+ +// TYPES OF COMSUMPTIONS
+ +STRINGTABLE DISCARDABLE
+ +BEGIN
+ +    IDS_CONSUMPTION_KM_PER_L        "Kilomètre/litre"
+ +    IDS_CONSUMPTION_L_PER_100_KM    "Litres/100 kilomètres"
+ +    IDS_CONSUMPTION_MILES_GALLON_UK "Miles/gallon (UK)"
+ +    IDS_CONSUMPTION_MILES_GALLON_US "Miles/gallon (US)"
+ +END
+ +
+ +// TYPES OF CURRENCIES
+ +STRINGTABLE DISCARDABLE
+ +BEGIN
+ +    IDS_CURRENCY_AUSTRIAN_SCHILLING "Schilling autrichien"
+ +    IDS_CURRENCY_BELGIAN_FRANC      "Franc belge"
+ +    IDS_CURRENCY_CYPRIOT_POUND      "Livre chypriote"
+ +    IDS_CURRENCY_CZECH_KORUNA       "Couronne tchèque"
+ +    IDS_CURRENCY_DEUTSCHE_MARK      "Mark allemand"
+ +    IDS_CURRENCY_DUTCH_GUILDER      "Dutch guilder"
+ +    IDS_CURRENCY_EURO               "Euro"
+ +    IDS_CURRENCY_FINNISH_MARKKA     "Marks finlandais"
+ +    IDS_CURRENCY_FRENCH_FRANC       "Franc français"
+ +    IDS_CURRENCY_GREEK_DRACHMA      "Drachmes grecques"
+ +    IDS_CURRENCY_IRISH_POUND        "Livre irlandaise"
+ +    IDS_CURRENCY_ITALIAN_LIRA       "Lire italienne"
+ +    IDS_CURRENCY_LUXEMBOURG_FRANC   "Franc luxembourgeois"
+ +    IDS_CURRENCY_MALTESE_LIRA       "Lire maltaise"
+ +    IDS_CURRENCY_PORTOGUESE_ESCUDO  "Escudo portugaise"
+ +    IDS_CURRENCY_SLOVAK_KORUNA      "Couronne slovaque"
+ +    IDS_CURRENCY_SLOVENIAN_TOLAR    "Tolar slovène"
+ +    IDS_CURRENCY_SPANISH_PESETA     "Peseta espagnole"
+ +END
+ +
+ +// TYPES OF ENERGIES
+ +STRINGTABLE DISCARDABLE
+ +BEGIN
+ +    IDS_ENERGY_15_C_CALORIES        "15 °C calories"
+ +    IDS_ENERGY_BTUS                 "British Thermal Units"
+ +    IDS_ENERGY_ERGS                 "Ergs"
+ +    IDS_ENERGY_EVS                  "Électron-volts"
+ +    IDS_ENERGY_FOOT_POUNDS          "Pied-livres"
+ +    IDS_ENERGY_IT_CALORIES          "International Table calories"
+ +    IDS_ENERGY_IT_KILOCALORIES      "International Table kilocalories"
+ +    IDS_ENERGY_JOULES               "Joules"
+ +    IDS_ENERGY_KILOJOULES           "Kilojoules"
+ +    IDS_ENERGY_KILOWATT_HOURS       "Kilowattheure"
+ +    IDS_ENERGY_NUTRITION_CALORIES   "Calories nutritives"
+ +    IDS_ENERGY_TH_CALORIES          "Calories thermochimiques"
+ +END
+ +
+ +// TYPES OF LENGTHS
+ +STRINGTABLE DISCARDABLE
+ +BEGIN
+ +    IDS_LENGTH_ANGSTROMS            "Angström"
+ +    IDS_LENGTH_ASTRONOMICAL_UNITS   "Unités astronomiques"
+ +    IDS_LENGTH_BARLEYCORNS          "Barleycorns"
+ +    IDS_LENGTH_CENTIMETERS          "Centimètres"
+ +    IDS_LENGTH_CHAINS_UK            "Chains (UK)"
+ +    IDS_LENGTH_CHI                  "Chi"
+ +    IDS_LENGTH_CHOU                 "Chou"
+ +    IDS_LENGTH_CHR                  "Chr"
+ +    IDS_LENGTH_CUN                  "Cun"
+ +    IDS_LENGTH_FATHOMS              "Fathoms"
+ +    IDS_LENGTH_FATHOMS_HUNGARY      "Fathoms (Hungary)"
+ +    IDS_LENGTH_FEET                 "Pieds"
+ +    IDS_LENGTH_FURLONGS             "Furlongs"
+ +    IDS_LENGTH_GAN                  "Gan"
+ +    IDS_LENGTH_HANDS                "Hands"
+ +    IDS_LENGTH_HUNH                 "Hunh"
+ +    IDS_LENGTH_INCHES               "Pouces"
+ +    IDS_LENGTH_JA                   "Ja"
+ +    IDS_LENGTH_JEONG                "Jeong"
+ +    IDS_LENGTH_KABIET               "Kabiet"
+ +    IDS_LENGTH_KEN                  "Ken"
+ +    IDS_LENGTH_KEUB                 "Keub"
+ +    IDS_LENGTH_KILOMETERS           "Kilomètres"
+ +    IDS_LENGTH_LAR                  "Lar"
+ +    IDS_LENGTH_LIGHT_YEARS          "Années lumières"
+ +    IDS_LENGTH_LINKS_UK             "Links (UK)"
+ +    IDS_LENGTH_METERS               "Mètres"
+ +    IDS_LENGTH_MICRONS              "Micromètres"
+ +    IDS_LENGTH_MILES                "Miles"
+ +    IDS_LENGTH_MILLIMETERS          "Millimètres"
+ +    IDS_LENGTH_NAUTICAL_MILES       "Miles nautiques"
+ +    IDS_LENGTH_NIEU                 "Nieu"
+ +    IDS_LENGTH_PARSECS              "Parsecs"
+ +    IDS_LENGTH_PICAS                "Picas"
+ +    IDS_LENGTH_RI_JAPAN             "Ri (Japan)"
+ +    IDS_LENGTH_RI_KOREA             "Ri (Korea)"
+ +    IDS_LENGTH_RODS                 "Rods"
+ +    IDS_LENGTH_SAWK                 "Sawk"
+ +    IDS_LENGTH_SEN                  "Sen"
+ +    IDS_LENGTH_SHAKU                "Shaku"
+ +    IDS_LENGTH_SPAN                 "Span"
+ +    IDS_LENGTH_SUN                  "Sun"
+ +    IDS_LENGTH_TSUEN                "Tsuen"
+ +    IDS_LENGTH_VA                   "Va"
+ +    IDS_LENGTH_YARDS                "Yards"
+ +    IDS_LENGTH_YOTE                 "Yote"
+ +    IDS_LENGTH_ZHANG                "Zhang"
+ +END
+ +
+ +// TYPES OF POWERS
+ +STRINGTABLE DISCARDABLE
+ +BEGIN
+ +    IDS_POWER_BTUS_PER_MINUTE       "British Thermal Units par minute"
+ +    IDS_POWER_FPS_PER_MINUTE        "Pied-livres par minute"
+ +    IDS_POWER_HORSEPOWER            "Cheval-vapeur"
+ +    IDS_POWER_KILOWATTS             "Kilowatts"
+ +    IDS_POWER_MEGAWATTS             "Megawatts"
+ +    IDS_POWER_WATTS                 "Watts"
+ +END
+ +
+ +// TYPE OF PRESSURES
+ +STRINGTABLE DISCARDABLE
+ +BEGIN
+ +    IDS_PRESSURE_ATMOSPHERES        "Atmosphères"
+ +    IDS_PRESSURE_BARS               "Bars"
+ +    IDS_PRESSURE_HECTOPASCALS       "Hectopascals"
+ +    IDS_PRESSURE_KILOPASCALS        "Kilopascals"
+ +    IDS_PRESSURE_MM_OF_MERCURY      "Millimètres de mercure"
+ +    IDS_PRESSURE_PASCALS            "Pascals"
+ +    IDS_PRESSURE_PSI                "Pounds-force per square inch"
+ +END
+ +
+ +// TYPES OF TEMPERATURES
+ +STRINGTABLE DISCARDABLE
+ +BEGIN
+ +    IDS_TEMPERATURE_CELSIUS         "Celsius"
+ +    IDS_TEMPERATURE_FAHRENHEIT      "Fahrenheit"
+ +    IDS_TEMPERATURE_KELVIN          "Kelvin"
+ +    IDS_TEMPERATURE_RANKINE         "Rankine"
+ +END
+ +
+ +// TYPES OF TIME
+ +STRINGTABLE DISCARDABLE
+ +BEGIN
+ +    IDS_TIME_DAYS         "Jours"
+ +    IDS_TIME_HOURS        "Heures"
+ +    IDS_TIME_MICROSECONDS "Microsecondes"
+++    IDS_TIME_MILISECONDS  "Millisecondes"
+ +    IDS_TIME_MINUTES      "Minutes"
+ +    IDS_TIME_SECONDS      "Secondes"
+ +    IDS_TIME_WEEKS        "Semaines"
+ +    IDS_TIME_YEARS        "Années"
+ +END
+ +
+ +// TYPES OF VELOCITIES
+ +STRINGTABLE DISCARDABLE
+ +BEGIN
+ +    IDS_VELOCITY_CMS_SECOND         "Centimètres/seconde"
+ +    IDS_VELOCITY_FEET_HOUR          "Pieds/heure"
+ +    IDS_VELOCITY_FEET_SECOND        "Pieds/seconde"
+ +    IDS_VELOCITY_KILOMETERS_HOUR    "Kilomètres/heure"
+ +    IDS_VELOCITY_KNOTS              "Knots"
+ +    IDS_VELOCITY_MACH               "Mach"
+ +    IDS_VELOCITY_METERS_SECOND      "Mètres/second"
+ +    IDS_VELOCITY_MILES_HOUR         "Miles/heure"
+ +END
+ +
+ +// TYPES OF VOLUMES
+ +STRINGTABLE DISCARDABLE
+ +BEGIN
+ +    IDS_VOLUME_BARRELS_UK           "Baril (UK)"
+ +    IDS_VOLUME_BARRELS_OIL          "Baril de pétrole"
+ +    IDS_VOLUME_BUN                  "Bun"
+ +    IDS_VOLUME_BUSHELS_UK           "Bushels (UK)"
+ +    IDS_VOLUME_BUSHELS_US           "Bushels (US)"
+ +    IDS_VOLUME_CUBIC_CENTIMETERS    "Centimètres cubes"
+ +    IDS_VOLUME_CUBIC_FEET           "Pieds cubes"
+ +    IDS_VOLUME_CUBIC_INCHES         "Pouces cubes"
+ +    IDS_VOLUME_CUBIC_METERS         "Mètres cubes"
+ +    IDS_VOLUME_CUBIC_YARDS          "Yards cubes"
+ +    IDS_VOLUME_DOE                  "Doe"
+ +    IDS_VOLUME_FLUID_OUNCES_UK      "Fluid ounces (UK)"
+ +    IDS_VOLUME_FLUID_OUNCES_US      "Fluid ounces (US)"
+ +    IDS_VOLUME_GALLONS_UK           "Gallons (UK)"
+ +    IDS_VOLUME_GALLONS_DRY_US       "Gallons, sec (US)"
+ +    IDS_VOLUME_GALLONS_LIQUID_US    "Gallons, liqude (US)"
+ +    IDS_VOLUME_GOU                  "Gou"
+ +    IDS_VOLUME_HOP                  "Hop"
+ +    IDS_VOLUME_ICCE                 "Icce"
+ +    IDS_VOLUME_KWIAN                "Kwian"
+ +    IDS_VOLUME_LITERS               "Litres"
+ +    IDS_VOLUME_MAL                  "Mal"
+ +    IDS_VOLUME_MILLILITERS          "Millilitres"
+ +    IDS_VOLUME_PINTS_UK             "Pints (UK)"
+ +    IDS_VOLUME_PINTS_DRY_US         "Pints, sec (US)"
+ +    IDS_VOLUME_PINTS_LIQUID_US      "Pints, liquide (US)"
+ +    IDS_VOLUME_QUARTS_UK            "Quarts (UK)"
+ +    IDS_VOLUME_QUARTS_DRY_US        "Quarts, sec (US)"
+ +    IDS_VOLUME_QUARTS_LIQUID_US     "Quarts, liquide (US)"
+ +    IDS_VOLUME_SEKI                 "Seki"
+ +    IDS_VOLUME_SYOU                 "Syou"
+ +    IDS_VOLUME_TANANLOUNG           "Tananloung"
+ +    IDS_VOLUME_TANG                 "Tang"
+ +    IDS_VOLUME_TO                   "To"
+ +END
+ +
+ +// TYPES OF WEIGHTS
+ +STRINGTABLE DISCARDABLE
+ +BEGIN
+ +    IDS_WEIGHT_BAHT                 "Baht"
+ +    IDS_WEIGHT_CARATS               "Carats"
+ +    IDS_WEIGHT_CHUNG                "Chung"
+ +    IDS_WEIGHT_DON                  "Don"
+ +    IDS_WEIGHT_GEUN                 "Geun"
+ +    IDS_WEIGHT_GRAMS                "Grammes"
+ +    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            "Kilogrammes"
+ +    IDS_WEIGHT_KIN                  "Kin"
+ +    IDS_WEIGHT_LIANG_CHINA          "Liang (China)"
+ +    IDS_WEIGHT_LIANG_TAIWAN         "Liang (Taiwan)"
+ +    IDS_WEIGHT_MONME                "Monme"
+ +    IDS_WEIGHT_OUNCES_AVOIRDUPOIS   "Ounces, avoirdupois"
+ +    IDS_WEIGHT_OUNCES_TROY          "Ounces, troy"
+ +    IDS_WEIGHT_POUNDS               "Pounds"
+ +    IDS_WEIGHT_QUINTAL_METRIC       "Quintal (metric)"
+ +    IDS_WEIGHT_SALOUNG              "Saloung"
+ +    IDS_WEIGHT_STONES               "Stones"
+ +    IDS_WEIGHT_TAMLUNG              "Tamlung"
+ +    IDS_WEIGHT_TONNES               "Tonnes"
+ +    IDS_WEIGHT_TONS_UK              "Tons (UK)"
+ +    IDS_WEIGHT_TONS_US              "Tons (US)"
+ +END
@@@@ -546,8 -557,8 -542,8 +542,8 @@@@ EN
   // TYPES OF LENGTHS
   STRINGTABLE DISCARDABLE
   BEGIN
 -     IDS_LENGTH_ANGSTROMS            "¿Ë½ºÆ®·Ò"
 +     IDS_LENGTH_ANGSTROMS            "Angstroms"
- -    IDS_LENGTH_ASTRONOMILA_UNITS    "Astronomila units"
+ +    IDS_LENGTH_ASTRONOMICAL_UNITS   "Astronomical units"
       IDS_LENGTH_BARLEYCORNS          "Barleycorns"
       IDS_LENGTH_CENTIMETERS          "Centimeters"
       IDS_LENGTH_CHAINS_UK            "Chains (UK)"
@@@@ -618,6 -634,19 -618,6 +634,19 @@@@ BEGI
       IDS_TEMPERATURE_RANKINE         "ãðàäóñ (ïî øêàëå Rankine)"
   END
   
 -     IDS_TIME_MILLISECONDS "ìèëëèñåêóíäà"
+ +// TYPES OF TIME
+ +STRINGTABLE DISCARDABLE
+ +BEGIN
+ +    IDS_TIME_DAYS         "äåíü"
+ +    IDS_TIME_HOURS        "÷àñ"
+ +    IDS_TIME_MICROSECONDS "ìèêðîñåêóíäà"
+++    IDS_TIME_MILISECONDS  "ìèëëèñåêóíäà"
+ +    IDS_TIME_MINUTES      "ìèíóòà"
+ +    IDS_TIME_SECONDS      "ñåêóíäà"
+ +    IDS_TIME_WEEKS        "íåäåëÿ"
+ +    IDS_TIME_YEARS        "ãîä"
+ +END
+ +
   // TYPES OF VELOCITIES
   STRINGTABLE DISCARDABLE
   BEGIN
@@@@ -626,6 -643,19 -622,6 +643,19 @@@@ BEGI
       IDS_TEMPERATURE_RANKINE         "Rankine"
   END
   
 -     IDS_TIME_MILLISECONDS "Milisekundy"
+ +// TYPES OF TIME
+ +STRINGTABLE DISCARDABLE
+ +BEGIN
+ +    IDS_TIME_DAYS         "Dni"
+ +    IDS_TIME_HOURS        "Hodiny"
+ +    IDS_TIME_MICROSECONDS "Mikrosekundy"
+++    IDS_TIME_MILISECONDS  "Milisekundy"
+ +    IDS_TIME_MINUTES      "Minúty"
+ +    IDS_TIME_YEARS        "Roky"
+ +    IDS_TIME_SECONDS      "Sekundy"
+ +    IDS_TIME_WEEKS        "Tý\9edne"
+ +END
+ +
   // TYPES OF VELOCITIES
   STRINGTABLE DISCARDABLE
   BEGIN
index 0000000,df2c967,abe1272..8600b0e
mode 000000,100644,100644..100644
--- /dev/null
@@@@ -1,0 -1,736 -1,700 +1,736 @@@@
 -  *  Last modified: 2009-02-02
  - *  Last modified: 2008-12-29
+  /*
+   *  ReactOS Calc (Thai resource file)
  -    IDS_CURRENCY_EURO               "Euro"
+++ *  Last modified: 2009-01-27
+   */
+  
+  LANGUAGE LANG_THAI, SUBLANG_DEFAULT
+  
+  // Dialog
+  
+  IDD_DIALOG_SCIENTIFIC DIALOGEX 0, 0, 316, 161
+  STYLE WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+  CAPTION "à¤Ã×èͧ¤Ô´àÅ¢ ReactOS"
+  MENU IDR_MENU_SCIENTIFIC_1
+  FONT 8, "MS Shell Dlg", 0, 0, 0x1
+  BEGIN
+      GROUPBOX        "",IDC_STATIC,4,16,132,21
+      CONTROL         "ÊԺˡ",IDC_RADIO_HEX,"Button",BS_AUTORADIOBUTTON,8,24,29,10
+      CONTROL         "ÊÔº",IDC_RADIO_DEC,"Button",BS_AUTORADIOBUTTON,40,24,29,10
+      CONTROL         "Ỵ",IDC_RADIO_OCT,"Button",BS_AUTORADIOBUTTON,72,24,27,10
+      CONTROL         "Êͧ",IDC_RADIO_BIN,"Button",BS_AUTORADIOBUTTON,100,24,26,10
+      GROUPBOX        "",IDC_STATIC,4,36,76,21
+      CONTROL         "Inv",IDC_CHECK_INV,"Button",BS_AUTOCHECKBOX | 
+                      WS_TABSTOP,8,44,26,10
+      CONTROL         "Hyp",IDC_CHECK_HYP,"Button",BS_AUTOCHECKBOX | 
+                      WS_TABSTOP,40,44,29,10
+      CTEXT           "",IDC_TEXT_PARENT,84,40,24,17,SS_CENTERIMAGE,
+                      WS_EX_CLIENTEDGE
+      CTEXT           "",IDC_TEXT_MEMORY,112,40,24,17,SS_CENTERIMAGE,
+                      WS_EX_CLIENTEDGE
+      PUSHBUTTON      "Sta",IDC_BUTTON_STA,4,64,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "Ave",IDC_BUTTON_AVE,4,83,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "Sum",IDC_BUTTON_SUM,4,102,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "s",IDC_BUTTON_S,4,121,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "Dat",IDC_BUTTON_DAT,4,140,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | WS_DISABLED | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "F-E",IDC_BUTTON_FE,38,64,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "dms",IDC_BUTTON_DMS,38,83,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "sin",IDC_BUTTON_SIN,38,102,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "cos",IDC_BUTTON_COS,38,121,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "tan",IDC_BUTTON_TAN,38,140,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "(",IDC_BUTTON_LEFTPAR,64,64,24,17,BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "Exp",IDC_BUTTON_EXP,64,83,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "x^y",IDC_BUTTON_XeY,64,102,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "x^2",IDC_BUTTON_Xe2,64,121,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "x^3",IDC_BUTTON_Xe3,64,140,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      ")",IDC_BUTTON_RIGHTPAR,90,64,24,17,BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "ln",IDC_BUTTON_LN,90,83,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "log",IDC_BUTTON_LOG,90,102,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "n!",IDC_BUTTON_NF,90,121,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "1/x",IDC_BUTTON_RX,90,140,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "MC",IDC_BUTTON_MC,124,64,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "MR",IDC_BUTTON_MR,124,83,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "MS",IDC_BUTTON_MS,124,102,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "M+",IDC_BUTTON_MP,124,121,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "pi",IDC_BUTTON_PI,124,140,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "7",IDC_BUTTON_7,158,64,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "4",IDC_BUTTON_4,158,83,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "1",IDC_BUTTON_1,158,102,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "0",IDC_BUTTON_0,158,121,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "A",IDC_BUTTON_A,158,140,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "8",IDC_BUTTON_8,184,64,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "5",IDC_BUTTON_5,184,83,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "2",IDC_BUTTON_2,184,102,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "+/-",IDC_BUTTON_SIGN,184,121,24,17,BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "B",IDC_BUTTON_B,184,140,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "9",IDC_BUTTON_9,210,64,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "6",IDC_BUTTON_6,210,83,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "3",IDC_BUTTON_3,210,102,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      ",",IDC_BUTTON_DOT,210,121,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "C",IDC_BUTTON_C,210,140,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "/",IDC_BUTTON_DIV,236,64,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "*",IDC_BUTTON_MULT,236,83,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "-",IDC_BUTTON_SUB,236,102,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "+",IDC_BUTTON_ADD,236,121,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "D",IDC_BUTTON_D,236,140,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "Mod",IDC_BUTTON_MOD,262,64,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "Or",IDC_BUTTON_OR,262,83,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "Lsh",IDC_BUTTON_LSH,262,102,24,17,BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "=",IDC_BUTTON_EQU,262,121,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "E",IDC_BUTTON_E,262,140,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "And",IDC_BUTTON_AND,288,64,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "Xor",IDC_BUTTON_XOR,288,83,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "Not",IDC_BUTTON_NOT,288,102,24,17,BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "Int",IDC_BUTTON_INT,288,121,24,17,BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "F",IDC_BUTTON_F,288,140,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      GROUPBOX        "",IDC_STATIC,140,16,172,21
+      CONTROL         "ÊÕèàÇÔÃì´",IDC_RADIO_QWORD,"Button",BS_AUTORADIOBUTTON | 
+                      NOT WS_VISIBLE,148,24,37,10
+      CONTROL         "ÊͧàÇÔÃì´",IDC_RADIO_DWORD,"Button",BS_AUTORADIOBUTTON | 
+                      NOT WS_VISIBLE,188,24,37,10
+      CONTROL         "àÇÔÃì´",IDC_RADIO_WORD,"Button",BS_AUTORADIOBUTTON | NOT 
+                      WS_VISIBLE,232,24,33,10
+      CONTROL         "亵ì",IDC_RADIO_BYTE,"Button",BS_AUTORADIOBUTTON | NOT 
+                      WS_VISIBLE,272,24,30,10
+      CONTROL         "ͧÈÒ",IDC_RADIO_DEG,"Button",BS_AUTORADIOBUTTON,148,24,
+                      42,10
+      CONTROL         "àÃà´Õ¹",IDC_RADIO_RAD,"Button",BS_AUTORADIOBUTTON,192,
+                      24,42,10
+      CONTROL         "à¡Ãà´Õ¹",IDC_RADIO_GRAD,"Button",BS_AUTORADIOBUTTON,
+                      236,24,44,10
+      PUSHBUTTON      "C",IDC_BUTTON_CANC,272,40,40,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "CE",IDC_BUTTON_CE,228,40,40,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "áºç¡Ê໫",IDC_BUTTON_BACK,184,40,40,17,BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      RTEXT           "",IDC_TEXT_OUTPUT,4,4,308,12,SS_CENTERIMAGE,
+                      WS_EX_CLIENTEDGE
+      DEFPUSHBUTTON   "",IDC_BUTTON_FOCUS,0,0,5,5, NOT WS_VISIBLE
+  END
+  
+  IDD_DIALOG_STANDARD DIALOGEX 0, 0, 172, 127
+  STYLE WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+  CAPTION "ʶҹÀÒ¾·ÑèÇä»"
+  MENU IDR_MENU_STANDARD
+  FONT 8, "MS Shell Dlg", 0, 0, 0x1
+  BEGIN
+      PUSHBUTTON      "C",IDC_BUTTON_CANC,128,24,40,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "CE",IDC_BUTTON_CE,84,24,40,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "áºç¡Ê໫",IDC_BUTTON_BACK,40,24,40,17,BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      RTEXT           "",IDC_TEXT_OUTPUT,4,4,164,12,SS_CENTERIMAGE,
+                      WS_EX_CLIENTEDGE
+      PUSHBUTTON      "7",IDC_BUTTON_7,40,48,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "4",IDC_BUTTON_4,40,67,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "1",IDC_BUTTON_1,40,86,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "0",IDC_BUTTON_0,40,105,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "8",IDC_BUTTON_8,66,48,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "5",IDC_BUTTON_5,66,67,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "2",IDC_BUTTON_2,66,86,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "+/-",IDC_BUTTON_SIGN,66,105,24,17,BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "9",IDC_BUTTON_9,92,48,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "6",IDC_BUTTON_6,92,67,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "3",IDC_BUTTON_3,92,86,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      ",",IDC_BUTTON_DOT,92,105,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "/",IDC_BUTTON_DIV,118,48,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "*",IDC_BUTTON_MULT,118,67,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "-",IDC_BUTTON_SUB,118,86,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "+",IDC_BUTTON_ADD,118,105,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "ÃÒ¡",IDC_BUTTON_SQRT,144,48,24,17,BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "%",IDC_BUTTON_PERCENT,144,67,24,17,BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "1/x",IDC_BUTTON_RX,144,86,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "=",IDC_BUTTON_EQU,144,105,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      CTEXT           "",IDC_TEXT_MEMORY,4,24,24,17,SS_CENTERIMAGE,
+                      WS_EX_CLIENTEDGE
+      PUSHBUTTON      "MC",IDC_BUTTON_MC,4,48,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "MR",IDC_BUTTON_MR,4,67,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "MS",IDC_BUTTON_MS,4,86,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      PUSHBUTTON      "M+",IDC_BUTTON_MP,4,105,24,17,BS_CENTER | BS_VCENTER | 
+                      BS_NOTIFY | BS_OWNERDRAW | WS_TABSTOP
+      DEFPUSHBUTTON   "",IDC_BUTTON_FOCUS,0,0,5,5, NOT WS_VISIBLE
+  END
+  
+  IDD_DIALOG_CONVERSION DIALOGEX 0, 0, 320, 130
+  STYLE WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+  CAPTION "à¤Ã×èͧ¤Ô´àÅ¢ ReactOS"
+  MENU IDR_MENU_STANDARD
+  FONT 8, "MS Shell Dlg"
+  BEGIN
+      PUSHBUTTON      "Convert",IDC_BUTTON_CONVERT,35,105,76,17
+      COMBOBOX        IDC_COMBO_CATEGORY,4,31,140,168,CBS_DROPDOWNLIST | 
+                      WS_VSCROLL | WS_TABSTOP | CBS_SORT
+      LTEXT           "Category:",IDC_STATIC,4,20,56,8
+      COMBOBOX        IDC_COMBO_FROM,4,60,140,168,CBS_DROPDOWNLIST | 
+                      WS_VSCROLL | WS_TABSTOP | CBS_SORT
+      LTEXT           "Convert from:",IDC_STATIC,4,49,56,8
+      COMBOBOX        IDC_COMBO_TO,4,87,140,168,CBS_DROPDOWNLIST | WS_VSCROLL | 
+                      WS_TABSTOP | CBS_SORT
+      LTEXT           "Convert to:",IDC_STATIC,4,76,56,8
+      CONTROL         "C",IDC_BUTTON_CANC,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,276,24,40,17
+      CONTROL         "CE",IDC_BUTTON_CE,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,232,24,40,17
+      CONTROL         "áºç¡Ê໫",IDC_BUTTON_BACK,"Button",BS_OWNERDRAW | 
+                      BS_CENTER | BS_VCENTER | BS_NOTIFY | WS_TABSTOP,188,24,
+                      40,17
+      RTEXT           "",IDC_TEXT_OUTPUT,4,4,312,12,SS_CENTERIMAGE,
+                      WS_EX_CLIENTEDGE
+      CONTROL         "7",IDC_BUTTON_7,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,188,48,24,17
+      CONTROL         "4",IDC_BUTTON_4,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,188,67,24,17
+      CONTROL         "1",IDC_BUTTON_1,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,188,86,24,17
+      CONTROL         "0",IDC_BUTTON_0,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,188,105,24,17
+      CONTROL         "8",IDC_BUTTON_8,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,214,48,24,17
+      CONTROL         "5",IDC_BUTTON_5,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,214,67,24,17
+      CONTROL         "2",IDC_BUTTON_2,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,214,86,24,17
+      CONTROL         "+/-",IDC_BUTTON_SIGN,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,214,105,24,17
+      CONTROL         "9",IDC_BUTTON_9,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,240,48,24,17
+      CONTROL         "6",IDC_BUTTON_6,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,240,67,24,17
+      CONTROL         "3",IDC_BUTTON_3,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,240,86,24,17
+      CONTROL         ",",IDC_BUTTON_DOT,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,240,105,24,17
+      CONTROL         "/",IDC_BUTTON_DIV,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,266,48,24,17
+      CONTROL         "*",IDC_BUTTON_MULT,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,266,67,24,17
+      CONTROL         "-",IDC_BUTTON_SUB,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,266,86,24,17
+      CONTROL         "+",IDC_BUTTON_ADD,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,266,105,24,17
+      CONTROL         "ÃÒ¡",IDC_BUTTON_SQRT,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,292,48,24,17
+      CONTROL         "%",IDC_BUTTON_PERCENT,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,292,67,24,17
+      CONTROL         "1/x",IDC_BUTTON_RX,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,292,86,24,17
+      CONTROL         "=",IDC_BUTTON_EQU,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,292,105,24,17
+      CTEXT           "",IDC_TEXT_MEMORY,152,24,24,17,SS_CENTERIMAGE,
+                      WS_EX_CLIENTEDGE
+      CONTROL         "MC",IDC_BUTTON_MC,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,152,48,24,17
+      CONTROL         "MR",IDC_BUTTON_MR,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,152,67,24,17
+      CONTROL         "MS",IDC_BUTTON_MS,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,152,86,24,17
+      CONTROL         "M+",IDC_BUTTON_MP,"Button",BS_OWNERDRAW | BS_CENTER | 
+                      BS_VCENTER | BS_NOTIFY | WS_TABSTOP,152,105,24,17
+      DEFPUSHBUTTON   "",IDC_BUTTON_FOCUS,0,0,5,5,NOT WS_VISIBLE
+  END
+  
+  IDD_DIALOG_ABOUT DIALOGEX DISCARDABLE  0, 0, 264, 169
+  STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+  CAPTION "à¡ÕèÂǡѺ ReactOS Calc"
+  FONT 8, "MS Shell Dlg"
+  BEGIN
+      DEFPUSHBUTTON   "µ¡Å§",IDOK,105,148,52,16
+      CONTROL         IDB_BITMAP_ROS,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE | 
+                      SS_REALSIZEIMAGE | WS_BORDER,4,4,104,48
+      LTEXT           "à¤Ã×èͧ¤Ô´àÅ¢ ReactOS",IDC_STATIC,120,12,132,8,
+                      SS_CENTERIMAGE
+      LTEXT           "ÃØè¹ ",IDC_TEXT_VERSION,120,20,132,8,SS_CENTERIMAGE
+      LTEXT           "Written by Carlo Bramini",IDC_STATIC,120,32,132,8,
+                      SS_CENTERIMAGE
+      GROUPBOX        "",IDC_STATIC,112,0,148,52
+      GROUPBOX        "",IDC_STATIC,4,56,256,88
+      EDITTEXT        IDC_EDIT_LICENSE,12,68,240,68,ES_MULTILINE | ES_READONLY | 
+                      WS_VSCROLL
+  END
+  
+  IDD_DIALOG_STAT DIALOGEX DISCARDABLE  0, 0, 163, 85
+  STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+  CAPTION "¡ÅèͧʶҹÐ"
+  FONT 8, "MS Shell Dlg"
+  BEGIN
+      LISTBOX         IDC_LIST_STAT,4,4,156,40,LBS_NOINTEGRALHEIGHT | 
+                      WS_VSCROLL | WS_TABSTOP
+      PUSHBUTTON      "RET",IDC_BUTTON_RET,4,48,36,16
+      PUSHBUTTON      "LOAD",IDC_BUTTON_LOAD,44,48,36,16
+      PUSHBUTTON      "CD",IDC_BUTTON_CD,84,48,36,16
+      PUSHBUTTON      "CAD",IDC_BUTTON_CAD,124,48,36,16
+      CTEXT           "n=0",IDC_TEXT_NITEMS,4,68,156,12,SS_CENTERIMAGE | 
+                      SS_SUNKEN
+  END
+  
+  // Menus
+  
+  IDR_MENU_SCIENTIFIC_1 MENU DISCARDABLE 
+  BEGIN
+      POPUP "á&¡éä¢"
+      BEGIN
+          MENUITEM "¤Ñ´ÅÍ¡\tCTRL-C",               IDM_EDIT_COPY
+          MENUITEM "ÇÒ§\tCTRL-V",                 IDM_EDIT_PASTE
+      END
+      POPUP "&ÁØÁÁͧ"
+      BEGIN
+          MENUITEM "ẺÁҵðҹ",                  IDM_VIEW_STANDARD, CHECKED
+          MENUITEM "ẺÇÔ·ÂÒÈÒʵÃì",                IDM_VIEW_SCIENTIFIC, CHECKED
+          MENUITEM "¤ÇÒÁà»ÅÕè¹á»Å§",               IDM_VIEW_CONVERSION
+          MENUITEM SEPARATOR
+          MENUITEM "°Ò¹ÊԺˡ\tF5",                 IDM_VIEW_HEX, CHECKED
+          MENUITEM "°Ò¹ÊÔº\tF6",                   IDM_VIEW_DEC, CHECKED
+          MENUITEM "°Ò¹á»´\tF7",                  IDM_VIEW_OCT, CHECKED
+          MENUITEM "°Ò¹Êͧ\tF8",                  IDM_VIEW_BIN, CHECKED
+          MENUITEM SEPARATOR
+          MENUITEM "ͧÈÒ\tF2",                    IDM_VIEW_DEG, CHECKED
+          MENUITEM "àÃà´Õ¹\tF3",                  IDM_VIEW_RAD, CHECKED
+          MENUITEM "à¡Ãà´Õ¹\tF4",                 IDM_VIEW_GRAD, CHECKED
+          MENUITEM SEPARATOR
+          MENUITEM "áÊ´§ËÅÑ¡µÑÇàÅ¢",                IDM_VIEW_GROUP, CHECKED
+      END
+      POPUP "&ªèÇÂàËÅ×Í"
+      BEGIN
+          MENUITEM "¢éÍÁÙŪèÇÂàËÅ×Í",                 IDM_HELP_HELP
+          MENUITEM SEPARATOR
+          MENUITEM "à¡ÕèÂǡѺ ReactOS Calc",         IDM_HELP_ABOUT
+      END
+  END
+  
+  IDR_MENU_SCIENTIFIC_2 MENU DISCARDABLE 
+  BEGIN
+      POPUP "á&¡éä¢"
+      BEGIN
+          MENUITEM "¤Ñ´ÅÍ¡\tCTRL-C",               IDM_EDIT_COPY
+          MENUITEM "ÇÒ§\tCTRL-V",                 IDM_EDIT_PASTE
+      END
+      POPUP "&ÁØÁÁͧ"
+      BEGIN
+          MENUITEM "ẺÁҵðҹ",                  IDM_VIEW_STANDARD, CHECKED
+          MENUITEM "ẺÇÔ·ÂÒÈÒʵÃì",                IDM_VIEW_SCIENTIFIC, CHECKED
+          MENUITEM "¤ÇÒÁà»ÅÕè¹á»Å§",               IDM_VIEW_CONVERSION
+          MENUITEM SEPARATOR
+          MENUITEM "°Ò¹ÊԺˡ\tF5",                 IDM_VIEW_HEX, CHECKED
+          MENUITEM "°Ò¹ÊÔº\tF6",                   IDM_VIEW_DEC, CHECKED
+          MENUITEM "°Ò¹á»´\tF7",                  IDM_VIEW_OCT, CHECKED
+          MENUITEM "°Ò¹Êͧ\tF8",                  IDM_VIEW_BIN, CHECKED
+          MENUITEM SEPARATOR
+          MENUITEM "¤ÇÍ·àÇÔÃì´\tF12",               IDM_VIEW_QWORD, CHECKED
+          MENUITEM "´ÑºàºÔÅàÇÔÃì´\tF2",               IDM_VIEW_DWORD, CHECKED
+          MENUITEM "àÇÔÃì´\tF3",                    IDM_VIEW_WORD, CHECKED
+          MENUITEM "亵ì\tF4",                     IDM_VIEW_BYTE, CHECKED
+          MENUITEM SEPARATOR
+          MENUITEM "áÊ´§ËÅÑ¡µÑÇàÅ¢",                IDM_VIEW_GROUP, CHECKED
+      END
+      POPUP "&ªèÇÂàËÅ×Í"
+      BEGIN
+          MENUITEM "¢éÍÁÙŪèÇÂàËÅ×Í",                 IDM_HELP_HELP
+          MENUITEM SEPARATOR
+          MENUITEM "à¡ÕèÂǡѺ ReactOS Calc",         IDM_HELP_ABOUT
+      END
+  END
+  
+  IDR_MENU_STANDARD MENU DISCARDABLE 
+  BEGIN
+      POPUP "á&¡éä¢"
+      BEGIN
+          MENUITEM "¤Ñ´ÅÍ¡\tCTRL-C",               IDM_EDIT_COPY
+          MENUITEM "ÇÒ§\tCTRL-V",                 IDM_EDIT_PASTE
+      END
+      POPUP "&ÁØÁÁͧ"
+      BEGIN
+          MENUITEM "ẺÁҵðҹ",                  IDM_VIEW_STANDARD, CHECKED
+          MENUITEM "ẺÇÔ·ÂÒÈÒʵÃì",                IDM_VIEW_SCIENTIFIC, CHECKED
+          MENUITEM "¤ÇÒÁà»ÅÕè¹á»Å§",               IDM_VIEW_CONVERSION
+          MENUITEM SEPARATOR
+          MENUITEM "áÊ´§ËÅÑ¡µÑÇàÅ¢",                IDM_VIEW_GROUP, CHECKED
+      END
+      POPUP "&ªèÇÂàËÅ×Í"
+      BEGIN
+          MENUITEM "¢éÍÁÙŪèÇÂàËÅ×Í",                 IDM_HELP_HELP
+          MENUITEM SEPARATOR
+          MENUITEM "à¡ÕèÂǡѺ ReactOS Calc",         IDM_HELP_ABOUT
+      END
+  END
+  
+  // String Tables
+  
+  STRINGTABLE DISCARDABLE 
+  BEGIN
+      IDS_STRING_LICENSE      "ReactOS Calc is free software released under GNU GPL license.\r\n\r\nYou can get a copy of GNU GPL license here:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nYou can also get a translation of GNU GPL license here:\r\nhttp://www.gnu.org/licenses/translations.html"
+      IDS_MATH_ERROR          "¼Ô´¾ÅÒ´"
+      IDS_QUICKHELP           "ÊÔ觹Õé¤×ÍÍÐäà?"
+  END
+  
+  // types of conversion
+  STRINGTABLE DISCARDABLE
+  BEGIN
+ +    IDS_CONV_ANGLE          "ÁØÁ"
+      IDS_CONV_AREA           "¾×é¹·Õè"
+      IDS_CONV_CONSUMPTION    "Consumption (engines)"
+      IDS_CONV_CURRENCY       "Currencies"
+      IDS_CONV_ENERGY         "Energy"
+      IDS_CONV_LENGTH         "Lenghts"
+      IDS_CONV_POWER          "Power"
+      IDS_CONV_PRESSURE       "Pressure"
+      IDS_CONV_TEMPERATURE    "Temperature"
+ +    IDS_CONV_TIME           "àÇÅÒ"
+      IDS_CONV_VELOCITY       "Velocity"
+      IDS_CONV_VOLUME         "Volume"
+      IDS_CONV_WEIGHT         "Weights"
+  END
+  
+ +// TYPES OF ANGLES
+ +STRINGTABLE DISCARDABLE
+ +BEGIN
+ +    IDS_ANGLE_DEGREES       "ͧÈÒ"
+ +    IDS_ANGLE_GRADIANS      "à¡Ãà´Õ¹"
+ +    IDS_ANGLE_RADIANS       "àÃà´Õ¹"
+ +END
+ +
+  // TYPES OF AREAS
+  STRINGTABLE DISCARDABLE
+  BEGIN
+      IDS_AREA_ACRES                  "Acres"
+      IDS_AREA_ACRES_BRAZIL           "Acres (Brazil)"
+      IDS_AREA_ACRES_FRANCE           "Acres (France)"
+      IDS_AREA_ACRES_SCOTS            "Acres (Scots)"
+      IDS_AREA_ACRES_US               "Acres (US)"
+      IDS_AREA_ARES                   "Ares"
+      IDS_AREA_CHOU                   "Chou"
+      IDS_AREA_DANBO                  "Danbo"
+      IDS_AREA_HECTARES               "Hectares"
+      IDS_AREA_JEONGBO                "Jeongbo"
+      IDS_AREA_MORGEN_HUNGARY         "Morgen (Hungary)"
+      IDS_AREA_MU                     "Mu"
+      IDS_AREA_PING                   "Ping"
+      IDS_AREA_PYEONG                 "Pyeong"
+      IDS_AREA_PYEONGBANGJA           "Pyeongbangja"
+      IDS_AREA_RAI                    "Rai"
+      IDS_AREA_SE                     "Se"
+      IDS_AREA_SQUARE_CENTIMETERS     "Square centimeters"
+      IDS_AREA_SQUARE_CHR             "Square chr"
+      IDS_AREA_SQUARE_FATHOMS         "Square fathoms"
+      IDS_AREA_SQUARE_FATHOMS_HUNGARY "Square fathoms (Hungary)"
+      IDS_AREA_SQUARE_FEET            "Square feet"
+      IDS_AREA_SQUARE_INCHES          "Square inches"
+      IDS_AREA_SQUARE_KILOMETERS      "Square kilometers"
+      IDS_AREA_SQUARE_LAR             "Square lar"
+      IDS_AREA_SQUARE_METER           "Square meter"
+      IDS_AREA_SQUARE_MILES           "Square miles"
+      IDS_AREA_SQUARE_MILLIMETERS     "Square millimeters"
+      IDS_AREA_SQUARE_SHAKU           "Square shaku"
+      IDS_AREA_SQUARE_TSUEN           "Square tsuen"
+      IDS_AREA_SQUARE_VA              "Square va"
+      IDS_AREA_SQUARE_YARD            "Square yard"
+      IDS_AREA_TAN                    "Tan"
+      IDS_AREA_TSUBO                  "Tsubo"
+  END
+  
+  // TYPES OF COMSUMPTIONS
+  STRINGTABLE DISCARDABLE
+  BEGIN
+      IDS_CONSUMPTION_KM_PER_L        "Kilometer/liter"
+      IDS_CONSUMPTION_L_PER_100_KM    "Liters/100 kilometers"
+      IDS_CONSUMPTION_MILES_GALLON_UK "Miles/gallon (UK)"
+      IDS_CONSUMPTION_MILES_GALLON_US "Miles/gallon (US)"
+  END
+  
+  // TYPES OF CURRENCIES
+  STRINGTABLE DISCARDABLE
+  BEGIN
+      IDS_CURRENCY_AUSTRIAN_SCHILLING "Austrian schilling"
+      IDS_CURRENCY_BELGIAN_FRANC      "Belgian franc"
+      IDS_CURRENCY_CYPRIOT_POUND      "Cypriot pound"
+ +    IDS_CURRENCY_CZECH_KORUNA       "Czech koruna"
+      IDS_CURRENCY_DEUTSCHE_MARK      "Deutsche Mark"
+      IDS_CURRENCY_DUTCH_GUILDER      "Dutch guilder"
  -    IDS_ENERGY_15_C_CALORIES        "15 ^C calories"
+ +    IDS_CURRENCY_EURO               "ÂÙâÃ"
+      IDS_CURRENCY_FINNISH_MARKKA     "Finnish markka"
+      IDS_CURRENCY_FRENCH_FRANC       "French franc"
+      IDS_CURRENCY_GREEK_DRACHMA      "Greek Drachma"
+      IDS_CURRENCY_IRISH_POUND        "Irish pound"
+      IDS_CURRENCY_ITALIAN_LIRA       "Italian lira"
+      IDS_CURRENCY_LUXEMBOURG_FRANC   "Luxembourg franc"
+      IDS_CURRENCY_MALTESE_LIRA       "Maltese lira"
+      IDS_CURRENCY_PORTOGUESE_ESCUDO  "Portoguese escudo"
+      IDS_CURRENCY_SLOVAK_KORUNA      "Slovak koruna"
+      IDS_CURRENCY_SLOVENIAN_TOLAR    "Slovenian tolar"
+      IDS_CURRENCY_SPANISH_PESETA     "Spanish peseta"
+  END
+  
+  // TYPES OF ENERGIES
+  STRINGTABLE DISCARDABLE
+  BEGIN
  -    IDS_LENGTH_ASTRONOMILA_UNITS    "Astronomila units"
+ +    IDS_ENERGY_15_C_CALORIES        "15 ^0C á¤ÅÍÃÕ"
+ +    IDS_ENERGY_BTUS                 "British Thermal Units"
+      IDS_ENERGY_ERGS                 "Ergs"
+ +    IDS_ENERGY_EVS                  "Electron-Volts"
+ +    IDS_ENERGY_FOOT_POUNDS          "Foot-Pounds"
+      IDS_ENERGY_IT_CALORIES          "International Table calories"
+ +    IDS_ENERGY_IT_KILOCALORIES      "International Table kilocalories"
+      IDS_ENERGY_JOULES               "Joules"
+      IDS_ENERGY_KILOJOULES           "Kilojoules"
+      IDS_ENERGY_KILOWATT_HOURS       "Kilowatt hours"
+      IDS_ENERGY_NUTRITION_CALORIES   "Nutrition calories"
+      IDS_ENERGY_TH_CALORIES          "Thermochemical calorie"
+  END
+  
+  // TYPES OF LENGTHS
+  STRINGTABLE DISCARDABLE
+  BEGIN
+      IDS_LENGTH_ANGSTROMS            "Angstroms"
 -     IDS_TIME_MILLISECONDS "Milliseconds"
+ +    IDS_LENGTH_ASTRONOMICAL_UNITS   "Astronomical units"
+      IDS_LENGTH_BARLEYCORNS          "Barleycorns"
+      IDS_LENGTH_CENTIMETERS          "Centimeters"
+      IDS_LENGTH_CHAINS_UK            "Chains (UK)"
+      IDS_LENGTH_CHI                  "Chi"
+      IDS_LENGTH_CHOU                 "Chou"
+      IDS_LENGTH_CHR                  "Chr"
+      IDS_LENGTH_CUN                  "Cun"
+      IDS_LENGTH_FATHOMS              "Fathoms"
+      IDS_LENGTH_FATHOMS_HUNGARY      "Fathoms (Hungary)"
+      IDS_LENGTH_FEET                 "Feet"
+      IDS_LENGTH_FURLONGS             "Furlongs"
+      IDS_LENGTH_GAN                  "Gan"
+      IDS_LENGTH_HANDS                "Hands"
+      IDS_LENGTH_HUNH                 "Hunh"
+      IDS_LENGTH_INCHES               "Inches"
+      IDS_LENGTH_JA                   "Ja"
+      IDS_LENGTH_JEONG                "Jeong"
+      IDS_LENGTH_KABIET               "Kabiet"
+      IDS_LENGTH_KEN                  "Ken"
+      IDS_LENGTH_KEUB                 "Keub"
+      IDS_LENGTH_KILOMETERS           "Kilometers"
+      IDS_LENGTH_LAR                  "Lar"
+      IDS_LENGTH_LIGHT_YEARS          "Light years"
+      IDS_LENGTH_LINKS_UK             "Links (UK)"
+      IDS_LENGTH_METERS               "Meters"
+ +    IDS_LENGTH_MICRONS              "Microns"
+      IDS_LENGTH_MILES                "Miles"
+      IDS_LENGTH_MILLIMETERS          "Millimeters"
+      IDS_LENGTH_NAUTICAL_MILES       "Nautical miles"
+      IDS_LENGTH_NIEU                 "Nieu"
+      IDS_LENGTH_PARSECS              "Parsecs"
+      IDS_LENGTH_PICAS                "Picas"
+      IDS_LENGTH_RI_JAPAN             "Ri (Japan)"
+      IDS_LENGTH_RI_KOREA             "Ri (Korea)"
+ +    IDS_LENGTH_RODS                 "Rods"
+      IDS_LENGTH_SAWK                 "Sawk"
+      IDS_LENGTH_SEN                  "Sen"
+      IDS_LENGTH_SHAKU                "Shaku"
+      IDS_LENGTH_SPAN                 "Span"
+      IDS_LENGTH_SUN                  "Sun"
+      IDS_LENGTH_TSUEN                "Tsuen"
+      IDS_LENGTH_VA                   "Va"
+      IDS_LENGTH_YARDS                "Yards"
+      IDS_LENGTH_YOTE                 "Yote"
+      IDS_LENGTH_ZHANG                "Zhang"
+  END
+  
+  // TYPES OF POWERS
+  STRINGTABLE DISCARDABLE
+  BEGIN
+ +    IDS_POWER_BTUS_PER_MINUTE       "British Thermal Units per minute"
+ +    IDS_POWER_FPS_PER_MINUTE        "Foot-Pounds per minute"
+      IDS_POWER_HORSEPOWER            "Horsepower"
+      IDS_POWER_KILOWATTS             "Kilowatts"
+      IDS_POWER_MEGAWATTS             "Megawatts"
+      IDS_POWER_WATTS                 "Watts"
+  END
+  
+  // TYPE OF PRESSURES
+  STRINGTABLE DISCARDABLE
+  BEGIN
+      IDS_PRESSURE_ATMOSPHERES        "Atmospheres"
+      IDS_PRESSURE_BARS               "Bars"
+ +    IDS_PRESSURE_HECTOPASCALS       "Hectopascals"
+ +    IDS_PRESSURE_KILOPASCALS        "Kilopascals"
+      IDS_PRESSURE_MM_OF_MERCURY      "Millimeters of mercury"
+      IDS_PRESSURE_PASCALS            "Pascals"
+      IDS_PRESSURE_PSI                "Pounds-force per square inch"
+  END
+  
+  // TYPES OF TEMPERATURES
+  STRINGTABLE DISCARDABLE
+  BEGIN
+      IDS_TEMPERATURE_CELSIUS         "Celsius"
+      IDS_TEMPERATURE_FAHRENHEIT      "Fahrenheit"
+      IDS_TEMPERATURE_KELVIN          "Kelvin"
+      IDS_TEMPERATURE_RANKINE         "Rankine"
+  END
+  
+ +// TYPES OF TIME
+ +STRINGTABLE DISCARDABLE
+ +BEGIN
+ +    IDS_TIME_DAYS         "Days"
+ +    IDS_TIME_HOURS        "Hours"
+ +    IDS_TIME_MICROSECONDS "Microseconds"
+++    IDS_TIME_MILISECONDS  "Miliseconds"
+ +    IDS_TIME_MINUTES      "Minutes"
+ +    IDS_TIME_SECONDS      "Seconds"
+ +    IDS_TIME_WEEKS        "Weeks"
+ +    IDS_TIME_YEARS        "Years"
+ +END
+ +
+  // TYPES OF VELOCITIES
+  STRINGTABLE DISCARDABLE
+  BEGIN
+ +    IDS_VELOCITY_CMS_SECOND         "Centimeters/hour"
+      IDS_VELOCITY_FEET_HOUR          "Feet/hour"
+ +    IDS_VELOCITY_FEET_SECOND        "Feet/second"
+      IDS_VELOCITY_KILOMETERS_HOUR    "Kilometers/hour"
+      IDS_VELOCITY_KNOTS              "Knots"
+      IDS_VELOCITY_MACH               "Mach"
+      IDS_VELOCITY_METERS_SECOND      "Meters/second"
+      IDS_VELOCITY_MILES_HOUR         "Miles/hour"
+  END
+  
+  // TYPES OF VOLUMES
+  STRINGTABLE DISCARDABLE
+  BEGIN
+      IDS_VOLUME_BARRELS_UK           "Barrels (UK)"
+      IDS_VOLUME_BARRELS_OIL          "Barrels oil"
+      IDS_VOLUME_BUN                  "Bun"
+      IDS_VOLUME_BUSHELS_UK           "Bushels (UK)"
+      IDS_VOLUME_BUSHELS_US           "Bushels (US)"
+      IDS_VOLUME_CUBIC_CENTIMETERS    "Cubic centimeters"
+      IDS_VOLUME_CUBIC_FEET           "Cubic feet"
+      IDS_VOLUME_CUBIC_INCHES         "Cubic inches"
+      IDS_VOLUME_CUBIC_METERS         "Cubic meters"
+      IDS_VOLUME_CUBIC_YARDS          "Cubic yards"
+      IDS_VOLUME_DOE                  "Doe"
+      IDS_VOLUME_FLUID_OUNCES_UK      "Fluid ounces (UK)"
+      IDS_VOLUME_FLUID_OUNCES_US      "Fluid ounces (US)"
+      IDS_VOLUME_GALLONS_UK           "Gallons (UK)"
+      IDS_VOLUME_GALLONS_DRY_US       "Gallons, dry (US)"
+      IDS_VOLUME_GALLONS_LIQUID_US    "Gallons, liquid (US)"
+      IDS_VOLUME_GOU                  "Gou"
+      IDS_VOLUME_HOP                  "Hop"
+      IDS_VOLUME_ICCE                 "Icce"
+      IDS_VOLUME_KWIAN                "Kwian"
+      IDS_VOLUME_LITERS               "Liters"
+      IDS_VOLUME_MAL                  "Mal"
+      IDS_VOLUME_MILLILITERS          "Milliliters"
+      IDS_VOLUME_PINTS_UK             "Pints (UK)"
+      IDS_VOLUME_PINTS_DRY_US         "Pints, dry (US)"
+      IDS_VOLUME_PINTS_LIQUID_US      "Pints, liquid (US)"
+      IDS_VOLUME_QUARTS_UK            "Quarts (UK)"
+      IDS_VOLUME_QUARTS_DRY_US        "Quarts, dry (US)"
+      IDS_VOLUME_QUARTS_LIQUID_US     "Quarts, liquid (US)"
+      IDS_VOLUME_SEKI                 "Seki"
+      IDS_VOLUME_SYOU                 "Syou"
+      IDS_VOLUME_TANANLOUNG           "Tananloung"
+      IDS_VOLUME_TANG                 "Tang"
+      IDS_VOLUME_TO                   "To"
+  END
+  
+  // TYPES OF WEIGHTS
+  STRINGTABLE DISCARDABLE
+  BEGIN
+      IDS_WEIGHT_BAHT                 "Baht"
+      IDS_WEIGHT_CARATS               "Carats"
+      IDS_WEIGHT_CHUNG                "Chung"
+      IDS_WEIGHT_DON                  "Don"
+      IDS_WEIGHT_GEUN                 "Geun"
+      IDS_WEIGHT_GRAMS                "Grams"
+      IDS_WEIGHT_GWAN                 "Gwan"
+      IDS_WEIGHT_HARB                 "Harb"
+      IDS_WEIGHT_JIN_CHINA            "Jin (China)"
+      IDS_WEIGHT_JIN_TAIWAN           "Jin (Taiwan)"
+      IDS_WEIGHT_KAN                  "Kan"
+      IDS_WEIGHT_KILOGRAMS            "Kilograms"
+      IDS_WEIGHT_KIN                  "Kin"
+      IDS_WEIGHT_LIANG_CHINA          "Liang (China)"
+      IDS_WEIGHT_LIANG_TAIWAN         "Liang (Taiwan)"
+      IDS_WEIGHT_MONME                "Monme"
+      IDS_WEIGHT_OUNCES_AVOIRDUPOIS   "Ounces, avoirdupois"
+      IDS_WEIGHT_OUNCES_TROY          "Ounces, troy"
+      IDS_WEIGHT_POUNDS               "Pounds"
+      IDS_WEIGHT_QUINTAL_METRIC       "Quintal (metric)"
+      IDS_WEIGHT_SALOUNG              "Saloung"
+      IDS_WEIGHT_STONES               "Stones"
+      IDS_WEIGHT_TAMLUNG              "Tamlung"
+      IDS_WEIGHT_TONNES               "Tonnes"
+      IDS_WEIGHT_TONS_UK              "Tons (UK)"
+      IDS_WEIGHT_TONS_US              "Tons (US)"
+  END
   // TYPES OF TEMPERATURES
   STRINGTABLE DISCARDABLE
   BEGIN
- -    IDS_TEMPERATURE_CELSIUS         "Celsius"
- -    IDS_TEMPERATURE_FAHRENHEIT      "Fahrenheit"
- -    IDS_TEMPERATURE_KELVIN          "Kelvin"
- -    IDS_TEMPERATURE_RANKINE         "Rankine"
+ +    IDS_TEMPERATURE_CELSIUS         "ãðàäóñ (çà øêàëîþ Öåëüñ³ÿ)"
+ +    IDS_TEMPERATURE_FAHRENHEIT      "ãðàäóñ (çà øêàëîþ Ôàðåíãåéòà)"
+ +    IDS_TEMPERATURE_KELVIN          "ãðàäóñ (çà øêàëîþ Êåëüâ³íà)"
+ +    IDS_TEMPERATURE_RANKINE         "ãðàäóñ (çà øêàëîþ Ðàíê³íà)"
+ +END
+ +
+ +// TYPES OF TIME
+ +STRINGTABLE DISCARDABLE
+ +BEGIN
+ +    IDS_TIME_DAYS         "äîáà"
+ +    IDS_TIME_HOURS        "ãîäèíà"
+ +    IDS_TIME_MICROSECONDS "ì³êðîñåêóíäà"
 -     IDS_TIME_MILLISECONDS "ì³ë³ñåêóíäà"
+++    IDS_TIME_MILISECONDS  "ì³ë³ñåêóíäà"
+ +    IDS_TIME_MINUTES      "õâèëèíà"
+ +    IDS_TIME_SECONDS      "ñåêóíäà"
+ +    IDS_TIME_WEEKS        "òèæäåíü"
+ +    IDS_TIME_YEARS        "ð³ê"
   END
   
   // TYPES OF VELOCITIES
   #define IDC_BUTTON_RSH                  1093
   
   /* TYPES OF CONVERSIONS */
- -#define IDS_CONV_AREA                   2000
- -#define IDS_CONV_CONSUMPTION            2001
- -#define IDS_CONV_CURRENCY               2002
- -#define IDS_CONV_ENERGY                 2003
- -#define IDS_CONV_LENGTH                 2004
- -#define IDS_CONV_POWER                  2005
- -#define IDS_CONV_PRESSURE               2006
- -#define IDS_CONV_TEMPERATURE            2007
- -#define IDS_CONV_VELOCITY               2008
- -#define IDS_CONV_VOLUME                 2009
- -#define IDS_CONV_WEIGHT                 2010
+ +#define IDS_CONV_ANGLE                  2000
+ +#define IDS_CONV_AREA                   2001
+ +#define IDS_CONV_CONSUMPTION            2002
+ +#define IDS_CONV_CURRENCY               2003
+ +#define IDS_CONV_ENERGY                 2004
+ +#define IDS_CONV_LENGTH                 2005
+ +#define IDS_CONV_POWER                  2006
+ +#define IDS_CONV_PRESSURE               2007
+ +#define IDS_CONV_TEMPERATURE            2008
+ +#define IDS_CONV_TIME                   2009
+ +#define IDS_CONV_VELOCITY               2010
+ +#define IDS_CONV_VOLUME                 2011
+ +#define IDS_CONV_WEIGHT                 2012
+ +
+ +/* TYPES OF ANGLES */
+ +#define IDS_ANGLE_DEGREES               2100
+ +#define IDS_ANGLE_GRADIANS              2101
+ +#define IDS_ANGLE_RADIANS               2102
   
   /* TYPES OF AREAS */
- -#define IDS_AREA_ACRES                  2100
- -#define IDS_AREA_ACRES_BRAZIL           2101
- -#define IDS_AREA_ACRES_FRANCE           2102
- -#define IDS_AREA_ACRES_SCOTS            2103
- -#define IDS_AREA_ACRES_US               2104
- -#define IDS_AREA_ARES                   2105
- -#define IDS_AREA_CHOU                   2106
- -#define IDS_AREA_DANBO                  2107
- -#define IDS_AREA_HECTARES               2108
- -#define IDS_AREA_JEONGBO                2109
- -#define IDS_AREA_MORGEN_HUNGARY         2110
- -#define IDS_AREA_MU                     2111
- -#define IDS_AREA_PING                   2112
- -#define IDS_AREA_PYEONG                 2113
- -#define IDS_AREA_PYEONGBANGJA           2114
- -#define IDS_AREA_RAI                    2115
- -#define IDS_AREA_SE                     2116
- -#define IDS_AREA_SQUARE_CENTIMETERS     2117
- -#define IDS_AREA_SQUARE_CHR             2118
- -#define IDS_AREA_SQUARE_FATHOMS         2119
- -#define IDS_AREA_SQUARE_FATHOMS_HUNGARY 2120
- -#define IDS_AREA_SQUARE_FEET            2121
- -#define IDS_AREA_SQUARE_INCHES          2122
- -#define IDS_AREA_SQUARE_KILOMETERS      2123
- -#define IDS_AREA_SQUARE_LAR             2124
- -#define IDS_AREA_SQUARE_METER           2125
- -#define IDS_AREA_SQUARE_MILES           2126
- -#define IDS_AREA_SQUARE_MILLIMETERS     2127
- -#define IDS_AREA_SQUARE_SHAKU           2128
- -#define IDS_AREA_SQUARE_TSUEN           2129
- -#define IDS_AREA_SQUARE_VA              2130
- -#define IDS_AREA_SQUARE_YARD            2131
- -#define IDS_AREA_TAN                    2132
- -#define IDS_AREA_TSUBO                  2133
+ +#define IDS_AREA_ACRES                  2200
+ +#define IDS_AREA_ACRES_BRAZIL           2201
+ +#define IDS_AREA_ACRES_FRANCE           2202
+ +#define IDS_AREA_ACRES_SCOTS            2203
+ +#define IDS_AREA_ACRES_US               2204
+ +#define IDS_AREA_ARES                   2205
+ +#define IDS_AREA_CHOU                   2206
+ +#define IDS_AREA_DANBO                  2207
+ +#define IDS_AREA_HECTARES               2208
+ +#define IDS_AREA_JEONGBO                2209
+ +#define IDS_AREA_MORGEN_HUNGARY         2210
+ +#define IDS_AREA_MU                     2211
+ +#define IDS_AREA_PING                   2212
+ +#define IDS_AREA_PYEONG                 2213
+ +#define IDS_AREA_PYEONGBANGJA           2214
+ +#define IDS_AREA_RAI                    2215
+ +#define IDS_AREA_SE                     2216
+ +#define IDS_AREA_SQUARE_CENTIMETERS     2217
+ +#define IDS_AREA_SQUARE_CHR             2218
+ +#define IDS_AREA_SQUARE_FATHOMS         2219
+ +#define IDS_AREA_SQUARE_FATHOMS_HUNGARY 2220
+ +#define IDS_AREA_SQUARE_FEET            2221
+ +#define IDS_AREA_SQUARE_INCHES          2222
+ +#define IDS_AREA_SQUARE_KILOMETERS      2223
+ +#define IDS_AREA_SQUARE_LAR             2224
+ +#define IDS_AREA_SQUARE_METER           2225
+ +#define IDS_AREA_SQUARE_MILES           2226
+ +#define IDS_AREA_SQUARE_MILLIMETERS     2227
+ +#define IDS_AREA_SQUARE_SHAKU           2228
+ +#define IDS_AREA_SQUARE_TSUEN           2229
+ +#define IDS_AREA_SQUARE_VA              2230
+ +#define IDS_AREA_SQUARE_YARD            2231
+ +#define IDS_AREA_TAN                    2232
+ +#define IDS_AREA_TSUBO                  2233
   
   /* TYPES OF COMSUMPTIONS */
- -#define IDS_CONSUMPTION_KM_PER_L        2200
- -#define IDS_CONSUMPTION_L_PER_100_KM    2201
- -#define IDS_CONSUMPTION_MILES_GALLON_UK 2202
- -#define IDS_CONSUMPTION_MILES_GALLON_US 2203
+ +#define IDS_CONSUMPTION_KM_PER_L        2300
+ +#define IDS_CONSUMPTION_L_PER_100_KM    2301
+ +#define IDS_CONSUMPTION_MILES_GALLON_UK 2302
+ +#define IDS_CONSUMPTION_MILES_GALLON_US 2303
   
   /* TYPES OF CURRENCIES */
- -#define IDS_CURRENCY_AUSTRIAN_SCHILLING 2300
- -#define IDS_CURRENCY_BELGIAN_FRANC      2301
- -#define IDS_CURRENCY_CYPRIOT_POUND      2302
- -#define IDS_CURRENCY_DEUTSCHE_MARK      2303
- -#define IDS_CURRENCY_DUTCH_GUILDER      2304
- -#define IDS_CURRENCY_EURO               2305
- -#define IDS_CURRENCY_FINNISH_MARKKA     2306
- -#define IDS_CURRENCY_FRENCH_FRANC       2307
- -#define IDS_CURRENCY_GREEK_DRACHMA      2308
- -#define IDS_CURRENCY_IRISH_POUND        2309
- -#define IDS_CURRENCY_ITALIAN_LIRA       2310
- -#define IDS_CURRENCY_LUXEMBOURG_FRANC   2311
- -#define IDS_CURRENCY_MALTESE_LIRA       2312
- -#define IDS_CURRENCY_PORTOGUESE_ESCUDO  2313
- -#define IDS_CURRENCY_SLOVAK_KORUNA      2314
- -#define IDS_CURRENCY_SLOVENIAN_TOLAR    2315
- -#define IDS_CURRENCY_SPANISH_PESETA     2316
+ +#define IDS_CURRENCY_AUSTRIAN_SCHILLING 2400
+ +#define IDS_CURRENCY_BELGIAN_FRANC      2401
+ +#define IDS_CURRENCY_CYPRIOT_POUND      2402
+ +#define IDS_CURRENCY_CZECH_KORUNA       2403
+ +#define IDS_CURRENCY_DEUTSCHE_MARK      2404
+ +#define IDS_CURRENCY_DUTCH_GUILDER      2405
+ +#define IDS_CURRENCY_EURO               2406
+ +#define IDS_CURRENCY_FINNISH_MARKKA     2407
+ +#define IDS_CURRENCY_FRENCH_FRANC       2408
+ +#define IDS_CURRENCY_GREEK_DRACHMA      2409
+ +#define IDS_CURRENCY_IRISH_POUND        2410
+ +#define IDS_CURRENCY_ITALIAN_LIRA       2411
+ +#define IDS_CURRENCY_LUXEMBOURG_FRANC   2412
+ +#define IDS_CURRENCY_MALTESE_LIRA       2413
+ +#define IDS_CURRENCY_PORTOGUESE_ESCUDO  2414
+ +#define IDS_CURRENCY_SLOVAK_KORUNA      2415
+ +#define IDS_CURRENCY_SLOVENIAN_TOLAR    2416
+ +#define IDS_CURRENCY_SPANISH_PESETA     2417
   
   /* TYPES OF ENERGIES */
- -#define IDS_ENERGY_15_C_CALORIES        2400
- -#define IDS_ENERGY_ERGS                 2401
- -#define IDS_ENERGY_IT_CALORIES          2402
- -#define IDS_ENERGY_JOULES               2403
- -#define IDS_ENERGY_KILOJOULES           2404
- -#define IDS_ENERGY_KILOWATT_HOURS       2405
- -#define IDS_ENERGY_NUTRITION_CALORIES   2406
- -#define IDS_ENERGY_TH_CALORIES          2407
+ +#define IDS_ENERGY_15_C_CALORIES        2500
+ +#define IDS_ENERGY_BTUS                 2501
+ +#define IDS_ENERGY_ERGS                 2502
+ +#define IDS_ENERGY_EVS                  2503
+ +#define IDS_ENERGY_FOOT_POUNDS          2504
+ +#define IDS_ENERGY_IT_CALORIES          2505
+ +#define IDS_ENERGY_IT_KILOCALORIES      2506
+ +#define IDS_ENERGY_JOULES               2507
+ +#define IDS_ENERGY_KILOJOULES           2508
+ +#define IDS_ENERGY_KILOWATT_HOURS       2509
+ +#define IDS_ENERGY_NUTRITION_CALORIES   2510
+ +#define IDS_ENERGY_TH_CALORIES          2511
   
   /* TYPES OF LENGTHS */
- -#define IDS_LENGTH_ANGSTROMS            2500
- -#define IDS_LENGTH_ASTRONOMILA_UNITS    2501
- -#define IDS_LENGTH_BARLEYCORNS          2502
- -#define IDS_LENGTH_CENTIMETERS          2503
- -#define IDS_LENGTH_CHAINS_UK            2504
- -#define IDS_LENGTH_CHI                  2505
- -#define IDS_LENGTH_CHOU                 2506
- -#define IDS_LENGTH_CHR                  2507
- -#define IDS_LENGTH_CUN                  2508
- -#define IDS_LENGTH_FATHOMS              2509
- -#define IDS_LENGTH_FATHOMS_HUNGARY      2510
- -#define IDS_LENGTH_FEET                 2511
- -#define IDS_LENGTH_FURLONGS             2512
- -#define IDS_LENGTH_GAN                  2513
- -#define IDS_LENGTH_HANDS                2514
- -#define IDS_LENGTH_HUNH                 2515
- -#define IDS_LENGTH_INCHES               2516
- -#define IDS_LENGTH_JA                   2517
- -#define IDS_LENGTH_JEONG                2518
- -#define IDS_LENGTH_KABIET               2519
- -#define IDS_LENGTH_KEN                  2520
- -#define IDS_LENGTH_KEUB                 2521
- -#define IDS_LENGTH_KILOMETERS           2522
- -#define IDS_LENGTH_LAR                  2523
- -#define IDS_LENGTH_LIGHT_YEARS          2524
- -#define IDS_LENGTH_LINKS_UK             2525
- -#define IDS_LENGTH_METERS               2526
- -#define IDS_LENGTH_MILES                2527
- -#define IDS_LENGTH_MILLIMETERS          2528
- -#define IDS_LENGTH_NAUTICAL_MILES       2529
- -#define IDS_LENGTH_NIEU                 2530
- -#define IDS_LENGTH_PARSECS              2531
- -#define IDS_LENGTH_PICAS                2532
- -#define IDS_LENGTH_RI_JAPAN             2533
- -#define IDS_LENGTH_RI_KOREA             2534
- -#define IDS_LENGTH_SAWK                 2535
- -#define IDS_LENGTH_SEN                  2536
- -#define IDS_LENGTH_SHAKU                2537
- -#define IDS_LENGTH_SPAN                 2538
- -#define IDS_LENGTH_SUN                  2539
- -#define IDS_LENGTH_TSUEN                2540
- -#define IDS_LENGTH_VA                   2541
- -#define IDS_LENGTH_YARDS                2542
- -#define IDS_LENGTH_YOTE                 2543
- -#define IDS_LENGTH_ZHANG                2544
+ +#define IDS_LENGTH_ANGSTROMS            2600
+ +#define IDS_LENGTH_ASTRONOMICAL_UNITS   2601
+ +#define IDS_LENGTH_BARLEYCORNS          2602
+ +#define IDS_LENGTH_CENTIMETERS          2603
+ +#define IDS_LENGTH_CHAINS_UK            2604
+ +#define IDS_LENGTH_CHI                  2605
+ +#define IDS_LENGTH_CHOU                 2606
+ +#define IDS_LENGTH_CHR                  2607
+ +#define IDS_LENGTH_CUN                  2608
+ +#define IDS_LENGTH_FATHOMS              2609
+ +#define IDS_LENGTH_FATHOMS_HUNGARY      2610
+ +#define IDS_LENGTH_FEET                 2611
+ +#define IDS_LENGTH_FURLONGS             2612
+ +#define IDS_LENGTH_GAN                  2613
+ +#define IDS_LENGTH_HANDS                2614
+ +#define IDS_LENGTH_HUNH                 2615
+ +#define IDS_LENGTH_INCHES               2616
+ +#define IDS_LENGTH_JA                   2617
+ +#define IDS_LENGTH_JEONG                2618
+ +#define IDS_LENGTH_KABIET               2619
+ +#define IDS_LENGTH_KEN                  2620
+ +#define IDS_LENGTH_KEUB                 2621
+ +#define IDS_LENGTH_KILOMETERS           2622
+ +#define IDS_LENGTH_LAR                  2623
+ +#define IDS_LENGTH_LIGHT_YEARS          2624
+ +#define IDS_LENGTH_LINKS_UK             2625
+ +#define IDS_LENGTH_METERS               2626
+ +#define IDS_LENGTH_MICRONS              2627
+ +#define IDS_LENGTH_MILES                2628
+ +#define IDS_LENGTH_MILLIMETERS          2629
+ +#define IDS_LENGTH_NAUTICAL_MILES       2630
+ +#define IDS_LENGTH_NIEU                 2631
+ +#define IDS_LENGTH_PARSECS              2632
+ +#define IDS_LENGTH_PICAS                2633
+ +#define IDS_LENGTH_RODS                 2634
+ +#define IDS_LENGTH_RI_JAPAN             2635
+ +#define IDS_LENGTH_RI_KOREA             2636
+ +#define IDS_LENGTH_SAWK                 2637
+ +#define IDS_LENGTH_SEN                  2638
+ +#define IDS_LENGTH_SHAKU                2639
+ +#define IDS_LENGTH_SPAN                 2640
+ +#define IDS_LENGTH_SUN                  2641
+ +#define IDS_LENGTH_TSUEN                2642
+ +#define IDS_LENGTH_VA                   2643
+ +#define IDS_LENGTH_YARDS                2644
+ +#define IDS_LENGTH_YOTE                 2645
+ +#define IDS_LENGTH_ZHANG                2646
   
   /* TYPES OF POWERS */
- -#define IDS_POWER_HORSEPOWER            2600
- -#define IDS_POWER_KILOWATTS             2601
- -#define IDS_POWER_MEGAWATTS             2602
- -#define IDS_POWER_WATTS                 2603
+ +#define IDS_POWER_BTUS_PER_MINUTE       2700
+ +#define IDS_POWER_FPS_PER_MINUTE        2701
+ +#define IDS_POWER_HORSEPOWER            2702
+ +#define IDS_POWER_KILOWATTS             2703
+ +#define IDS_POWER_MEGAWATTS             2704
+ +#define IDS_POWER_WATTS                 2705
   
   /* TYPE OF PRESSURES */
- -#define IDS_PRESSURE_ATMOSPHERES        2701
- -#define IDS_PRESSURE_BARS               2702
- -#define IDS_PRESSURE_MM_OF_MERCURY      2703
- -#define IDS_PRESSURE_PASCALS            2704
- -#define IDS_PRESSURE_PSI                2705
+ +#define IDS_PRESSURE_ATMOSPHERES        2800
+ +#define IDS_PRESSURE_BARS               2801
+ +#define IDS_PRESSURE_HECTOPASCALS       2802
+ +#define IDS_PRESSURE_KILOPASCALS        2803
+ +#define IDS_PRESSURE_MM_OF_MERCURY      2804
+ +#define IDS_PRESSURE_PASCALS            2805
+ +#define IDS_PRESSURE_PSI                2806
   
   /* TYPES OF TEMPERATURES */
- -#define IDS_TEMPERATURE_CELSIUS         2800
- -#define IDS_TEMPERATURE_FAHRENHEIT      2801
- -#define IDS_TEMPERATURE_KELVIN          2802
- -#define IDS_TEMPERATURE_RANKINE         2803
+ +#define IDS_TEMPERATURE_CELSIUS         2900
+ +#define IDS_TEMPERATURE_FAHRENHEIT      2901
+ +#define IDS_TEMPERATURE_KELVIN          2902
+ +#define IDS_TEMPERATURE_RANKINE         2903
+ +
+ +/* TYPE OF TIME */
+ +#define IDS_TIME_DAYS                   3001
+ +#define IDS_TIME_HOURS                  3002
+ +#define IDS_TIME_MICROSECONDS           3003
 - #define IDS_TIME_MILLISECONDS           3004
+++#define IDS_TIME_MILISECONDS            3004
+ +#define IDS_TIME_MINUTES                3005
+ +#define IDS_TIME_SECONDS                3006
+ +#define IDS_TIME_WEEKS                  3007
+ +#define IDS_TIME_YEARS                  3008
   
   /* TYPES OF VELOCITIES */
- -#define IDS_VELOCITY_FEET_HOUR          2900
- -#define IDS_VELOCITY_KILOMETERS_HOUR    2901
- -#define IDS_VELOCITY_KNOTS              2902
- -#define IDS_VELOCITY_MACH               2903
- -#define IDS_VELOCITY_METERS_SECOND      2904
- -#define IDS_VELOCITY_MILES_HOUR         2905
+ +#define IDS_VELOCITY_CMS_SECOND         3100
+ +#define IDS_VELOCITY_FEET_SECOND        3101
+ +#define IDS_VELOCITY_FEET_HOUR          3102
+ +#define IDS_VELOCITY_KILOMETERS_HOUR    3103
+ +#define IDS_VELOCITY_KNOTS              3104
+ +#define IDS_VELOCITY_MACH               3105
+ +#define IDS_VELOCITY_METERS_SECOND      3106
+ +#define IDS_VELOCITY_MILES_HOUR         3107
   
   /* TYPES OF VOLUMES */
- -#define IDS_VOLUME_BARRELS_UK           3000
- -#define IDS_VOLUME_BARRELS_OIL          3001
- -#define IDS_VOLUME_BUN                  3002
- -#define IDS_VOLUME_BUSHELS_UK           3003
- -#define IDS_VOLUME_BUSHELS_US           3004
- -#define IDS_VOLUME_CUBIC_CENTIMETERS    3005
- -#define IDS_VOLUME_CUBIC_FEET           3006
- -#define IDS_VOLUME_CUBIC_INCHES         3007
- -#define IDS_VOLUME_CUBIC_METERS         3008
- -#define IDS_VOLUME_CUBIC_YARDS          3009
- -#define IDS_VOLUME_DOE                  3010
- -#define IDS_VOLUME_FLUID_OUNCES_UK      3011
- -#define IDS_VOLUME_FLUID_OUNCES_US      3012
- -#define IDS_VOLUME_GALLONS_UK           3013
- -#define IDS_VOLUME_GALLONS_DRY_US       3014
- -#define IDS_VOLUME_GALLONS_LIQUID_US    3015
- -#define IDS_VOLUME_GOU                  3016
- -#define IDS_VOLUME_HOP                  3017
- -#define IDS_VOLUME_ICCE                 3018
- -#define IDS_VOLUME_KWIAN                3019
- -#define IDS_VOLUME_LITERS               3020
- -#define IDS_VOLUME_MAL                  3021
- -#define IDS_VOLUME_MILLILITERS          3022
- -#define IDS_VOLUME_PINTS_UK             3023
- -#define IDS_VOLUME_PINTS_DRY_US         3024
- -#define IDS_VOLUME_PINTS_LIQUID_US      3025
- -#define IDS_VOLUME_QUARTS_UK            3026
- -#define IDS_VOLUME_QUARTS_DRY_US        3027
- -#define IDS_VOLUME_QUARTS_LIQUID_US     3028
- -#define IDS_VOLUME_SEKI                 3029
- -#define IDS_VOLUME_SYOU                 3030
- -#define IDS_VOLUME_TANANLOUNG           3031
- -#define IDS_VOLUME_TANG                 3032
- -#define IDS_VOLUME_TO                   3033
+ +#define IDS_VOLUME_BARRELS_UK           3200
+ +#define IDS_VOLUME_BARRELS_OIL          3201
+ +#define IDS_VOLUME_BUN                  3202
+ +#define IDS_VOLUME_BUSHELS_UK           3203
+ +#define IDS_VOLUME_BUSHELS_US           3204
+ +#define IDS_VOLUME_CUBIC_CENTIMETERS    3205
+ +#define IDS_VOLUME_CUBIC_FEET           3206
+ +#define IDS_VOLUME_CUBIC_INCHES         3207
+ +#define IDS_VOLUME_CUBIC_METERS         3208
+ +#define IDS_VOLUME_CUBIC_YARDS          3209
+ +#define IDS_VOLUME_DOE                  3210
+ +#define IDS_VOLUME_FLUID_OUNCES_UK      3211
+ +#define IDS_VOLUME_FLUID_OUNCES_US      3212
+ +#define IDS_VOLUME_GALLONS_UK           3213
+ +#define IDS_VOLUME_GALLONS_DRY_US       3214
+ +#define IDS_VOLUME_GALLONS_LIQUID_US    3215
+ +#define IDS_VOLUME_GOU                  3216
+ +#define IDS_VOLUME_HOP                  3217
+ +#define IDS_VOLUME_ICCE                 3218
+ +#define IDS_VOLUME_KWIAN                3219
+ +#define IDS_VOLUME_LITERS               3220
+ +#define IDS_VOLUME_MAL                  3221
+ +#define IDS_VOLUME_MILLILITERS          3222
+ +#define IDS_VOLUME_PINTS_UK             3223
+ +#define IDS_VOLUME_PINTS_DRY_US         3224
+ +#define IDS_VOLUME_PINTS_LIQUID_US      3225
+ +#define IDS_VOLUME_QUARTS_UK            3226
+ +#define IDS_VOLUME_QUARTS_DRY_US        3227
+ +#define IDS_VOLUME_QUARTS_LIQUID_US     3228
+ +#define IDS_VOLUME_SEKI                 3229
+ +#define IDS_VOLUME_SYOU                 3230
+ +#define IDS_VOLUME_TANANLOUNG           3231
+ +#define IDS_VOLUME_TANG                 3232
+ +#define IDS_VOLUME_TO                   3233
   
   /* TYPES OF WEIGHTS */
- -#define IDS_WEIGHT_BAHT                 3100
- -#define IDS_WEIGHT_CARATS               3101
- -#define IDS_WEIGHT_CHUNG                3102
- -#define IDS_WEIGHT_DON                  3103
- -#define IDS_WEIGHT_GEUN                 3104
- -#define IDS_WEIGHT_GRAMS                3105
- -#define IDS_WEIGHT_GWAN                 3106
- -#define IDS_WEIGHT_HARB                 3107
- -#define IDS_WEIGHT_JIN_CHINA            3108
- -#define IDS_WEIGHT_JIN_TAIWAN           3109
- -#define IDS_WEIGHT_KAN                  3110
- -#define IDS_WEIGHT_KILOGRAMS            3111
- -#define IDS_WEIGHT_KIN                  3112
- -#define IDS_WEIGHT_LIANG_CHINA          3113
- -#define IDS_WEIGHT_LIANG_TAIWAN         3114
- -#define IDS_WEIGHT_MONME                3115
- -#define IDS_WEIGHT_OUNCES_AVOIRDUPOIS   3116
- -#define IDS_WEIGHT_OUNCES_TROY          3117
- -#define IDS_WEIGHT_POUNDS               3118
- -#define IDS_WEIGHT_QUINTAL_METRIC       3119
- -#define IDS_WEIGHT_SALOUNG              3120
- -#define IDS_WEIGHT_STONES               3121
- -#define IDS_WEIGHT_TAMLUNG              3122
- -#define IDS_WEIGHT_TONNES               3123
- -#define IDS_WEIGHT_TONS_UK              3124
- -#define IDS_WEIGHT_TONS_US              3125
+ +#define IDS_WEIGHT_BAHT                 3300
+ +#define IDS_WEIGHT_CARATS               3301
+ +#define IDS_WEIGHT_CHUNG                3302
+ +#define IDS_WEIGHT_DON                  3303
+ +#define IDS_WEIGHT_GEUN                 3304
+ +#define IDS_WEIGHT_GRAMS                3305
+ +#define IDS_WEIGHT_GWAN                 3306
+ +#define IDS_WEIGHT_HARB                 3307
+ +#define IDS_WEIGHT_JIN_CHINA            3308
+ +#define IDS_WEIGHT_JIN_TAIWAN           3309
+ +#define IDS_WEIGHT_KAN                  3310
+ +#define IDS_WEIGHT_KILOGRAMS            3311
+ +#define IDS_WEIGHT_KIN                  3312
+ +#define IDS_WEIGHT_LIANG_CHINA          3313
+ +#define IDS_WEIGHT_LIANG_TAIWAN         3314
+ +#define IDS_WEIGHT_MONME                3315
+ +#define IDS_WEIGHT_OUNCES_AVOIRDUPOIS   3316
+ +#define IDS_WEIGHT_OUNCES_TROY          3317
+ +#define IDS_WEIGHT_POUNDS               3318
+ +#define IDS_WEIGHT_QUINTAL_METRIC       3319
+ +#define IDS_WEIGHT_SALOUNG              3320
+ +#define IDS_WEIGHT_STONES               3321
+ +#define IDS_WEIGHT_TAMLUNG              3322
+ +#define IDS_WEIGHT_TONNES               3323
+ +#define IDS_WEIGHT_TONS_UK              3324
+ +#define IDS_WEIGHT_TONS_US              3325
   
   /* MENU */
   #define IDM_EDIT_COPY                   40002
@@@@ -43,8 -43,10 -43,8 +43,9 @@@@ IDB_BITMAP_ROS          BITMAP  DISCARD
   #include "lang/bg-BG.rc"
   #include "lang/cs-CZ.rc"
   #include "lang/de-DE.rc"
 - #include "lang/el-GR.rc"
   #include "lang/en-US.rc"
   #include "lang/es-ES.rc"
+ +#include "lang/fr-FR.rc"
   #include "lang/it-IT.rc"
   #include "lang/ko-KR.rc"
   #include "lang/nl-NL.rc"
@@@@ -1,6 -1,6 -1,6 +1,6 @@@@
   <?xml version="1.0"?>
   <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
---<module name="dhcp" type="win32cui" installbase="system32" installname="dhcp.exe">
+++<module name="dhcp" type="win32cui" installbase="system32" installname="dhcp.exe" allowwarnings="true">
        <include base="dhcp">.</include>
        <include base="dhcp">include</include>
        <library>ntdll</library>
Simple merge
@@@@ -4,9 -4,9 -4,9 +4,9 @@@@
        <directory name="cmd">
                <xi:include href="cmd/cmd.rbuild" />
        </directory>
---     <directory name="explorer">
+++     <!-- directory name="explorer">
                <xi:include href="explorer/explorer.rbuild" />
---     </directory>
+++     </directory -->
        <directory name="explorer-new">
                <xi:include href="explorer-new/explorer.rbuild" />
        </directory>
Simple merge
@@@@ -741,164 -744,164 -744,164 +744,164 @@@@ LoadAndBootReactOS(PCSTR OperatingSyste
   
       LoaderBlock.DrivesCount = reactos_disk_count;
   
-       UiDrawStatusText("Loading...");
+      UiDrawStatusText("Loading...");
   
-       //
-       // If we have a ramdisk, this will switch to the ramdisk disk routines
-       // which read from memory instead of using the firmware. This has to be done
-       // after hardware detection, since hardware detection will require using the
-       // real routines in order to perform disk-detection (just because we're on a
-       // ram-boot doesn't mean the user doesn't have actual disks installed too!)
-       //
-       RamDiskSwitchFromBios();
+      //
+      // If we have a ramdisk, this will switch to the ramdisk disk routines
+      // which read from memory instead of using the firmware. This has to be done
+      // after hardware detection, since hardware detection will require using the
+      // real routines in order to perform disk-detection (just because we're on a
+      // ram-boot doesn't mean the user doesn't have actual disks installed too!)
+      //
+      RamDiskSwitchFromBios();
   
-       /*
-        * Try to open system drive
-        */
-       if (!FsOpenSystemVolume(SystemPath, szBootPath, &LoaderBlock.BootDevice))
-       {
-               UiMessageBox("Failed to open system drive.");
-               return;
-       }
+      /*
+       * Try to open system drive
+       */
+      if (!FsOpenSystemVolume(SystemPath, szBootPath, &LoaderBlock.BootDevice))
+      {
+          UiMessageBox("Failed to open system drive.");
+          return;
+      }
   
-       /* append a backslash */
-       if ((strlen(szBootPath)==0) ||
-           szBootPath[strlen(szBootPath)] != '\\')
-               strcat(szBootPath, "\\");
+      /* append a backslash */
+      if ((strlen(szBootPath)==0) ||
+          szBootPath[strlen(szBootPath)] != '\\')
+          strcat(szBootPath, "\\");
   
 --    DbgPrint((DPRINT_REACTOS,"SystemRoot: '%s'\n", szBootPath));
 --    strcpy(SystemRoot, szBootPath);
 ++     DPRINTM(DPRINT_REACTOS,"SystemRoot: '%s'\n", szBootPath);
 ++     strcpy(SystemRoot, szBootPath);
   
-       /*
-        * Find the kernel image name
-        * and try to load the kernel off the disk
-        */
-       if(IniReadSettingByName(SectionId, "Kernel", value, sizeof(value)))
-       {
-               /*
-                * Set the name and
-                */
-               if (value[0] == '\\')
-               {
-                       strcpy(szKernelName, value);
-               }
-               else
-               {
-                       strcpy(szKernelName, szBootPath);
-                       strcat(szKernelName, "SYSTEM32\\");
-                       strcat(szKernelName, value);
-               }
-       }
-       else
-       {
-               strcpy(value, "NTOSKRNL.EXE");
-               strcpy(szKernelName, szBootPath);
-               strcat(szKernelName, "SYSTEM32\\");
-               strcat(szKernelName, value);
-       }
+      /*
+       * Find the kernel image name
+       * and try to load the kernel off the disk
+       */
+      if(IniReadSettingByName(SectionId, "Kernel", value, sizeof(value)))
+      {
+          /*
+           * Set the name and
+           */
+          if (value[0] == '\\')
+          {
+              strcpy(szKernelName, value);
+          }
+          else
+          {
+              strcpy(szKernelName, szBootPath);
+              strcat(szKernelName, "SYSTEM32\\");
+              strcat(szKernelName, value);
+          }
+      }
+      else
+      {
+          strcpy(value, "NTOSKRNL.EXE");
+          strcpy(szKernelName, szBootPath);
+          strcat(szKernelName, "SYSTEM32\\");
+          strcat(szKernelName, value);
+      }
   
-       /*
-        * Find the HAL image name
-        * and try to load the kernel off the disk
-        */
-       if(IniReadSettingByName(SectionId, "Hal", value, sizeof(value)))
-       {
-               /*
-                * Set the name and
-                */
-               if (value[0] == '\\')
-               {
-                       strcpy(szHalName, value);
-               }
-               else
-               {
-                       strcpy(szHalName, szBootPath);
-                       strcat(szHalName, "SYSTEM32\\");
-                       strcat(szHalName, value);
-               }
-       }
-       else
-       {
-               strcpy(value, "HAL.DLL");
-               strcpy(szHalName, szBootPath);
-               strcat(szHalName, "SYSTEM32\\");
-               strcat(szHalName, value);
-       }
+      /*
+       * Find the HAL image name
+       * and try to load the kernel off the disk
+       */
+      if(IniReadSettingByName(SectionId, "Hal", value, sizeof(value)))
+      {
+          /*
+           * Set the name and
+           */
+          if (value[0] == '\\')
+          {
+              strcpy(szHalName, value);
+          }
+          else
+          {
+              strcpy(szHalName, szBootPath);
+              strcat(szHalName, "SYSTEM32\\");
+              strcat(szHalName, value);
+          }
+      }
+      else
+      {
+          strcpy(value, "HAL.DLL");
+          strcpy(szHalName, szBootPath);
+          strcat(szHalName, "SYSTEM32\\");
+          strcat(szHalName, value);
+      }
   
-       /* Load the kernel */
-       LoadBase = FrLdrLoadImage(szKernelName, 5, 1);
-       if (!LoadBase) return;
+      /* Load the kernel */
+      LoadBase = FrLdrLoadImage(szKernelName, 5, 1);
+      if (!LoadBase) return;
   
-       /* Get the NT header, kernel base and kernel entry */
-       NtHeader = RtlImageNtHeader(LoadBase);
-       KernelBase = SWAPD(NtHeader->OptionalHeader.ImageBase);
-       KernelEntryPoint = (ROS_KERNEL_ENTRY_POINT)(KernelBase + SWAPD(NtHeader->OptionalHeader.AddressOfEntryPoint));
-       LoaderBlock.KernelBase = KernelBase;
+      /* Get the NT header, kernel base and kernel entry */
+      NtHeader = RtlImageNtHeader(LoadBase);
+      KernelBase = SWAPD(NtHeader->OptionalHeader.ImageBase);
+      KernelEntryPoint = (ROS_KERNEL_ENTRY_POINT)(KernelBase + SWAPD(NtHeader->OptionalHeader.AddressOfEntryPoint));
+      LoaderBlock.KernelBase = KernelBase;
   
-       /*
-        * Load the System hive from disk
-        */
-       strcpy(szFileName, szBootPath);
-       strcat(szFileName, "SYSTEM32\\CONFIG\\SYSTEM");
+      /*
+       * Load the System hive from disk
+       */
+      strcpy(szFileName, szBootPath);
+      strcat(szFileName, "SYSTEM32\\CONFIG\\SYSTEM");
   
 --    DbgPrint((DPRINT_REACTOS, "SystemHive: '%s'", szFileName));
 ++     DPRINTM(DPRINT_REACTOS, "SystemHive: '%s'", szFileName);
   
-       FilePointer = FsOpenFile(szFileName);
-       if (FilePointer == NULL)
-       {
-               UiMessageBox("Could not find the System hive!");
-               return;
-       }
+      FilePointer = FsOpenFile(szFileName);
+      if (FilePointer == NULL)
+      {
+          UiMessageBox("Could not find the System hive!");
+          return;
+      }
   
-       /*
-        * Update the status bar with the current file
-        */
-       strcpy(name, "Reading ");
-       strcat(name, value);
-       while (strlen(name) < 80)
-               strcat(name, " ");
-       UiDrawStatusText(name);
+      /*
+       * Update the status bar with the current file
+       */
+      strcpy(name, "Reading ");
+      strcat(name, value);
+      while (strlen(name) < 80)
+          strcat(name, " ");
+      UiDrawStatusText(name);
   
 --    /*
 --     * Load the System hive
 --     */
 --    Base = FrLdrLoadModule(FilePointer, szFileName, &Size);
 --    if (Base == 0 || Size == 0)
 --    {
 --        UiMessageBox("Could not load the System hive!\n");
 --        return;
 --    }
 --    DbgPrint((DPRINT_REACTOS, "SystemHive loaded at 0x%x size %u", (unsigned)Base, (unsigned)Size));
 ++     /*
 ++      * Load the System hive
 ++      */
 ++     Base = FrLdrLoadModule(FilePointer, szFileName, &Size);
 ++     if (Base == 0 || Size == 0)
 ++     {
 ++             UiMessageBox("Could not load the System hive!\n");
 ++             return;
 ++     }
 ++     DPRINTM(DPRINT_REACTOS, "SystemHive loaded at 0x%x size %u", (unsigned)Base, (unsigned)Size);
   
-       /*
-        * Import the loaded system hive
-        */
-       RegImportBinaryHive((PCHAR)Base, Size);
+      /*
+       * Import the loaded system hive
+       */
+      RegImportBinaryHive((PCHAR)Base, Size);
   
-       /*
-        * Initialize the 'CurrentControlSet' link
-        */
-       RegInitCurrentControlSet(FALSE);
+      /*
+       * Initialize the 'CurrentControlSet' link
+       */
+      RegInitCurrentControlSet(FALSE);
   
-       UiDrawProgressBarCenter(15, 100, szLoadingMsg);
+      UiDrawProgressBarCenter(15, 100, szLoadingMsg);
   
-       UiDrawProgressBarCenter(20, 100, szLoadingMsg);
+      UiDrawProgressBarCenter(20, 100, szLoadingMsg);
   
-       /*
-        * Load NLS files
-        */
-       if (!FrLdrLoadNlsFiles(szBootPath, MsgBuffer))
-       {
-               UiMessageBox(MsgBuffer);
-               return;
-       }
-       UiDrawProgressBarCenter(30, 100, szLoadingMsg);
+      /*
+       * Load NLS files
+       */
+      if (!FrLdrLoadNlsFiles(szBootPath, MsgBuffer))
+      {
+          UiMessageBox(MsgBuffer);
+          return;
+      }
+      UiDrawProgressBarCenter(30, 100, szLoadingMsg);
   
-       /*
-        * Load boot drivers
-        */
-       FrLdrLoadBootDrivers(szBootPath, 40);
-       //UiUnInitialize("Booting ReactOS...");
+      /*
+       * Load boot drivers
+       */
+      FrLdrLoadBootDrivers(szBootPath, 40);
+      //UiUnInitialize("Booting ReactOS...");
   
       //
       // Perform architecture-specific pre-boot configuration
       //
       // Setup paging and jump to kernel
       //
-       FrLdrStartup(0x2badb002);
+      FrLdrStartup(0x2badb002);
   }
   
 --#undef DbgPrint
 --ULONG
 --DbgPrint(const char *Format, ...)
 --{
 --    va_list ap;
 --    CHAR Buffer[512];
 --    ULONG Length;
 --
 --    va_start(ap, Format);
 --
 --    /* Construct a string */
 --    Length = _vsnprintf(Buffer, 512, Format, ap);
 --
 --    /* Check if we went past the buffer */
 --    if (Length == -1U)
 --    {
 --        /* Terminate it if we went over-board */
 --        Buffer[sizeof(Buffer) - 1] = '\n';
 --
 --        /* Put maximum */
 --        Length = sizeof(Buffer);
 --    }
 --
 --    /* Show it as a message box */
 --    UiMessageBox(Buffer);
 --
 --    /* Cleanup and exit */
 --    va_end(ap);
 --    return 0;
 --}
 --
   /* EOF */
@@@@ -1,5 -1,5 -1,5 +1,5 @@@@
   <module name="dxtn" type="win32dll" entrypoint="0" installbase="system32" installname="dxtn.dll" allowwarnings="true" crt="msvcrt">
---     <importlibrary definition="dxtn.def" />
+++     <importlibrary definition="dxtn.spec" />
        <include base="dxtn">.</include>
        <define name="__USE_W32API" />
        <file>fxt1.c</file>
@@@@ -1,7 -1,7 -1,7 +1,7 @@@@
   <?xml version="1.0"?>
   <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
-  <module name="appwiz-new" type="win32dll" extension=".cpl" baseaddress="${BASEADDRESS_APPWIZ}"  installbase="system32" installname="appwiz-new.cpl" unicode="yes" allowwarnings="true">
+  <module name="appwiz-new" type="win32dll" extension=".cpl" baseaddress="${BASEADDRESS_APPWIZ}" installbase="system32" installname="appwiz-new.cpl" unicode="yes">
  -     <importlibrary definition="appwiz.def" />
  +     <importlibrary definition="appwiz.spec" />
        <include base="appwiz-new">.</include>
        <library>kernel32</library>
        <library>advapi32</library>
   <?xml version="1.0"?>
   <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
   <module name="intl" type="win32dll" extension=".cpl" baseaddress="${BASEADDRESS_INTL}" installbase="system32" installname="intl.cpl" unicode="yes" crt="msvcrt">
 -     <importlibrary definition="intl.spec" />
  -    <importlibrary definition="intl.def" />
 --    <include base="intl">.</include>
 --    <library>kernel32</library>
 --    <library>user32</library>
 --    <library>comctl32</library>
 --    <library>advapi32</library>
 --    <library>setupapi</library>
 --    <library>shell32</library>
 --    <file>currency.c</file>
 --    <file>date.c</file>
 --    <file>generalp.c</file>
 --    <file>intl.c</file>
 --    <file>inplocale.c</file>
 --    <file>numbers.c</file>
 --    <file>time.c</file>
 --    <file>misc.c</file>
 ++     <importlibrary definition="intl.spec" />
 ++     <include base="intl">.</include>
 ++     <library>kernel32</library>
 ++     <library>user32</library>
 ++     <library>comctl32</library>
 ++     <library>advapi32</library>
 ++     <library>setupapi</library>
 ++     <library>shell32</library>
 ++     <file>currency.c</file>
 ++     <file>date.c</file>
 ++     <file>generalp.c</file>
 ++     <file>intl.c</file>
 ++     <file>inplocale.c</file>
 ++     <file>numbers.c</file>
 ++     <file>time.c</file>
 ++     <file>misc.c</file>
+       <file>kblayouts.c</file>
 --    <file>languages.c</file>
 --    <file>advanced.c</file>
 --    <file>sort.c</file>
 --    <file>intl.rc</file>
 ++     <file>languages.c</file>
 ++     <file>advanced.c</file>
 ++     <file>sort.c</file>
 ++     <file>intl.rc</file>
   </module>
Simple merge
@@@@ -1,7 -1,7 -1,7 +1,7 @@@@
   <?xml version="1.0"?>
   <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
-  <module name="ddraw" type="win32dll" installbase="system32" installname="ddraw.dll" allowwarnings ="true" unicode="yes" crt="msvcrt">
+  <module name="ddraw" type="win32dll" installbase="system32" installname="ddraw.dll" unicode="yes" crt="msvcrt">
 --     <importlibrary definition="ddraw.def" />
 ++     <importlibrary definition="ddraw.spec" />
        <include base="ddraw">.</include>
        <library>kernel32</library>
        <library>user32</library>
@@@@ -1,8 -1,9 -1,8 +1,9 @@@@
   <?xml version="1.0"?>
   <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
 --<module name="dinput" type="win32dll" baseaddress="${BASEADDRESS_DINPUT}" installbase="system32" installname="dinput.dll" unicode="yes">
 ++<module name="dinput" type="win32dll" baseaddress="${BASEADDRESS_DINPUT}" installbase="system32" installname="dinput.dll" allowwarnings ="true" unicode="yes">
        <autoregister infsection="OleControlDlls" type="DllRegisterServer" />
        <importlibrary definition="dinput.spec" />
+ +     <define name="_WIN32_WINNT">0x600</define>
        <include base="dinput">.</include>
        <include base="ReactOS">include/reactos/wine</include>
        <library>wine</library>
Simple merge
@@@@ -1,5 -1,27 -1,22 +1,27 @@@@
+  #ifndef KSUSER_H__
+  #define KSUSER_H__
+  
   #define _KSDDK_
+  
+  #define WIN32_NO_STATUS
   #include <windows.h>
-  typedef LONG NTSTATUS;
+  #include <ndk/ntndk.h>
+  
+  
   #include <ks.h>
- -#include <reactos/helper.h>
+  
+  LPVOID
+  __stdcall
+  HeapAlloc(
+    HANDLE hHeap,
+    DWORD dwFlags,
 --  DWORD dwBytes
+++  SIZE_T dwBytes
+  );
+  
+ +#define ROUND_DOWN(n, align) \
+ +    (((ULONG)n) & ~((align) - 1l))
+ +
+ +#define ROUND_UP(n, align) \
+ +    ROUND_DOWN(((ULONG)n) + (align) - 1, (align))
+ +
+  #endif
@@@@ -6,5 -6,5 -6,5 +6,5 @@@@
        <compilerflag compiler="cpp">-fno-rtti</compilerflag>
        <define name="WINVER">0x600</define>
        <file>idndl.cpp</file>
---     <importlibrary definition="idndl.def" />
+++     <importlibrary definition="idndl-$(ARCH).def" />
   </module>
index e259e30,0000000,0000000..b01f1ac
mode 100644,000000,000000..100644
--- /dev/null
--- /dev/null
@@@@ -1,1814 -1,0 -1,0 +1,1817 @@@@
 ++; $Id: ntdll.def 34404 2008-07-10 09:46:25Z fireball $
 ++;
 ++; ReactOS Operating System
 ++; Exports taken from Vista64
 ++;
 ++LIBRARY ntdll.dll
 ++
 ++EXPORTS
 ++;A_SHAFinal
 ++;A_SHAInit
 ++;A_SHAUpdate
 ++;AlpcAdjustCompletionListConcurrencyCount
 ++;AlpcFreeCompletionListMessage
 ++;AlpcGetCompletionListLastMessageInformation
 ++;AlpcGetCompletionListMessageAttributes
 ++;AlpcGetHeaderSize
 ++;AlpcGetMessageAttribute
 ++;AlpcGetMessageFromCompletionList
 ++;AlpcGetOutstandingCompletionListMessageCount
 ++;AlpcInitializeMessageAttribute
 ++;AlpcMaxAllowedMessageLength
 ++;AlpcRegisterCompletionList
 ++;AlpcRegisterCompletionListWorkerThread
 ++;AlpcUnregisterCompletionList
 ++;AlpcUnregisterCompletionListWorkerThread
 ++CsrAllocateCaptureBuffer
 ++CsrAllocateMessagePointer
 ++CsrCaptureMessageBuffer
 ++CsrCaptureMessageMultiUnicodeStringsInPlace
 ++CsrCaptureMessageString
 ++CsrCaptureTimeout
 ++CsrClientCallServer
 ++CsrClientConnectToServer
 ++CsrFreeCaptureBuffer
 ++CsrGetProcessId
 ++CsrIdentifyAlertableThread
 ++CsrSetPriorityClass
 ++;CsrVerifyRegion
 ++DbgBreakPoint
 ++DbgPrint
 ++DbgPrintEx
 ++DbgPrintReturnControlC
 ++DbgPrompt
 ++DbgQueryDebugFilterState
 ++DbgSetDebugFilterState
 ++DbgUiConnectToDbg
 ++DbgUiContinue
 ++DbgUiConvertStateChangeStructure
 ++DbgUiDebugActiveProcess
 ++DbgUiGetThreadDebugObject
 ++DbgUiIssueRemoteBreakin
 ++DbgUiRemoteBreakin
 ++DbgUiSetThreadDebugObject
 ++DbgUiStopDebugging
 ++DbgUiWaitStateChange
 ++DbgUserBreakPoint
 ++;EtwCreateTraceInstanceId
 ++;EtwDeliverDataBlock
 ++;EtwEnumerateProcessRegGuids
 ++;EtwEventActivityIdControl
 ++;EtwEventEnabled
 ++;EtwEventProviderEnabled
 ++;EtwEventRegister
 ++;EtwEventUnregister
 ++;EtwEventWrite
 ++;EtwEventWriteEndScenario
 ++;EtwEventWriteFull
 ++;EtwEventWriteStartScenario
 ++;EtwEventWriteString
 ++;EtwEventWriteTransfer
 ++;EtwGetTraceEnableFlags
 ++;EtwGetTraceEnableLevel
 ++;EtwGetTraceLoggerHandle
 ++;EtwLogTraceEvent
 ++;EtwNotificationRegister
 ++;EtwNotificationUnregister
 ++;EtwProcessPrivateLoggerRequest
 ++;EtwRegisterSecurityProvider
 ++;EtwRegisterTraceGuidsA
 ++;EtwRegisterTraceGuidsW
 ++;EtwReplyNotification
 ++;EtwSendNotification
 ++;EtwSetMark
 ++;EtwTraceEventInstance
 ++;EtwTraceMessage
 ++;EtwTraceMessageVa
 ++;EtwUnregisterTraceGuids
 ++;EtwWriteUMSecurityEvent
 ++;EtwpCreateEtwThread
 ++;EtwpGetCpuSpeed
 ++;EtwpNotificationThread
 ++;ExpInterlockedPopEntrySListEnd
 ++;ExpInterlockedPopEntrySListFault
 ++;ExpInterlockedPopEntrySListResume
 ++KiRaiseUserExceptionDispatcher
 ++KiUserApcDispatcher
 ++KiUserCallbackDispatcher
 ++KiUserExceptionDispatcher
 ++LdrAccessResource
 ++;LdrAddLoadAsDataTable
 ++LdrAddRefDll
 ++LdrDisableThreadCalloutsForDll
 ++LdrEnumResources
 ++;LdrEnumerateLoadedModules
 ++LdrFindEntryForAddress
 ++LdrFindResourceDirectory_U
 ++;LdrFindResourceEx_U
 ++LdrFindResource_U
 ++;LdrFlushAlternateResourceModules
 ++LdrGetDllHandle
 ++;LdrGetDllHandleEx
 ++;LdrGetFailureData
 ++;LdrGetFileNameFromLoadAsDataTable
 ++;LdrGetKnownDllSectionHandle
 ++LdrGetProcedureAddress
 ++;LdrGetProcedureAddressEx
 ++;LdrHotPatchRoutine
 ++;LdrInitShimEngineDynamic
 ++LdrInitializeThunk
 ++;LdrLoadAlternateResourceModule
 ++;LdrLoadAlternateResourceModuleEx
 ++LdrLoadDll
 ++LdrLockLoaderLock
 ++;LdrOpenImageFileOptionsKey
 ++;LdrProcessInitializationComplete
 ++LdrProcessRelocationBlock
 ++LdrQueryImageFileExecutionOptions
 ++;LdrQueryImageFileExecutionOptionsEx
 ++;LdrQueryImageFileKeyOption
 ++;LdrQueryModuleServiceTags
 ++LdrQueryProcessModuleInformation
 ++;LdrRegisterDllNotification
 ++;LdrRemoveLoadAsDataTable
 ++;LdrResFindResource
 ++;LdrResFindResourceDirectory
 ++;LdrResRelease
 ++;LdrResSearchResource
 ++;LdrSetAppCompatDllRedirectionCallback
 ++;LdrSetDllManifestProber
 ++;LdrSetMUICacheType
 ++LdrShutdownProcess
 ++LdrShutdownThread
 ++LdrUnloadAlternateResourceModule
 ++;LdrUnloadAlternateResourceModuleEx
 ++LdrUnloadDll
 ++LdrUnlockLoaderLock
 ++;LdrUnregisterDllNotification
 ++LdrVerifyImageMatchesChecksum
 ++;LdrVerifyImageMatchesChecksumEx
 ++;LdrpResGetMappingSize
 ++;LdrpResGetRCConfig
 ++;LdrpResGetResourceDirectory
 ++;MD4Final
 ++;MD4Init
 ++;MD4Update
 ++;MD5Final
 ++;MD5Init
 ++;MD5Update
 ++NlsAnsiCodePage
 ++NlsMbCodePageTag
 ++NlsMbOemCodePageTag
 ++NtAcceptConnectPort
 ++NtAccessCheck
 ++NtAccessCheckAndAuditAlarm
 ++NtAccessCheckByType
 ++NtAccessCheckByTypeAndAuditAlarm
 ++NtAccessCheckByTypeResultList
 ++NtAccessCheckByTypeResultListAndAuditAlarm
 ++NtAccessCheckByTypeResultListAndAuditAlarmByHandle
 ++;NtAcquireCMFViewOwnership
 ++NtAddAtom
 ++NtAddBootEntry
 ++NtAddDriverEntry
 ++NtAdjustGroupsToken
 ++NtAdjustPrivilegesToken
 ++NtAlertResumeThread
 ++NtAlertThread
 ++NtAllocateLocallyUniqueId
 ++NtAllocateUserPhysicalPages
 ++NtAllocateUuids
 ++NtAllocateVirtualMemory
 ++;NtAlpcAcceptConnectPort
 ++;NtAlpcCancelMessage
 ++;NtAlpcConnectPort
 ++;NtAlpcCreatePort
 ++;NtAlpcCreatePortSection
 ++;NtAlpcCreateResourceReserve
 ++;NtAlpcCreateSectionView
 ++;NtAlpcCreateSecurityContext
 ++;NtAlpcDeletePortSection
 ++;NtAlpcDeleteResourceReserve
 ++;NtAlpcDeleteSectionView
 ++;NtAlpcDeleteSecurityContext
 ++;NtAlpcDisconnectPort
 ++;NtAlpcImpersonateClientOfPort
 ++;NtAlpcOpenSenderProcess
 ++;NtAlpcOpenSenderThread
 ++;NtAlpcQueryInformation
 ++;NtAlpcQueryInformationMessage
 ++;NtAlpcRevokeSecurityContext
 ++;NtAlpcSendWaitReceivePort
 ++;NtAlpcSetInformation
 ++NtApphelpCacheControl
 ++NtAreMappedFilesTheSame
 ++NtAssignProcessToJobObject
 ++NtCallbackReturn
 ++NtCancelDeviceWakeupRequest
 ++NtCancelIoFile
 ++;NtCancelIoFileEx
 ++;NtCancelSynchronousIoFile
 ++NtCancelTimer
 ++NtClearEvent
 ++NtClose
 ++NtCloseObjectAuditAlarm
 ++;NtCommitComplete
 ++;NtCommitEnlistment
 ++;NtCommitTransaction
 ++NtCompactKeys
 ++NtCompareTokens
 ++NtCompleteConnectPort
 ++NtCompressKey
 ++NtConnectPort
 ++NtContinue
 ++NtCreateDebugObject
 ++NtCreateDirectoryObject
 ++;NtCreateEnlistment
 ++NtCreateEvent
 ++NtCreateEventPair
 ++NtCreateFile
 ++NtCreateIoCompletion
 ++NtCreateJobObject
 ++NtCreateJobSet
 ++NtCreateKey
 ++;NtCreateKeyTransacted
 ++NtCreateKeyedEvent
 ++NtCreateMailslotFile
 ++NtCreateMutant
 ++NtCreateNamedPipeFile
 ++NtCreatePagingFile
 ++NtCreatePort
 ++;NtCreatePrivateNamespace
 ++NtCreateProcess
 ++NtCreateProcessEx
 ++NtCreateProfile
 ++;NtCreateResourceManager
 ++NtCreateSection
 ++NtCreateSemaphore
 ++NtCreateSymbolicLinkObject
 ++NtCreateThread
 ++;NtCreateThreadEx
 ++NtCreateTimer
 ++NtCreateToken
 ++;NtCreateTransaction
 ++;NtCreateTransactionManager
 ++;NtCreateUserProcess
 ++NtCreateWaitablePort
 ++;NtCreateWorkerFactory
 ++NtDebugActiveProcess
 ++NtDebugContinue
 ++NtDelayExecution
 ++NtDeleteAtom
 ++NtDeleteBootEntry
 ++NtDeleteDriverEntry
 ++NtDeleteFile
 ++NtDeleteKey
 ++NtDeleteObjectAuditAlarm
 ++;NtDeletePrivateNamespace
 ++NtDeleteValueKey
 ++NtDeviceIoControlFile
 ++NtDisplayString
 ++NtDuplicateObject
 ++NtDuplicateToken
 ++NtEnumerateBootEntries
 ++NtEnumerateDriverEntries
 ++NtEnumerateKey
 ++NtEnumerateSystemEnvironmentValuesEx
 ++;NtEnumerateTransactionObject
 ++NtEnumerateValueKey
 ++NtExtendSection
 ++NtFilterToken
 ++NtFindAtom
 ++NtFlushBuffersFile
 ++;NtFlushInstallUILanguage
 ++NtFlushInstructionCache
 ++NtFlushKey
 ++;NtFlushProcessWriteBuffers
 ++NtFlushVirtualMemory
 ++NtFlushWriteBuffer
 ++NtFreeUserPhysicalPages
 ++NtFreeVirtualMemory
 ++;NtFreezeRegistry
 ++;NtFreezeTransactions
 ++NtFsControlFile
 ++NtGetContextThread
 ++NtGetCurrentProcessorNumber
 ++NtGetDevicePowerState
 ++;NtGetMUIRegistryInfo
 ++;NtGetNextProcess
 ++;NtGetNextThread
 ++;NtGetNlsSectionPtr
 ++;NtGetNotificationResourceManager
 ++NtGetPlugPlayEvent
 ++;NtGetTickCount
 ++NtGetWriteWatch
 ++NtImpersonateAnonymousToken
 ++NtImpersonateClientOfPort
 ++NtImpersonateThread
 ++;NtInitializeNlsFiles
 ++NtInitializeRegistry
 ++NtInitiatePowerAction
 ++NtIsProcessInJob
 ++NtIsSystemResumeAutomatic
 ++;NtIsUILanguageComitted
 ++NtListenPort
 ++NtLoadDriver
 ++NtLoadKey
 ++NtLoadKey2
 ++NtLoadKeyEx
 ++NtLockFile
 ++NtLockProductActivationKeys
 ++NtLockRegistryKey
 ++NtLockVirtualMemory
 ++NtMakePermanentObject
 ++NtMakeTemporaryObject
 ++;NtMapCMFModule
 ++NtMapUserPhysicalPages
 ++NtMapUserPhysicalPagesScatter
 ++NtMapViewOfSection
 ++NtModifyBootEntry
 ++NtModifyDriverEntry
 ++NtNotifyChangeDirectoryFile
 ++NtNotifyChangeKey
 ++NtNotifyChangeMultipleKeys
 ++NtOpenDirectoryObject
 ++;NtOpenEnlistment
 ++NtOpenEvent
 ++NtOpenEventPair
 ++NtOpenFile
 ++NtOpenIoCompletion
 ++NtOpenJobObject
 ++NtOpenKey
 ++;NtOpenKeyTransacted
 ++NtOpenKeyedEvent
 ++NtOpenMutant
 ++NtOpenObjectAuditAlarm
 ++;NtOpenPrivateNamespace
 ++NtOpenProcess
 ++NtOpenProcessToken
 ++NtOpenProcessTokenEx
 ++;NtOpenResourceManager
 ++NtOpenSection
 ++NtOpenSemaphore
 ++;NtOpenSession
 ++NtOpenSymbolicLinkObject
 ++NtOpenThread
 ++NtOpenThreadToken
 ++NtOpenThreadTokenEx
 ++NtOpenTimer
 ++;NtOpenTransaction
 ++;NtOpenTransactionManager
 ++NtPlugPlayControl
 ++NtPowerInformation
 ++;NtPrePrepareComplete
 ++;NtPrePrepareEnlistment
 ++;NtPrepareComplete
 ++;NtPrepareEnlistment
 ++NtPrivilegeCheck
 ++NtPrivilegeObjectAuditAlarm
 ++NtPrivilegedServiceAuditAlarm
 ++;NtPropagationComplete
 ++;NtPropagationFailed
 ++NtProtectVirtualMemory
 ++NtPulseEvent
 ++NtQueryAttributesFile
 ++NtQueryBootEntryOrder
 ++NtQueryBootOptions
 ++NtQueryDebugFilterState
 ++NtQueryDefaultLocale
 ++NtQueryDefaultUILanguage
 ++NtQueryDirectoryFile
 ++NtQueryDirectoryObject
 ++NtQueryDriverEntryOrder
 ++NtQueryEaFile
 ++NtQueryEvent
 ++NtQueryFullAttributesFile
 ++NtQueryInformationAtom
 ++;NtQueryInformationEnlistment
 ++NtQueryInformationFile
 ++NtQueryInformationJobObject
 ++NtQueryInformationPort
 ++NtQueryInformationProcess
 ++;NtQueryInformationResourceManager
 ++NtQueryInformationThread
 ++NtQueryInformationToken
 ++;NtQueryInformationTransaction
 ++;NtQueryInformationTransactionManager
 ++;NtQueryInformationWorkerFactory
 ++NtQueryInstallUILanguage
 ++NtQueryIntervalProfile
 ++NtQueryIoCompletion
 ++NtQueryKey
 ++;NtQueryLicenseValue
 ++NtQueryMultipleValueKey
 ++NtQueryMutant
 ++NtQueryObject
 ++NtQueryOpenSubKeys
 ++NtQueryOpenSubKeysEx
 ++NtQueryPerformanceCounter
 ++NtQueryPortInformationProcess
 ++NtQueryQuotaInformationFile
 ++NtQuerySection
 ++NtQuerySecurityObject
 ++NtQuerySemaphore
 ++NtQuerySymbolicLinkObject
 ++NtQuerySystemEnvironmentValue
 ++NtQuerySystemEnvironmentValueEx
 ++NtQuerySystemInformation
 ++NtQuerySystemTime
 ++NtQueryTimer
 ++NtQueryTimerResolution
 ++NtQueryValueKey
 ++NtQueryVirtualMemory
 ++NtQueryVolumeInformationFile
 ++NtQueueApcThread
 ++NtRaiseException
 ++NtRaiseHardError
 ++NtReadFile
 ++NtReadFileScatter
 ++;NtReadOnlyEnlistment
 ++NtReadRequestData
 ++NtReadVirtualMemory
 ++;NtRecoverEnlistment
 ++;NtRecoverResourceManager
 ++;NtRecoverTransactionManager
 ++;NtRegisterProtocolAddressInformation
 ++NtRegisterThreadTerminatePort
 ++;NtReleaseCMFViewOwnership
 ++NtReleaseKeyedEvent
 ++NtReleaseMutant
 ++NtReleaseSemaphore
 ++;NtReleaseWorkerFactoryWorker
 ++NtRemoveIoCompletion
 ++;NtRemoveIoCompletionEx
 ++NtRemoveProcessDebug
 ++NtRenameKey
 ++;NtRenameTransactionManager
 ++NtReplaceKey
 ++;NtReplacePartitionUnit
 ++NtReplyPort
 ++NtReplyWaitReceivePort
 ++NtReplyWaitReceivePortEx
 ++NtReplyWaitReplyPort
 ++NtRequestDeviceWakeup
 ++NtRequestPort
 ++NtRequestWaitReplyPort
 ++NtRequestWakeupLatency
 ++NtResetEvent
 ++NtResetWriteWatch
 ++NtRestoreKey
 ++NtResumeProcess
 ++NtResumeThread
 ++;NtRollbackComplete
 ++;NtRollbackEnlistment
 ++;NtRollbackTransaction
 ++;NtRollforwardTransactionManager
 ++NtSaveKey
 ++NtSaveKeyEx
 ++NtSaveMergedKeys
 ++NtSecureConnectPort
 ++NtSetBootEntryOrder
 ++NtSetBootOptions
 ++NtSetContextThread
 ++NtSetDebugFilterState
 ++NtSetDefaultHardErrorPort
 ++NtSetDefaultLocale
 ++NtSetDefaultUILanguage
 ++NtSetDriverEntryOrder
 ++NtSetEaFile
 ++NtSetEvent
 ++NtSetEventBoostPriority
 ++NtSetHighEventPair
 ++NtSetHighWaitLowEventPair
 ++NtSetInformationDebugObject
 ++;NtSetInformationEnlistment
 ++NtSetInformationFile
 ++NtSetInformationJobObject
 ++NtSetInformationKey
 ++NtSetInformationObject
 ++NtSetInformationProcess
 ++;NtSetInformationResourceManager
 ++NtSetInformationThread
 ++NtSetInformationToken
 ++;NtSetInformationTransaction
 ++;NtSetInformationTransactionManager
 ++;NtSetInformationWorkerFactory
 ++NtSetIntervalProfile
 ++NtSetIoCompletion
 ++NtSetLdtEntries
 ++NtSetLowEventPair
 ++NtSetLowWaitHighEventPair
 ++NtSetQuotaInformationFile
 ++NtSetSecurityObject
 ++NtSetSystemEnvironmentValue
 ++NtSetSystemEnvironmentValueEx
 ++NtSetSystemInformation
 ++NtSetSystemPowerState
 ++NtSetSystemTime
 ++NtSetThreadExecutionState
 ++NtSetTimer
 ++NtSetTimerResolution
 ++NtSetUuidSeed
 ++NtSetValueKey
 ++NtSetVolumeInformationFile
 ++NtShutdownSystem
 ++;NtShutdownWorkerFactory
 ++NtSignalAndWaitForSingleObject
 ++;NtSinglePhaseReject
 ++NtStartProfile
 ++NtStopProfile
 ++NtSuspendProcess
 ++NtSuspendThread
 ++NtSystemDebugControl
 ++NtTerminateJobObject
 ++NtTerminateProcess
 ++NtTerminateThread
 ++NtTestAlert
 ++;NtThawRegistry
 ++;NtThawTransactions
 ++;NtTraceControl
 ++NtTraceEvent
 ++NtTranslateFilePath
 ++NtUnloadDriver
 ++NtUnloadKey
 ++NtUnloadKey2
 ++NtUnloadKeyEx
 ++NtUnlockFile
 ++NtUnlockVirtualMemory
 ++NtUnmapViewOfSection
 ++NtVdmControl
 ++NtWaitForDebugEvent
 ++NtWaitForKeyedEvent
 ++NtWaitForMultipleObjects
 ++NtWaitForMultipleObjects32
 ++NtWaitForSingleObject
 ++;NtWaitForWorkViaWorkerFactory
 ++NtWaitHighEventPair
 ++NtWaitLowEventPair
 ++;NtWorkerFactoryWorkerReady
 ++NtWriteFile
 ++NtWriteFileGather
 ++NtWriteRequestData
 ++NtWriteVirtualMemory
 ++NtYieldExecution
 ++;NtdllDefWindowProc_A
 ++;NtdllDefWindowProc_W
 ++;NtdllDialogWndProc_A
 ++;NtdllDialogWndProc_W
 ++;PfxFindPrefix
 ++;PfxInitialize
 ++;PfxInsertPrefix
 ++;PfxRemovePrefix
 ++;RtlAbortRXact
 ++RtlAbsoluteToSelfRelativeSD
 ++RtlAcquirePebLock
 ++RtlAcquirePrivilege
 ++RtlAcquireResourceExclusive
 ++RtlAcquireResourceShared
 ++RtlAcquireSRWLockExclusive
 ++RtlAcquireSRWLockShared
 ++RtlActivateActivationContext
 ++;RtlActivateActivationContextEx
 ++RtlActivateActivationContextUnsafeFast
 ++RtlAddAccessAllowedAce
 ++RtlAddAccessAllowedAceEx
 ++RtlAddAccessAllowedObjectAce
 ++RtlAddAccessDeniedAce
 ++RtlAddAccessDeniedAceEx
 ++RtlAddAccessDeniedObjectAce
 ++RtlAddAce
 ++;RtlAddActionToRXact
 ++RtlAddAtomToAtomTable
 ++;RtlAddAttributeActionToRXact
 ++RtlAddAuditAccessAce
 ++RtlAddAuditAccessAceEx
 ++RtlAddAuditAccessObjectAce
 ++;RtlAddCompoundAce
 ++;RtlAddFunctionTable
 ++RtlAddMandatoryAce
 ++RtlAddRefActivationContext
 ++;RtlAddRefMemoryStream
 ++;RtlAddSIDToBoundaryDescriptor
 ++;RtlAddVectoredContinueHandler
 ++RtlAddVectoredExceptionHandler
 ++;RtlAddressInSectionTable
 ++RtlAdjustPrivilege
 ++RtlAllocateActivationContextStack
 ++RtlAllocateAndInitializeSid
 ++RtlAllocateHandle
 ++RtlAllocateHeap
 ++;RtlAllocateMemoryBlockLookaside
 ++;RtlAllocateMemoryZone
 ++RtlAnsiCharToUnicodeChar
 ++RtlAnsiStringToUnicodeSize=RtlxAnsiStringToUnicodeSize
 ++RtlAnsiStringToUnicodeString
 ++RtlAppendAsciizToString
 ++;RtlAppendPathElement
 ++RtlAppendStringToString
 ++RtlAppendUnicodeStringToString
 ++RtlAppendUnicodeToString
 ++;RtlApplicationVerifierStop
 ++;RtlApplyRXact
 ++;RtlApplyRXactNoFlush
 ++RtlAreAllAccessesGranted
 ++RtlAreAnyAccessesGranted
 ++RtlAreBitsClear
 ++RtlAreBitsSet
 ++RtlAssert
 ++;RtlBarrier
 ++;RtlBarrierForDelete
 ++;RtlCancelTimer
 ++RtlCaptureContext
 ++RtlCaptureStackBackTrace
 ++RtlCharToInteger
 ++;RtlCheckForOrphanedCriticalSections
 ++RtlCheckRegistryKey
 ++;RtlCleanUpTEBLangLists
 ++RtlClearAllBits
 ++RtlClearBits
 ++;RtlCloneMemoryStream
 ++;RtlCloneUserProcess
 ++;RtlCmDecodeMemIoResource
 ++;RtlCmEncodeMemIoResource
 ++;RtlCommitDebugInfo
 ++;RtlCommitMemoryStream
 ++RtlCompactHeap
 ++;RtlCompareAltitudes
 ++RtlCompareMemory
 ++RtlCompareMemoryUlong
 ++RtlCompareString
 ++RtlCompareUnicodeString
 ++;RtlCompareUnicodeStrings
 ++;RtlCompleteProcessCloning
 ++RtlCompressBuffer
 ++RtlComputeCrc32
 ++;RtlComputeImportTableHash
 ++;RtlComputePrivatizedDllName_U
 ++;RtlConnectToSm
 ++;RtlConsoleMultiByteToUnicodeN
 ++RtlConvertExclusiveToShared
 ++;RtlConvertLCIDToString
 ++RtlConvertSharedToExclusive
 ++RtlConvertSidToUnicodeString
 ++;RtlConvertToAutoInheritSecurityObject
 ++;RtlConvertUiListToApiList
 ++RtlCopyLuid
 ++RtlCopyLuidAndAttributesArray
 ++;RtlCopyMappedMemory
 ++RtlCopyMemory=memcpy
 ++;RtlCopyMemoryNonTemporal
 ++;RtlCopyMemoryStreamTo
 ++;RtlCopyOutOfProcessMemoryStreamTo
 ++RtlCopySecurityDescriptor
 ++RtlCopySid
 ++RtlCopySidAndAttributesArray
 ++RtlCopyString
 ++RtlCopyUnicodeString
 ++RtlCreateAcl
 ++RtlCreateActivationContext
 ++;RtlCreateAndSetSD
 ++RtlCreateAtomTable
 ++;RtlCreateBootStatusDataFile
 ++;RtlCreateBoundaryDescriptor
 ++RtlCreateEnvironment
 ++;RtlCreateEnvironmentEx
 ++RtlCreateHeap
 ++;RtlCreateMemoryBlockLookaside
 ++;RtlCreateMemoryZone
 ++RtlCreateProcessParameters
 ++;RtlCreateProcessParametersEx
 ++RtlCreateQueryDebugBuffer
 ++RtlCreateRegistryKey
 ++RtlCreateSecurityDescriptor
 ++;RtlCreateServiceSid
 ++RtlCreateSystemVolumeInformationFolder
 ++RtlCreateTagHeap
 ++RtlCreateTimer
 ++RtlCreateTimerQueue
 ++RtlCreateUnicodeString
 ++RtlCreateUnicodeStringFromAsciiz
 ++RtlCreateUserProcess
 ++;RtlCreateUserSecurityObject
 ++;RtlCreateUserStack
 ++RtlCreateUserThread
 ++;RtlCultureNameToLCID
 ++RtlCustomCPToUnicodeN
 ++RtlCutoverTimeToSystemTime
 ++;RtlDeCommitDebugInfo
 ++RtlDeNormalizeProcessParams
 ++RtlDeactivateActivationContext
 ++RtlDeactivateActivationContextUnsafeFast
 ++;RtlDebugPrintTimes
 ++RtlDecodePointer=RtlEncodePointer
 ++RtlDecodeSystemPointer=RtlEncodeSystemPointer
 ++RtlDecompressBuffer
 ++RtlDecompressFragment
 ++;RtlDefaultNpAcl
 ++RtlDelete
 ++RtlDeleteAce
 ++RtlDeleteAtomFromAtomTable
 ++;RtlDeleteBarrier
 ++;RtlDeleteBoundaryDescriptor
 ++RtlDeleteCriticalSection
 ++RtlDeleteElementGenericTable
 ++RtlDeleteElementGenericTableAvl
 ++;RtlDeleteFunctionTable
 ++RtlDeleteNoSplay
 ++RtlDeleteRegistryValue
 ++RtlDeleteResource
 ++RtlDeleteSecurityObject
 ++RtlDeleteTimer
 ++RtlDeleteTimerQueue
 ++RtlDeleteTimerQueueEx
 ++;RtlDeregisterSecureMemoryCacheCallback
 ++RtlDeregisterWait
 ++RtlDeregisterWaitEx
 ++RtlDestroyAtomTable
 ++RtlDestroyEnvironment
 ++RtlDestroyHandleTable
 ++RtlDestroyHeap
 ++;RtlDestroyMemoryBlockLookaside
 ++;RtlDestroyMemoryZone
 ++RtlDestroyProcessParameters
 ++RtlDestroyQueryDebugBuffer
 ++RtlDetermineDosPathNameType_U
 ++RtlDllShutdownInProgress
 ++;RtlDnsHostNameToComputerName
 ++RtlDoesFileExists_U
 ++;RtlDosApplyFileIsolationRedirection_Ustr
 ++RtlDosPathNameToNtPathName_U
 ++;RtlDosPathNameToNtPathName_U_WithStatus
 ++RtlDosPathNameToRelativeNtPathName_U
 ++;RtlDosPathNameToRelativeNtPathName_U_WithStatus
 ++RtlDosSearchPath_U
 ++;RtlDosSearchPath_Ustr
 ++RtlDowncaseUnicodeChar
 ++RtlDowncaseUnicodeString
 ++RtlDumpResource
 ++RtlDuplicateUnicodeString
 ++RtlEmptyAtomTable
 ++;RtlEnableEarlyCriticalSectionEventCreation
 ++RtlEncodePointer
 ++RtlEncodeSystemPointer
 ++RtlEnterCriticalSection
 ++RtlEnumProcessHeaps
 ++RtlEnumerateGenericTable
 ++RtlEnumerateGenericTableAvl
 ++RtlEnumerateGenericTableLikeADirectory
 ++RtlEnumerateGenericTableWithoutSplaying
 ++RtlEnumerateGenericTableWithoutSplayingAvl
 ++RtlEqualComputerName
 ++RtlEqualDomainName
 ++RtlEqualLuid
 ++RtlEqualPrefixSid
 ++RtlEqualSid
 ++RtlEqualString
 ++RtlEqualUnicodeString
 ++RtlEraseUnicodeString
 ++;RtlExitUserProcess
 ++RtlExitUserThread
 ++;RtlExpandEnvironmentStrings
 ++RtlExpandEnvironmentStrings_U
 ++;RtlExtendMemoryBlockLookaside
 ++;RtlExtendMemoryZone
 ++RtlFillMemory
 ++;RtlFinalReleaseOutOfProcessMemoryStream
 ++;RtlFindAceByType
 ++;RtlFindActivationContextSectionGuid
 ++RtlFindActivationContextSectionString
 ++RtlFindCharInUnicodeString
 ++RtlFindClearBits
 ++RtlFindClearBitsAndSet
 ++RtlFindClearRuns
 ++;RtlFindClosestEncodableLength
 ++RtlFindLastBackwardRunClear
 ++RtlFindLeastSignificantBit
 ++RtlFindLongestRunClear
 ++RtlFindMessage
 ++RtlFindMostSignificantBit
 ++RtlFindNextForwardRunClear
 ++RtlFindSetBits
 ++RtlFindSetBitsAndClear
 ++RtlFirstEntrySList
 ++RtlFirstFreeAce
 ++;RtlFlsAlloc
 ++;RtlFlsFree
 ++RtlFlushSecureMemoryCache
 ++RtlFormatCurrentUserKeyPath
 ++RtlFormatMessage
 ++;RtlFormatMessageEx
 ++;RtlFreeActivationContextStack
 ++RtlFreeAnsiString
 ++RtlFreeHandle
 ++RtlFreeHeap
 ++;RtlFreeMemoryBlockLookaside
 ++RtlFreeOemString
 ++RtlFreeSid
 ++;RtlFreeThreadActivationContextStack
 ++RtlFreeUnicodeString
 ++;RtlFreeUserStack
 ++RtlGUIDFromString
 ++RtlGenerate8dot3Name
 ++RtlGetAce
 ++RtlGetActiveActivationContext
 ++RtlGetCallersAddress
 ++RtlGetCompressionWorkSpaceSize
 ++RtlGetControlSecurityDescriptor
 ++;RtlGetCriticalSectionRecursionCount
 ++RtlGetCurrentDirectory_U
 ++RtlGetCurrentPeb
 ++RtlGetCurrentProcessorNumber
 ++;RtlGetCurrentTransaction
 ++RtlGetDaclSecurityDescriptor
 ++RtlGetElementGenericTable
 ++RtlGetElementGenericTableAvl
 ++;RtlGetFileMUIPath
 ++;RtlGetFrame
 ++RtlGetFullPathName_U
 ++;RtlGetFullPathName_UstrEx
 ++;RtlGetFunctionTableListHead
 ++RtlGetGroupSecurityDescriptor
 ++;RtlGetIntegerAtom
 ++RtlGetLastNtStatus
 ++RtlGetLastWin32Error
 ++;RtlGetLengthWithoutLastFullDosOrNtPathElement
 ++;RtlGetLengthWithoutTrailingPathSeperators
 ++RtlGetLongestNtPathLength
 ++;RtlGetNativeSystemInformation
 ++RtlGetNtGlobalFlags
 ++RtlGetNtProductType
 ++RtlGetNtVersionNumbers
 ++RtlGetOwnerSecurityDescriptor
 ++;RtlGetParentLocaleName
 ++RtlGetProcessHeaps
 ++;RtlGetProductInfo
 ++RtlGetSaclSecurityDescriptor
 ++RtlGetSecurityDescriptorRMControl
 ++RtlGetSetBootStatusData
 ++;RtlGetSystemPreferredUILanguages
 ++;RtlGetThreadErrorMode
 ++;RtlGetThreadLangIdByIndex
 ++;RtlGetThreadPreferredUILanguages
 ++;RtlGetUILanguageInfo
 ++;RtlGetUnloadEventTrace
 ++;RtlGetUnloadEventTraceEx
 ++RtlGetUserInfoHeap
 ++;RtlGetUserPreferredUILanguages
 ++RtlGetVersion
 ++RtlHashUnicodeString
 ++;RtlHeapTrkInitialize
 ++RtlIdentifierAuthoritySid
 ++;RtlIdnToAscii
 ++;RtlIdnToNameprepUnicode
 ++;RtlIdnToUnicode
 ++RtlImageDirectoryEntryToData
 ++RtlImageNtHeader
 ++;RtlImageNtHeaderEx
 ++RtlImageRvaToSection
 ++RtlImageRvaToVa
 ++RtlImpersonateSelf
 ++;RtlImpersonateSelfEx
 ++RtlInitAnsiString
 ++RtlInitAnsiStringEx
 ++;RtlInitBarrier
 ++RtlInitCodePageTable
 ++;RtlInitMemoryStream
 ++RtlInitNlsTables
 ++;RtlInitOutOfProcessMemoryStream
 ++RtlInitString
 ++RtlInitUnicodeString
 ++RtlInitUnicodeStringEx
 ++;RtlInitializeAtomPackage
 ++RtlInitializeBitMap
 ++RtlInitializeConditionVariable
 ++RtlInitializeContext
 ++RtlInitializeCriticalSection
 ++RtlInitializeCriticalSectionAndSpinCount
 ++;RtlInitializeCriticalSectionEx
 ++RtlInitializeGenericTable
 ++RtlInitializeGenericTableAvl
 ++RtlInitializeHandleTable
 ++;RtlInitializeNtUserPfn
 ++;RtlInitializeRXact
 ++RtlInitializeResource
 ++RtlInitializeSListHead
 ++RtlInitializeSRWLock
 ++RtlInitializeSid
 ++RtlInsertElementGenericTable
 ++RtlInsertElementGenericTableAvl
 ++RtlInsertElementGenericTableFull
 ++RtlInsertElementGenericTableFullAvl
 ++;RtlInstallFunctionTableCallback
 ++RtlInt64ToUnicodeString
 ++RtlIntegerToChar
 ++RtlIntegerToUnicodeString
 ++RtlInterlockedFlushSList
 ++RtlInterlockedPopEntrySList
 ++RtlInterlockedPushEntrySList
 ++RtlInterlockedPushListSList
 ++;RtlIoDecodeMemIoResource
 ++;RtlIoEncodeMemIoResource
 ++RtlIpv4AddressToStringA
 ++RtlIpv4AddressToStringExA
 ++RtlIpv4AddressToStringExW
 ++RtlIpv4AddressToStringW
 ++RtlIpv4StringToAddressA
 ++RtlIpv4StringToAddressExA
 ++RtlIpv4StringToAddressExW
 ++RtlIpv4StringToAddressW
 ++RtlIpv6AddressToStringA
 ++RtlIpv6AddressToStringExA
 ++RtlIpv6AddressToStringExW
 ++RtlIpv6AddressToStringW
 ++RtlIpv6StringToAddressA
 ++RtlIpv6StringToAddressExA
 ++RtlIpv6StringToAddressExW
 ++RtlIpv6StringToAddressW
 ++;RtlIsActivationContextActive
 ++;RtlIsCriticalSectionLocked
 ++;RtlIsCriticalSectionLockedByThread
 ++;RtlIsCurrentThreadAttachExempt
 ++RtlIsDosDeviceName_U
 ++RtlIsGenericTableEmpty
 ++RtlIsGenericTableEmptyAvl
 ++RtlIsNameLegalDOS8Dot3
 ++;RtlIsNormalizedString
 ++RtlIsTextUnicode
 ++;RtlIsThreadWithinLoaderCallout
 ++RtlIsValidHandle
 ++RtlIsValidIndexHandle
 ++;RtlIsValidLocaleName
 ++;RtlLCIDToCultureName
 ++RtlLargeIntegerToChar
 ++;RtlLcidToLocaleName
 ++RtlLeaveCriticalSection
 ++RtlLengthRequiredSid
 ++RtlLengthSecurityDescriptor
 ++RtlLengthSid
 ++RtlLocalTimeToSystemTime
 ++;RtlLocaleNameToLcid
 ++RtlLockBootStatusData
 ++;RtlLockCurrentThread
 ++RtlLockHeap
 ++;RtlLockMemoryBlockLookaside
 ++;RtlLockMemoryStreamRegion
 ++;RtlLockMemoryZone
 ++;RtlLockModuleSection
 ++;RtlLogStackBackTrace
 ++RtlLookupAtomInAtomTable
 ++RtlLookupElementGenericTable
 ++RtlLookupElementGenericTableAvl
 ++RtlLookupElementGenericTableFull
 ++RtlLookupElementGenericTableFullAvl
 ++RtlLookupFunctionEntry
 ++RtlLookupFunctionTable
 ++RtlMakeSelfRelativeSD
 ++RtlMapGenericMask
 ++RtlMapSecurityErrorToNtStatus
 ++RtlMoveMemory
 ++;RtlMultiAppendUnicodeStringBuffer
 ++RtlMultiByteToUnicodeN
 ++RtlMultiByteToUnicodeSize
 ++RtlMultipleAllocateHeap
 ++RtlMultipleFreeHeap
 ++;RtlNewInstanceSecurityObject
 ++;RtlNewSecurityGrantedAccess
 ++RtlNewSecurityObject
 ++;RtlNewSecurityObjectEx
 ++;RtlNewSecurityObjectWithMultipleInheritance
 ++RtlNormalizeProcessParams
 ++;RtlNormalizeString
 ++RtlNtPathNameToDosPathName
 ++RtlNtStatusToDosError
 ++RtlNtStatusToDosErrorNoTeb
 ++;RtlNtdllName
 ++RtlNumberGenericTableElements
 ++RtlNumberGenericTableElementsAvl
 ++RtlNumberOfClearBits
 ++RtlNumberOfSetBits
 ++;RtlNumberOfSetBitsUlongPtr
 ++RtlOemStringToUnicodeSize=RtlxOemStringToUnicodeSize
 ++RtlOemStringToUnicodeString
 ++RtlOemToUnicodeN
 ++RtlOpenCurrentUser
 ++;RtlOwnerAcesPresent
 ++RtlPcToFileHeader
 ++RtlPinAtomInAtomTable
 ++;RtlPopFrame
 ++RtlPrefixString
 ++RtlPrefixUnicodeString
 ++;RtlPrepareForProcessCloning
 ++;RtlProcessFlsData
 ++;RtlProtectHeap
 ++;RtlPushFrame
 ++;RtlQueryActivationContextApplicationSettings
 ++RtlQueryAtomInAtomTable
 ++;RtlQueryCriticalSectionOwner
 ++RtlQueryDepthSList
 ++;RtlQueryDynamicTimeZoneInformation
 ++;RtlQueryElevationFlags
 ++;RtlQueryEnvironmentVariable
 ++RtlQueryEnvironmentVariable_U
 ++RtlQueryHeapInformation
 ++RtlQueryInformationAcl
 ++RtlQueryInformationActivationContext
 ++RtlQueryInformationActiveActivationContext
 ++;RtlQueryInterfaceMemoryStream
 ++;RtlQueryModuleInformation
 ++;RtlQueryProcessBackTraceInformation
 ++RtlQueryProcessDebugInformation
 ++;RtlQueryProcessHeapInformation
 ++;RtlQueryProcessLockInformation
 ++RtlQueryRegistryValues
 ++RtlQuerySecurityObject
 ++RtlQueryTagHeap
 ++RtlQueryTimeZoneInformation
 ++;RtlQueueApcWow64Thread
 ++RtlQueueWorkItem
 ++RtlRaiseException
 ++RtlRaiseStatus
 ++RtlRandom
 ++RtlRandomEx=RtlRandom
 ++RtlReAllocateHeap
 ++;RtlReadMemoryStream
 ++;RtlReadOutOfProcessMemoryStream
 ++RtlRealPredecessor
 ++RtlRealSuccessor
 ++RtlRegisterSecureMemoryCacheCallback
 ++;RtlRegisterThreadWithCsrss
 ++RtlRegisterWait
 ++RtlReleaseActivationContext
 ++;RtlReleaseMemoryStream
 ++RtlReleasePebLock
 ++RtlReleasePrivilege
 ++RtlReleaseRelativeName
 ++RtlReleaseResource
 ++RtlReleaseSRWLockExclusive
 ++RtlReleaseSRWLockShared
 ++RtlRemoteCall
 ++;RtlRemovePrivileges
 ++;RtlRemoveVectoredContinueHandler
 ++RtlRemoveVectoredExceptionHandler
 ++;RtlReportException
 ++;RtlResetMemoryBlockLookaside
 ++;RtlResetMemoryZone
 ++RtlResetRtlTranslations
 ++;RtlRestoreContext
 ++RtlRestoreLastWin32Error=RtlSetLastWin32Error
 ++;RtlRetrieveNtUserPfn
 ++;RtlRevertMemoryStream
 ++RtlRunDecodeUnicodeString
 ++RtlRunEncodeUnicodeString
 ++;RtlRunOnceBeginInitialize
 ++;RtlRunOnceComplete
 ++;RtlRunOnceExecuteOnce
 ++;RtlRunOnceInitialize
 ++RtlSecondsSince1970ToTime
 ++RtlSecondsSince1980ToTime
 ++;RtlSeekMemoryStream
 ++RtlSelfRelativeToAbsoluteSD
 ++RtlSelfRelativeToAbsoluteSD2
 ++;RtlSendMsgToSm
 ++RtlSetAllBits
 ++RtlSetAttributesSecurityDescriptor
 ++RtlSetBits
 ++RtlSetControlSecurityDescriptor
 ++RtlSetCriticalSectionSpinCount
 ++RtlSetCurrentDirectory_U
 ++RtlSetCurrentEnvironment
 ++;RtlSetCurrentTransaction
 ++RtlSetDaclSecurityDescriptor
 ++;RtlSetDynamicTimeZoneInformation
 ++;RtlSetEnvironmentStrings
 ++;RtlSetEnvironmentVar
 ++RtlSetEnvironmentVariable
 ++RtlSetGroupSecurityDescriptor
 ++RtlSetHeapInformation
 ++RtlSetInformationAcl
 ++RtlSetIoCompletionCallback
 ++RtlSetLastWin32Error
 ++RtlSetLastWin32ErrorAndNtStatusFromNtStatus
 ++;RtlSetMemoryStreamSize
 ++RtlSetOwnerSecurityDescriptor
 ++;RtlSetProcessDebugInformation
 ++RtlSetProcessIsCritical
 ++RtlSetSaclSecurityDescriptor
 ++RtlSetSecurityDescriptorRMControl
 ++RtlSetSecurityObject
 ++;RtlSetSecurityObjectEx
 ++;RtlSetThreadErrorMode
 ++;RtlSetThreadIsCritical
 ++;RtlSetThreadPoolStartFunc
 ++;RtlSetThreadPreferredUILanguages
 ++RtlSetTimeZoneInformation
 ++;RtlSetTimer
 ++RtlSetUnhandledExceptionFilter
 ++RtlSetUserFlagsHeap
 ++RtlSetUserValueHeap
 ++;RtlSidDominates
 ++;RtlSidEqualLevel
 ++;RtlSidHashInitialize
 ++;RtlSidHashLookup
 ++;RtlSidIsHigherLevel
 ++RtlSizeHeap
 ++RtlSleepConditionVariableCS
 ++RtlSleepConditionVariableSRW
 ++RtlSplay
 ++;RtlStartRXact
 ++;RtlStatMemoryStream
 ++RtlStringFromGUID
 ++RtlSubAuthorityCountSid
 ++RtlSubAuthoritySid
 ++RtlSubtreePredecessor
 ++RtlSubtreeSuccessor
 ++RtlSystemTimeToLocalTime
 ++RtlTestBit
 ++RtlTimeFieldsToTime
 ++RtlTimeToElapsedTimeFields
 ++RtlTimeToSecondsSince1970
 ++RtlTimeToSecondsSince1980
 ++RtlTimeToTimeFields
 ++;RtlTraceDatabaseAdd
 ++;RtlTraceDatabaseCreate
 ++;RtlTraceDatabaseDestroy
 ++;RtlTraceDatabaseEnumerate
 ++;RtlTraceDatabaseFind
 ++;RtlTraceDatabaseLock
 ++;RtlTraceDatabaseUnlock
 ++;RtlTraceDatabaseValidate
 ++;RtlTryAcquirePebLock
 ++RtlTryEnterCriticalSection
 ++RtlUnhandledExceptionFilter
 ++;RtlUnhandledExceptionFilter2
 ++RtlUnicodeStringToAnsiSize=RtlxUnicodeStringToAnsiSize
 ++RtlUnicodeStringToAnsiString
 ++RtlUnicodeStringToCountedOemString
 ++RtlUnicodeStringToInteger
 ++RtlUnicodeStringToOemSize=RtlxUnicodeStringToOemSize
 ++RtlUnicodeStringToOemString
 ++RtlUnicodeToCustomCPN
 ++RtlUnicodeToMultiByteN
 ++RtlUnicodeToMultiByteSize
 ++RtlUnicodeToOemN
 ++RtlUniform
 ++RtlUnlockBootStatusData
 ++;RtlUnlockCurrentThread
 ++RtlUnlockHeap
 ++;RtlUnlockMemoryBlockLookaside
 ++;RtlUnlockMemoryStreamRegion
 ++;RtlUnlockMemoryZone
 ++;RtlUnlockModuleSection
 ++RtlUnwind
 ++RtlUnwindEx
 ++RtlUpcaseUnicodeChar
 ++RtlUpcaseUnicodeString
 ++RtlUpcaseUnicodeStringToAnsiString
 ++RtlUpcaseUnicodeStringToCountedOemString
 ++RtlUpcaseUnicodeStringToOemString
 ++RtlUpcaseUnicodeToCustomCPN
 ++RtlUpcaseUnicodeToMultiByteN
 ++RtlUpcaseUnicodeToOemN
 ++;RtlUpdateClonedCriticalSection
 ++;RtlUpdateClonedSRWLock
 ++RtlUpdateTimer
 ++RtlUpperChar
 ++RtlUpperString
 ++;RtlUserThreadStart
 ++RtlValidAcl
 ++RtlValidRelativeSecurityDescriptor
 ++RtlValidSecurityDescriptor
 ++RtlValidSid
 ++RtlValidateHeap
 ++RtlValidateProcessHeaps
 ++RtlValidateUnicodeString
 ++RtlVerifyVersionInfo
 ++RtlVirtualUnwind
 ++RtlWakeAllConditionVariable
 ++RtlWakeConditionVariable
 ++RtlWalkFrameChain
 ++RtlWalkHeap
 ++;RtlWerpReportException
 ++;RtlWow64CallFunction64
 ++;RtlWow64EnableFsRedirection
 ++;RtlWow64EnableFsRedirectionEx
 ++;RtlWow64GetThreadContext
 ++;RtlWow64LogMessageInEventLogger
 ++;RtlWow64SetThreadContext
 ++;RtlWow64SuspendThread
 ++;RtlWriteMemoryStream
 ++RtlWriteRegistryValue
 ++RtlZeroHeap
 ++RtlZeroMemory
 ++RtlZombifyActivationContext
 ++;RtlpApplyLengthFunction
 ++;RtlpCheckDynamicTimeZoneInformation
 ++;RtlpCleanupRegistryKeys
 ++;RtlpConvertCultureNamesToLCIDs
 ++;RtlpConvertLCIDsToCultureNames
 ++;RtlpCreateProcessRegistryInfo
 ++RtlpEnsureBufferSize
 ++;RtlpGetLCIDFromLangInfoNode
 ++;RtlpGetNameFromLangInfoNode
 ++;RtlpGetSystemDefaultUILanguage
 ++;RtlpGetUserOrMachineUILanguage4NLS
 ++;RtlpInitializeLangRegistryInfo
 ++;RtlpIsQualifiedLanguage
 ++;RtlpLoadMachineUIByPolicy
 ++;RtlpLoadUserUIByPolicy
 ++;RtlpMuiFreeLangRegistryInfo
 ++;RtlpMuiRegCreateRegistryInfo
 ++;RtlpMuiRegFreeRegistryInfo
 ++;RtlpMuiRegLoadRegistryInfo
 ++;RtlpNotOwnerCriticalSection
 ++RtlpNtCreateKey
 ++RtlpNtEnumerateSubKey
 ++RtlpNtMakeTemporaryKey
 ++RtlpNtOpenKey
 ++RtlpNtQueryValueKey
 ++RtlpNtSetValueKey
 ++;RtlpQueryDefaultUILanguage
 ++;RtlpQueryProcessDebugInformationFromWow64
 ++;RtlpRefreshCachedUILanguage
 ++;RtlpSetInstallLanguage
 ++;RtlpSetPreferredUILanguages
 ++;RtlpSetUserPreferredUILanguages
 ++RtlpUnWaitCriticalSection
 ++;RtlpVerifyAndCommitUILanguageSettings
 ++RtlpWaitForCriticalSection
 ++RtlxAnsiStringToUnicodeSize
 ++RtlxOemStringToUnicodeSize
 ++RtlxUnicodeStringToAnsiSize
 ++RtlxUnicodeStringToOemSize
 ++;ShipAssert
 ++;ShipAssertGetBufferInfo
 ++;ShipAssertMsgA
 ++;ShipAssertMsgW
 ++;TpAllocAlpcCompletion
 ++;TpAllocCleanupGroup
 ++;TpAllocIoCompletion
 ++;TpAllocPool
 ++;TpAllocTimer
 ++;TpAllocWait
 ++;TpAllocWork
 ++;TpCallbackLeaveCriticalSectionOnCompletion
 ++;TpCallbackMayRunLong
 ++;TpCallbackReleaseMutexOnCompletion
 ++;TpCallbackReleaseSemaphoreOnCompletion
 ++;TpCallbackSetEventOnCompletion
 ++;TpCallbackUnloadDllOnCompletion
 ++;TpCancelAsyncIoOperation
 ++;TpCaptureCaller
 ++;TpCheckTerminateWorker
 ++;TpDbgDumpHeapUsage
 ++;TpDbgSetLogRoutine
 ++;TpDisassociateCallback
 ++;TpIsTimerSet
 ++;TpPostWork
 ++;TpReleaseAlpcCompletion
 ++;TpReleaseCleanupGroup
 ++;TpReleaseCleanupGroupMembers
 ++;TpReleaseIoCompletion
 ++;TpReleasePool
 ++;TpReleaseTimer
 ++;TpReleaseWait
 ++;TpReleaseWork
 ++;TpSetPoolMaxThreads
 ++;TpSetPoolMinThreads
 ++;TpSetTimer
 ++;TpSetWait
 ++;TpSimpleTryPost
 ++;TpStartAsyncIoOperation
 ++;TpWaitForAlpcCompletion
 ++;TpWaitForIoCompletion
 ++;TpWaitForTimer
 ++;TpWaitForWait
 ++;TpWaitForWork
 ++VerSetConditionMask
 ++;WerCheckEventEscalation
 ++;WerReportSQMEvent
 ++;WerReportWatsonEvent
 ++;WinSqmAddToStream
 ++;WinSqmEndSession
 ++;WinSqmEventEnabled
 ++;WinSqmEventWrite
 ++;WinSqmIsOptedIn
 ++;WinSqmSetString
 ++;WinSqmStartSession
 ++ZwAcceptConnectPort
 ++ZwAccessCheck
 ++ZwAccessCheckAndAuditAlarm
 ++ZwAccessCheckByType
 ++ZwAccessCheckByTypeAndAuditAlarm
 ++ZwAccessCheckByTypeResultList
 ++ZwAccessCheckByTypeResultListAndAuditAlarm
 ++ZwAccessCheckByTypeResultListAndAuditAlarmByHandle
 ++;ZwAcquireCMFViewOwnership
 ++ZwAddAtom
 ++ZwAddBootEntry
 ++ZwAddDriverEntry
 ++ZwAdjustGroupsToken
 ++ZwAdjustPrivilegesToken
 ++ZwAlertResumeThread
 ++ZwAlertThread
 ++ZwAllocateLocallyUniqueId
 ++ZwAllocateUserPhysicalPages
 ++ZwAllocateUuids
 ++ZwAllocateVirtualMemory
 ++;ZwAlpcAcceptConnectPort
 ++;ZwAlpcCancelMessage
 ++;ZwAlpcConnectPort
 ++;ZwAlpcCreatePort
 ++;ZwAlpcCreatePortSection
 ++;ZwAlpcCreateResourceReserve
 ++;ZwAlpcCreateSectionView
 ++;ZwAlpcCreateSecurityContext
 ++;ZwAlpcDeletePortSection
 ++;ZwAlpcDeleteResourceReserve
 ++;ZwAlpcDeleteSectionView
 ++;ZwAlpcDeleteSecurityContext
 ++;ZwAlpcDisconnectPort
 ++;ZwAlpcImpersonateClientOfPort
 ++;ZwAlpcOpenSenderProcess
 ++;ZwAlpcOpenSenderThread
 ++;ZwAlpcQueryInformation
 ++;ZwAlpcQueryInformationMessage
 ++;ZwAlpcRevokeSecurityContext
 ++;ZwAlpcSendWaitReceivePort
 ++;ZwAlpcSetInformation
 ++ZwApphelpCacheControl
 ++ZwAreMappedFilesTheSame
 ++ZwAssignProcessToJobObject
 ++ZwCallbackReturn
 ++ZwCancelDeviceWakeupRequest
 ++ZwCancelIoFile
 ++;ZwCancelIoFileEx
 ++;ZwCancelSynchronousIoFile
 ++ZwCancelTimer
 ++ZwClearEvent
 ++ZwClose
 ++ZwCloseObjectAuditAlarm
 ++;ZwCommitComplete
 ++;ZwCommitEnlistment
 ++;ZwCommitTransaction
 ++ZwCompactKeys
 ++ZwCompareTokens
 ++ZwCompleteConnectPort
 ++ZwCompressKey
 ++ZwConnectPort
 ++ZwContinue
 ++ZwCreateDebugObject
 ++ZwCreateDirectoryObject
 ++;ZwCreateEnlistment
 ++ZwCreateEvent
 ++ZwCreateEventPair
 ++ZwCreateFile
 ++ZwCreateIoCompletion
 ++ZwCreateJobObject
 ++ZwCreateJobSet
 ++ZwCreateKey
 ++;ZwCreateKeyTransacted
 ++ZwCreateKeyedEvent
 ++ZwCreateMailslotFile
 ++ZwCreateMutant
 ++ZwCreateNamedPipeFile
 ++ZwCreatePagingFile
 ++ZwCreatePort
 ++;ZwCreatePrivateNamespace
 ++ZwCreateProcess
 ++ZwCreateProcessEx
 ++ZwCreateProfile
 ++;ZwCreateResourceManager
 ++ZwCreateSection
 ++ZwCreateSemaphore
 ++ZwCreateSymbolicLinkObject
 ++ZwCreateThread
 ++;ZwCreateThreadEx
 ++ZwCreateTimer
 ++ZwCreateToken
 ++;ZwCreateTransaction
 ++;ZwCreateTransactionManager
 ++;ZwCreateUserProcess
 ++ZwCreateWaitablePort
 ++;ZwCreateWorkerFactory
 ++ZwDebugActiveProcess
 ++ZwDebugContinue
 ++ZwDelayExecution
 ++ZwDeleteAtom
 ++ZwDeleteBootEntry
 ++ZwDeleteDriverEntry
 ++ZwDeleteFile
 ++ZwDeleteKey
 ++ZwDeleteObjectAuditAlarm
 ++;ZwDeletePrivateNamespace
 ++ZwDeleteValueKey
 ++ZwDeviceIoControlFile
 ++ZwDisplayString
 ++ZwDuplicateObject
 ++ZwDuplicateToken
 ++ZwEnumerateBootEntries
 ++ZwEnumerateDriverEntries
 ++ZwEnumerateKey
 ++ZwEnumerateSystemEnvironmentValuesEx
 ++;ZwEnumerateTransactionObject
 ++ZwEnumerateValueKey
 ++ZwExtendSection
 ++ZwFilterToken
 ++ZwFindAtom
 ++ZwFlushBuffersFile
 ++;ZwFlushInstallUILanguage
 ++ZwFlushInstructionCache
 ++ZwFlushKey
 ++;ZwFlushProcessWriteBuffers
 ++ZwFlushVirtualMemory
 ++ZwFlushWriteBuffer
 ++ZwFreeUserPhysicalPages
 ++ZwFreeVirtualMemory
 ++;ZwFreezeRegistry
 ++;ZwFreezeTransactions
 ++ZwFsControlFile
 ++ZwGetContextThread
 ++ZwGetCurrentProcessorNumber
 ++ZwGetDevicePowerState
 ++;ZwGetMUIRegistryInfo
 ++;ZwGetNextProcess
 ++;ZwGetNextThread
 ++;ZwGetNlsSectionPtr
 ++;ZwGetNotificationResourceManager
 ++ZwGetPlugPlayEvent
 ++ZwGetWriteWatch
 ++ZwImpersonateAnonymousToken
 ++ZwImpersonateClientOfPort
 ++ZwImpersonateThread
 ++;ZwInitializeNlsFiles
 ++ZwInitializeRegistry
 ++ZwInitiatePowerAction
 ++ZwIsProcessInJob
 ++ZwIsSystemResumeAutomatic
 ++;ZwIsUILanguageComitted
 ++ZwListenPort
 ++ZwLoadDriver
 ++ZwLoadKey
 ++ZwLoadKey2
 ++ZwLoadKeyEx
 ++ZwLockFile
 ++ZwLockProductActivationKeys
 ++ZwLockRegistryKey
 ++ZwLockVirtualMemory
 ++ZwMakePermanentObject
 ++ZwMakeTemporaryObject
 ++;ZwMapCMFModule
 ++ZwMapUserPhysicalPages
 ++ZwMapUserPhysicalPagesScatter
 ++ZwMapViewOfSection
 ++ZwModifyBootEntry
 ++ZwModifyDriverEntry
 ++ZwNotifyChangeDirectoryFile
 ++ZwNotifyChangeKey
 ++ZwNotifyChangeMultipleKeys
 ++ZwOpenDirectoryObject
 ++;ZwOpenEnlistment
 ++ZwOpenEvent
 ++ZwOpenEventPair
 ++ZwOpenFile
 ++ZwOpenIoCompletion
 ++ZwOpenJobObject
 ++ZwOpenKey
 ++;ZwOpenKeyTransacted
 ++ZwOpenKeyedEvent
 ++ZwOpenMutant
 ++ZwOpenObjectAuditAlarm
 ++;ZwOpenPrivateNamespace
 ++ZwOpenProcess
 ++ZwOpenProcessToken
 ++ZwOpenProcessTokenEx
 ++;ZwOpenResourceManager
 ++ZwOpenSection
 ++ZwOpenSemaphore
 ++;ZwOpenSession
 ++ZwOpenSymbolicLinkObject
 ++ZwOpenThread
 ++ZwOpenThreadToken
 ++ZwOpenThreadTokenEx
 ++ZwOpenTimer
 ++;ZwOpenTransaction
 ++;ZwOpenTransactionManager
 ++ZwPlugPlayControl
 ++ZwPowerInformation
 ++;ZwPrePrepareComplete
 ++;ZwPrePrepareEnlistment
 ++;ZwPrepareComplete
 ++;ZwPrepareEnlistment
 ++ZwPrivilegeCheck
 ++ZwPrivilegeObjectAuditAlarm
 ++ZwPrivilegedServiceAuditAlarm
 ++;ZwPropagationComplete
 ++;ZwPropagationFailed
 ++ZwProtectVirtualMemory
 ++ZwPulseEvent
 ++ZwQueryAttributesFile
 ++ZwQueryBootEntryOrder
 ++ZwQueryBootOptions
 ++ZwQueryDebugFilterState
 ++ZwQueryDefaultLocale
 ++ZwQueryDefaultUILanguage
 ++ZwQueryDirectoryFile
 ++ZwQueryDirectoryObject
 ++ZwQueryDriverEntryOrder
 ++ZwQueryEaFile
 ++ZwQueryEvent
 ++ZwQueryFullAttributesFile
 ++ZwQueryInformationAtom
 ++;ZwQueryInformationEnlistment
 ++ZwQueryInformationFile
 ++ZwQueryInformationJobObject
 ++ZwQueryInformationPort
 ++ZwQueryInformationProcess
 ++;ZwQueryInformationResourceManager
 ++ZwQueryInformationThread
 ++ZwQueryInformationToken
 ++;ZwQueryInformationTransaction
 ++;ZwQueryInformationTransactionManager
 ++;ZwQueryInformationWorkerFactory
 ++ZwQueryInstallUILanguage
 ++ZwQueryIntervalProfile
 ++ZwQueryIoCompletion
 ++ZwQueryKey
 ++;ZwQueryLicenseValue
 ++ZwQueryMultipleValueKey
 ++ZwQueryMutant
 ++ZwQueryObject
 ++ZwQueryOpenSubKeys
 ++ZwQueryOpenSubKeysEx
 ++ZwQueryPerformanceCounter
 ++ZwQueryPortInformationProcess
 ++ZwQueryQuotaInformationFile
 ++ZwQuerySection
 ++ZwQuerySecurityObject
 ++ZwQuerySemaphore
 ++ZwQuerySymbolicLinkObject
 ++ZwQuerySystemEnvironmentValue
 ++ZwQuerySystemEnvironmentValueEx
 ++ZwQuerySystemInformation
 ++ZwQuerySystemTime
 ++ZwQueryTimer
 ++ZwQueryTimerResolution
 ++ZwQueryValueKey
 ++ZwQueryVirtualMemory
 ++ZwQueryVolumeInformationFile
 ++ZwQueueApcThread
 ++ZwRaiseException
 ++ZwRaiseHardError
 ++ZwReadFile
 ++ZwReadFileScatter
 ++;ZwReadOnlyEnlistment
 ++ZwReadRequestData
 ++ZwReadVirtualMemory
 ++;ZwRecoverEnlistment
 ++;ZwRecoverResourceManager
 ++;ZwRecoverTransactionManager
 ++;ZwRegisterProtocolAddressInformation
 ++ZwRegisterThreadTerminatePort
 ++;ZwReleaseCMFViewOwnership
 ++ZwReleaseKeyedEvent
 ++ZwReleaseMutant
 ++ZwReleaseSemaphore
 ++;ZwReleaseWorkerFactoryWorker
 ++ZwRemoveIoCompletion
 ++;ZwRemoveIoCompletionEx
 ++ZwRemoveProcessDebug
 ++ZwRenameKey
 ++;ZwRenameTransactionManager
 ++ZwReplaceKey
 ++;ZwReplacePartitionUnit
 ++ZwReplyPort
 ++ZwReplyWaitReceivePort
 ++ZwReplyWaitReceivePortEx
 ++ZwReplyWaitReplyPort
 ++ZwRequestDeviceWakeup
 ++ZwRequestPort
 ++ZwRequestWaitReplyPort
 ++ZwRequestWakeupLatency
 ++ZwResetEvent
 ++ZwResetWriteWatch
 ++ZwRestoreKey
 ++ZwResumeProcess
 ++ZwResumeThread
 ++;ZwRollbackComplete
 ++;ZwRollbackEnlistment
 ++;ZwRollbackTransaction
 ++;ZwRollforwardTransactionManager
 ++ZwSaveKey
 ++ZwSaveKeyEx
 ++ZwSaveMergedKeys
 ++ZwSecureConnectPort
 ++ZwSetBootEntryOrder
 ++ZwSetBootOptions
 ++ZwSetContextThread
 ++ZwSetDebugFilterState
 ++ZwSetDefaultHardErrorPort
 ++ZwSetDefaultLocale
 ++ZwSetDefaultUILanguage
 ++ZwSetDriverEntryOrder
 ++ZwSetEaFile
 ++ZwSetEvent
 ++ZwSetEventBoostPriority
 ++ZwSetHighEventPair
 ++ZwSetHighWaitLowEventPair
 ++ZwSetInformationDebugObject
 ++;ZwSetInformationEnlistment
 ++ZwSetInformationFile
 ++ZwSetInformationJobObject
 ++ZwSetInformationKey
 ++ZwSetInformationObject
 ++ZwSetInformationProcess
 ++;ZwSetInformationResourceManager
 ++ZwSetInformationThread
 ++ZwSetInformationToken
 ++;ZwSetInformationTransaction
 ++;ZwSetInformationTransactionManager
 ++;ZwSetInformationWorkerFactory
 ++ZwSetIntervalProfile
 ++ZwSetIoCompletion
 ++ZwSetLdtEntries
 ++ZwSetLowEventPair
 ++ZwSetLowWaitHighEventPair
 ++ZwSetQuotaInformationFile
 ++ZwSetSecurityObject
 ++ZwSetSystemEnvironmentValue
 ++ZwSetSystemEnvironmentValueEx
 ++ZwSetSystemInformation
 ++ZwSetSystemPowerState
 ++ZwSetSystemTime
 ++ZwSetThreadExecutionState
 ++ZwSetTimer
 ++ZwSetTimerResolution
 ++ZwSetUuidSeed
 ++ZwSetValueKey
 ++ZwSetVolumeInformationFile
 ++ZwShutdownSystem
 ++;ZwShutdownWorkerFactory
 ++ZwSignalAndWaitForSingleObject
 ++;ZwSinglePhaseReject
 ++ZwStartProfile
 ++ZwStopProfile
 ++ZwSuspendProcess
 ++ZwSuspendThread
 ++ZwSystemDebugControl
 ++ZwTerminateJobObject
 ++ZwTerminateProcess
 ++ZwTerminateThread
 ++ZwTestAlert
 ++;ZwThawRegistry
 ++;ZwThawTransactions
 ++;ZwTraceControl
 ++ZwTraceEvent
 ++ZwTranslateFilePath
 ++ZwUnloadDriver
 ++ZwUnloadKey
 ++ZwUnloadKey2
 ++ZwUnloadKeyEx
 ++ZwUnlockFile
 ++ZwUnlockVirtualMemory
 ++ZwUnmapViewOfSection
 ++ZwVdmControl
 ++ZwWaitForDebugEvent
 ++ZwWaitForKeyedEvent
 ++ZwWaitForMultipleObjects
 ++ZwWaitForMultipleObjects32
 ++ZwWaitForSingleObject
 ++;ZwWaitForWorkViaWorkerFactory
 ++ZwWaitHighEventPair
 ++ZwWaitLowEventPair
 ++;ZwWorkerFactoryWorkerReady
 ++ZwWriteFile
 ++ZwWriteFileGather
 ++ZwWriteRequestData
 ++ZwWriteVirtualMemory
 ++ZwYieldExecution
 ++;__C_specific_handler
 ++__chkstk
 ++__isascii
 ++__iscsym
 ++__iscsymf
 ++;__misaligned_access
 ++__toascii
 ++_atoi64
 ++_fltused
 ++_i64toa
 ++_i64tow
 ++_itoa
 ++_itow
 ++_lfind
 ++;_local_unwind
 ++_ltoa
 ++_ltow
 ++_memccpy
 ++_memicmp
 ++_setjmp
 ++_setjmpex
 ++_snprintf
 ++_snwprintf
 ++_splitpath
 ++_strcmpi
 ++_stricmp
 ++_strlwr
 ++_strnicmp
 ++_strupr
 ++;_swprintf
 ++_ui64toa
 ++_ui64tow
 ++_ultoa
 ++_ultow
 ++;_vscwprintf
 ++_vsnprintf
 ++_vsnwprintf
 ++;_vswprintf
 ++_wcsicmp
 ++_wcslwr
 ++_wcsnicmp
 ++;_wcstoui64
 ++_wcsupr
 ++_wtoi
 ++_wtoi64
 ++_wtol
 ++abs
 ++atan
 ++atoi
 ++atol
 ++bsearch
 ++ceil
 ++cos
 ++fabs
 ++floor
 ++isalnum
 ++isalpha
 ++iscntrl
 ++isdigit
 ++isgraph
 ++islower
 ++isprint
 ++ispunct
 ++isspace
 ++isupper
 ++iswalpha
 ++iswctype
 ++iswdigit
 ++iswlower
 ++iswspace
 ++iswxdigit
 ++isxdigit
 ++labs
 ++log
 ++longjmp
 ++mbstowcs
 ++memchr
 ++memcmp
 ++memcpy
 ++memmove
 ++memset
 ++pow
 ++qsort
 ++sin
 ++sprintf
 ++sqrt
 ++sscanf
 ++strcat
 ++strchr
 ++strcmp
 ++strcpy
 ++strcspn
 ++strlen
 ++strncat
 ++strncmp
 ++strncpy
 ++strpbrk
 ++strrchr
 ++strspn
 ++strstr
 ++strtol
 ++strtoul
 ++swprintf
 ++tan
 ++tolower
 ++toupper
 ++towlower
 ++towupper
 ++vDbgPrintEx
 ++vDbgPrintExWithPrefix
 ++vsprintf
 ++wcscat
 ++wcschr
 ++wcscmp
 ++wcscpy
 ++wcscspn
 ++wcslen
 ++wcsncat
 ++wcsncmp
 ++wcsncpy
 ++wcspbrk
 ++wcsrchr
 ++wcsspn
 ++wcsstr
 ++wcstol
 ++wcstombs
 ++wcstoul
+++;
+++; HACKS for ros
+++CsrNewThread
Simple merge
Simple merge
Simple merge
Simple merge
@@@@ -1,4 -1,4 -1,4 +1,4 @@@@
---<module name="imagehlp" type="win32dll" baseaddress="${BASEADDRESS_IMAGEHLP}" installbase="system32" installname="imagehlp.dll">
+++<module name="imagehlp" type="win32dll" baseaddress="${BASEADDRESS_IMAGEHLP}" installbase="system32" installname="imagehlp.dll" allowwarnings="true">
        <importlibrary definition="imagehlp.spec" />
        <include base="imagehlp">.</include>
        <define name="_IMAGEHLP_SOURCE_"></define>
index 0000000,edb61ad,edb61ad..8f4db0f
mode 000000,100644,100644..100644
--- /dev/null
@@@@ -1,0 -1,23 -1,23 +1,23 @@@@
 --<module name="itss" type="win32dll" baseaddress="${BASEADDRESS_ITSS}" installbase="system32" installname="itss.dll" crt="msvcrt">
+  <group>
+++<module name="itss" type="win32dll" baseaddress="${BASEADDRESS_ITSS}" installbase="system32" installname="itss.dll" crt="msvcrt" allowwarnings="true">
+       <autoregister infsection="OleControlDlls" type="DllRegisterServer" />
+       <importlibrary definition="itss.spec" />
+       <include base="itss">.</include>
+       <include base="ReactOS">include/reactos/wine</include>
+       <define name="__WINESRC__" />
+       <file>chm_lib.c</file>
+       <file>lzx.c</file>
+       <file>itss.c</file>
+       <file>moniker.c</file>
+       <file>protocol.c</file>
+       <file>storage.c</file>
+       <file>rsrc.rc</file>
+       <library>wine</library>
+       <library>uuid</library>
+       <library>urlmon</library>
+       <library>shlwapi</library>
+       <library>ole32</library>
+       <library>kernel32</library>
+       <library>ntdll</library>
+  </module>
+  </group>
@@@@ -1,5 -1,5 -1,5 +1,5 @@@@
---<module name="lsasrv" type="win32dll" entrypoint="0" baseaddress="${BASEADDRESS_LSASRV}" installbase="system32" installname="lsasrv.dll" unicode="yes">
 --     <importlibrary definition="lsasrv.def" />
+++<module name="lsasrv" type="win32dll" entrypoint="0" baseaddress="${BASEADDRESS_LSASRV}" installbase="system32" installname="lsasrv.dll" unicode="yes" allowwarnings="true">
 ++     <importlibrary definition="lsasrv.spec" />
        <include base="lsasrv">.</include>
        <include base="lsa_server">.</include>
        <library>lsa_server</library>
index ab8105b,0000000,0000000..1143dd1
mode 100644,000000,000000..100644
--- /dev/null
--- /dev/null
@@@@ -1,848 -1,0 -1,0 +1,848 @@@@
-  ;  __iob_func @118
 ++;
 ++; ReactOS MSVCRT Library
 ++;
 ++LIBRARY msvcrt.dll
 ++
 ++EXPORTS
 ++  $I10_OUTPUT=MSVCRT_I10_OUTPUT @57
 ++  ??0__non_rtti_object@@QAE@ABV0@@Z=MSVCRT___non_rtti_object_copy_ctor @1
 ++  ??0__non_rtti_object@@QAE@PBD@Z=MSVCRT___non_rtti_object_ctor @2
 ++;  ??0bad_cast@@AAE@PBQBD@Z @3
 ++  ??0bad_cast@@QAE@ABQBD@Z=MSVCRT_bad_cast_ctor @4
 ++  ??0bad_cast@@QAE@ABV0@@Z=MSVCRT_bad_cast_copy_ctor @5
 ++;  ??0bad_cast@@QAE@PBD@Z @6
 ++  ??0bad_typeid@@QAE@ABV0@@Z=MSVCRT_bad_typeid_copy_ctor @7
 ++  ??0bad_typeid@@QAE@PBD@Z=MSVCRT_bad_typeid_ctor @8
 ++  ??0exception@@QAE@ABQBD@Z=MSVCRT_exception_ctor @9
 ++;  ??0exception@@QAE@ABQBDH@Z @10
 ++  ??0exception@@QAE@ABV0@@Z=MSVCRT_exception_copy_ctor @11
 ++  ??0exception@@QAE@XZ=MSVCRT_exception_default_ctor @12
 ++  ??1__non_rtti_object@@UAE@XZ=MSVCRT___non_rtti_object_dtor @13
 ++  ??1bad_cast@@UAE@XZ=MSVCRT_bad_cast_dtor @14
 ++  ??1bad_typeid@@UAE@XZ=MSVCRT_bad_typeid_dtor @15
 ++  ??1exception@@UAE@XZ=MSVCRT_exception_dtor @16
 ++  ??1type_info@@UAE@XZ=MSVCRT_type_info_dtor @17
 ++  ??2@YAPAXI@Z=MSVCRT_operator_new @18
 ++  ??3@YAXPAX@Z=MSVCRT_operator_delete @19
 ++  ??4__non_rtti_object@@QAEAAV0@ABV0@@Z=MSVCRT___non_rtti_object_opequals @20
 ++  ??4bad_cast@@QAEAAV0@ABV0@@Z=MSVCRT_bad_cast_opequals @21
 ++  ??4bad_typeid@@QAEAAV0@ABV0@@Z=MSVCRT_bad_typeid_opequals @22
 ++  ??4exception@@QAEAAV0@ABV0@@Z=MSVCRT_exception_opequals @23
 ++  ??8type_info@@QBEHABV0@@Z=MSVCRT_type_info_opequals_equals @24
 ++  ??9type_info@@QBEHABV0@@Z=MSVCRT_type_info_opnot_equals @25
 ++  ??_7__non_rtti_object@@6B@=MSVCRT___non_rtti_object_vtable@@6B@ @26 DATA
 ++  ??_7bad_cast@@6B@=MSVCRT_bad_cast_vtable @27 DATA
 ++  ??_7bad_typeid@@6B@=MSVCRT_bad_typeid_vtable @28 DATA
 ++  ??_7exception@@6B@=MSVCRT_exception_vtable @29 DATA
 ++  ??_E__non_rtti_object@@UAEPAXI@Z=MSVCRT___non_rtti_object_vector_dtor @30
 ++  ??_Ebad_cast@@UAEPAXI@Z=MSVCRT_bad_cast_vector_dtor @31
 ++  ??_Ebad_typeid@@UAEPAXI@Z=MSVCRT_bad_typeid_vector_dtor @32
 ++  ??_Eexception@@UAEPAXI@Z=MSVCRT_exception_vector_dtor @33
 ++;  ??_Fbad_cast@@QAEXXZ @34
 ++;  ??_Fbad_typeid@@QAEXXZ @35
 ++  ??_G__non_rtti_object@@UAEPAXI@Z=MSVCRT___non_rtti_object_scalar_dtor @36
 ++  ??_Gbad_cast@@UAEPAXI@Z=MSVCRT_bad_cast_scalar_dtor @37
 ++  ??_Gbad_typeid@@UAEPAXI@Z=MSVCRT_bad_typeid_scalar_dtor @38
 ++  ??_Gexception@@UAEPAXI@Z=MSVCRT_exception_scalar_dtor @39
 ++  ??_U@YAPAXI@Z=MSVCRT_operator_new @40
 ++  ??_V@YAXPAX@Z=MSVCRT_operator_delete @41
 ++  ?_query_new_handler@@YAP6AHI@ZXZ=MSVCRT__query_new_handler @43
 ++  ?_query_new_mode@@YAHXZ=MSVCRT__query_new_mode @44
 ++  ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z=MSVCRT__set_new_handler @45
 ++  ?_set_new_mode@@YAHH@Z=MSVCRT__set_new_mode @46
 ++  ?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z=MSVCRT__set_se_translator @47
 ++  ?before@type_info@@QBEHABV1@@Z=MSVCRT_type_info_before @48
 ++  ?name@type_info@@QBEPBDXZ=MSVCRT_type_info_name @49
 ++  ?raw_name@type_info@@QBEPBDXZ=MSVCRT_type_info_raw_name @50
 ++  ?set_new_handler@@YAP6AXXZP6AXXZ@Z=MSVCRT__set_new_handler @51
 ++  ?set_terminate@@YAP6AXXZP6AXXZ@Z=MSVCRT_set_terminate @52
 ++  ?set_unexpected@@YAP6AXXZP6AXXZ@Z=MSVCRT_set_unexpected @53
 ++  ?terminate@@YAXXZ=MSVCRT_terminate @54
 ++  ?unexpected@@YAXXZ=MSVCRT_unexpected @55
 ++  ?what@exception@@UBEPBDXZ=MSVCRT_what_exception @56
 ++  _CIacos @58
 ++  _CIasin @59
 ++  _CIatan @60
 ++  _CIatan2 @61
 ++  _CIcos @62
 ++  _CIcosh @63
 ++  _CIexp @64
 ++  _CIfmod @65
 ++  _CIlog @66
 ++  _CIlog10 @67
 ++  _CIpow @68
 ++  _CIsin @69
 ++  _CIsinh @70
 ++  _CIsqrt @71
 ++  _CItan @72
 ++  _CItanh @73
 ++  _CxxThrowException @74
 ++;  _EH_prolog @75 ???
 ++  _Getdays @76
 ++  _Getmonths @77
 ++  _Gettnames @78
 ++  _HUGE @79 DATA
 ++  _Strftime @80
 ++  _XcptFilter @81
 ++  __CppXcptFilter @82
 ++;  __CxxCallUnwindDtor @83
 ++;  __CxxCallUnwindVecDtor @84
 ++  __CxxDetectRethrow @85
 ++;  __CxxExceptionFilter @86
 ++;  __CxxFrameHandler @87 ???
 ++;  __CxxFrameHandler2 @88
 ++;  __CxxLongjmpUnwind @89 ???
 ++  __CxxQueryExceptionSize @90
 ++;  __CxxRegisterExceptionObject @91
 ++;  __CxxUnregisterExceptionObject @92
 ++;  __DestructExceptionObject @93
 ++  __RTCastToVoid=MSVCRT___RTCastToVoid @94
 ++  __RTDynamicCast=MSVCRT___RTDynamicCast @95
 ++  __RTtypeid=MSVCRT___RTtypeid @96
 ++  __STRINGTOLD @97
 ++;  ___lc_codepage_func @98
 ++;  ___lc_collate_cp_func @99
 ++;  ___lc_handle_func @100
 ++;  ___mb_cur_max_func @101
 ++  ___setlc_active_func @102
 ++  ___unguarded_readlc_active_add_func @103
 ++  __argc @104 DATA
 ++  __argv @105 DATA
 ++  __badioinfo @106 DATA
 ++  __crtCompareStringA=kernel32.CompareStringA @107
 ++  __crtCompareStringW=kernel32.CompareStringW @108
 ++  __crtGetLocaleInfoW=kernel32.GetLocaleInfo @109
 ++  __crtGetStringTypeW=kernel32.GetStringTypeW @110
 ++  __crtLCMapStringA @111
 ++;  __crtLCMapStringW @112
 ++  __dllonexit @113
 ++  __doserrno @114
 ++  __fpecode @115
 ++  __getmainargs @116
 ++  __initenv @117
-  ;  _gmtime64 @313 ???
+++  __iob_func @118
 ++  __isascii @119
 ++  __iscsym @120
 ++  __iscsymf @121
 ++  __lc_codepage @122 DATA
 ++  __lc_collate_cp @123 DATA
 ++  __lc_handle @124 DATA
 ++  __lconv_init @125
 ++  __mb_cur_max @126 DATA
 ++  __p___argc @127
 ++  __p___argv @128
 ++  __p___initenv @129
 ++  __p___mb_cur_max @130
 ++  __p___wargv @131
 ++  __p___winitenv @132
 ++  __p__acmdln @133
 ++  __p__amblksiz @134
 ++  __p__commode @135
 ++  __p__daylight @136
 ++  __p__dstbias @137
 ++  __p__environ @138
 ++;  __p__fileinfo @139
 ++  __p__fmode @140
 ++  __p__iob @141
 ++;  __p__mbcasemap @142
 ++  __p__mbctype @143
 ++  __p__osver @144
 ++  __p__pctype @145
 ++  __p__pgmptr @146
 ++  __p__pwctype @147
 ++  __p__timezone @148
 ++  __p__tzname @149
 ++  __p__wcmdln @150
 ++  __p__wenviron @151
 ++  __p__winmajor @152
 ++  __p__winminor @153
 ++  __p__winver @154
 ++  __p__wpgmptr @155
 ++;  __pctype_func @156
 ++  __pioinfo @157 DATA
 ++;  __pwctype_func @158
 ++  __pxcptinfoptrs @159
 ++  __set_app_type @160
 ++  __setlc_active @161 DATA
 ++  __setusermatherr @162
 ++  __threadhandle @163
 ++  __threadid @164
 ++  __toascii @165
 ++  __unDName @166
 ++  __unDNameEx @167
 ++;  __uncaught_exception @42
 ++  __unguarded_readlc_active @168 DATA
 ++  __wargv @169 DATA
 ++;  __wcserror @170
 ++  __wgetmainargs @171
 ++  __winitenv @172 DATA
 ++  _abnormal_termination @173
 ++;  _abs64 @174
 ++  _access @175
 ++  _acmdln @176 DATA
 ++  _adj_fdiv_m16i @177
 ++  _adj_fdiv_m32 @178
 ++  _adj_fdiv_m32i @179
 ++  _adj_fdiv_m64 @180
 ++  _adj_fdiv_r @181
 ++  _adj_fdivr_m16i @182
 ++  _adj_fdivr_m32 @183
 ++  _adj_fdivr_m32i @184
 ++  _adj_fdivr_m64 @185
 ++  _adj_fpatan @186
 ++  _adj_fprem @187
 ++  _adj_fprem1 @188
 ++  _adj_fptan @189
 ++  _adjust_fdiv @190 DATA
 ++  _aexit_rtn @191
 ++  _aligned_free @192
 ++  _aligned_malloc @193
 ++  _aligned_offset_malloc @194
 ++  _aligned_offset_realloc @195
 ++  _aligned_realloc @196
 ++  _amsg_exit @197
 ++  _assert @198
 ++;  _atodbl @199
 ++  _atoi64 @200
 ++  _atoldbl @201
 ++  _beep @202
 ++  _beginthread @203
 ++  _beginthreadex @204
 ++  _c_exit @205
 ++  _cabs @206
 ++  _callnewh @207
 ++  _cexit @208
 ++  _cgets @209
 ++;  _cgetws @210
 ++  _chdir @211
 ++  _chdrive @212
 ++  _chgsign @213
 ++  _chkesp @214
 ++  _chmod @215
 ++  _chsize @216
 ++  _clearfp @217
 ++  _close @218
 ++  _commit @219
 ++  _commode @220 DATA
 ++  _control87 @221
 ++  _controlfp @222
 ++  _copysign @223
 ++  _cprintf @224
 ++  _cputs @225
 ++;  _cputws @226
 ++  _creat @227
 ++  _cscanf @228
 ++;  _ctime64 @229
 ++  _ctype @230 DATA
 ++  _cwait @231
 ++;  _cwprintf @232
 ++;  _cwscanf @233
 ++  _daylight @234 DATA
 ++  _dstbias @235 DATA
 ++  _dup @236
 ++  _dup2 @237
 ++  _ecvt @238
 ++  _endthread @239
 ++  _endthreadex @240
 ++  _environ @241 DATA
 ++  _eof @242
 ++  _errno @243
 ++  _except_handler2 @244
 ++  _except_handler3 @245
 ++  _execl @246
 ++  _execle @247
 ++  _execlp @248
 ++  _execlpe @249
 ++  _execv @250
 ++  _execve @251
 ++  _execvp @252
 ++  _execvpe @253
 ++  _exit @254
 ++  _expand @255
 ++  _fcloseall @256
 ++  _fcvt @257
 ++  _fdopen @258
 ++  _fgetchar @259
 ++  _fgetwchar @260
 ++  _filbuf @261
 ++;  _fileinfo @262
 ++  _filelength @263
 ++  _filelengthi64 @264
 ++  _fileno @265
 ++  _findclose @266
 ++  _findfirst @267
 ++  _findfirst64 @268
 ++  _findfirsti64 @269
 ++  _findnext @270
 ++  _findnext64 @271
 ++  _findnexti64 @272
 ++  _finite @273
 ++  _flsbuf @274
 ++  _flushall @275
 ++  _fmode @276 DATA
 ++  _fpclass @277
 ++  _fpieee_flt @278
 ++  _fpreset @279
 ++  _fputchar @280
 ++  _fputwchar @281
 ++  _fsopen @282
 ++  _fstat @283
 ++  _fstat64 @284
 ++  _fstati64 @285
 ++  _ftime @286
 ++;  _ftime64 @287 ???
 ++;  _ftol @288 ???
 ++  _fullpath @289
 ++  _futime @290
 ++;  _futime64 @291
 ++  _gcvt @292
 ++;  _get_heap_handle @293
 ++  _get_osfhandle @294
 ++  _get_sbh_threshold @295
 ++  _getch @296
 ++  _getche @297
 ++  _getcwd @298
 ++  _getdcwd @299
 ++  _getdiskfree @300
 ++  _getdllprocaddr @301
 ++  _getdrive @302
 ++  _getdrives=kernel32.GetLogicalDrives @303
 ++  _getmaxstdio @304
 ++  _getmbcp @305
 ++  _getpid=kernel32.GetCurrentProcessId @306
 ++  _getsystime @307
 ++  _getw @308
 ++;  _getwch @309
 ++;  _getwche @310
 ++  _getws @311
 ++  _global_unwind2 @312
-  ;  _localtime64 @369 ???
+++  _gmtime64=gmtime @313
 ++  _heapadd @314
 ++  _heapchk @315
 ++  _heapmin @316
 ++  _heapset @317
 ++;  _heapused @318
 ++  _heapwalk @319
 ++  _hypot @320
 ++  _i64toa @321
 ++  _i64tow @322
 ++  _initterm @323
 ++;  _inp @324
 ++;  _inpd @325
 ++;  _inpw @326
 ++  _iob @327 DATA
 ++  _isatty @328
 ++  _isctype @329
 ++  _ismbbalnum @330
 ++  _ismbbalpha @331
 ++  _ismbbgraph @332
 ++  _ismbbkalnum @333
 ++  _ismbbkana @334
 ++;  _ismbbkprint @335
 ++  _ismbbkpunct @336
 ++  _ismbblead @337
 ++  _ismbbprint @338
 ++  _ismbbpunct @339
 ++  _ismbbtrail @340
 ++  _ismbcalnum @341
 ++  _ismbcalpha @342
 ++  _ismbcdigit @343
 ++  _ismbcgraph @344
 ++  _ismbchira @345
 ++  _ismbckata @346
 ++  _ismbcl0 @347
 ++  _ismbcl1 @348
 ++  _ismbcl2 @349
 ++  _ismbclegal @350
 ++  _ismbclower @351
 ++  _ismbcprint @352
 ++  _ismbcpunct @353
 ++  _ismbcspace @354
 ++  _ismbcsymbol @355
 ++  _ismbcupper @356
 ++  _ismbslead @357
 ++  _ismbstrail @358
 ++  _isnan @359
 ++  _itoa @360
 ++  _itow @361
 ++  _j0 @362
 ++  _j1 @363
 ++  _jn @364
 ++  _kbhit @365
 ++  _lfind @366
 ++  _loaddll @367
 ++  _local_unwind2 @368
-  ;  _mkgmtime @440
-  ;  _mkgmtime64 @441
+++  _localtime64 @369
 ++  _lock @370
 ++  _locking @371
 ++  _logb @372
 ++  _longjmpex=longjmp @373
 ++  _lrotl @374
 ++  _lrotr @375
 ++  _lsearch @376
 ++  _lseek @377
 ++  _lseeki64 @378
 ++  _ltoa @379
 ++  _ltow @380
 ++  _makepath @381
 ++  _mbbtombc @382
 ++  _mbbtype @383
 ++;  _mbcasemap @384
 ++  _mbccpy @385
 ++  _mbcjistojms @386
 ++  _mbcjmstojis @387
 ++  _mbclen @388
 ++  _mbctohira @389
 ++  _mbctokata @390
 ++  _mbctolower @391
 ++  _mbctombb @392
 ++  _mbctoupper @393
 ++  _mbctype @394 DATA
 ++  _mbsbtype @395
 ++  _mbscat @396
 ++  _mbschr @397
 ++  _mbscmp @398
 ++  _mbscoll @399
 ++  _mbscpy @400
 ++  _mbscspn @401
 ++  _mbsdec @402
 ++  _mbsdup @403
 ++  _mbsicmp @404
 ++  _mbsicoll @405
 ++  _mbsinc @406
 ++  _mbslen @407
 ++  _mbslwr @408
 ++  _mbsnbcat @409
 ++  _mbsnbcmp @410
 ++  _mbsnbcnt @411
 ++  _mbsnbcoll @412
 ++  _mbsnbcpy @413
 ++  _mbsnbicmp @414
 ++  _mbsnbicoll @415
 ++  _mbsnbset @416
 ++  _mbsncat @417
 ++  _mbsnccnt @418
 ++  _mbsncmp @419
 ++  _mbsncoll @420
 ++  _mbsncpy @421
 ++  _mbsnextc @422
 ++  _mbsnicmp @423
 ++  _mbsnicoll @424
 ++  _mbsninc @425
 ++  _mbsnset @426
 ++  _mbspbrk @427
 ++  _mbsrchr @428
 ++  _mbsrev @429
 ++  _mbsset @430
 ++  _mbsspn @431
 ++  _mbsspnp @432
 ++  _mbsstr @433
 ++  _mbstok @434
 ++  _mbstrlen @435
 ++  _mbsupr @436
 ++  _memccpy @437
 ++  _memicmp @438
 ++  _mkdir @439
-  ;  _mktime64 @443
+++  _mkgmtime @440
+++  _mkgmtime64 @441
 ++  _mktemp @442
+++  _mktime64 @443
 ++  _msize @444
 ++  _nextafter @445
 ++  _onexit @446
 ++  _open @447
 ++  _open_osfhandle @448
 ++;  _osplatform @449
 ++  _osver @450 DATA
 ++;  _outp @451
 ++;  _outpd @452
 ++;  _outpw @453
 ++  _pclose @454
 ++  _pctype @455 DATA
 ++  _pgmptr @456 DATA
 ++  _pipe @457
 ++  _popen @458
 ++  _purecall @459
 ++  _putch @460
 ++  _putenv @461
 ++  _putw @462
 ++;  _putwch @463
 ++  _putws @464
 ++  _pwctype @465
 ++  _read @466
 ++;  _resetstkoflw @467
 ++  _rmdir @468
 ++  _rmtmp @469
 ++  _rotl @470
 ++;  _rotl64 @471
 ++  _rotr @472
 ++;  _rotr64 @473
 ++  _safe_fdiv @474
 ++  _safe_fdivr @475
 ++  _safe_fprem @476
 ++  _safe_fprem1 @477
 ++  _scalb @478
 ++;  _scprintf @479
 ++;  _scwprintf @480
 ++  _searchenv @481
 ++;  _seh_longjmp_unwind @482 ???
 ++;  _set_SSE2_enable @483
 ++  _set_error_mode @484
 ++  _set_sbh_threshold @485
 ++  _seterrormode @486
 ++  _setjmp @487
 ++  _setjmpex @488
 ++  _setmaxstdio @489
 ++  _setmbcp @490
 ++  _setmode @491
 ++  _setsystime @492
 ++  _sleep @493
 ++  _snprintf @494
 ++;  _snscanf @495
 ++  _snwprintf @496
 ++;  _snwscanf @497
 ++  _sopen @498
 ++  _spawnl @499
 ++  _spawnle @500
 ++  _spawnlp @501
 ++  _spawnlpe @502
 ++  _spawnv @503
 ++  _spawnve @504
 ++  _spawnvp @505
 ++  _spawnvpe @506
 ++  _splitpath @507
 ++  _stat @508
 ++  _stat64 @509
 ++  _stati64 @510
 ++  _statusfp @511
 ++  _strcmpi @512
 ++  _strdate @513
 ++  _strdup @514
 ++  _strerror @515
 ++  _stricmp @516
 ++  _stricoll @517
 ++  _strlwr @518
 ++  _strncoll @519
 ++  _strnicmp @520
 ++  _strnicoll @521
 ++  _strnset @522
 ++  _strrev @523
 ++  _strset @524
 ++  _strtime @525
 ++;  _strtoi64 @526
 ++  _strtoui64=strtoull @527
 ++  _strupr @528
 ++  _swab @529
 ++  _sys_errlist @530 DATA
 ++  _sys_nerr @531 DATA
 ++  _tell @532
 ++  _telli64 @533
 ++  _tempnam @534
 ++  _time64 @535
 ++  _timezone @536 DATA
 ++  _tolower @537
 ++  _toupper @538
 ++  _tzname @539 DATA
 ++  _tzset @540
 ++  _ui64toa @541
 ++  _ui64tow @542
 ++  _ultoa @543
 ++  _ultow @544
 ++  _umask @545
 ++  _ungetch @546
 ++;  _ungetwch @547
 ++  _unlink @548
 ++  _unloaddll @549
 ++  _unlock @550
 ++  _utime @551
 ++;  _utime64 @552
 ++;  _vscprintf @553
 ++;  _vscwprintf @554
 ++  _vsnprintf @555
 ++  _vsnwprintf @556
 ++  _waccess @557
 ++  _wasctime @558
 ++  _wchdir @559
 ++  _wchmod @560
 ++  _wcmdln @561
 ++  _wcreat @562
 ++  _wcsdup @563
 ++;  _wcserror @564
 ++  _wcsicmp @565
 ++  _wcsicoll @566
 ++  _wcslwr @567
 ++  _wcsncoll @568
 ++  _wcsnicmp @569
 ++  _wcsnicoll @570
 ++  _wcsnset @571
 ++  _wcsrev @572
 ++  _wcsset @573
 ++;  _wcstoi64 @574
 ++;  _wcstoui64 @575
 ++  _wcsupr @576
 ++  _wctime @577
 ++;  _wctime64 @578
 ++;  _wctype @579
 ++  _wenviron @580 DATA
 ++  _wexecl @581
 ++  _wexecle @582
 ++  _wexeclp @583
 ++  _wexeclpe @584
 ++  _wexecv @585
 ++  _wexecve @586
 ++  _wexecvp @587
 ++  _wexecvpe @588
 ++  _wfdopen @589
 ++  _wfindfirst @590
 ++;  _wfindfirst64 @591
 ++  _wfindfirsti64 @592
 ++  _wfindnext @593
 ++;  _wfindnext64 @594
 ++  _wfindnexti64 @595
 ++  _wfopen @596
 ++  _wfreopen @597
 ++  _wfsopen @598
 ++  _wfullpath @599
 ++  _wgetcwd @600
 ++  _wgetdcwd @601
 ++  _wgetenv @602
 ++  _winmajor @603 DATA
 ++  _winminor @604 DATA
 ++  _winver @605 DATA
 ++  _wmakepath @606
 ++  _wmkdir @607
 ++  _wmktemp @608
 ++  _wopen @609
 ++  _wperror @610
 ++  _wpgmptr @611 DATA
 ++  _wpopen @612
 ++  _wputenv @613
 ++  _wremove @614
 ++  _wrename @615
 ++  _write @616
 ++  _wrmdir @617
 ++  _wsearchenv @618
 ++  _wsetlocale @619
 ++  _wsopen @620
 ++  _wspawnl @621
 ++  _wspawnle @622
 ++  _wspawnlp @623
 ++  _wspawnlpe @624
 ++  _wspawnv @625
 ++  _wspawnve @626
 ++  _wspawnvp @627
 ++  _wspawnvpe @628
 ++  _wsplitpath @629
 ++  _wstat @630
 ++  _wstat64 @631
 ++  _wstati64 @632
 ++  _wstrdate @633
 ++  _wstrtime @634
 ++  _wsystem @635
 ++  _wtempnam @636
 ++  _wtmpnam @637
 ++;  _wtof @638
 ++  _wtoi @639
 ++  _wtoi64 @640
 ++  _wtol @641
 ++  _wunlink @642
 ++  _wutime @643
 ++;  _wutime64 @644
 ++  _y0 @645
 ++  _y1 @646
 ++  _yn @647
 ++  abort @648
 ++  abs @649
 ++  acos @650
 ++  asctime @651
 ++  asin @652
 ++  atan @653
 ++  atan2 @654
 ++  atexit @655
 ++  atof @656
 ++  atoi @657
 ++  atol @658
 ++  bsearch @659
 ++  calloc @660
 ++  ceil @661
 ++  clearerr @662
 ++  clock @663
 ++  cos @664
 ++  cosh @665
 ++  ctime @666
 ++  difftime @667
 ++  div @668
 ++  exit @669
 ++  exp @670
 ++  fabs @671
 ++  fclose @672
 ++  feof @673
 ++  ferror @674
 ++  fflush @675
 ++  fgetc @676
 ++  fgetpos @677
 ++  fgets @678
 ++  fgetwc @679
 ++  fgetws @680
 ++  floor @681
 ++  fmod @682
 ++  fopen @683
 ++  fprintf @684
 ++  fputc @685
 ++  fputs @686
 ++  fputwc @687
 ++  fputws @688
 ++  fread @689
 ++  free @690
 ++  freopen @691
 ++  frexp @692
 ++  fscanf @693
 ++  fseek @694
 ++  fsetpos @695
 ++  ftell @696
 ++  fwprintf @697
 ++  fwrite @698
 ++  fwscanf @699
 ++  getc @700
 ++  getchar @701
 ++  getenv @702
 ++  gets @703
 ++  getwc @704
 ++  getwchar @705
 ++  gmtime @706
 ++  is_wctype @707
 ++  isalnum @708
 ++  isalpha @709
 ++  iscntrl @710
 ++  isdigit @711
 ++  isgraph @712
 ++  isleadbyte @713
 ++  islower @714
 ++  isprint @715
 ++  ispunct @716
 ++  isspace @717
 ++  isupper @718
 ++  iswalnum @719
 ++  iswalpha @720
 ++  iswascii @721
 ++  iswcntrl @722
 ++  iswctype @723
 ++  iswdigit @724
 ++  iswgraph @725
 ++  iswlower @726
 ++  iswprint @727
 ++  iswpunct @728
 ++  iswspace @729
 ++  iswupper @730
 ++  iswxdigit @731
 ++  isxdigit @732
 ++  labs @733
 ++  ldexp @734
 ++  ldiv @735
 ++  localeconv @736
 ++;  localtime @737 ???
 ++  log @738
 ++  log10 @739
 ++  longjmp @740
 ++  malloc @741
 ++  mblen @742
 ++  mbstowcs @743
 ++  mbtowc @744
 ++  memchr @745
 ++  memcmp @746
 ++  memcpy @747
 ++  memmove @748
 ++  memset @749
 ++  mktime @750
 ++  modf @751
 ++  perror @752
 ++  pow @753
 ++  printf @754
 ++  putc @755
 ++  putchar @756
 ++  puts @757
 ++  putwc=fputwc @758
 ++  putwchar=_fputwchar @759
 ++  qsort @760
 ++  raise @761
 ++  rand @762
 ++  realloc @763
 ++  remove @764
 ++  rename @765
 ++  rewind @766
 ++  scanf @767
 ++  setbuf @768
 ++  setlocale @769
 ++  setvbuf @770
 ++  signal @771
 ++  sin @772
 ++  sinh @773
 ++  sprintf @774
 ++  sqrt @775
 ++  srand @776
 ++  sscanf @777
 ++  strcat @778
 ++  strchr @779
 ++  strcmp @780
 ++  strcoll @781
 ++  strcpy @782
 ++  strcspn @783
 ++  strerror @784
 ++  strftime @785
 ++  strlen @786
 ++  strncat @787
 ++  strncmp @788
 ++  strncpy @789
 ++  strpbrk @790
 ++  strrchr @791
 ++  strspn @792
 ++  strstr @793
 ++  strtod @794
 ++  strtok @795
 ++  strtol @796
 ++  strtoul @797
 ++  strxfrm @798
 ++  swprintf @799
 ++  swscanf @800
 ++  system @801
 ++  tan @802
 ++  tanh @803
 ++  time @804
 ++  tmpfile @805
 ++  tmpnam @806
 ++  tolower @807
 ++  toupper @808
 ++  towlower @809
 ++  towupper @810
 ++  ungetc @811
 ++  ungetwc @812
 ++  vfprintf @813
 ++  vfwprintf @814
 ++  vprintf @815
 ++  vsprintf @816
 ++  vswprintf @817
 ++  vwprintf @818
 ++  wcscat @819
 ++  wcschr @820
 ++  wcscmp @821
 ++  wcscoll @822
 ++  wcscpy @823
 ++  wcscspn @824
 ++  wcsftime @825
 ++  wcslen @826
 ++  wcsncat @827
 ++  wcsncmp @828
 ++  wcsncpy @829
 ++  wcspbrk @830
 ++  wcsrchr @831
 ++  wcsspn @832
 ++  wcsstr @833
 ++  wcstod @834
 ++  wcstok @835
 ++  wcstol @836
 ++  wcstombs @837
 ++  wcstoul @838
 ++  wcsxfrm @839
 ++  wctomb @840
 ++  wprintf @841
 ++  wscanf @842
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@@ -391,16 -397,74 -397,74 +397,74 @@@@ NpfsPeekPipe(PIRP Irp
        Reply->ReadDataAvailable = Ccb->ReadDataAvailable;
        DPRINT("ReadDataAvailable: %lu\n", Ccb->ReadDataAvailable);
   
-       Reply->NumberOfMessages = 0; /* FIXME */
-       Reply->MessageLength = 0; /* FIXME */
-       Reply->Data[0] = 0; /* FIXME */
+       ExAcquireFastMutex(&Ccb->DataListLock);
+       BufferPtr = Ccb->ReadPtr;
+       DPRINT("BufferPtr = %x\n", BufferPtr);
+       if (Ccb->Fcb->PipeType == FILE_PIPE_BYTE_STREAM_TYPE)
+       {
+               DPRINT("Byte Stream Mode\n");
+               Reply->MessageLength = Ccb->ReadDataAvailable;
+               DPRINT("Reply->MessageLength  %lu\n",Reply->MessageLength );
+               MessageCount = 1;
+  
+               if (Reply->Data[0] && (OutputBufferLength >= Ccb->ReadDataAvailable + FIELD_OFFSET(FILE_PIPE_PEEK_BUFFER, Data[0])))
+               {
+                       ReturnLength = Ccb->ReadDataAvailable;
+                       memcpy(&Reply->Data[0], (PVOID)BufferPtr, Ccb->ReadDataAvailable);
+               }
+       }
+       else
+       {
+               DPRINT("Message Mode\n");
+               ReadDataAvailable=Ccb->ReadDataAvailable;
+  
+               if (ReadDataAvailable > 0)
+               {
+                       memcpy(&Reply->MessageLength, BufferPtr, sizeof(ULONG));
+  
+                       while ((ReadDataAvailable > 0) && (BufferPtr < Ccb->WritePtr))
+                       {
+                               memcpy(&MessageLength, BufferPtr, sizeof(MessageLength));
+  
+                               ASSERT(MessageLength > 0);
+  
+                               DPRINT("MessageLength = %lu\n",MessageLength);
+                               ReadDataAvailable -= MessageLength;
+                               MessageCount++;
+  
+                               /* If its the first message, copy the Message if the size of buffer is large enough */
+                               if (MessageCount==1)
+                               {       
+                                       if ((Reply->Data[0])
+                                               && (OutputBufferLength >= (MessageLength + FIELD_OFFSET(FILE_PIPE_PEEK_BUFFER, Data[0]))))
+                                       {                                                       
 --                                             memcpy(&Reply->Data[0], (PVOID)((ULONG)BufferPtr + sizeof(MessageLength)), MessageLength);
+++                                             memcpy(&Reply->Data[0], (PVOID)((ULONG_PTR)BufferPtr + sizeof(MessageLength)), MessageLength);
+                                               ReturnLength = MessageLength;
+                                       }
+                               }
+  
 --                             BufferPtr =(PVOID)((ULONG)BufferPtr + MessageLength + sizeof(MessageLength));
+++                             BufferPtr =(PVOID)((ULONG_PTR)BufferPtr + MessageLength + sizeof(MessageLength));
+                               DPRINT("BufferPtr = %x\n", BufferPtr);
+                               DPRINT("ReadDataAvailable: %lu\n", ReadDataAvailable);
+                       }
+  
+                       if (ReadDataAvailable != 0)
+                       {
+                               DPRINT1("Possible memory corruption.\n");
+                               ASSERT(FALSE);
+                       }
+               }
+       }
+       ExReleaseFastMutex(&Ccb->DataListLock);
+  
+       Reply->NumberOfMessages = MessageCount;
   
-       //  Irp->IoStatus.Information = sizeof(FILE_PIPE_PEEK_BUFFER);
+       Irp->IoStatus.Information = ReturnLength + FIELD_OFFSET(FILE_PIPE_PEEK_BUFFER, Data[0]);
+       Irp->IoStatus.Status = STATUS_SUCCESS;
   
-       //  Status = STATUS_SUCCESS;
-       Status = STATUS_NOT_IMPLEMENTED;
+       Status = STATUS_SUCCESS;
   
-       DPRINT1("NpfsPeekPipe done\n");
+       DPRINT("NpfsPeekPipe done\n");
   
        return Status;
   }
Simple merge
   extern "C" {
   #endif
   
+++#ifndef _INC_SETJMPEX
+++#define setjmp  _setjmp
+++#endif
+++
   #if (defined(_X86_) && !defined(__x86_64))
   
   #define _JBLEN 16
       unsigned long UnwindFunc;
       unsigned long UnwindData[6];
     } _JUMP_BUFFER;
+++
   #elif defined(__ia64__)
+++
     typedef _CRT_ALIGN(16) struct _SETJMP_FLOAT128 {
       __int64 LowPart;
       __int64 HighPart;
       __int64 Preds;
   
     } _JUMP_BUFFER;
+++
   #elif defined(__x86_64)
+++
     typedef _CRT_ALIGN(16) struct _SETJMP_FLOAT128 {
       unsigned __int64 Part[2];
     } SETJMP_FLOAT128;
       SETJMP_FLOAT128 Xmm14;
       SETJMP_FLOAT128 Xmm15;
     } _JUMP_BUFFER;
+++
   #endif
+++
   #ifndef _JMP_BUF_DEFINED
     typedef _JBTYPE jmp_buf[_JBLEN];
   #define _JMP_BUF_DEFINED
   #endif
   
+++#if 0
     void * __cdecl __attribute__ ((__nothrow__)) mingw_getsp(void);
   
   #ifdef USE_MINGW_SETJMP_TWO_ARGS
     int __cdecl __attribute__ ((__nothrow__)) setjmp(jmp_buf _Buf);
   #endif
   
+++#endif // 0
+++
+++  int __cdecl setjmp(jmp_buf _Buf);
+++
     __declspec(noreturn) __attribute__ ((__nothrow__)) void __cdecl ms_longjmp(jmp_buf _Buf,int _Value)/* throw(...)*/;
     __declspec(noreturn) __attribute__ ((__nothrow__)) void __cdecl longjmp(jmp_buf _Buf,int _Value);
   
Simple merge
@@@@ -5612,156 -5612,10 -5612,10 +5612,156 @@@@ KeGetCurrentThread
   
   #define KI_USER_SHARED_DATA               0xffdf0000
   
 ++#define PAGE_SIZE                         0x1000
 ++#define PAGE_SHIFT                        12L
 ++
 ++#define SharedUserData                    ((KUSER_SHARED_DATA * CONST) KI_USER_SHARED_DATA)
 ++
 ++extern NTKERNELAPI PVOID MmHighestUserAddress;
 ++extern NTKERNELAPI PVOID MmSystemRangeStart;
 ++extern NTKERNELAPI ULONG_PTR MmUserProbeAddress;
 ++
 ++#define MM_HIGHEST_USER_ADDRESS           MmHighestUserAddress
 ++#define MM_SYSTEM_RANGE_START             MmSystemRangeStart
 ++#define MM_USER_PROBE_ADDRESS             MmUserProbeAddress
 ++#define MM_LOWEST_USER_ADDRESS            (PVOID)0x10000
 ++#define MM_LOWEST_SYSTEM_ADDRESS          (PVOID)0xC0C00000
 ++
 ++#define MM_KSEG0_BASE       MM_SYSTEM_RANGE_START
 ++#define MM_SYSTEM_SPACE_END 0xFFFFFFFF
 ++
   #elif defined(__x86_64__)
   
 ++#define CONTEXT_AMD64 0x100000
 ++#if !defined(RC_INVOKED)
 ++#define CONTEXT_CONTROL (CONTEXT_AMD64 | 0x1L)
 ++#define CONTEXT_INTEGER (CONTEXT_AMD64 | 0x2L)
 ++#define CONTEXT_SEGMENTS (CONTEXT_AMD64 | 0x4L)
 ++#define CONTEXT_FLOATING_POINT (CONTEXT_AMD64 | 0x8L)
 ++#define CONTEXT_DEBUG_REGISTERS (CONTEXT_AMD64 | 0x10L)
 ++
 ++#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT)
 ++#define CONTEXT_ALL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS)
 ++
 ++#define CONTEXT_EXCEPTION_ACTIVE 0x8000000
 ++#define CONTEXT_SERVICE_ACTIVE 0x10000000
 ++#define CONTEXT_EXCEPTION_REQUEST 0x40000000
 ++#define CONTEXT_EXCEPTION_REPORTING 0x80000000
 ++#endif
 ++
 ++typedef struct DECLSPEC_ALIGN(16) _M128A {
 ++    ULONGLONG Low;
 ++    LONGLONG High;
 ++} M128A, *PM128A;
 ++
 ++typedef struct _XMM_SAVE_AREA32 {
 ++    USHORT ControlWord;
 ++    USHORT StatusWord;
 ++    UCHAR TagWord;
 ++    UCHAR Reserved1;
 ++    USHORT ErrorOpcode;
 ++    ULONG ErrorOffset;
 ++    USHORT ErrorSelector;
 ++    USHORT Reserved2;
 ++    ULONG DataOffset;
 ++    USHORT DataSelector;
 ++    USHORT Reserved3;
 ++    ULONG MxCsr;
 ++    ULONG MxCsr_Mask;
 ++    M128A FloatRegisters[8];
 ++    M128A XmmRegisters[16];
 ++    UCHAR Reserved4[96];
 ++} XMM_SAVE_AREA32, *PXMM_SAVE_AREA32;
 ++
 ++typedef struct DECLSPEC_ALIGN(16) _CONTEXT {
 ++    ULONG64 P1Home;
 ++    ULONG64 P2Home;
 ++    ULONG64 P3Home;
 ++    ULONG64 P4Home;
 ++    ULONG64 P5Home;
 ++    ULONG64 P6Home;
 ++
 ++    /* Control flags */
 ++    ULONG ContextFlags;
 ++    ULONG MxCsr;
 ++
 ++    /* Segment */
 ++    USHORT SegCs;
 ++    USHORT SegDs;
 ++    USHORT SegEs;
 ++    USHORT SegFs;
 ++    USHORT SegGs;
 ++    USHORT SegSs;
 ++    USHORT EFlags;
 ++
 ++    /* Debug */
 ++    ULONG64 Dr0;
 ++    ULONG64 Dr1;
 ++    ULONG64 Dr2;
 ++    ULONG64 Dr3;
 ++    ULONG64 Dr6;
 ++    ULONG64 Dr7;
 ++
 ++    /* Integer */
 ++    ULONG64 Rax;
 ++    ULONG64 Rcx;
 ++    ULONG64 Rdx;
 ++    ULONG64 Rbx;
 ++    ULONG64 Rsp;
 ++    ULONG64 Rbp;
 ++    ULONG64 Rsi;
 ++    ULONG64 Rdi;
 ++    ULONG64 R8;
 ++    ULONG64 R9;
 ++    ULONG64 R10;
 ++    ULONG64 R11;
 ++    ULONG64 R12;
 ++    ULONG64 R13;
 ++    ULONG64 R14;
 ++    ULONG64 R15;
 ++
 ++    /* Counter */
 ++    ULONG64 Rip;
 ++
 ++   /* Floating point */
 ++   union {
 ++       XMM_SAVE_AREA32 FltSave;
 ++       struct {
 ++           M128A Header[2];
 ++           M128A Legacy[8];
 ++           M128A Xmm0;
 ++           M128A Xmm1;
 ++           M128A Xmm2;
 ++           M128A Xmm3;
 ++           M128A Xmm4;
 ++           M128A Xmm5;
 ++           M128A Xmm6;
 ++           M128A Xmm7;
 ++           M128A Xmm8;
 ++           M128A Xmm9;
 ++           M128A Xmm10;
 ++           M128A Xmm11;
 ++           M128A Xmm12;
 ++           M128A Xmm13;
 ++           M128A Xmm14;
 ++           M128A Xmm15;
 ++      } DUMMYSTRUCTNAME;
 ++    } DUMMYUNIONNAME;
 ++
 ++     /* Vector */
 ++    M128A VectorRegister[26];
 ++    ULONG64 VectorControl;
 ++
 ++    /* Debug control */
 ++    ULONG64 DebugControl;
 ++    ULONG64 LastBranchToRip;
 ++    ULONG64 LastBranchFromRip;
 ++    ULONG64 LastExceptionToRip;
 ++    ULONG64 LastExceptionFromRip;
 ++} CONTEXT;
 ++
   //
-  // Types to use to contain PFNs and their counts.
+  // Used to contain PFNs and PFN counts
   //
   typedef ULONG PFN_COUNT;
   typedef ULONG64 PFN_NUMBER, *PPFN_NUMBER;
index b405bba,0000000,0000000..b75c9bf
mode 100644,000000,000000..100644
--- /dev/null
--- /dev/null
@@@@ -1,822 -1,0 -1,0 +1,825 @@@@
 ++/*++ NDK Version: 0098
 ++
 ++Copyright (c) Alex Ionescu.  All rights reserved.
 ++Copyright (c) Timo Kreuzer.  All rights reserved.
 ++
 ++Header Name:
 ++
 ++    ketypes.h (AMD64)
 ++
 ++Abstract:
 ++
 ++    amd64 Type definitions for the Kernel services.
 ++
 ++Author:
 ++
 ++    Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
 ++    Timo Kreuzer (timo.kreuzer@reactos.org) - Updated - 14-Aug-2008
 ++
 ++--*/
 ++
 ++#ifndef _AMD64_KETYPES_H
 ++#define _AMD64_KETYPES_H
 ++
 ++//
 ++// Dependencies
 ++//
 ++
 ++//
 ++// KPCR Access for non-IA64 builds
 ++//
 ++//#define K0IPCR                  ((ULONG_PTR)(KIP0PCRADDRESS))
 ++//#define PCR                     ((volatile KPCR * const)K0IPCR)
 ++#define PCR ((volatile KPCR * const)__readgsqword(FIELD_OFFSET(KPCR, Self)))
 ++//#if defined(CONFIG_SMP) || defined(NT_BUILD)
 ++//#undef  KeGetPcr
 ++//#define KeGetPcr()              ((volatile KPCR * const)__readfsdword(0x1C))
 ++//#endif
 ++
 ++//
 ++// Machine Types
 ++//
 ++#define MACHINE_TYPE_ISA        0x0000
 ++#define MACHINE_TYPE_EISA       0x0001
 ++#define MACHINE_TYPE_MCA        0x0002
 ++
 ++//
 ++// X86 80386 Segment Types
 ++//
 ++#define I386_TASK_GATE          0x5
 ++#define I386_TSS                0x9
 ++#define I386_ACTIVE_TSS         0xB
 ++#define I386_CALL_GATE          0xC
 ++#define I386_INTERRUPT_GATE     0xE
 ++#define I386_TRAP_GATE          0xF
 ++
 ++//
 ++// Selector Names
 ++//
 ++#define RPL_MASK                0x0003
 ++#define MODE_MASK               0x0001
 ++#define KGDT_64_R0_CODE         0x0010
 ++#define KGDT_64_R0_SS           0x0018
 ++#define KGDT_64_DATA            0x0028 // 2b
 ++#define KGDT_64_R3_CODE         0x0030 // 33
 ++#define KGDT_TSS                0x0040
 ++#define KGDT_32_R3_TEB          0x0050 // 53
 ++
 ++//
 ++// CR4
 ++//
 ++#define CR4_VME                 0x1
 ++#define CR4_PVI                 0x2
 ++#define CR4_TSD                 0x4
 ++#define CR4_DE                  0x8
 ++#define CR4_PSE                 0x10
 ++#define CR4_PAE                 0x20
 ++#define CR4_MCE                 0x40
 ++#define CR4_PGE                 0x80
 ++#define CR4_FXSR                0x200
 ++#define CR4_XMMEXCPT            0x400
 ++
 ++//
 ++// EFlags
 ++//
 ++#define EFLAGS_CF               0x01L
 ++#define EFLAGS_ZF               0x40L
 ++#define EFLAGS_TF               0x100L
 ++#define EFLAGS_INTERRUPT_MASK   0x200L
 ++#define EFLAGS_DF               0x400L
 ++#define EFLAGS_NESTED_TASK      0x4000L
 ++#define EFLAGS_V86_MASK         0x20000
 ++#define EFLAGS_ALIGN_CHECK      0x40000
 ++#define EFLAGS_VIF              0x80000
 ++#define EFLAGS_VIP              0x100000
 ++#define EFLAGS_USER_SANITIZE    0x3F4DD7
 ++#define EFLAG_SIGN              0x8000
 ++#define EFLAG_ZERO              0x4000
 ++
 ++//
 ++// IPI Types
 ++//
 ++#define IPI_APC                 1
 ++#define IPI_DPC                 2
 ++#define IPI_FREEZE              4
 ++#define IPI_PACKET_READY        8
 ++#define IPI_SYNCH_REQUEST       16
 ++
 ++//
 ++// PRCB Flags
 ++//
 ++#define PRCB_MAJOR_VERSION      1
 ++#define PRCB_BUILD_DEBUG        1
 ++#define PRCB_BUILD_UNIPROCESSOR 2
 ++
 ++//
 ++// HAL Variables
 ++//
 ++#define INITIAL_STALL_COUNT     0x64
 ++
 ++//
 ++// IOPM Definitions
 ++//
 ++#define IO_ACCESS_MAP_NONE      0
 ++#define IOPM_OFFSET             FIELD_OFFSET(KTSS, IoMaps[0].IoMap)
 ++#define KiComputeIopmOffset(MapNumber)              \
 ++    (MapNumber == IO_ACCESS_MAP_NONE) ?             \
 ++        (USHORT)(sizeof(KTSS)) :                    \
 ++        (USHORT)(FIELD_OFFSET(KTSS, IoMaps[MapNumber-1].IoMap))
 ++
 ++//
 ++// Static Kernel-Mode Address start (use MM_KSEG0_BASE for actual)
 ++//
 ++#define KSEG0_BASE 0xfffff80000000000ULL
 ++
 ++//
 ++// Synchronization-level IRQL
 ++//
 ++#ifndef CONFIG_SMP
 ++#define SYNCH_LEVEL             DISPATCH_LEVEL
 ++#else
 ++#define SYNCH_LEVEL             (IPI_LEVEL - 2)
 ++#endif
 ++
 ++//
 ++// Trap Frame Definition
 ++//
 ++typedef struct _KTRAP_FRAME
 ++{
 ++    UINT64 P1Home;
 ++    UINT64 P2Home;
 ++    UINT64 P3Home;
 ++    UINT64 P4Home;
 ++    UINT64 P5;
 ++    CHAR PreviousMode;
 ++    UCHAR PreviousIrql;
 ++    UCHAR FaultIndicator;
 ++    UCHAR ExceptionActive;
 ++    ULONG MxCsr;
 ++    UINT64 Rax;
 ++    UINT64 Rcx;
 ++    UINT64 Rdx;
 ++    UINT64 R8;
 ++    UINT64 R9;
 ++    UINT64 R10;
 ++    UINT64 R11;
 ++    union
 ++    {
 ++        UINT64 GsBase;
 ++        UINT64 GsSwap;
 ++    };
 ++    M128A Xmm0;
 ++    M128A Xmm1;
 ++    M128A Xmm2;
 ++    M128A Xmm3;
 ++    M128A Xmm4;
 ++    M128A Xmm5;
 ++    union
 ++    {
 ++        UINT64 FaultAddress;
 ++        UINT64 ContextRecord;
 ++        UINT64 TimeStampCKCL;
 ++    };
 ++    UINT64 Dr0;
 ++    UINT64 Dr1;
 ++    UINT64 Dr2;
 ++    UINT64 Dr3;
 ++    UINT64 Dr6;
 ++    UINT64 Dr7;
 ++    union
 ++    {
 ++        struct
 ++        {
 ++            UINT64 DebugControl;
 ++            UINT64 LastBranchToRip;
 ++            UINT64 LastBranchFromRip;
 ++            UINT64 LastExceptionToRip;
 ++            UINT64 LastExceptionFromRip;
 ++        };
 ++        struct
 ++        {
 ++            UINT64 LastBranchControl;
 ++            ULONG LastBranchMSR;
 ++        };
 ++    };
 ++    USHORT SegDs;
 ++    USHORT SegEs;
 ++    USHORT SegFs;
 ++    USHORT SegGs;
 ++    UINT64 TrapFrame;
 ++    UINT64 Rbx;
 ++    UINT64 Rdi;
 ++    UINT64 Rsi;
 ++    UINT64 Rbp;
 ++    union
 ++    {
 ++        UINT64 ErrorCode;
 ++        UINT64 ExceptionFrame;
 ++        UINT64 TimeStampKlog;
 ++    };
 ++    UINT64 Rip;
 ++    USHORT SegCs;
 ++    UCHAR Fill0;
 ++    UCHAR Logging;
 ++    USHORT Fill1[2];
 ++    ULONG EFlags;
 ++    ULONG Fill2;
 ++    UINT64 Rsp;
 ++    USHORT SegSs;
 ++    USHORT Fill3;
 ++    LONG CodePatchCycle;
 ++} KTRAP_FRAME, *PKTRAP_FRAME;
 ++
 ++//
 ++// Dummy LDT_ENTRY
 ++//
+++#ifndef _LDT_ENTRY_DEFINED
+++#define _LDT_ENTRY_DEFINED
 ++typedef ULONG LDT_ENTRY;
+++#endif
 ++
 ++//
 ++// GDT Entry Definition
 ++//
 ++typedef union _KGDTENTRY64
 ++{
 ++    struct
 ++    {
 ++        USHORT LimitLow;
 ++        USHORT BaseLow;
 ++        union
 ++        {
 ++            struct
 ++            {
 ++                UCHAR BaseMiddle;
 ++                UCHAR Flags1;
 ++                UCHAR Flags2;
 ++                UCHAR BaseHigh;
 ++            } Bytes;
 ++            struct
 ++            {
 ++                ULONG BaseMiddle:8;
 ++                ULONG Type:5;
 ++                ULONG Dpl:2;
 ++                ULONG Present:1;
 ++                ULONG LimitHigh:4;
 ++                ULONG System:1;
 ++                ULONG LongMode:1;
 ++                ULONG DefaultBig:1;
 ++                ULONG Granularity:1;
 ++                ULONG BaseHigh:8;
 ++            } Bits;
 ++        };
 ++        ULONG BaseUpper;
 ++        ULONG MustBeZero;
 ++    };
 ++    UINT64 Alignment;
 ++} KGDTENTRY64, *PKGDTENTRY64;
 ++#define KGDTENTRY KGDTENTRY64
 ++#define PKGDTENTRY PKGDTENTRY64
 ++
 ++//
 ++// IDT Entry Access Definition
 ++//
 ++typedef struct _KIDT_ACCESS
 ++{
 ++    union
 ++    {
 ++        struct
 ++        {
 ++            UCHAR Reserved;
 ++            UCHAR SegmentType:4;
 ++            UCHAR SystemSegmentFlag:1;
 ++            UCHAR Dpl:2;
 ++            UCHAR Present:1;
 ++        };
 ++        USHORT Value;
 ++    };
 ++} KIDT_ACCESS, *PKIDT_ACCESS;
 ++
 ++//
 ++// IDT Entry Definition
 ++//
 ++typedef union _KIDTENTRY64
 ++{
 ++    struct
 ++    {
 ++        USHORT OffsetLow;
 ++        USHORT Selector;
 ++        USHORT IstIndex:3;
 ++        USHORT Reserved0:5;
 ++        USHORT Type:5;
 ++        USHORT Dpl:2;
 ++        USHORT Present:1;
 ++        USHORT OffsetMiddle;
 ++        ULONG OffsetHigh;
 ++        ULONG Reserved1;
 ++    };
 ++    UINT64 Alignment;
 ++} KIDTENTRY64, *PKIDTENTRY64;
 ++#define KIDTENTRY KIDTENTRY64
 ++#define PKIDTENTRY PKIDTENTRY64
 ++
 ++typedef struct _KDESCRIPTOR
 ++{
 ++    USHORT Pad[3];
 ++    USHORT Limit;
 ++    PVOID Base;
 ++} KDESCRIPTOR, *PKDESCRIPTOR;
 ++
 ++#ifndef NTOS_MODE_USER
 ++
 ++//
 ++// Special Registers Structure (outside of CONTEXT)
 ++//
 ++typedef struct _KSPECIAL_REGISTERS
 ++{
 ++    UINT64 Cr0;
 ++    UINT64 Cr2;
 ++    UINT64 Cr3;
 ++    UINT64 Cr4;
 ++    UINT64 KernelDr0;
 ++    UINT64 KernelDr1;
 ++    UINT64 KernelDr2;
 ++    UINT64 KernelDr3;
 ++    UINT64 KernelDr6;
 ++    UINT64 KernelDr7;
 ++    struct _KDESCRIPTOR Gdtr;
 ++    struct _KDESCRIPTOR Idtr;
 ++    USHORT Tr;
 ++    USHORT Ldtr;
 ++    ULONG MxCsr;
 ++    UINT64 DebugControl;
 ++    UINT64 LastBranchToRip;
 ++    UINT64 LastBranchFromRip;
 ++    UINT64 LastExceptionToRip;
 ++    UINT64 LastExceptionFromRip;
 ++    UINT64 Cr8;
 ++    UINT64 MsrGsBase;
 ++    UINT64 MsrGsSwap;
 ++    UINT64 MsrStar;
 ++    UINT64 MsrLStar;
 ++    UINT64 MsrCStar;
 ++    UINT64 MsrSyscallMask;
 ++} KSPECIAL_REGISTERS, *PKSPECIAL_REGISTERS;
 ++
 ++//
 ++// Processor State Data
 ++//
 ++typedef struct _KPROCESSOR_STATE
 ++{
 ++    KSPECIAL_REGISTERS SpecialRegisters;
 ++    CONTEXT ContextFrame;
 ++} KPROCESSOR_STATE, *PKPROCESSOR_STATE;
 ++
 ++#if (NTDDI_VERSION >= NTDDI_LONGHORN)
 ++typedef struct _GENERAL_LOOKASIDE_POOL
 ++{
 ++    union
 ++    {
 ++        SLIST_HEADER ListHead;
 ++        SINGLE_LIST_ENTRY SingleListHead;
 ++    };
 ++    USHORT Depth;
 ++    USHORT MaximumDepth;
 ++    ULONG TotalAllocates;
 ++    union
 ++    {
 ++        ULONG AllocateMisses;
 ++        ULONG AllocateHits;
 ++    };
 ++    union
 ++    {
 ++        ULONG TotalFrees;
 ++        ULONG FreeMisses;
 ++    };
 ++    ULONG FreeHits;
 ++    POOL_TYPE Type;
 ++    ULONG Tag;
 ++    ULONG Size;
 ++    union
 ++    {
 ++        PVOID AllocateEx;
 ++        PVOID Allocate;
 ++    };
 ++    union
 ++    {
 ++        PVOID FreeEx;
 ++        PVOID Free;
 ++    };
 ++    LIST_ENTRY ListEntry;
 ++    ULONG LastTotalAllocates;
 ++    union
 ++    {
 ++        ULONG LastAllocateMisses;
 ++        ULONG LastAllocateHits;
 ++    };
 ++    ULONG Future[2];
 ++} GENERAL_LOOKASIDE_POOL, *PGENERAL_LOOKASIDE_POOL;
 ++#else
 ++#define GENERAL_LOOKASIDE_POOL PP_LOOKASIDE_LIST
 ++#endif
 ++
 ++typedef struct _KREQUEST_PACKET
 ++{
 ++    PVOID CurrentPacket[3];
 ++    PVOID WorkerRoutine;
 ++} KREQUEST_PACKET, *PKREQUEST_PACKET;
 ++
 ++typedef struct _REQUEST_MAILBOX
 ++{
 ++    INT64 RequestSummary;
 ++    KREQUEST_PACKET RequestPacket;
 ++    PVOID Virtual[7];
 ++} REQUEST_MAILBOX, *PREQUEST_MAILBOX;
 ++
 ++//
 ++// Processor Region Control Block
 ++//
 ++#pragma pack(push,4)
 ++typedef struct _KPRCB
 ++{
 ++    ULONG MxCsr;
 ++#if (NTDDI_VERSION >= NTDDI_LONGHORN)
 ++    USHORT Number;
 ++#else
 ++    UCHAR Number;
 ++    UCHAR NestingLevel;
 ++#endif
 ++    UCHAR InterruptRequest;
 ++    UCHAR IdleHalt;
 ++    struct _KTHREAD *CurrentThread;
 ++    struct _KTHREAD *NextThread;
 ++    struct _KTHREAD *IdleThread;
 ++#if (NTDDI_VERSION >= NTDDI_LONGHORN)
 ++    UCHAR NestingLevel;
 ++    UCHAR Group;
 ++    UCHAR PrcbPad00[6];
 ++#else
 ++    UINT64 UserRsp;
 ++#endif
 ++    UINT64 RspBase;
 ++    UINT64 PrcbLock;
 ++    UINT64 SetMember;
 ++    KPROCESSOR_STATE ProcessorState;
 ++    CHAR CpuType;
 ++    CHAR CpuID;
 ++#if (NTDDI_VERSION >= NTDDI_LONGHORN)
 ++    union
 ++    {
 ++        USHORT CpuStep;
 ++        struct
 ++        {
 ++            UCHAR CpuStepping;
 ++            UCHAR CpuModel;
 ++        };
 ++    };
 ++#else
 ++    USHORT CpuStep;
 ++#endif
 ++    ULONG MHz;
 ++    UINT64 HalReserved[8];
 ++    USHORT MinorVersion;
 ++    USHORT MajorVersion;
 ++    UCHAR BuildType;
 ++    UCHAR CpuVendor;
 ++#if (NTDDI_VERSION >= NTDDI_LONGHORN)
 ++    UCHAR CoresPerPhysicalProcessor;
 ++    UCHAR LogicalProcessorsPerCore;
 ++#else
 ++    UCHAR InitialApicId;
 ++    UCHAR LogicalProcessorsPerPhysicalProcessor;
 ++#endif
 ++    ULONG ApicMask;
 ++#if (NTDDI_VERSION >= NTDDI_LONGHORN)
 ++    ULONG CFlushSize;
 ++#else
 ++    UCHAR CFlushSize;
 ++    UCHAR PrcbPad0x[3];
 ++#endif
 ++    PVOID AcpiReserved;
 ++#if (NTDDI_VERSION >= NTDDI_LONGHORN)
 ++    ULONG InitialApicId;
 ++    ULONG Stride;
 ++    UINT64 PrcbPad01[3];
 ++#else
 ++    UINT64 PrcbPad00[4];
 ++#endif
 ++    KSPIN_LOCK_QUEUE LockQueue[LockQueueMaximumLock]; // 2003: 33, vista:49
 ++    PP_LOOKASIDE_LIST PPLookasideList[16];
 ++    GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[32];
 ++    GENERAL_LOOKASIDE_POOL PPPagedLookasideList[32];
 ++    UINT64 PacketBarrier;
 ++    SINGLE_LIST_ENTRY DeferredReadyListHead;
 ++    LONG MmPageFaultCount;
 ++    LONG MmCopyOnWriteCount;
 ++    LONG MmTransitionCount;
 ++#if (NTDDI_VERSION < NTDDI_LONGHORN)
 ++    LONG MmCacheTransitionCount;
 ++#endif
 ++    LONG MmDemandZeroCount;
 ++    LONG MmPageReadCount;
 ++    LONG MmPageReadIoCount;
 ++#if (NTDDI_VERSION < NTDDI_LONGHORN)
 ++    LONG MmCacheReadCount;
 ++    LONG MmCacheIoCount;
 ++#endif
 ++    LONG MmDirtyPagesWriteCount;
 ++    LONG MmDirtyWriteIoCount;
 ++    LONG MmMappedPagesWriteCount;
 ++    LONG MmMappedWriteIoCount;
 ++#if (NTDDI_VERSION >= NTDDI_LONGHORN)
 ++    ULONG KeSystemCalls;
 ++    ULONG KeContextSwitches;
 ++    ULONG CcFastReadNoWait;
 ++    ULONG CcFastReadWait;
 ++    ULONG CcFastReadNotPossible;
 ++    ULONG CcCopyReadNoWait;
 ++    ULONG CcCopyReadWait;
 ++    ULONG CcCopyReadNoWaitMiss;
 ++    LONG LookasideIrpFloat;
 ++#else
 ++    LONG LookasideIrpFloat;
 ++    ULONG KeSystemCalls;
 ++#endif
 ++    LONG IoReadOperationCount;
 ++    LONG IoWriteOperationCount;
 ++    LONG IoOtherOperationCount;
 ++    LARGE_INTEGER IoReadTransferCount;
 ++    LARGE_INTEGER IoWriteTransferCount;
 ++    LARGE_INTEGER IoOtherTransferCount;
 ++#if (NTDDI_VERSION < NTDDI_LONGHORN)
 ++    ULONG KeContextSwitches;
 ++    UCHAR PrcbPad2[12];
 ++#endif
 ++    UINT64 TargetSet;
 ++    ULONG IpiFrozen;
 ++    UCHAR PrcbPad3[116];
 ++    REQUEST_MAILBOX RequestMailbox[64];
 ++    UINT64 SenderSummary;
 ++    UCHAR PrcbPad4[120];
 ++    KDPC_DATA DpcData[2];
 ++    PVOID DpcStack;
 ++#if (NTDDI_VERSION >= NTDDI_LONGHORN)
 ++    PVOID SparePtr0;
 ++#else
 ++    PVOID SavedRsp;
 ++#endif
 ++    LONG MaximumDpcQueueDepth;
 ++    ULONG DpcRequestRate;
 ++    ULONG MinimumDpcRate;
 ++    UCHAR DpcInterruptRequested;
 ++    UCHAR DpcThreadRequested;
 ++    UCHAR DpcRoutineActive;
 ++    UCHAR DpcThreadActive;
 ++    UINT64 TimerHand;
 ++    UINT64 TimerRequest;
 ++    LONG TickOffset;
 ++    LONG MasterOffset;
 ++    ULONG DpcLastCount;
 ++    UCHAR ThreadDpcEnable;
 ++    UCHAR QuantumEnd;
 ++    UCHAR PrcbPad50;
 ++    UCHAR IdleSchedule;
 ++    LONG DpcSetEventRequest;
 ++#if (NTDDI_VERSION >= NTDDI_LONGHORN)
 ++    ULONG KeExceptionDispatchCount;
 ++#else
 ++    LONG PrcbPad40;
 ++    PVOID DpcThread;
 ++#endif
 ++    KEVENT DpcEvent;
 ++#if (NTDDI_VERSION >= NTDDI_LONGHORN)
 ++    PVOID PrcbPad51;
 ++#endif
 ++    KDPC CallDpc;
 ++#if (NTDDI_VERSION >= NTDDI_LONGHORN)
 ++    LONG ClockKeepAlive;
 ++    UCHAR ClockCheckSlot;
 ++    UCHAR ClockPollCycle;
 ++    UCHAR PrcbPad6[2];
 ++    LONG DpcWatchdogPeriod;
 ++    LONG DpcWatchdogCount;
 ++    UINT64 PrcbPad70[2];
 ++#else
 ++    UINT64 PrcbPad7[4];
 ++#endif
 ++    LIST_ENTRY WaitListHead;
 ++#if (NTDDI_VERSION >= NTDDI_LONGHORN)
 ++    UINT64 WaitLock;
 ++#endif
 ++    ULONG ReadySummary;
 ++    ULONG QueueIndex;
 ++#if (NTDDI_VERSION >= NTDDI_LONGHORN)
 ++    UINT64 PrcbPad71[12];
 ++#endif
 ++    LIST_ENTRY DispatcherReadyListHead[32];
 ++    ULONG InterruptCount;
 ++    ULONG KernelTime;
 ++    ULONG UserTime;
 ++    ULONG DpcTime;
 ++    ULONG InterruptTime;
 ++    ULONG AdjustDpcThreshold;
 ++    UCHAR SkipTick;
 ++    UCHAR DebuggerSavedIRQL;
 ++    UCHAR PollSlot;
 ++#if (NTDDI_VERSION >= NTDDI_LONGHORN)
 ++    UCHAR PrcbPad80[5];
 ++    ULONG DpcTimeCount;
 ++    ULONG DpcTimeLimit;
 ++    ULONG PeriodicCount;
 ++    ULONG PeriodicBias;
 ++    UINT64 PrcbPad81[2];
 ++#else
 ++    UCHAR PrcbPad8[13];
 ++#endif
 ++    struct _KNODE *ParentNode;
 ++    UINT64 MultiThreadProcessorSet;
 ++    struct _KPRCB *MultiThreadSetMaster;
 ++#if (NTDDI_VERSION >= NTDDI_LONGHORN)
 ++    UINT64 StartCycles;
 ++    LONG MmSpinLockOrdering;
 ++    ULONG PageColor;
 ++    ULONG NodeColor;
 ++    ULONG NodeShiftedColor;
 ++    ULONG SecondaryColorMask;
 ++#endif
 ++    LONG Sleeping;
 ++#if (NTDDI_VERSION >= NTDDI_LONGHORN)
 ++    UINT64 CycleTime;
 ++    ULONG CcFastMdlReadNoWait;
 ++    ULONG CcFastMdlReadWait;
 ++    ULONG CcFastMdlReadNotPossible;
 ++    ULONG CcMapDataNoWait;
 ++    ULONG CcMapDataWait;
 ++    ULONG CcPinMappedDataCount;
 ++    ULONG CcPinReadNoWait;
 ++    ULONG CcPinReadWait;
 ++    ULONG CcMdlReadNoWait;
 ++    ULONG CcMdlReadWait;
 ++    ULONG CcLazyWriteHotSpots;
 ++    ULONG CcLazyWriteIos;
 ++    ULONG CcLazyWritePages;
 ++    ULONG CcDataFlushes;
 ++    ULONG CcDataPages;
 ++    ULONG CcLostDelayedWrites;
 ++    ULONG CcFastReadResourceMiss;
 ++    ULONG CcCopyReadWaitMiss;
 ++    ULONG CcFastMdlReadResourceMiss;
 ++    ULONG CcMapDataNoWaitMiss;
 ++    ULONG CcMapDataWaitMiss;
 ++    ULONG CcPinReadNoWaitMiss;
 ++    ULONG CcPinReadWaitMiss;
 ++    ULONG CcMdlReadNoWaitMiss;
 ++    ULONG CcMdlReadWaitMiss;
 ++    ULONG CcReadAheadIos;
 ++    LONG MmCacheTransitionCount;
 ++    LONG MmCacheReadCount;
 ++    LONG MmCacheIoCount;
 ++    ULONG PrcbPad91[3];
 ++    PROCESSOR_POWER_STATE PowerState;
 ++    ULONG KeAlignmentFixupCount;
 ++    UCHAR VendorString[13];
 ++    UCHAR PrcbPad10[3];
 ++    ULONG FeatureBits;
 ++    LARGE_INTEGER UpdateSignature;
 ++    KDPC DpcWatchdogDpc;
 ++    KTIMER DpcWatchdogTimer;
 ++    CACHE_DESCRIPTOR Cache[5];
 ++    ULONG CacheCount;
 ++    ULONG CachedCommit;
 ++    ULONG CachedResidentAvailable;
 ++    PVOID HyperPte;
 ++    PVOID WheaInfo;
 ++    PVOID EtwSupport;
 ++    SLIST_HEADER InterruptObjectPool;
 ++    SLIST_HEADER HypercallPageList;
 ++    PVOID HypercallPageVirtual;
 ++    PVOID VirtualApicAssist;
 ++    UINT64* StatisticsPage;
 ++    PVOID RateControl;
 ++    UINT64 CacheProcessorMask[5];
 ++    UINT64 PackageProcessorSet;
 ++    UINT64 CoreProcessorSet;
 ++#else
 ++    ULONG PrcbPad90[1];
 ++    ULONG DebugDpcTime;
 ++    ULONG PageColor;
 ++    ULONG NodeColor;
 ++    ULONG NodeShiftedColor;
 ++    ULONG SecondaryColorMask;
 ++    UCHAR PrcbPad9[12];
 ++    ULONG CcFastReadNoWait;
 ++    ULONG CcFastReadWait;
 ++    ULONG CcFastReadNotPossible;
 ++    ULONG CcCopyReadNoWait;
 ++    ULONG CcCopyReadWait;
 ++    ULONG CcCopyReadNoWaitMiss;
 ++    ULONG KeAlignmentFixupCount;
 ++    ULONG KeDcacheFlushCount;
 ++    ULONG KeExceptionDispatchCount;
 ++    ULONG KeFirstLevelTbFills;
 ++    ULONG KeFloatingEmulationCount;
 ++    ULONG KeIcacheFlushCount;
 ++    ULONG KeSecondLevelTbFills;
 ++    UCHAR VendorString[13];
 ++    UCHAR PrcbPad10[2];
 ++    ULONG FeatureBits;
 ++    LARGE_INTEGER UpdateSignature;
 ++    PROCESSOR_POWER_STATE PowerState;
 ++    CACHE_DESCRIPTOR Cache[5];
 ++    ULONG CacheCount;
 ++#endif
 ++}
 ++ KPRCB, *PKPRCB;
 ++
 ++//
 ++// Processor Control Region
 ++//
 ++typedef struct _KIPCR
 ++{
 ++    union
 ++    {
 ++        NT_TIB NtTib;
 ++        struct
 ++        {
 ++            union _KGDTENTRY64 *GdtBase;
 ++            struct _KTSS64 *TssBase;
 ++            ULONG64 UserRsp;
 ++            struct _KPCR *Self;
 ++            struct _KPRCB *CurrentPrcb;
 ++            PKSPIN_LOCK_QUEUE LockArray;
 ++            PVOID Used_Self;
 ++        };
 ++    };
 ++    union _KIDTENTRY64 *IdtBase;
 ++    ULONG64 Unused[2];
 ++    KIRQL Irql;
 ++    UCHAR SecondLevelCacheAssociativity;
 ++    UCHAR ObsoleteNumber;
 ++    UCHAR Fill0;
 ++    ULONG Unused0[3];
 ++    USHORT MajorVersion;
 ++    USHORT MinorVersion;
 ++    ULONG StallScaleFactor;
 ++    PVOID Unused1[3];
 ++    ULONG KernelReserved[15];
 ++    ULONG SecondLevelCacheSize;
 ++    ULONG HalReserved[16];
 ++    ULONG Unused2;
 ++    ULONG Fill1;
 ++    PVOID KdVersionBlock; // 0x108
 ++    PVOID Unused3;
 ++    ULONG PcrAlign1[24];
 ++    ULONG Fill2[2]; // 0x178
 ++    KPRCB Prcb; // 0x180
 ++
 ++    // hack:
 ++    ULONG ContextSwitches;
 ++
 ++} KIPCR, *PKIPCR;
 ++#pragma pack(pop)
 ++
 ++//
 ++// TSS Definition
 ++//
 ++typedef struct _KiIoAccessMap
 ++{
 ++    UCHAR DirectionMap[32];
 ++    UCHAR IoMap[8196];
 ++} KIIO_ACCESS_MAP;
 ++
 ++
 ++#pragma pack(push,4)
 ++typedef struct _KTSS64
 ++{
 ++ /* 000 */  ULONG Reserved0;
 ++ /* 004 */  UINT64 Rsp0;
 ++ /* 00c */  UINT64 Rsp1;
 ++ /* 014 */  UINT64 Rsp2;
 ++ /* 01c */  UINT64 Ist[8];
 ++ /* 05c */  UINT64 Reserved1;
 ++ /* 064 */  USHORT Reserved2;
 ++ /* 066 */  USHORT IoMapBase;
 ++} KTSS64, *PKTSS64;
 ++#pragma pack(pop)
 ++#define KTSS KTSS64
 ++#define PKTSS PKTSS64
 ++
 ++//
 ++// i386 CPUs don't have exception frames
 ++//
 ++typedef struct _KEXCEPTION_FRAME KEXCEPTION_FRAME, *PKEXCEPTION_FRAME;
 ++
 ++//
 ++// Inline function to get current KPRCB
 ++//
 ++FORCEINLINE
 ++struct _KPRCB *
 ++KeGetCurrentPrcb(VOID)
 ++{
 ++    return (struct _KPRCB *)__readgsqword(FIELD_OFFSET(KIPCR, CurrentPrcb));
 ++}
 ++
 ++#endif
 ++#endif
Simple merge
Simple merge
@@@@ -1,6 -1,12 -1,12 +1,12 @@@@
   #ifndef _BASETSD_H
   #define _BASETSD_H
   
 --#define __ROS_LONG64__
+  #if !defined(__ROS_LONG64__)
+  #ifdef __WINESRC__
+++//#define __ROS_LONG64__
+  #endif
+  #endif
+  
   #ifdef __GNUC__
   #ifndef __int64
   #define __int64 long long
Simple merge
@@@@ -516,8 -516,8 -516,8 +516,8 @@@@ DECL_WINELIB_TYPE_AW(TEXTRANGE
   
   typedef struct _editstream
   {
-      DWORD            dwCookie;
+      DWORD_PTR                dwCookie;
 --    DWORD            dwError;
 ++    DWORD_PTR        dwError;
       EDITSTREAMCALLBACK       pfnCallback;
   } EDITSTREAM;
   
Simple merge
Simple merge
Simple merge
@@@@ -3797,7 -3816,7 -3799,7 +3816,11 @@@@ WINADVAPI BOOL WINAPI CryptGetUserKey (
   WINADVAPI BOOL WINAPI CryptHashData (HCRYPTHASH, CONST BYTE *, DWORD, DWORD);
   WINADVAPI BOOL WINAPI CryptHashSessionKey (HCRYPTHASH, HCRYPTKEY, DWORD);
   WINADVAPI BOOL WINAPI CryptImportKey (HCRYPTPROV, CONST BYTE *, DWORD, HCRYPTKEY, DWORD, HCRYPTKEY *);
+++#if (NTDDI_VERSION >= NTDDI_WINXP)
 ++WINADVAPI BOOL WINAPI CryptReleaseContext (HCRYPTPROV, DWORD);
+++#else
+  WINADVAPI BOOL WINAPI CryptReleaseContext (HCRYPTPROV, ULONG_PTR);
+++#endif
   WINADVAPI BOOL WINAPI CryptSetHashParam (HCRYPTHASH, DWORD, CONST BYTE *, DWORD);
   WINADVAPI BOOL WINAPI CryptSetKeyParam (HCRYPTKEY, DWORD, CONST BYTE *, DWORD);
   WINADVAPI BOOL WINAPI CryptSetProviderA (LPCSTR, DWORD);
@@@@ -1,6 -1,12 -1,12 +1,12 @@@@
   #ifndef _WINDEF_H
   #define _WINDEF_H
   
 --#define __ROS_LONG64__
+  #if !defined(__ROS_LONG64__)
+  #ifdef __WINESRC__
+++//#define __ROS_LONG64__
+  #endif
+  #endif
+  
   #ifdef __cplusplus
   extern "C" {
   #endif
@@@@ -1,6 -1,12 -1,12 +1,12 @@@@
   #ifndef _WINNT_H
   #define _WINNT_H
   
 --#define __ROS_LONG64__
+  #if !defined(__ROS_LONG64__)
+  #ifdef __WINESRC__
+++//#define __ROS_LONG64__  <- hack of fail!!!
+  #endif
+  #endif
+  
   #ifdef __GNUC__
   #include <msvctarget.h>
   #endif
   #ifndef _WINSOCK_H
   #define _WINSOCK_H
   
 --#define __ROS_LONG64__
+  #if !defined(__ROS_LONG64__)
+  #ifdef __WINESRC__
+++//#define __ROS_LONG64__
+  #endif
+  #endif
+  
   #define _GNU_H_WINDOWS32_SOCKETS
   #include <windows.h>
   
@@@@ -23,10 -29,14 -29,14 +29,14 @@@@ extern "C" 
   typedef unsigned char        u_char;
   typedef unsigned short       u_short;
   typedef unsigned int u_int;
+  #ifndef __ROS_LONG64__
   typedef unsigned long        u_long;
+  #else
+  typedef unsigned int u_long;
+  #endif
   #define _BSDTYPES_DEFINED
   #endif /* !defined  _BSDTYPES_DEFINED */
 --typedef u_int        SOCKET;
 ++typedef UINT_PTR     SOCKET;
   #ifndef FD_SETSIZE
   #define FD_SETSIZE   64
   #endif
   
   #define _GNU_H_WINDOWS32_SOCKETS
   
 --#define __ROS_LONG64__
+  #if !defined(__ROS_LONG64__)
+  #ifdef __WINESRC__
+++//#define __ROS_LONG64__
+  #endif
+  #endif
+  
   #include <windows.h>
   
   #ifdef __cplusplus
@@@@ -27,10 -33,14 -33,14 +33,14 @@@@ extern "C" 
   typedef unsigned char        u_char;
   typedef unsigned short       u_short;
   typedef unsigned int u_int;
+  #ifndef __ROS_LONG64__
   typedef unsigned long        u_long;
+  #else
+  typedef unsigned int u_long;
+  #endif
   #define _BSDTYPES_DEFINED
   #endif /* ! def _BSDTYPES_DEFINED  */
 --typedef u_int        SOCKET;
 ++typedef UINT_PTR     SOCKET;
   #ifndef FD_SETSIZE
   #define FD_SETSIZE   64
   #endif
Simple merge
@@@@ -261,13 -261,7 -261,7 +261,13 @@@@ typedef struct _DBGKD_ANY_CONTROL_SE
   } DBGKD_ANY_CONTROL_SET, *PDBGKD_ANY_CONTROL_SET;
   #include <poppack.h>
   
-  typedef X86_DBGKD_CONTROL_SET DBGKD_CONTROL_SET;
 ++#if defined(_M_X86)
-  typedef AMD64_DBGKD_CONTROL_SET DBGKD_CONTROL_SET;
+  typedef X86_DBGKD_CONTROL_SET DBGKD_CONTROL_SET, *PDBGKD_CONTROL_SET;
 ++#elif defined(_M_AMD64)
+++typedef AMD64_DBGKD_CONTROL_SET DBGKD_CONTROL_SET, *PDBGKD_CONTROL_SET;
 ++#else
 ++#error unsupported architecture
 ++#endif
   
   //
   // DBGKM Structure for Exceptions
Simple merge
@@@@ -4,9 -4,9 -4,9 +4,10 @@@@
        <if property="ARCH" value="i386">
                <directory name="i386">
                        <file>framebased.S</file>
-                       <file>framebased-gcchack.S</file>
+                       <file>framebased-gcchack.c</file>
+                       <file>framebased-gcchack-asm.S</file>
                </directory>
 ++             <file>framebased-gcchack.c</file>
        </if>
        <if property="ARCH" value="powerpc">
                <directory name="powerpc">
@@@@ -120,10 -113,10 -113,10 +118,10 @@@@ static const DWORD HEAP_freeListSizes[H
       0x20, 0x80, 0x200, ~0UL
   };
   
 --typedef struct
 ++typedef union
   {
       ARENA_FREE  arena;
-      void *alignment[4];
+      void        *aligment[4];
   } FREE_LIST_ENTRY;
   
   struct tagHEAP;
Simple merge
@@@@ -19,17 -19,21 -19,15 +19,25 @@@@ extern VOID FASTCALL CHECK_PAGED_CODE_R
   #ifdef _PPC_
   #define SWAPD(x) ((((x)&0xff)<<24)|(((x)&0xff00)<<8)|(((x)>>8)&0xff00)|(((x)>>24)&0xff))
   #define SWAPW(x) ((((x)&0xff)<<8)|(((x)>>8)&0xff))
 ++#define SWAPQ(x) ((SWAPD((x)&0xffffffff) << 32) | (SWAPD((x)>>32)))
   #else
 --#define SWAPD(x) x
 --#define SWAPW(x) x
 ++#define SWAPD(x) (x)
 ++#define SWAPW(x) (x)
 ++#define SWAPQ(x) (x)
   #endif
   
+ +#define ROUND_DOWN(n, align) \
+ +    (((ULONG)n) & ~((align) - 1l))
+ +
+ +#define ROUND_UP(n, align) \
+ +    ROUND_DOWN(((ULONG)n) + (align) - 1, (align))
+ +
+++#define RVA(m, b) ((PVOID)((ULONG_PTR)(b) + (ULONG_PTR)(m)))
+++
   VOID
   NTAPI
 --RtlpGetStackLimits(PULONG_PTR StackBase,
 --                   PULONG_PTR StackLimit);
 ++RtlpGetStackLimits(PULONG_PTR LowLimit,
 ++                   PULONG_PTR HighLimit);
   
   PEXCEPTION_REGISTRATION_RECORD
   NTAPI
Simple merge
Simple merge
@@@@ -698,155 -701,153 -701,153 +701,153 @@@@ QSI_DEF(SystemPathInformation
   /* Class 5 - Process Information */
   QSI_DEF(SystemProcessInformation)
   {
-       ULONG ovlSize = 0, nThreads;
-       PEPROCESS pr = NULL, syspr;
-       PUCHAR pCur;
-       ULONG TotalUser, TotalKernel;
-       NTSTATUS Status = STATUS_SUCCESS;
-  
-       _SEH2_TRY
-       {
-               /* scan the process list */
-  
-               PSYSTEM_PROCESS_INFORMATION Spi
-                       = (PSYSTEM_PROCESS_INFORMATION) Buffer;
-  
-               *ReqSize = sizeof(SYSTEM_PROCESS_INFORMATION);
-  
-               if (Size < sizeof(SYSTEM_PROCESS_INFORMATION))
-               {
-                       _SEH2_YIELD(return STATUS_INFO_LENGTH_MISMATCH); // in case buffer size is too small
-               }
-               RtlZeroMemory(Spi, Size);
-  
-               syspr = PsIdleProcess;
-               pr = syspr;
-               pCur = (unsigned char *)Spi;
-  
-               do
-               {
-                       PSYSTEM_PROCESS_INFORMATION SpiCur;
-                       int curSize;
-                       ANSI_STRING     imgName;
-                       int inLen=32; // image name len in bytes
-                       PLIST_ENTRY current_entry;
-                       PETHREAD current;
-                       PSYSTEM_THREAD_INFORMATION ThreadInfo;
-  
-                       SpiCur = (PSYSTEM_PROCESS_INFORMATION)pCur;
-  
-                       nThreads = 0;
-                       current_entry = pr->ThreadListHead.Flink;
-                       while (current_entry != &pr->ThreadListHead)
-                       {
-                               nThreads++;
-                               current_entry = current_entry->Flink;
-                       }
-  
-                       // size of the structure for every process
-                       curSize = sizeof(SYSTEM_PROCESS_INFORMATION)+sizeof(SYSTEM_THREAD_INFORMATION)*nThreads;
-                       ovlSize += curSize+inLen;
-  
-                       if (ovlSize > Size)
-                       {
-                               *ReqSize = ovlSize;
-                               ObDereferenceObject(pr);
-  
-                               _SEH2_YIELD(return STATUS_INFO_LENGTH_MISMATCH); // in case buffer size is too small
-                       }
-  
-                       // fill system information
-                       SpiCur->NextEntryOffset = curSize+inLen; // relative offset to the beginnnig of the next structure
-                       SpiCur->NumberOfThreads = nThreads;
-                       SpiCur->CreateTime = pr->CreateTime;
-                       SpiCur->ImageName.Length = strlen(pr->ImageFileName) * sizeof(WCHAR);
-                       SpiCur->ImageName.MaximumLength = (USHORT)inLen;
-                       SpiCur->ImageName.Buffer = (void*)(pCur+curSize);
-  
-                       // copy name to the end of the struct
-                       if(pr != PsIdleProcess)
-                       {
-                               RtlInitAnsiString(&imgName, pr->ImageFileName);
-                               RtlAnsiStringToUnicodeString(&SpiCur->ImageName, &imgName, FALSE);
-                       }
-                       else
-                       {
-                               RtlInitUnicodeString(&SpiCur->ImageName, NULL);
-                       }
-  
-                       SpiCur->BasePriority = pr->Pcb.BasePriority;
-                       SpiCur->UniqueProcessId = pr->UniqueProcessId;
-                       SpiCur->InheritedFromUniqueProcessId = pr->InheritedFromUniqueProcessId;
-                       SpiCur->HandleCount = (pr->ObjectTable ? ObpGetHandleCountByHandleTable(pr->ObjectTable) : 0);
-                       SpiCur->PeakVirtualSize = pr->PeakVirtualSize;
-                       SpiCur->VirtualSize = pr->VirtualSize;
-                       SpiCur->PageFaultCount = pr->Vm.PageFaultCount;
-                       SpiCur->PeakWorkingSetSize = pr->Vm.PeakWorkingSetSize;
-                       SpiCur->WorkingSetSize = pr->Vm.WorkingSetSize;
-                       SpiCur->QuotaPeakPagedPoolUsage = pr->QuotaPeak[0];
-                       SpiCur->QuotaPagedPoolUsage = pr->QuotaUsage[0];
-                       SpiCur->QuotaPeakNonPagedPoolUsage = pr->QuotaPeak[1];
-                       SpiCur->QuotaNonPagedPoolUsage = pr->QuotaUsage[1];
-                       SpiCur->PagefileUsage = pr->QuotaUsage[2];
-                       SpiCur->PeakPagefileUsage = pr->QuotaPeak[2];
-                       SpiCur->PrivatePageCount = pr->CommitCharge;
-                       ThreadInfo = (PSYSTEM_THREAD_INFORMATION)(SpiCur + 1);
-  
-                       current_entry = pr->ThreadListHead.Flink;
-                       while (current_entry != &pr->ThreadListHead)
-                       {
-                               current = CONTAINING_RECORD(current_entry, ETHREAD,
-                                                           ThreadListEntry);
-  
-                               ThreadInfo->KernelTime.QuadPart = UInt32x32To64(current->Tcb.KernelTime, KeMaximumIncrement);
-                               ThreadInfo->UserTime.QuadPart = UInt32x32To64(current->Tcb.UserTime, KeMaximumIncrement);
-                               ThreadInfo->CreateTime.QuadPart = current->CreateTime.QuadPart;
-                               ThreadInfo->WaitTime = current->Tcb.WaitTime;
-                               ThreadInfo->StartAddress = (PVOID) current->StartAddress;
-                               ThreadInfo->ClientId = current->Cid;
-                               ThreadInfo->Priority = current->Tcb.Priority;
-                               ThreadInfo->BasePriority = current->Tcb.BasePriority;
-                               ThreadInfo->ContextSwitches = current->Tcb.ContextSwitches;
-                               ThreadInfo->ThreadState = current->Tcb.State;
-                               ThreadInfo->WaitReason = current->Tcb.WaitReason;
-  
-                               ThreadInfo++;
-                               current_entry = current_entry->Flink;
-                       }
-  
-                       /* Query total user/kernel times of a process */
-                       TotalKernel = KeQueryRuntimeProcess(&pr->Pcb, &TotalUser);
-                       SpiCur->UserTime.QuadPart = UInt32x32To64(TotalUser, KeMaximumIncrement);
-                       SpiCur->KernelTime.QuadPart = UInt32x32To64(TotalKernel, KeMaximumIncrement);
-  
-                       /* Handle idle process entry */
-                       if (pr == PsIdleProcess) pr = NULL;
-  
-                       pr = PsGetNextProcess(pr);
-                       nThreads = 0;
-                       if ((pr == syspr) || (pr == NULL))
-                       {
-                               SpiCur->NextEntryOffset = 0;
-                               break;
-                       }
-                       else
-                               pCur = pCur + curSize + inLen;
-               }  while ((pr != syspr) && (pr != NULL));
-  
-               if(pr != NULL)
-                       ObDereferenceObject(pr);
-               Status = STATUS_SUCCESS;
-       }
-       _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
-       {
-               if(pr != NULL)
-                       ObDereferenceObject(pr);
-               Status = _SEH2_GetExceptionCode();
-       }
-       _SEH2_END
-  
-       *ReqSize = ovlSize;
-       return Status;
+      PSYSTEM_PROCESS_INFORMATION SpiCurrent;
+      PSYSTEM_THREAD_INFORMATION ThreadInfo;
+      PEPROCESS Process = NULL, SystemProcess;
+      PETHREAD CurrentThread;
+      ANSI_STRING ImageName;
+      int CurrentSize, ImageNameLength = 32; // image name len in bytes
+      PLIST_ENTRY CurrentEntry;   
+      ULONG TotalSize = 0, ThreadsCount;
+      ULONG TotalUser, TotalKernel;
+      PUCHAR Current;
+      NTSTATUS Status = STATUS_SUCCESS;
+  
+      _SEH2_TRY
+      {
+          /* scan the process list */
+  
+          PSYSTEM_PROCESS_INFORMATION Spi
+              = (PSYSTEM_PROCESS_INFORMATION) Buffer;
+  
+          *ReqSize = sizeof(SYSTEM_PROCESS_INFORMATION);
+  
+          if (Size < sizeof(SYSTEM_PROCESS_INFORMATION))
+          {
+              _SEH2_YIELD(return STATUS_INFO_LENGTH_MISMATCH); // in case buffer size is too small
+          }
+          RtlZeroMemory(Spi, Size);
+  
+          SystemProcess = PsIdleProcess;
+          Process = SystemProcess;
+          Current = (PUCHAR) Spi;
+  
+          do
+          {
+              SpiCurrent = (PSYSTEM_PROCESS_INFORMATION) Current;
+  
+              ThreadsCount = 0;
+              CurrentEntry = Process->ThreadListHead.Flink;
+              while (CurrentEntry != &Process->ThreadListHead)
+              {
+                  ThreadsCount++;
+                  CurrentEntry = CurrentEntry->Flink;
+              }
+  
+              // size of the structure for every process
+              CurrentSize = sizeof(SYSTEM_PROCESS_INFORMATION) + sizeof(SYSTEM_THREAD_INFORMATION) * ThreadsCount;
+              TotalSize += CurrentSize + ImageNameLength;
+  
+              if (TotalSize > Size)
+              {
+                  *ReqSize = TotalSize;
+                  ObDereferenceObject(Process);
+  
+                  _SEH2_YIELD(return STATUS_INFO_LENGTH_MISMATCH); // in case buffer size is too small
+              }
+  
+              // fill system information
+              SpiCurrent->NextEntryOffset = CurrentSize + ImageNameLength; // relative offset to the beginnnig of the next structure
+              SpiCurrent->NumberOfThreads = ThreadsCount;
+              SpiCurrent->CreateTime = Process->CreateTime;
+              SpiCurrent->ImageName.Length = strlen(Process->ImageFileName) * sizeof(WCHAR);
+              SpiCurrent->ImageName.MaximumLength = (USHORT)ImageNameLength;
+              SpiCurrent->ImageName.Buffer = (void*)(Current + CurrentSize);
+  
+              // copy name to the end of the struct
+              if(Process != PsIdleProcess)
+              {
+                  RtlInitAnsiString(&ImageName, Process->ImageFileName);
+                  RtlAnsiStringToUnicodeString(&SpiCurrent->ImageName, &ImageName, FALSE);
+              }
+              else
+              {
+                  RtlInitUnicodeString(&SpiCurrent->ImageName, NULL);
+              }
+  
+              SpiCurrent->BasePriority = Process->Pcb.BasePriority;
+              SpiCurrent->UniqueProcessId = Process->UniqueProcessId;
+              SpiCurrent->InheritedFromUniqueProcessId = Process->InheritedFromUniqueProcessId;
  -            SpiCurrent->HandleCount = (Process->ObjectTable ? ObpGetHandleCountByHandleTable(Process->ObjectTable) : 0);
+ +            SpiCurrent->HandleCount = ObGetProcessHandleCount(Process);
+              SpiCurrent->PeakVirtualSize = Process->PeakVirtualSize;
+              SpiCurrent->VirtualSize = Process->VirtualSize;
+              SpiCurrent->PageFaultCount = Process->Vm.PageFaultCount;
+              SpiCurrent->PeakWorkingSetSize = Process->Vm.PeakWorkingSetSize;
+              SpiCurrent->WorkingSetSize = Process->Vm.WorkingSetSize;
+              SpiCurrent->QuotaPeakPagedPoolUsage = Process->QuotaPeak[0];
+              SpiCurrent->QuotaPagedPoolUsage = Process->QuotaUsage[0];
+              SpiCurrent->QuotaPeakNonPagedPoolUsage = Process->QuotaPeak[1];
+              SpiCurrent->QuotaNonPagedPoolUsage = Process->QuotaUsage[1];
+              SpiCurrent->PagefileUsage = Process->QuotaUsage[2];
+              SpiCurrent->PeakPagefileUsage = Process->QuotaPeak[2];
+              SpiCurrent->PrivatePageCount = Process->CommitCharge;
+              ThreadInfo = (PSYSTEM_THREAD_INFORMATION)(SpiCurrent + 1);
+  
+              CurrentEntry = Process->ThreadListHead.Flink;
+              while (CurrentEntry != &Process->ThreadListHead)
+              {
+                  CurrentThread = CONTAINING_RECORD(CurrentEntry, ETHREAD,
+                                              ThreadListEntry);
+  
+                  ThreadInfo->KernelTime.QuadPart = UInt32x32To64(CurrentThread->Tcb.KernelTime, KeMaximumIncrement);
+                  ThreadInfo->UserTime.QuadPart = UInt32x32To64(CurrentThread->Tcb.UserTime, KeMaximumIncrement);
+                  ThreadInfo->CreateTime.QuadPart = CurrentThread->CreateTime.QuadPart;
+                  ThreadInfo->WaitTime = CurrentThread->Tcb.WaitTime;
+                  ThreadInfo->StartAddress = (PVOID) CurrentThread->StartAddress;
+                  ThreadInfo->ClientId = CurrentThread->Cid;
+                  ThreadInfo->Priority = CurrentThread->Tcb.Priority;
+                  ThreadInfo->BasePriority = CurrentThread->Tcb.BasePriority;
+                  ThreadInfo->ContextSwitches = CurrentThread->Tcb.ContextSwitches;
+                  ThreadInfo->ThreadState = CurrentThread->Tcb.State;
+                  ThreadInfo->WaitReason = CurrentThread->Tcb.WaitReason;
+  
+                  ThreadInfo++;
+                  CurrentEntry = CurrentEntry->Flink;
+              }
+  
+              /* Query total user/kernel times of a process */
+              TotalKernel = KeQueryRuntimeProcess(&Process->Pcb, &TotalUser);
+              SpiCurrent->UserTime.QuadPart = UInt32x32To64(TotalUser, KeMaximumIncrement);
+              SpiCurrent->KernelTime.QuadPart = UInt32x32To64(TotalKernel, KeMaximumIncrement);
+  
+              /* Handle idle process entry */
+              if (Process == PsIdleProcess) Process = NULL;
+  
+              Process = PsGetNextProcess(Process);
+              ThreadsCount = 0;
+              if ((Process == SystemProcess) || (Process == NULL))
+              {
+                  SpiCurrent->NextEntryOffset = 0;
+                  break;
+              }
+              else
+                  Current += CurrentSize + ImageNameLength;
+          }  while ((Process != SystemProcess) && (Process != NULL));
+  
+          if(Process != NULL)
+              ObDereferenceObject(Process);
+          Status = STATUS_SUCCESS;
+      }
+      _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
+      {
+          if(Process != NULL)
+              ObDereferenceObject(Process);
+          Status = _SEH2_GetExceptionCode();
+      }
+      _SEH2_END
+  
+      *ReqSize = TotalSize;
+      return Status;
   }
   
   /* Class 6 - Call Count Information */
@@@@ -1001,87 -1000,84 -1000,84 +1001,84 @@@@ QSI_DEF(SystemNonPagedPoolInformation
   /* Class 16 - Handle Information */
   QSI_DEF(SystemHandleInformation)
   {
-       PEPROCESS pr, syspr;
-       ULONG curSize, i = 0;
-       ULONG hCount = 0;
+      PEPROCESS pr, syspr;
+      ULONG curSize, i = 0;
+      ULONG hCount = 0;
   
-          PSYSTEM_HANDLE_INFORMATION Shi =
-               (PSYSTEM_HANDLE_INFORMATION) Buffer;
+      PSYSTEM_HANDLE_INFORMATION Shi =
+          (PSYSTEM_HANDLE_INFORMATION) Buffer;
   
-          DPRINT("NtQuerySystemInformation - SystemHandleInformation\n");
+      DPRINT("NtQuerySystemInformation - SystemHandleInformation\n");
   
-       if (Size < sizeof (SYSTEM_HANDLE_INFORMATION))
-          {
-               * ReqSize = sizeof (SYSTEM_HANDLE_INFORMATION);
-               return (STATUS_INFO_LENGTH_MISMATCH);
-       }
+      if (Size < sizeof(SYSTEM_HANDLE_INFORMATION))
+      {
+          *ReqSize = sizeof(SYSTEM_HANDLE_INFORMATION);
+          return STATUS_INFO_LENGTH_MISMATCH;
+      }
   
-       DPRINT("SystemHandleInformation 1\n");
+      DPRINT("SystemHandleInformation 1\n");
   
-          /* First Calc Size from Count. */
-          syspr = PsGetNextProcess(NULL);
-       pr = syspr;
+      /* First Calc Size from Count. */
+      syspr = PsGetNextProcess(NULL);
+      pr = syspr;
   
-          do
-         {
-              hCount = hCount + (pr->ObjectTable ? ObpGetHandleCountByHandleTable(pr->ObjectTable) : 0);
-              pr = PsGetNextProcess(pr);
+      do
+      {
  -        hCount = hCount + (pr->ObjectTable ? ObpGetHandleCountByHandleTable(pr->ObjectTable) : 0);
+ +        hCount = hCount + ObGetProcessHandleCount(pr);
+          pr = PsGetNextProcess(pr);
   
-           if ((pr == syspr) || (pr == NULL))
-               break;
-          } while ((pr != syspr) && (pr != NULL));
+          if ((pr == syspr) || (pr == NULL)) break;
+      }
+      while ((pr != syspr) && (pr != NULL));
   
-       if(pr != NULL)
-       {
-            ObDereferenceObject(pr);
-       }
+      if(pr != NULL)
+      {
+          ObDereferenceObject(pr);
+      }
   
-       DPRINT("SystemHandleInformation 2\n");
+      DPRINT("SystemHandleInformation 2\n");
   
-          curSize = sizeof(SYSTEM_HANDLE_INFORMATION)+
-                    (  (sizeof(SYSTEM_HANDLE_TABLE_ENTRY_INFO) * hCount) -
-                       (sizeof(SYSTEM_HANDLE_TABLE_ENTRY_INFO) ));
+      curSize = sizeof(SYSTEM_HANDLE_INFORMATION) +
+                       ((sizeof(SYSTEM_HANDLE_TABLE_ENTRY_INFO) * hCount) -
+                       (sizeof(SYSTEM_HANDLE_TABLE_ENTRY_INFO)));
   
-          Shi->NumberOfHandles = hCount;
+      Shi->NumberOfHandles = hCount;
   
-          if (curSize > Size)
-            {
-              *ReqSize = curSize;
-               return (STATUS_INFO_LENGTH_MISMATCH);
-            }
+      if (curSize > Size)
+      {
+          *ReqSize = curSize;
+          return (STATUS_INFO_LENGTH_MISMATCH);
+      }
   
-       DPRINT("SystemHandleInformation 3\n");
+      DPRINT("SystemHandleInformation 3\n");
   
-          /* Now get Handles from all processs. */
-          syspr = PsGetNextProcess(NULL);
-       pr = syspr;
+      /* Now get Handles from all processs. */
+      syspr = PsGetNextProcess(NULL);
+      pr = syspr;
   
-        do
-         {
-              int Count = 0, HandleCount;
+      do
+      {
+          int Count = 0, HandleCount;
   
-              HandleCount = (pr->ObjectTable ? ObpGetHandleCountByHandleTable(pr->ObjectTable) : 0);
  -        HandleCount = (pr->ObjectTable ? ObpGetHandleCountByHandleTable(pr->ObjectTable) : 0);
+ +        HandleCount = ObGetProcessHandleCount(pr);
   
-              for (Count = 0; HandleCount > 0 ; HandleCount--)
-                 {
-                   Shi->Handles[i].UniqueProcessId = (USHORT)(ULONG_PTR)pr->UniqueProcessId;
-                   Count++;
-                   i++;
-                 }
+          for (Count = 0; HandleCount > 0 ; HandleCount--)
+          {
 --            Shi->Handles[i].UniqueProcessId = (USHORT)(ULONG)pr->UniqueProcessId;
+++            Shi->Handles[i].UniqueProcessId = (USHORT)(ULONG_PTR)pr->UniqueProcessId;
+              Count++;
+              i++;
+          }
   
-           pr = PsGetNextProcess(pr);
+          pr = PsGetNextProcess(pr);
   
-           if ((pr == syspr) || (pr == NULL))
-               break;
-          } while ((pr != syspr) && (pr != NULL));
+          if ((pr == syspr) || (pr == NULL)) break;
+      }
+      while ((pr != syspr) && (pr != NULL));
   
-       if(pr != NULL)
-       {
-            ObDereferenceObject(pr);
-       }
+      if(pr != NULL) ObDereferenceObject(pr);
   
-       DPRINT("SystemHandleInformation 4\n");
-       return (STATUS_SUCCESS);
+      DPRINT("SystemHandleInformation 4\n");
+      return STATUS_SUCCESS;
   
   }
   /*
@@@@ -1191,41 -1187,37 -1187,37 +1188,41 @@@@ QSI_DEF(SystemPoolTagInformation
   /* Class 23 - Interrupt Information for all processors */
   QSI_DEF(SystemInterruptInformation)
   {
-    PKPRCB Prcb;
-    PKPCR Pcr;
-    LONG i;
-    ULONG ti;
-    PSYSTEM_INTERRUPT_INFORMATION sii = (PSYSTEM_INTERRUPT_INFORMATION)Buffer;
+      PKPRCB Prcb;
+      PKPCR Pcr;
+      LONG i;
+      ULONG ti;
+      PSYSTEM_INTERRUPT_INFORMATION sii = (PSYSTEM_INTERRUPT_INFORMATION)Buffer;
   
-    if(Size < KeNumberProcessors * sizeof(SYSTEM_INTERRUPT_INFORMATION))
-    {
-      return (STATUS_INFO_LENGTH_MISMATCH);
-    }
+      if(Size < KeNumberProcessors * sizeof(SYSTEM_INTERRUPT_INFORMATION))
+      {
+          return STATUS_INFO_LENGTH_MISMATCH;
+      }
   
-    ti = KeQueryTimeIncrement();
+      ti = KeQueryTimeIncrement();
   
-    for (i = 0; i < KeNumberProcessors; i++)
-    {
-      Prcb = KiProcessorBlock[i];
+      for (i = 0; i < KeNumberProcessors; i++)
+      {
+          Prcb = KiProcessorBlock[i];
 ++#ifdef _M_AMD64
-      Pcr = CONTAINING_RECORD(Prcb, KPCR, CurrentPrcb);
+++        Pcr = CONTAINING_RECORD(Prcb, KPCR, CurrentPrcb);
 ++#else
-      Pcr = CONTAINING_RECORD(Prcb, KPCR, Prcb);
+          Pcr = CONTAINING_RECORD(Prcb, KPCR, Prcb);
 ++#endif
   #ifdef _M_ARM // This code should probably be done differently
-      sii->ContextSwitches = Pcr->ContextSwitches;
+          sii->ContextSwitches = Pcr->ContextSwitches;
   #else
-      sii->ContextSwitches = ((PKIPCR)Pcr)->ContextSwitches;
+          sii->ContextSwitches = ((PKIPCR)Pcr)->ContextSwitches;
   #endif
-      sii->DpcCount = Prcb->DpcData[0].DpcCount;
-      sii->DpcRate = Prcb->DpcRequestRate;
-      sii->TimeIncrement = ti;
-      sii->DpcBypassCount = 0;
-      sii->ApcBypassCount = 0;
-      sii++;
-    }
+          sii->DpcCount = Prcb->DpcData[0].DpcCount;
+          sii->DpcRate = Prcb->DpcRequestRate;
+          sii->TimeIncrement = ti;
+          sii->DpcBypassCount = 0;
+          sii->ApcBypassCount = 0;
+          sii++;
+      }
   
-    return STATUS_SUCCESS;
+      return STATUS_SUCCESS;
   }
   
   /* Class 24 - DPC Behaviour Information */
Simple merge
@@@@ -1160,9 -1160,10 -1160,10 +1162,10 @@@@ KdbpAttachToProcess
      }
   
      Entry = Process->ThreadListHead.Flink;
+     ObDereferenceObject(Process);
      if (Entry == &KdbCurrentProcess->ThreadListHead)
      {
 --      KdbpPrint("No threads in process 0x%08x, cannot attach to process!\n", (ULONG)ProcessId);
 ++      KdbpPrint("No threads in process 0x%p, cannot attach to process!\n", ProcessId);
         return FALSE;
      }
   
Simple merge
@@@@ -569,7 -569,7 -569,7 +569,7 @@@@ NtAllocateVirtualMemory(IN     HANDLE P
             Protect);
   
      /* Check for valid protection flags */
-     if ((Protect & PAGE_FLAGS_VALID_FROM_USER_MODE) != Protect)
  -   if (!(Protect & PAGE_FLAGS_VALID_FROM_USER_MODE))
+ +   if (!Protect || Protect & ~PAGE_FLAGS_VALID_FROM_USER_MODE)
      {
         DPRINT1("Invalid page protection\n");
         return STATUS_INVALID_PAGE_PROTECTION;
Simple merge
Simple merge
@@@@ -4541,13 -4538,7 -4538,10 +4541,7 @@@@ MmMapViewOfSection(IN PVOID SectionObje
   
      ASSERT(Process);
   
-     if (Protect != PAGE_READONLY &&
-         Protect != PAGE_READWRITE &&
-         Protect != PAGE_WRITECOPY &&
-         Protect != PAGE_EXECUTE &&
-         Protect != PAGE_EXECUTE_READ &&
-         Protect != PAGE_EXECUTE_READWRITE &&
-         Protect != PAGE_EXECUTE_WRITECOPY)
  -   if (!(Protect & (PAGE_READONLY | PAGE_READWRITE | 
  -                   PAGE_WRITECOPY | PAGE_EXECUTE |
  -                   PAGE_EXECUTE_READ | PAGE_EXECUTE_READWRITE |
  -                   PAGE_EXECUTE_WRITECOPY | PAGE_NOACCESS)))
+ +   if (!Protect || Protect & ~PAGE_FLAGS_VALID_FOR_SECTION)
      {
         return STATUS_INVALID_PAGE_PROTECTION;
      }
@@@@ -255,10 -268,7 -268,7 +268,7 @@@@ NtQueryInformationProcess(IN HANDLE Pro
               _SEH2_TRY
               {
                   /* Write back the Session ID */
 --                SessionInfo->SessionId = Process->Session;
 ++                SessionInfo->SessionId = PtrToUlong(Process->Session);
-  
-                  /* Set the return length */
-                  Length = sizeof(PROCESS_SESSION_INFORMATION);
               }
               _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
               {
@@@@ -1,7 -1,7 -1,7 +1,7 @@@@
   <?xml version="1.0"?>
   <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
   <module name="csrsrv" type="nativedll">
---     <importlibrary definition="csrsrv.def" />
+++     <importlibrary definition="csrsrv.spec" />
        <include base="csrsrv">.</include>
        <include base="csr">.</include>
        <include base="ReactOS">include/reactos/subsys</include>
@@@@ -532,11 -543,7 -532,7 +543,11 @@@@ MingwBackend::GenerateGlobalVariables (
        fprintf ( fMakefile, "PROJECT_RCFLAGS := $(PROJECT_CINCLUDES) $(PROJECT_CDEFINES)\n" );
        fprintf ( fMakefile, "PROJECT_WIDLFLAGS := $(PROJECT_CINCLUDES) $(PROJECT_CDEFINES)\n" );
        fprintf ( fMakefile, "PROJECT_LFLAGS := '$(shell ${TARGET_CC} -print-libgcc-file-name)' %s\n", GenerateProjectLFLAGS ().c_str () );
---     fprintf ( fMakefile, "PROJECT_LPPFLAGS := '$(shell ${TARGET_CPP} -print-file-name=libstdc++.a)' '$(shell ${TARGET_CPP} -print-file-name=libgcc.a)' '$(shell ${TARGET_CPP} -print-file-name=libmingw32.a)' '$(shell ${TARGET_CPP} -print-file-name=libmingwex.a)' '$(shell ${TARGET_CPP} -print-file-name=libcoldname.a)'\n" );
+++     fprintf ( fMakefile, "PROJECT_LPPFLAGS := '$(shell ${TARGET_CPP} -print-file-name=libstdc++.a)' '$(shell ${TARGET_CPP} -print-file-name=libgcc.a)' '$(shell ${TARGET_CPP} -print-file-name=libmingw32.a)' '$(shell ${TARGET_CPP} -print-file-name=libmingwex.a)'\n" );
 ++     /* hack to get libgcc_eh.a, should check mingw version or something */
 ++     fprintf ( fMakefile, "ifeq ($(ARCH),amd64)\n" );
 ++     fprintf ( fMakefile, "PROJECT_LPPFLAGS += '$(shell ${TARGET_CPP} -print-file-name=libgcc_eh.a)'\n" );
 ++     fprintf ( fMakefile, "endif\n" );
        fprintf ( fMakefile, "PROJECT_GCCOPTIONS += -Wall\n" );
        fprintf ( fMakefile, "ifneq ($(OARCH),)\n" );
        fprintf ( fMakefile, "PROJECT_GCCOPTIONS += -march=$(OARCH)\n" );
@@@@ -1014,9 -1049,9 -1049,9 +1055,9 @@@@ MingwModuleHandler::GetPrecompiledHeade
                                  module.pch->file->name + ".gch" );
   }
   
-  Rule arRule1 ( "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext).a: $($(module_name)_OBJS) $(dependencies) | $(INTERMEDIATE)$(SEP)$(source_dir)\n",
-                 "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext).a",
-                 "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)", NULL );
  -Rule arRule1 ( "$(intermediate_path_noext).a: $($(module_name)_OBJS) $(dependencies) | $(intermediate_dir)\n",
+ +Rule arRule1 ( "$(intermediate_path_noext).a: $($(module_name)_OBJS)  $(dependencies) | $(intermediate_dir)\n",
+                 "$(intermediate_path_noext).a",
+                 "$(intermediate_dir)$(SEP)", NULL );
   Rule arRule2 ( "\t$(ECHO_AR)\n"
                 "\t${ar} -rc $@ $($(module_name)_OBJS)\n",
                 NULL );
@@@@ -1024,136 -1059,214 -1059,143 +1065,214 @@@@ Rule arHostRule2 ( "\t$(ECHO_HOSTAR)\n
                      "\t${host_ar} -rc $@ $($(module_name)_OBJS)\n",
                      NULL );
   Rule gasRule ( "$(source): ${$(module_name)_precondition}\n"
-                 "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).o: $(source)$(dependencies) | $(INTERMEDIATE)$(SEP)$(source_dir)\n"
  -               "$(intermediate_path_unique).o: $(source)$(dependencies) | $(intermediate_dir)\n"
+ +               "ifeq ($(ROS_BUILDDEPS),full)\n"
+ +               "$(intermediate_path_unique).o.d: $(source) | $(intermediate_dir)\n"
+ +               "\t$(ECHO_DEPENDS)\n"
+ +               "\t${gcc} -x assembler-with-cpp -MF $@ -D__ASM__ $($(module_name)_CFLAGS) -M -MP -MT $@ $<\n"
+ +               "-include $(intermediate_path_unique).o.d\n"
+ +               "endif\n"
+ +               "$(intermediate_path_unique).o: $(source)$(if $(subst _full,,_$(ROS_BUILDDEPS)),, $(intermediate_path_unique).o.d) $(dependencies) | $(intermediate_dir)\n"
                  "\t$(ECHO_GAS)\n"
                  "\t${gcc} -x assembler-with-cpp -o $@ -D__ASM__ $($(module_name)_CFLAGS) -c $<\n",
-                 "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).o",
-                 "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)", NULL );
+                 "$(intermediate_path_unique).o",
+ +               "$(intermediate_path_unique).o.d",
+                 "$(intermediate_dir)$(SEP)", NULL );
   Rule bootRule ( "$(source): ${$(module_name)_precondition}\n"
- -                "$(module_output): $(source)$(dependencies) | $(OUTPUT)$(SEP)$(source_dir)\n"
+ +                "$(module_output): $(source) $(dependencies) | $(OUTPUT)$(SEP)$(source_dir)\n"
                   "\t$(ECHO_NASM)\n"
                   "\t$(Q)${nasm} -f win32 $< -o $@ $($(module_name)_NASMFLAGS)\n",
                   "$(OUTPUT)$(SEP)$(source_dir)$(SEP)", NULL );
   Rule nasmRule ( "$(source): ${$(module_name)_precondition}\n"
-                  "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).o: $(source)$(dependencies) | $(INTERMEDIATE)$(SEP)$(source_dir)\n"
  -                "$(intermediate_path_unique).o: $(source)$(dependencies) | $(intermediate_dir)\n"
+ +                "$(intermediate_path_unique).o: $(source) $(dependencies) | $(intermediate_dir)\n"
                   "\t$(ECHO_NASM)\n"
                   "\t$(Q)${nasm} -f win32 $< -o $@ $($(module_name)_NASMFLAGS)\n",
-                  "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).o",
-                  "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)", NULL );
+                  "$(intermediate_path_unique).o",
+                  "$(intermediate_dir)$(SEP)", NULL );
   Rule windresRule ( "$(source): ${$(module_name)_precondition}\n"
-                     "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).coff: $(source)$(dependencies) $(WRC_TARGET) | $(INTERMEDIATE)$(SEP)$(source_dir) $(TEMPORARY)\n"
  -                   "$(intermediate_path_unique).coff: $(source)$(dependencies) $(WRC_TARGET) | $(intermediate_dir) $(TEMPORARY)\n"
+ +                                "ifeq ($(ROS_BUILDDEPS),full)\n"
+ +                   "$(intermediate_path_unique).coff.d: $(source) | $(intermediate_dir) $(TEMPORARY)\n"
+ +                   "\t$(ECHO_DEPENDS)\n"
+ +                   "\t${gcc} -xc -M -MP -MT $@ -DRC_INVOKED ${$(module_name)_RCFLAGS} $(source) -MF $@\n"
+ +                   "-include $(intermediate_path_unique).coff.d\n"
+ +                   "endif\n"
+ +                   "$(intermediate_path_unique).coff: $(source)$(if $(subst _full,,_$(ROS_BUILDDEPS)),, $(intermediate_path_unique).coff.d) $(dependencies) $(WRC_TARGET) | $(intermediate_dir) $(TEMPORARY)\n"
                      "\t$(ECHO_WRC)\n"
                      "\t${gcc} -xc -E -DRC_INVOKED ${$(module_name)_RCFLAGS} $(source) > $(TEMPORARY)$(SEP)$(module_name).$(source_name_noext).rci.tmp\n"
                      "\t$(Q)$(WRC_TARGET) ${$(module_name)_RCFLAGS} $(TEMPORARY)$(SEP)$(module_name).$(source_name_noext).rci.tmp $(TEMPORARY)$(SEP)$(module_name).$(source_name_noext).res.tmp\n"
                      "\t-@${rm} $(TEMPORARY)$(SEP)$(module_name).$(source_name_noext).rci.tmp 2>$(NUL)\n"
                      "\t${windres} $(TEMPORARY)$(SEP)$(module_name).$(source_name_noext).res.tmp -o $@\n"
                      "\t-@${rm} $(TEMPORARY)$(SEP)$(module_name).$(source_name_noext).res.tmp 2>$(NUL)\n",
-                     "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).coff",
-                     "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)", NULL );
-  Rule wmcRule ( "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext).rc $(INTERMEDIATE)$(SEP)include$(SEP)reactos$(SEP)$(source_name_noext).h: $(WMC_TARGET) $(source) | $(INTERMEDIATE)$(SEP)$(source_dir)\n"
+                     "$(intermediate_path_unique).coff",
+ +                   "$(intermediate_path_unique).coff.d",
+                     "$(intermediate_dir)$(SEP)", NULL );
+  Rule wmcRule ( "$(intermediate_path_noext).rc $(INTERMEDIATE)$(SEP)include$(SEP)reactos$(SEP)$(source_name_noext).h: $(WMC_TARGET) $(source) | $(intermediate_dir)\n"
                  "\t$(ECHO_WMC)\n"
-                 "\t$(Q)$(WMC_TARGET) -i -H $(INTERMEDIATE)$(SEP)include$(SEP)reactos$(SEP)$(source_name_noext).h -o $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext).rc $(source)\n",
-                 "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext).rc",
+                 "\t$(Q)$(WMC_TARGET) -i -H $(INTERMEDIATE)$(SEP)include$(SEP)reactos$(SEP)$(source_name_noext).h -o $(intermediate_path_noext).rc $(source)\n",
+                 "$(intermediate_path_noext).rc",
                  "$(INTERMEDIATE)$(SEP)include$(SEP)reactos$(SEP)$(source_name_noext).h",
-                 "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)", NULL );
-  Rule winebuildPDefRule ( "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).spec: $(source)$(dependencies) | $(INTERMEDIATE)$(SEP)$(source_dir)\n"
+                 "$(intermediate_dir)$(SEP)", NULL );
  -Rule winebuildPDefRule ( "$(intermediate_path_unique).spec: $(source)$(dependencies) | $(intermediate_dir)\n"
+ +Rule winebuildPDefRule ( "ifeq ($(ROS_BUILDDEPS),full)\n"
+ +                         "$(intermediate_path_unique).spec.d: $(source) | $(intermediate_dir)\n"
+ +                         "\t$(ECHO_DEPENDS)\n"
+ +                         "\t${gcc} -xc -M -MP -MT $@ ${$(module_name)_RCFLAGS} $(source) -MF $@\n\n"
+ +                         "-include $(intermediate_path_unique).spec.d\n"
+ +                         "endif\n"
+ +                         "$(intermediate_path_unique).spec: $(source)$(if $(subst _full,,_$(ROS_BUILDDEPS)),, $(intermediate_path_unique).spec.d) $(dependencies) | $(intermediate_dir)\n"
                            "\t$(ECHO_CPP)\n"
-                           "\t${gcc} -xc -E ${$(module_name)_RCFLAGS} $(source) > $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).spec\n\n"
-                                                "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).auto.def: $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).spec $(WINEBUILD_TARGET) | $(INTERMEDIATE)$(SEP)$(source_dir)\n"
+                           "\t${gcc} -xc -E ${$(module_name)_RCFLAGS} $(source) > $(intermediate_path_unique).spec\n\n"
+                                                "$(intermediate_path_unique).auto.def: $(intermediate_path_unique).spec $(WINEBUILD_TARGET) | $(intermediate_dir)\n"
                            "\t$(ECHO_WINEBLD)\n"
-                           "\t$(Q)$(WINEBUILD_TARGET) $(WINEBUILD_FLAGS) -o $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).auto.def --def -E $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).spec --filename $(module_dllname)\n\n",
-                           "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).spec",
-                           "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).auto.def",
-                           "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)", NULL );
-  Rule winebuildPRule ( "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).stubs.c: $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).spec $(WINEBUILD_TARGET) | $(INTERMEDIATE)$(SEP)$(source_dir)\n"
+                           "\t$(Q)$(WINEBUILD_TARGET) $(WINEBUILD_FLAGS) -o $(intermediate_path_unique).auto.def --def -E $(intermediate_path_unique).spec --filename $(module_dllname)\n\n",
+                           "$(intermediate_path_unique).spec",
+ +                         "$(intermediate_path_unique).spec.d",
+                           "$(intermediate_path_unique).auto.def",
+                           "$(intermediate_dir)$(SEP)", NULL );
+  Rule winebuildPRule ( "$(intermediate_path_unique).stubs.c: $(intermediate_path_unique).spec $(WINEBUILD_TARGET) | $(intermediate_dir)\n"
                         "\t$(ECHO_WINEBLD)\n"
-                        "\t$(Q)$(WINEBUILD_TARGET) $(WINEBUILD_FLAGS) -o $@ --pedll $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).spec --filename $(module_dllname)\n\n"
-                        "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).stubs.o: $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).stubs.c | $(INTERMEDIATE)$(SEP)$(source_dir)\n"
+                        "\t$(Q)$(WINEBUILD_TARGET) $(WINEBUILD_FLAGS) -o $@ --pedll $(intermediate_path_unique).spec --filename $(module_dllname)\n\n"
  -                      "$(intermediate_path_unique).stubs.o: $(intermediate_path_unique).stubs.c | $(intermediate_dir)\n"
+ +                      "ifeq ($(ROS_BUILDDEPS),full)\n"
+ +                      "$(intermediate_path_unique).stubs.o.d: $(intermediate_path_unique).stubs.c | $(intermediate_dir)\n"
+ +                      "\t$(ECHO_DEPENDS)\n"
+ +                      "\t${gcc} -MF $@ $($(module_name)_CFLAGS)$(compiler_flags) -M -MP -MT $@ $<\n"
+ +                                       "-include $(intermediate_path_unique).stubs.o.d\n"
+ +                      "endif\n"
+ +                      "$(intermediate_path_unique).stubs.o: $(intermediate_path_unique).stubs.c$(if $(subst _full,,_$(ROS_BUILDDEPS)),, $(intermediate_path_unique).stubs.o.d) | $(intermediate_dir)\n"
                         "\t$(ECHO_CC)\n"
                         "\t${gcc} -o $@ $($(module_name)_CFLAGS)$(compiler_flags) -c $<\n",
-                        "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).spec",
-                        "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).stubs.c",
-                        "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).stubs.o",
-                        "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)", NULL );
-  Rule winebuildDefRule ( "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).auto.def: $(source)$(dependencies) $(WINEBUILD_TARGET) | $(INTERMEDIATE)$(SEP)$(source_dir)\n"
+                        "$(intermediate_path_unique).spec",
+                        "$(intermediate_path_unique).stubs.c",
+                        "$(intermediate_path_unique).stubs.o",
+ +                      "$(intermediate_path_unique).stubs.o.d",
+                        "$(intermediate_dir)$(SEP)", NULL );
  -Rule winebuildDefRule ( "$(intermediate_path_unique).auto.def: $(source)$(dependencies) $(WINEBUILD_TARGET) | $(intermediate_dir)\n"
+ +Rule winebuildDefRule ( "$(intermediate_path_unique).auto.def: $(source) $(dependencies) $(WINEBUILD_TARGET) | $(intermediate_dir)\n"
                           "\t$(ECHO_WINEBLD)\n"
-                          "\t$(Q)$(WINEBUILD_TARGET) $(WINEBUILD_FLAGS) -o $(INTERMEDIATE)$(SEP)$(source_path)$(SEP)$(source_name_noext)_$(module_name).auto.def --def -E $(source) --filename $(module_dllname)\n\n",
-                          "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext).spec",
-                          "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).auto.def",
-                          "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)", NULL );
-  Rule winebuildRule ( "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).stubs.c: $(source_path)$(SEP)$(source_name_noext).spec $(WINEBUILD_TARGET)\n"
+                          "\t$(Q)$(WINEBUILD_TARGET) $(WINEBUILD_FLAGS) -o $(intermediate_path_unique).auto.def --def -E $(source) --filename $(module_dllname)\n\n",
+                          "$(intermediate_path_noext).spec",
+                          "$(intermediate_path_unique).auto.def",
+                          "$(intermediate_dir)$(SEP)", NULL );
+  Rule winebuildRule ( "$(intermediate_path_unique).stubs.c: $(source) $(WINEBUILD_TARGET)\n"
                        "\t$(ECHO_WINEBLD)\n"
-                       "\t$(Q)$(WINEBUILD_TARGET) $(WINEBUILD_FLAGS) -o $@ --pedll $(source_path)$(SEP)$(source_name_noext).spec --filename $(module_dllname)\n"
-                       "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).stubs.o: $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).stubs.c$(dependencies) | $(INTERMEDIATE)$(SEP)$(source_dir)\n"
+                       "\t$(Q)$(WINEBUILD_TARGET) $(WINEBUILD_FLAGS) -o $@ --pedll $(source) --filename $(module_dllname)\n"
  -                     "$(intermediate_path_unique).stubs.o: $(intermediate_path_unique).stubs.c$(dependencies) | $(intermediate_dir)\n"
+ +                     "ifeq ($(ROS_BUILDDEPS),full)\n"
+ +                     "$(intermediate_path_unique).stubs.o.d: $(intermediate_path_unique).stubs.c | $(intermediate_dir)\n"
+ +                     "\t$(ECHO_DEPENDS)\n"
+ +                     "\t${gcc} -MF $@ $($(module_name)_CFLAGS)$(compiler_flags) -M -MP -MT $@ $<\n"
+ +                     "-include $(intermediate_path_unique).stubs.o.d\n"
+ +                     "endif\n"
+ +                     "$(intermediate_path_unique).stubs.o: $(intermediate_path_unique).stubs.c$(if $(subst _full,,_$(ROS_BUILDDEPS)),, $(intermediate_path_unique).stubs.o.d) $(dependencies) | $(intermediate_dir)\n"
                        "\t$(ECHO_CC)\n"
                        "\t${gcc} -o $@ $($(module_name)_CFLAGS)$(compiler_flags) -c $<\n",
-                       "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).stubs.c",
-                       "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).stubs.o",
-                       "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)", NULL );
+                       "$(intermediate_path_unique).stubs.c",
+                       "$(intermediate_path_unique).stubs.o",
+ +                     "$(intermediate_path_unique).stubs.o.d",
+                       "$(intermediate_dir)$(SEP)", NULL );
   Rule widlHeaderRule ( "$(source): ${$(module_name)_precondition}\n"
-                        "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext).h: $(source)$(dependencies) $(WIDL_TARGET) | $(INTERMEDIATE)$(SEP)$(source_dir)\n"
  -                      "$(intermediate_path_noext).h: $(source)$(dependencies) $(WIDL_TARGET) | $(intermediate_dir)\n"
+ +                                       "$(intermediate_path_noext).h: $(source) $(dependencies) $(WIDL_TARGET) | $(intermediate_dir)\n"
                         "\t$(ECHO_WIDL)\n"
-                        "\t$(Q)$(WIDL_TARGET) $($(module_name)_WIDLFLAGS) -h -H $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext).h $(source)\n",
-                        "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext).h",
-                        "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)", NULL );
+                        "\t$(Q)$(WIDL_TARGET) $($(module_name)_WIDLFLAGS) -h -H $(intermediate_path_noext).h $(source)\n",
+                        "$(intermediate_path_noext).h",
+                        "$(intermediate_dir)$(SEP)", NULL );
   Rule widlServerRule ( "$(source): ${$(module_name)_precondition}\n"
-                        "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_s.c $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_s.h: $(source)$(dependencies) $(WIDL_TARGET) | $(INTERMEDIATE)$(SEP)$(source_dir)\n"
  -                      "$(intermediate_path_noext)_s.c $(intermediate_path_noext)_s.h: $(source)$(dependencies) $(WIDL_TARGET) | $(intermediate_dir)\n"
+ +                                       "$(intermediate_path_noext)_s.c $(intermediate_path_noext)_s.h: $(source) $(dependencies) $(WIDL_TARGET) | $(intermediate_dir)\n"
                         "\t$(ECHO_WIDL)\n"
-                        "\t$(Q)$(WIDL_TARGET) $($(module_name)_WIDLFLAGS) -h -H $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_s.h -s -S $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_s.c $(source)\n"
-                        "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_s.o: $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_s.c $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_s.h$(dependencies) | $(INTERMEDIATE)$(SEP)$(source_dir)\n"
+                        "\t$(Q)$(WIDL_TARGET) $($(module_name)_WIDLFLAGS) -h -H $(intermediate_path_noext)_s.h -s -S $(intermediate_path_noext)_s.c $(source)\n"
  -                      "$(intermediate_path_noext)_s.o: $(intermediate_path_noext)_s.c $(intermediate_path_noext)_s.h$(dependencies) | $(intermediate_dir)\n"
+ +                      "ifeq ($(ROS_BUILDDEPS),full)\n"
+ +                      "$(intermediate_path_noext)_s.o.d: $(intermediate_path_noext)_s.c | $(intermediate_dir)\n"
+ +                      "\t$(ECHO_DEPENDS)\n"
+ +                      "\t${gcc} -MF $@ $($(module_name)_CFLAGS)$(compiler_flags) -fno-unit-at-a-time -M -MP -MT $@ $<\n"
+ +                      "-include $(intermediate_path_noext)_s.o.d\n"
+ +                      "endif\n"
+ +                      "$(intermediate_path_noext)_s.o: $(intermediate_path_noext)_s.c $(intermediate_path_noext)_s.h$(if $(subst _full,,_$(ROS_BUILDDEPS)),, $(intermediate_path_noext)_s.o.d) $(dependencies) | $(intermediate_dir)\n"
                         "\t$(ECHO_CC)\n"
                         "\t${gcc} -o $@ $($(module_name)_CFLAGS)$(compiler_flags) -fno-unit-at-a-time -c $<\n",
-                        "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_s.h",
-                        "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_s.c",
-                        "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_s.o",
-                        "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)", NULL );
+                        "$(intermediate_path_noext)_s.h",
+                        "$(intermediate_path_noext)_s.c",
+                        "$(intermediate_path_noext)_s.o",
+ +                      "$(intermediate_path_noext)_s.o.d",
+                        "$(intermediate_dir)$(SEP)", NULL );
   Rule widlClientRule ( "$(source): ${$(module_name)_precondition}\n"
-                        "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_c.c $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_c.h: $(source)$(dependencies) $(WIDL_TARGET) | $(INTERMEDIATE)$(SEP)$(source_dir)\n"
  -                      "$(intermediate_path_noext)_c.c $(intermediate_path_noext)_c.h: $(source)$(dependencies) $(WIDL_TARGET) | $(intermediate_dir)\n"
+ +                                       "$(intermediate_path_noext)_c.c $(intermediate_path_noext)_c.h: $(source) $(dependencies) $(WIDL_TARGET) | $(intermediate_dir)\n"
                         "\t$(ECHO_WIDL)\n"
-                        "\t$(Q)$(WIDL_TARGET) $($(module_name)_WIDLFLAGS) -h -H $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_c.h -c -C $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_c.c $(source)\n"
-                        "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_c.o: $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_c.c $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_c.h$(dependencies) | $(INTERMEDIATE)$(SEP)$(source_dir)\n"
+                        "\t$(Q)$(WIDL_TARGET) $($(module_name)_WIDLFLAGS) -h -H $(intermediate_path_noext)_c.h -c -C $(intermediate_path_noext)_c.c $(source)\n"
  -                      "$(intermediate_path_noext)_c.o: $(intermediate_path_noext)_c.c $(intermediate_path_noext)_c.h$(dependencies) | $(intermediate_dir)\n"
+ +                      "ifeq ($(ROS_BUILDDEPS),full)\n"
+ +                      "$(intermediate_path_noext)_c.o.d: $(intermediate_path_noext)_c.c | $(intermediate_dir)\n"
+ +                      "\t$(ECHO_DEPENDS)\n"
+ +                      "\t${gcc} -MF $@ $($(module_name)_CFLAGS)$(compiler_flags) -fno-unit-at-a-time -M -MP -MT $@ $<\n"
+ +                      "-include $(intermediate_path_noext)_c.o.d\n"
+ +                      "endif\n"
+ +                      "$(intermediate_path_noext)_c.o: $(intermediate_path_noext)_c.c $(intermediate_path_noext)_c.h$(if $(subst _full,,_$(ROS_BUILDDEPS)),, $(intermediate_path_noext)_c.o.d) $(dependencies) | $(intermediate_dir)\n"
                         "\t$(ECHO_CC)\n"
                         "\t${gcc} -o $@ $($(module_name)_CFLAGS)$(compiler_flags) -fno-unit-at-a-time -c $<\n",
-                        "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_c.h",
-                        "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_c.c",
-                        "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_c.o",
-                        "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)", NULL );
+                        "$(intermediate_path_noext)_c.h",
+                        "$(intermediate_path_noext)_c.c",
+                        "$(intermediate_path_noext)_c.o",
+ +                      "$(intermediate_path_noext)_c.o.d",
+                        "$(intermediate_dir)$(SEP)", NULL );
   Rule widlProxyRule ( "$(source): ${$(module_name)_precondition}\n"
-                       "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_p.c $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_p.h: $(source)$(dependencies) $(WIDL_TARGET) | $(INTERMEDIATE)$(SEP)$(source_dir)\n"
  -                     "$(intermediate_path_noext)_p.c $(intermediate_path_noext)_p.h: $(source)$(dependencies) $(WIDL_TARGET) | $(intermediate_dir)\n"
+ +                                      "$(intermediate_path_noext)_p.c $(intermediate_path_noext)_p.h: $(source) $(dependencies) $(WIDL_TARGET) | $(intermediate_dir)\n"
                        "\t$(ECHO_WIDL)\n"
-                       "\t$(Q)$(WIDL_TARGET) $($(module_name)_WIDLFLAGS) -h -H $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_p.h -p -P $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_p.c $(source)\n"
-                       "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_p.o: $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_p.c $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_p.h$(dependencies) | $(INTERMEDIATE)$(SEP)$(source_dir)\n"
-                        "\t$(ECHO_CC)\n"
-                        "\t${gcc} -o $@ $($(module_name)_CFLAGS)$(compiler_flags) -fno-unit-at-a-time -c $<\n",
-                       "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_p.h",
-                       "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_p.c",
-                       "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_p.o",
-                       "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)", NULL );
+                       "\t$(Q)$(WIDL_TARGET) $($(module_name)_WIDLFLAGS) -h -H $(intermediate_path_noext)_p.h -p -P $(intermediate_path_noext)_p.c $(source)\n"
  -                     "$(intermediate_path_noext)_p.o: $(intermediate_path_noext)_p.c $(intermediate_path_noext)_p.h$(dependencies) | $(intermediate_dir)\n"
  -                      "\t$(ECHO_CC)\n"
  -                      "\t${gcc} -o $@ $($(module_name)_CFLAGS)$(compiler_flags) -fno-unit-at-a-time -c $<\n",
+ +                     "ifeq ($(ROS_BUILDDEPS),full)\n"
+ +                     "$(intermediate_path_noext)_p.o.d: $(intermediate_path_noext)_p.c | $(intermediate_dir)\n"
+ +                     "\t$(ECHO_DEPENDS)\n"
+ +                     "\t${gcc} -MF $@ $($(module_name)_CFLAGS)$(compiler_flags) -fno-unit-at-a-time -M -MP -MT $@ $<\n"
+ +                     "-include $(intermediate_path_noext)_p.o.d\n"
+ +                     "endif\n"
+ +                     "$(intermediate_path_noext)_p.o: $(intermediate_path_noext)_p.c $(intermediate_path_noext)_p.h$(if $(subst _full,,_$(ROS_BUILDDEPS)),, $(intermediate_path_noext)_p.o.d) $(dependencies) | $(intermediate_dir)\n"
+ +                     "\t$(ECHO_CC)\n"
+ +                     "\t${gcc} -o $@ $($(module_name)_CFLAGS)$(compiler_flags) -fno-unit-at-a-time -c $<\n",
+                       "$(intermediate_path_noext)_p.h",
+                       "$(intermediate_path_noext)_p.c",
+                       "$(intermediate_path_noext)_p.o",
+ +                     "$(intermediate_path_noext)_p.o.d",
+                       "$(intermediate_dir)$(SEP)", NULL );
  -Rule widlDlldataRule ( "$(source): $(dependencies) ${$(module_name)_precondition} $(WIDL_TARGET) | $(intermediate_dir)\n"
  -                     "\t$(ECHO_WIDL)\n"
  -                     "\t$(Q)$(WIDL_TARGET) $($(module_name)_WIDLFLAGS) --dlldata-only --dlldata=$(source) $(bare_dependencies)\n"
  -                     "$(intermediate_path_noext).o: $(source) $(dependencies) | $(intermediate_dir)\n"
  -                      "\t$(ECHO_CC)\n"
  -                                       "\t${gcc} -o $@ $($(module_name)_CFLAGS)$(compiler_flags) -c $<\n",
  -                     "$(intermediate_path_noext).o", NULL );
+ +Rule widlDlldataRule ( "$(source):  $(dependencies) ${$(module_name)_precondition} $(WIDL_TARGET) | $(intermediate_dir)\n"
+ +                       "\t$(ECHO_WIDL)\n"
+ +                       "\t$(Q)$(WIDL_TARGET) $($(module_name)_WIDLFLAGS) --dlldata-only --dlldata=$(source) $(bare_dependencies)\n"
+ +                       "ifeq ($(ROS_BUILDDEPS),full)\n"
+ +                       "$(intermediate_path_noext).o.d: $(source) | $(intermediate_dir)\n"
+ +                       "\t$(ECHO_DEPENDS)\n"
+ +                       "\t${gcc} -MF $@ $($(module_name)_CFLAGS)$(compiler_flags) -M -MP -MT $@ $<\n"
+ +                       "-include $(intermediate_path_noext).o.d\n"
+ +                       "endif\n"
+ +                       "$(intermediate_path_noext).o: $(source)$(if $(subst _full,,_$(ROS_BUILDDEPS)),, $(intermediate_path_noext).o.d) $(dependencies) | $(intermediate_dir)\n"
+ +                       "\t$(ECHO_CC)\n"
+ +                       "\t${gcc} -o $@ $($(module_name)_CFLAGS)$(compiler_flags) -c $<\n",
+ +                       "$(intermediate_path_noext).o",
+ +                       "$(intermediate_path_noext).o.d", NULL );
   Rule widlTlbRule ( "$(source): ${$(module_name)_precondition}\n"
-                     "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(module_name).tlb: $(source)$(dependencies) $(WIDL_TARGET) | $(INTERMEDIATE)$(SEP)$(source_dir)\n"
  -                   "$(intermediate_dir)$(SEP)$(module_name).tlb: $(source)$(dependencies) $(WIDL_TARGET) | $(intermediate_dir)\n"
+ +                                "$(intermediate_dir)$(SEP)$(module_name).tlb: $(source) $(dependencies) $(WIDL_TARGET) | $(intermediate_dir)\n"
                      "\t$(ECHO_WIDL)\n"
-                     "\t$(Q)$(WIDL_TARGET) $($(module_name)_WIDLFLAGS) -t -T $(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext).tlb $(source)\n",
-                     "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)", NULL );
-  Rule gccRule ( "$(source): ${$(module_name)_precondition}\n"
-                 "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).o: $(source)$(dependencies) | $(INTERMEDIATE)$(SEP)$(source_dir)\n"
-                 "\t$(ECHO_CC)\n"
-                 "\t${gcc} -o $@ $($(module_name)_CFLAGS)$(compiler_flags) -c $<\n",
-                 "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).o", NULL );
+                     "\t$(Q)$(WIDL_TARGET) $($(module_name)_WIDLFLAGS) -t -T $(intermediate_path_noext).tlb $(source)\n",
+                     "$(intermediate_dir)$(SEP)", NULL );
  -Rule gccRule ( "$(source): ${$(module_name)_precondition}\n"
  -               "$(intermediate_path_unique).o: $(source)$(dependencies) | $(intermediate_dir)\n"
  -               "\t$(ECHO_CC)\n"
  -               "\t${gcc} -o $@ $($(module_name)_CFLAGS)$(compiler_flags) -c $<\n",
  -               "$(intermediate_path_unique).o", NULL );
+ +Rule gccRule ( "$(eval $(call RBUILD_GCC_RULE,$(module_name),$(source),$(dependencies),$(compiler_flags)))\n",
+ +               "$(intermediate_path_unique).o",
+ +               "$(intermediate_path_unique).o.d", NULL );
   Rule gccHostRule ( "$(source): ${$(module_name)_precondition}\n"
-                     "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).o: $(source)$(dependencies) | $(INTERMEDIATE)$(SEP)$(source_dir)\n"
-                     "\t$(ECHO_CC)\n"
  -                   "$(intermediate_path_unique).o: $(source)$(dependencies) | $(intermediate_dir)\n"
+ +                                "$(intermediate_path_unique).o: $(source) $(dependencies) | $(intermediate_dir)\n"
+                     "\t$(ECHO_HOSTCC)\n"
                      "\t${host_gcc} -o $@ $($(module_name)_CFLAGS)$(compiler_flags) -c $<\n",
-                     "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).o", NULL );
-  Rule gppRule ( "$(source): ${$(module_name)_precondition}\n"
-                 "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).o: $(source)$(dependencies) | $(INTERMEDIATE)$(SEP)$(source_dir)\n"
-                 "\t$(ECHO_CC)\n"
-                 "\t${gpp} -o $@ $($(module_name)_CXXFLAGS)$(compiler_flags) -c $<\n",
-                 "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).o", NULL );
+                     "$(intermediate_path_unique).o", NULL );
  -Rule gppRule ( "$(source): ${$(module_name)_precondition}\n"
  -               "$(intermediate_path_unique).o: $(source)$(dependencies) | $(intermediate_dir)\n"
  -               "\t$(ECHO_CC)\n"
  -               "\t${gpp} -o $@ $($(module_name)_CXXFLAGS)$(compiler_flags) -c $<\n",
  -               "$(intermediate_path_unique).o", NULL );
+ +Rule gppRule ( "$(eval $(call RBUILD_GPP_RULE,$(module_name),$(source),$(dependencies),$(compiler_flags)))\n",
+ +               "$(intermediate_path_unique).o",
+ +               "$(intermediate_path_unique).o.d", NULL );
   Rule gppHostRule ( "$(source): ${$(module_name)_precondition}\n"
-                     "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).o: $(source)$(dependencies) | $(INTERMEDIATE)$(SEP)$(source_dir)\n"
-                     "\t$(ECHO_CC)\n"
  -                   "$(intermediate_path_unique).o: $(source)$(dependencies) | $(intermediate_dir)\n"
+ +                                "$(intermediate_path_unique).o: $(source) $(dependencies) | $(intermediate_dir)\n"
+                     "\t$(ECHO_HOSTCC)\n"
                      "\t${host_gpp} -o $@ $($(module_name)_CXXFLAGS)$(compiler_flags) -c $<\n",
-                     "$(INTERMEDIATE)$(SEP)$(source_dir)$(SEP)$(source_name_noext)_$(module_name).o", NULL );
+                     "$(intermediate_path_unique).o", NULL );
+ +Rule pchRule ( "$(source): ${$(module_name)_precondition}\n"
+ +               "ifeq ($(ROS_BUILDDEPS),full)\n"
+ +                        "$(intermediate_dir)$(SEP).gch_$(module_name)$(SEP)$(source_name).gch.d: $(source) | $(intermediate_dir)\n"
+ +                        "\t$(ECHO_DEPENDS)\n"
+ +                        "\t$(pch_cc) -MF $@ $(pch_ccflags)$(compiler_flags) -x $(pch_language) -M -MP -MT $@ $<\n"
+ +                        "-include $(intermediate_dir)$(SEP).gch_$(module_name)$(SEP)$(source_name).gch.d\n"
+ +                        "endif\n"
+ +                        "$(intermediate_dir)$(SEP).gch_$(module_name)$(SEP)$(source_name).gch: $(source)$(if $(subst _full,,_$(ROS_BUILDDEPS)),, $(intermediate_dir)$(SEP).gch_$(module_name)$(SEP)$(source_name).gch.d) $(dependencies) | $(intermediate_dir)$(SEP).gch_$(module_name)\n"
+ +                        "\t$(ECHO_PCH)\n"
+ +                        "\t$(pch_cc) -o $@ $(pch_ccflags)$(compiler_flags) -x $(pch_language) -c $<\n",
+ +                        "$(intermediate_dir)$(SEP).gch_$(module_name)$(SEP)$(source_name).gch",
+ +                        "$(intermediate_dir)$(SEP).gch_$(module_name)$(SEP)$(source_name).gch.d", NULL );
   Rule emptyRule ( "", NULL );
   
   void
@@@@ -1653,22 -1788,17 -1705,22 +1794,17 @@@@ MingwModuleHandler::GenerateObjectFileT
                vector<FileLocation> rpcDependencies;
                GetRpcHeaderDependencies ( rpcDependencies );
                if ( rpcDependencies.size () > 0 )
- -                     dependencies += " " + v2s ( backend, rpcDependencies, 5 );
- -             fprintf ( fMakefile,
- -                       "%s: %s | %s\n",
- -                       backend->GetFullName ( *pchFilename ).c_str(),
- -                       dependencies.c_str(),
- -                       backend->GetFullPath ( *pchFilename ).c_str() );
- -             fprintf ( fMakefile, "\t$(ECHO_PCH)\n" );
- -             fprintf ( fMakefile,
-                         "\t%s -o %s %s %s %s %s\n\n",
-                         module.cplusplus ? cppc.c_str() : cc.c_str(),
  -                       "\t%s -o %s %s %s -gstabs+ -x %s %s\n\n",
  -                       cc.c_str(),
- -                       backend->GetFullName ( *pchFilename ).c_str(),
- -                       module.cplusplus ? cxxflagsMacro.c_str() : cflagsMacro.c_str(),
- -                               GenerateCompilerParametersFromVector ( module.non_if_data.compilerFlags, module.cplusplus ? CompilerTypeCPP : CompilerTypeCC ).c_str(),
-                                 DEBUG_FORMAT,
  -                               module.cplusplus ? "c++-header" : "c-header",
- -                       backend->GetFullName ( baseHeaderFile ).c_str() );
- -             delete pchFilename;
+ +                     dependencies = " " + v2s ( backend, rpcDependencies, 5 );
+ +
+ +             pchRule.Execute ( fMakefile,
+ +                                               backend,
+ +                                               module,
+ +                                               module.pch->file,
+ +                                               clean_files,
+ +                                               dependencies,
+ +                                               GenerateCompilerParametersFromVector ( module.non_if_data.compilerFlags, module.cplusplus ? CompilerTypeCPP : CompilerTypeCC ).c_str(),
+ +                                               vars );
+ +             fprintf ( fMakefile, "\n" );
        }
   
        GenerateObjectFileTargets ( module.non_if_data );
Simple merge
Simple merge
Simple merge