Sync with trunk (r47116), hopefully without breaking anything.
authorJérôme Gardou <jerome.gardou@reactos.org>
Fri, 7 May 2010 07:41:13 +0000 (07:41 +0000)
committerJérôme Gardou <jerome.gardou@reactos.org>
Fri, 7 May 2010 07:41:13 +0000 (07:41 +0000)
svn path=/branches/reactos-yarotows/; revision=47117

450 files changed:
1  2 
base/applications/cmdutils/reg/reg.rbuild
base/applications/downloader/downloader.rbuild
base/applications/fontview/display.c
base/applications/fontview/fontview.rbuild
base/applications/kbswitch/kbswitch.rbuild
base/applications/magnify/magnify.rbuild
base/applications/mplay32/mplay32.rbuild
base/applications/mscutils/eventvwr/eventvwr.rbuild
base/applications/mstsc/win32.c
base/applications/paint/main.c
base/applications/paint/mouse.c
base/applications/rapps/rapps.rbuild
base/applications/rapps/rapps/mirandaim.txt
base/applications/rapps/rapps/opera.txt
base/applications/rapps/rapps/scite.txt
base/applications/rapps/rapps/utorrent.txt
base/applications/regedit/framewnd.c
base/applications/winhlp32/hlpfile.c
base/applications/winver/winver.rbuild
base/services/rpcss/rpcss.rbuild
base/services/telnetd/telnetd.rbuild
base/services/tftpd/tftpd.rbuild
base/setup/setup/setup.c
base/setup/usetup/inffile.c
base/setup/usetup/inffile.h
base/setup/usetup/interface/usetup.c
base/setup/usetup/registry.c
base/setup/usetup/registry.h
base/setup/usetup/usetup.rbuild
base/shell/explorer/res/startmenu.ico
base/system/runonce/runonce.rbuild
base/system/userinit/userinit.c
boot/bootdata/bootcd/bootcd.rbuild
boot/bootdata/hivecls_arm.inf
boot/bootdata/hivecls_i386.inf
boot/bootdata/hivedef_arm.inf
boot/bootdata/hivedef_i386.inf
boot/bootdata/livecd/livecd.rbuild
boot/bootdata/packages/reactos.dff
boot/freeldr/freeldr/arch/i386/hardware.c
boot/freeldr/freeldr/arch/i386/machpc.c
boot/freeldr/freeldr/arch/i386/machxbox.c
boot/freeldr/freeldr/arch/i386/miscboot.c
boot/freeldr/freeldr/arch/i386/xboxhw.c
boot/freeldr/freeldr/arch/powerpc/mach.c
boot/freeldr/freeldr/disk/disk.c
boot/freeldr/freeldr/disk/partition.c
boot/freeldr/freeldr/freeldr_arch.rbuild
boot/freeldr/freeldr/include/disk.h
boot/freeldr/freeldr/include/machine.h
boot/freeldr/freeldr/linuxboot.c
boot/freeldr/freeldr/machine.c
boot/freeldr/freeldr/reactos/arcname.c
boot/freeldr/freeldr/reactos/reactos.c
dll/cpl/sysdm/lang/uk-UA.rc
dll/ntdll/ldr/utils.c
dll/win32/activeds/activeds.spec
dll/win32/activeds/activeds_main.c
dll/win32/actxprxy/actxprxy.rbuild
dll/win32/advapi32/misc/hwprofiles.c
dll/win32/advapi32/service/eventlog.c
dll/win32/atl/atl_ax.c
dll/win32/avifil32/rsrc.rc
dll/win32/cabinet/fdi.c
dll/win32/comdlg32/filedlg.c
dll/win32/comdlg32/fontdlg.c
dll/win32/comdlg32/printdlg.c
dll/win32/crypt32/decode.c
dll/win32/gdi32/include/gdi32p.h
dll/win32/gdi32/objects/dc.c
dll/win32/gdi32/objects/region.c
dll/win32/gdiplus/brush.c
dll/win32/gdiplus/font.c
dll/win32/gdiplus/gdiplus.spec
dll/win32/gdiplus/gdiplus_private.h
dll/win32/gdiplus/graphics.c
dll/win32/gdiplus/image.c
dll/win32/hhctrl.ocx/hhctrl.c
dll/win32/inetcomm/mimeintl.c
dll/win32/inetcomm/mimeole.c
dll/win32/inseng/inseng_main.c
dll/win32/jscript/jscript.h
dll/win32/jscript/regexp.c
dll/win32/jscript/string.c
dll/win32/kernel32/include/kernel32.h
dll/win32/kernel32/kernel32.pspec
dll/win32/kernel32/misc/dllmain.c
dll/win32/kernel32/misc/stubs.c
dll/win32/kernel32/process/cmdline.c
dll/win32/localspl/provider.c
dll/win32/lpk/dllmain.c
dll/win32/mciavi32/mciavi.c
dll/win32/mcicda/mcicda.c
dll/win32/mciqtz32/mciqtz.c
dll/win32/mciqtz32/mciqtz_private.h
dll/win32/mciseq/mcimidi.c
dll/win32/mciwave/mciwave.c
dll/win32/msacm32/msacm32.rbuild
dll/win32/mscoree/mscoree.rbuild
dll/win32/mscoree/mscoree_main.c
dll/win32/mscoree/mscoree_private.h
dll/win32/msctf/displayattributemgr.c
dll/win32/msctf/inputprocessor.c
dll/win32/msctf/msctf.c
dll/win32/msctf/msctf.rbuild
dll/win32/msctf/msctf_internal.h
dll/win32/msctf/regsvr.c
dll/win32/msgsm32.acm/msgsm32.c
dll/win32/mshtml/dispex.c
dll/win32/mshtml/editor.c
dll/win32/mshtml/htmlelem.c
dll/win32/mshtml/htmlwindow.c
dll/win32/mshtml/install.c
dll/win32/mshtml/mshtml_private.h
dll/win32/mshtml/navigate.c
dll/win32/mshtml/nsembed.c
dll/win32/mshtml/nsevents.c
dll/win32/mshtml/nsio.c
dll/win32/mshtml/olecmd.c
dll/win32/mshtml/view.c
dll/win32/msvfw32/mciwnd.c
dll/win32/msvidc32/msvideo1.c
dll/win32/msxml3/dispex.c
dll/win32/msxml3/element.c
dll/win32/msxml3/main.c
dll/win32/msxml3/node.c
dll/win32/netcfgx/netcfgx.c
dll/win32/netcfgx/tcpipconf_notify.c
dll/win32/netshell/lang/bg-BG.rc
dll/win32/netshell/lang/cs-CZ.rc
dll/win32/netshell/lang/da-DK.rc
dll/win32/netshell/lang/de-DE.rc
dll/win32/netshell/lang/el-GR.rc
dll/win32/netshell/lang/en-US.rc
dll/win32/netshell/lang/es-ES.rc
dll/win32/netshell/lang/fr-FR.rc
dll/win32/netshell/lang/hu-HU.rc
dll/win32/netshell/lang/id-ID.rc
dll/win32/netshell/lang/it-IT.rc
dll/win32/netshell/lang/ja-JP.rc
dll/win32/netshell/lang/nl-NL.rc
dll/win32/netshell/lang/no-NO.rc
dll/win32/netshell/lang/pl-PL.rc
dll/win32/netshell/lang/ro-RO.rc
dll/win32/netshell/lang/ru-RU.rc
dll/win32/netshell/lang/sv-SE.rc
dll/win32/netshell/lang/uk-UA.rc
dll/win32/netshell/lang/zh-CN.rc
dll/win32/netshell/lanstatusui.c
dll/win32/ole32/compobj.c
dll/win32/ole32/ftmarshal.c
dll/win32/ole32/ifs.c
dll/win32/ole32/moniker.c
dll/win32/ole32/ole32.rbuild
dll/win32/ole32/rpc.c
dll/win32/ole32/storage32.c
dll/win32/ole32/storage32.h
dll/win32/oleaut32/olepicture.c
dll/win32/oleaut32/regsvr.c
dll/win32/oleaut32/typelib.c
dll/win32/oleaut32/typelib2.c
dll/win32/oleaut32/vartype.c
dll/win32/rsaenh/rsaenh.c
dll/win32/rsaenh/sha2.c
dll/win32/schannel/lsamode.c
dll/win32/setupapi/interface.c
dll/win32/shell32/folder_options.c
dll/win32/shell32/folders.c
dll/win32/shell32/lang/en-US.rc
dll/win32/shell32/shelllink.c
dll/win32/shell32/shfldr_cpanel.c
dll/win32/shell32/shfldr_desktop.c
dll/win32/shell32/shlfileop.c
dll/win32/shell32/shresdef.h
dll/win32/shlwapi/ordinal.c
dll/win32/shlwapi/shlwapi.spec
dll/win32/shlwapi/url.c
dll/win32/sti/regsvr.c
dll/win32/sti/sti.c
dll/win32/sti/sti.rbuild
dll/win32/sti/sti.spec
dll/win32/sti/sti_main.c
dll/win32/sti/sti_private.h
dll/win32/sti/sti_wia.idl
dll/win32/syssetup/wizard.c
dll/win32/urlmon/bindprot.c
dll/win32/urlmon/regsvr.c
dll/win32/urlmon/urlmon_main.c
dll/win32/urlmon/urlmon_main.h
dll/win32/urlmon/urlmon_urlmon.idl
dll/win32/urlmon/usrmarshal.c
dll/win32/user32/controls/button.c
dll/win32/user32/windows/menu.c
dll/win32/userenv/environment.c
dll/win32/userenv/profile.c
dll/win32/userenv/setup.c
dll/win32/usp10/bidi.c
dll/win32/usp10/usp10.c
dll/win32/usp10/usp10.rbuild
dll/win32/usp10/usp10.spec
dll/win32/usp10/usp10_internal.h
dll/win32/version/resource.c
dll/win32/windowscodecs/bmpdecode.c
dll/win32/windowscodecs/clsfactory.c
dll/win32/windowscodecs/converter.c
dll/win32/windowscodecs/gifformat.c
dll/win32/windowscodecs/icoformat.c
dll/win32/windowscodecs/jpegformat.c
dll/win32/windowscodecs/palette.c
dll/win32/windowscodecs/pngformat.c
dll/win32/windowscodecs/regsvr.c
dll/win32/windowscodecs/stream.c
dll/win32/windowscodecs/tiffformat.c
dll/win32/windowscodecs/wincodecs_private.h
dll/win32/windowscodecs/windowscodecs.rbuild
dll/win32/wininet/internet.c
dll/win32/wininet/urlcache.c
dll/win32/wintrust/asn.c
dll/win32/ws2_32/misc/ns.c
drivers/bus/acpi/acpi.rbuild
drivers/bus/pci/fdo.c
drivers/bus/pci/pdo.c
drivers/network/afd/afd/lock.c
drivers/network/ndis/ndis/miniport.c
drivers/video/displays/vga/objects/pointer.c
drivers/video/videoprt/videoprt.c
include/ddk/ntddk.h
include/host/typedefs.h
include/host/wcsfuncs.h
include/ndk/i386/ketypes.h
include/psdk/gdiplusflat.h
include/psdk/ntsecpkg.h
include/psdk/objbase.h
include/psdk/psdk.rbuild
include/psdk/shdeprecated.idl
include/psdk/shlwapi.h
include/psdk/sti.h
include/psdk/strsafe.h
include/psdk/wia.h
include/psdk/wia_lh.idl
include/psdk/wia_xp.idl
include/psdk/winbase.h
include/psdk/winnt.h
lib/cmlib/cminit.c
lib/cmlib/cmlib.h
lib/cmlib/cmlib.rbuild
lib/drivers/ip/transport/tcp/tcp.c
lib/drivers/oskittcp/oskittcp/osenv.c
lib/host/wcsfuncs/wcsfuncs.c
lib/lib.rbuild
lib/newinflib/README.txt
lib/newinflib/builddep.h
lib/newinflib/infcommon.h
lib/newinflib/infcore.c
lib/newinflib/infget.c
lib/newinflib/infhost.h
lib/newinflib/infhostgen.c
lib/newinflib/infhostget.c
lib/newinflib/infhostput.c
lib/newinflib/infhostrtl.c
lib/newinflib/inflib.h
lib/newinflib/inflib.mak
lib/newinflib/inflib.rbuild
lib/newinflib/infpriv.h
lib/newinflib/infput.c
lib/newinflib/infros.h
lib/newinflib/infrosgen.c
lib/newinflib/infrosget.c
lib/newinflib/infrosput.c
lib/rtl/message.c
media/doc/README.WINE
media/drivers/etc/etc.rbuild
media/drivers/etc/hosts
media/inf/cpu.inf
media/inf/display.inf
media/inf/hdc.inf
media/inf/machine.inf
ntoskrnl/config/cmdata.c
ntoskrnl/include/internal/i386/intrin_i.h
ntoskrnl/include/internal/io.h
ntoskrnl/io/iomgr/deviface.c
ntoskrnl/io/pnpmgr/pnpmgr.c
ntoskrnl/io/pnpmgr/pnpnotify.c
ntoskrnl/io/pnpmgr/pnpreport.c
ntoskrnl/io/pnpmgr/pnpres.c
ntoskrnl/io/pnpmgr/pnproot.c
ntoskrnl/kd/kdinit.c
ntoskrnl/kdbg/kdb_cli.c
ntoskrnl/ke/i386/exp.c
ntoskrnl/ke/i386/irqobj.c
ntoskrnl/ke/i386/traphdlr.c
ntoskrnl/ke/i386/v86vdm.c
ntoskrnl/mm/ARM3/drvmgmt.c
ntoskrnl/mm/ARM3/largepag.c
ntoskrnl/mm/ARM3/mdlsup.c
ntoskrnl/mm/ARM3/miarm.h
ntoskrnl/mm/ARM3/mminit.c
ntoskrnl/mm/ARM3/pfnlist.c
ntoskrnl/mm/ARM3/pool.c
ntoskrnl/mm/freelist.c
ntoskrnl/mm/mminit.c
ntoskrnl/mm/pagefile.c
ntoskrnl/mm/section.c
ntoskrnl/mm/sysldr.c
ntoskrnl/ntoskrnl-generic.rbuild
ntoskrnl/rtl/libsupp.c
subsystems/ntvdm/ntvdm.c
subsystems/win32/csrss/win32csr/dllmain.c
subsystems/win32/csrss/win32csr/harderror.c
subsystems/win32/csrss/win32csr/w32csr.h
subsystems/win32/csrss/win32csr/win32csr.rbuild
subsystems/win32/win32k/dib/dib.c
subsystems/win32/win32k/dib/dib16bpp.c
subsystems/win32/win32k/dib/dib1bpp.c
subsystems/win32/win32k/dib/dib24bpp.c
subsystems/win32/win32k/dib/dib24bppc.c
subsystems/win32/win32k/dib/dib32bpp.c
subsystems/win32/win32k/dib/dib32bppc.c
subsystems/win32/win32k/dib/dib4bpp.c
subsystems/win32/win32k/dib/dib8bpp.c
subsystems/win32/win32k/dib/floodfill.c
subsystems/win32/win32k/dib/stretchblt.c
subsystems/win32/win32k/eng/alphablend.c
subsystems/win32/win32k/eng/bitblt.c
subsystems/win32/win32k/eng/clip.c
subsystems/win32/win32k/eng/copybits.c
subsystems/win32/win32k/eng/debug.c
subsystems/win32/win32k/eng/device.c
subsystems/win32/win32k/eng/driverobj.c
subsystems/win32/win32k/eng/engbrush.c
subsystems/win32/win32k/eng/engevent.c
subsystems/win32/win32k/eng/engmisc.c
subsystems/win32/win32k/eng/engwindow.c
subsystems/win32/win32k/eng/error.c
subsystems/win32/win32k/eng/float.c
subsystems/win32/win32k/eng/gradient.c
subsystems/win32/win32k/eng/ldevobj.c
subsystems/win32/win32k/eng/lineto.c
subsystems/win32/win32k/eng/mapping.c
subsystems/win32/win32k/eng/mem.c
subsystems/win32/win32k/eng/mouse.c
subsystems/win32/win32k/eng/paint.c
subsystems/win32/win32k/eng/pdevobj.c
subsystems/win32/win32k/eng/perfcnt.c
subsystems/win32/win32k/eng/semaphor.c
subsystems/win32/win32k/eng/sort.c
subsystems/win32/win32k/eng/stretchblt.c
subsystems/win32/win32k/eng/string.c
subsystems/win32/win32k/eng/surface.c
subsystems/win32/win32k/eng/transblt.c
subsystems/win32/win32k/eng/xlate.c
subsystems/win32/win32k/include/msgqueue.h
subsystems/win32/win32k/include/win32kp.h
subsystems/win32/win32k/main/dllmain.c
subsystems/win32/win32k/misc/copy.c
subsystems/win32/win32k/misc/err.c
subsystems/win32/win32k/misc/file.c
subsystems/win32/win32k/misc/math.c
subsystems/win32/win32k/misc/registry.c
subsystems/win32/win32k/misc/rtlstr.c
subsystems/win32/win32k/misc/usrheap.c
subsystems/win32/win32k/ntddraw/d3d.c
subsystems/win32/win32k/ntddraw/dd.c
subsystems/win32/win32k/ntddraw/ddraw.c
subsystems/win32/win32k/ntddraw/ddsurf.c
subsystems/win32/win32k/ntddraw/dvp.c
subsystems/win32/win32k/ntddraw/dxeng.c
subsystems/win32/win32k/ntddraw/eng.c
subsystems/win32/win32k/ntddraw/mocomp.c
subsystems/win32/win32k/ntuser/accelerator.c
subsystems/win32/win32k/ntuser/callback.c
subsystems/win32/win32k/ntuser/callproc.c
subsystems/win32/win32k/ntuser/caret.c
subsystems/win32/win32k/ntuser/class.c
subsystems/win32/win32k/ntuser/clipboard.c
subsystems/win32/win32k/ntuser/csr.c
subsystems/win32/win32k/ntuser/cursoricon.c
subsystems/win32/win32k/ntuser/defwnd.c
subsystems/win32/win32k/ntuser/desktop.c
subsystems/win32/win32k/ntuser/display.c
subsystems/win32/win32k/ntuser/event.c
subsystems/win32/win32k/ntuser/focus.c
subsystems/win32/win32k/ntuser/guicheck.c
subsystems/win32/win32k/ntuser/hook.c
subsystems/win32/win32k/ntuser/hotkey.c
subsystems/win32/win32k/ntuser/input.c
subsystems/win32/win32k/ntuser/kbdlayout.c
subsystems/win32/win32k/ntuser/keyboard.c
subsystems/win32/win32k/ntuser/menu.c
subsystems/win32/win32k/ntuser/message.c
subsystems/win32/win32k/ntuser/metric.c
subsystems/win32/win32k/ntuser/misc.c
subsystems/win32/win32k/ntuser/monitor.c
subsystems/win32/win32k/ntuser/msgqueue.c
subsystems/win32/win32k/ntuser/ntstubs.c
subsystems/win32/win32k/ntuser/ntuser.c
subsystems/win32/win32k/ntuser/object.c
subsystems/win32/win32k/ntuser/painting.c
subsystems/win32/win32k/ntuser/prop.c
subsystems/win32/win32k/ntuser/scrollbar.c
subsystems/win32/win32k/ntuser/session.c
subsystems/win32/win32k/ntuser/simplecall.c
subsystems/win32/win32k/ntuser/sysparams.c
subsystems/win32/win32k/ntuser/timer.c
subsystems/win32/win32k/ntuser/useratom.c
subsystems/win32/win32k/ntuser/vis.c
subsystems/win32/win32k/ntuser/windc.c
subsystems/win32/win32k/ntuser/window.c
subsystems/win32/win32k/ntuser/winpos.c
subsystems/win32/win32k/ntuser/winsta.c
subsystems/win32/win32k/objects/arc.c
subsystems/win32/win32k/objects/bezier.c
subsystems/win32/win32k/objects/bitblt.c
subsystems/win32/win32k/objects/bitmaps.c
subsystems/win32/win32k/objects/brush.c
subsystems/win32/win32k/objects/cliprgn.c
subsystems/win32/win32k/objects/coord.c
subsystems/win32/win32k/objects/dcattr.c
subsystems/win32/win32k/objects/dclife.c
subsystems/win32/win32k/objects/dcobjs.c
subsystems/win32/win32k/objects/dcstate.c
subsystems/win32/win32k/objects/dcutil.c
subsystems/win32/win32k/objects/device.c
subsystems/win32/win32k/objects/dibobj.c
subsystems/win32/win32k/objects/drawing.c
subsystems/win32/win32k/objects/fillshap.c
subsystems/win32/win32k/objects/font.c
subsystems/win32/win32k/objects/freetype.c
subsystems/win32/win32k/objects/gdibatch.c
subsystems/win32/win32k/objects/gdidbg.c
subsystems/win32/win32k/objects/gdiobj.c
subsystems/win32/win32k/objects/icm.c
subsystems/win32/win32k/objects/line.c
subsystems/win32/win32k/objects/metafile.c
subsystems/win32/win32k/objects/palette.c
subsystems/win32/win32k/objects/path.c
subsystems/win32/win32k/objects/pen.c
subsystems/win32/win32k/objects/polyfill.c
subsystems/win32/win32k/objects/print.c
subsystems/win32/win32k/objects/rect.c
subsystems/win32/win32k/objects/region.c
subsystems/win32/win32k/objects/stockobj.c
subsystems/win32/win32k/objects/text.c
subsystems/win32/win32k/objects/wingl.c
subsystems/win32/win32k/objects/xformobj.c
subsystems/win32/win32k/pch.h
subsystems/win32/win32k/stubs/stubs.c
subsystems/win32/win32k/stubs/umpdstubs.c
subsystems/win32/win32k/win32k.h
subsystems/win32/win32k/win32k.rbuild

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 492e388,b0c5059..b0c5059
Binary files differ
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 9650563,905f5ef..905f5ef
Binary files differ
Simple merge
index 676fb5e,0000000..1dbc24b
mode 100644,000000..100644
--- /dev/null
@@@ -1,818 -1,0 +1,819 @@@
 +; Main ReactOS package
 +
 +.Set DiskLabelTemplate="ReactOS"                ; Label of disk
 +.Set CabinetNameTemplate="reactos.cab"          ; reactos.cab
 +.Set InfFileName="reactos.inf"                  ; reactos.inf
 +
 +
 +;.Set Cabinet=on
 +;.Set Compress=on
 +
 +.InfBegin
 +[Version]
 +Signature = "$ReactOS$"
 +
 +[Directories]
 +1 = system32
 +2 = system32\drivers
 +3 = Fonts
 +4 =
 +5 = system32\drivers\etc
 +6 = inf
 +7 = bin
 +8 = media
 +
 +.InfEnd
 +
 +; Contents of disk
 +.InfBegin
 +[SourceFiles]
 +.InfEnd
 +
 +
 +; Base files
 +base\applications\cacls\cacls.exe                       1
 +base\applications\calc\calc.exe                         1
 +base\applications\charmap\charmap.exe                   1
 +base\applications\cmdutils\dbgprint\dbgprint.exe        1
 +base\applications\cmdutils\doskey\doskey.exe            1
 +base\applications\cmdutils\find\find.exe                1
 +base\applications\cmdutils\hostname\hostname.exe        1
 +base\applications\cmdutils\lodctr\lodctr.exe            1
 +base\applications\cmdutils\more\more.exe                1
 +base\applications\cmdutils\reg\reg.exe                  1
 +base\applications\cmdutils\xcopy\xcopy.exe              1
 +base\applications\control\control.exe                   1
 +base\applications\dxdiag\dxdiag.exe                     1
 +base\applications\fontview\fontview.exe                 1
 +base\applications\mscutils\devmgmt\devmgmt.exe          1
 +base\applications\mscutils\eventvwr\eventvwr.exe        1
 +base\applications\games\solitaire\sol.exe               1
 +base\applications\games\spider\spider.exe               1
 +base\applications\games\winemine\winemine.exe           1
 +base\applications\hh\hh.exe                             4
 +base\applications\kbswitch\kbswitch.exe                 1
 +base\applications\kbswitch\kbsdll\kbsdll.dll            1
 +base\applications\logoff\logoff.exe                     1
 +base\applications\magnify\magnify.exe                   1
 +base\applications\mplay32\mplay32.exe                   1
 +base\applications\msconfig\msconfig.exe                 1
 +base\applications\mstsc\mstsc.exe                       1
 +base\applications\network\arp\arp.exe                   1
 +base\applications\network\dwnl\dwnl.exe                 1
 +base\applications\network\route\route.exe               1
 +base\applications\network\finger\finger.exe             1
 +base\applications\network\ftp\ftp.exe                   1
 +base\applications\network\ipconfig\ipconfig.exe         1
 +base\applications\network\netstat\netstat.exe           1
 +base\applications\network\nslookup\nslookup.exe         1
 +base\applications\network\ping\ping.exe                 1
 +base\applications\network\telnet\telnet.exe             1
 +base\applications\network\tracert\tracert.exe           1
 +base\applications\network\whois\whois.exe               1
 +base\applications\notepad\notepad.exe                   1
 +base\applications\paint\paint.exe                       1
 +base\applications\rapps\rapps.exe                       1
 +base\applications\regedit\regedit.exe                   4
 +base\applications\regedit\clb\clb.dll                   1
 +base\applications\regedt32\regedt32.exe                 1
 +base\applications\sc\sc.exe                             1
 +base\applications\screensavers\3dtext\3dtext.scr        1
 +base\applications\screensavers\logon\logon.scr          1
 +base\applications\mscutils\servman\servman.exe          1
 +base\applications\shutdown\shutdown.exe                 1
 +base\applications\sndrec32\sndrec32.exe                 1
 +base\applications\sndvol32\sndvol32.exe                 1
 +base\applications\taskmgr\taskmgr.exe                   1
 +base\applications\winhlp32\winhlp32.exe                 4
 +base\applications\winver\winver.exe                     1
 +base\applications\wordpad\wordpad.exe                   1
 +base\applications\write\write.exe                       1
 +
 +base\services\audiosrv\audiosrv.exe                 1
 +base\services\dhcp\dhcp.exe                         1
 +base\services\eventlog\eventlog.exe                 1
 +base\services\rpcss\rpcss.exe                       1
 +base\services\spoolsv\spoolsv.exe                   1
 +base\services\tcpsvcs\tcpsvcs.exe                   1
 +base\services\telnetd\telnetd.exe                   1
 +base\services\tcpsvcs\quotes                        5
 +base\services\umpnpmgr\umpnpmgr.exe                 1
 +base\services\wlansvc\wlansvc.exe                   1
 +base\services\svchost\svchost.exe                   1
 +
 +base\setup\setup\setup.exe                          1
 +base\setup\vmwinst\vmwinst.exe                      1
 +
 +base\shell\cmd\cmd.exe                              1
 +base\shell\explorer\explorer.exe                    4
 +base\shell\explorer\explorer-cfg-template.xml       4
 +base\shell\explorer\notifyhook\notifyhook.dll       1
 +base\shell\explorer-new\explorer_new.exe            4   optional
 +
 +base\system\autochk\autochk.exe                     1
 +base\system\bootok\bootok.exe                       1
 +base\system\format\format.exe                       1
 +base\system\lsass\lsass.exe                         1
 +base\system\msiexec\msiexec.exe                     1
 +base\system\regsvr32\regsvr32.exe                   1
 +base\system\rundll32\rundll32.exe                   1
 +base\system\runonce\runonce.exe                     1
 +base\system\services\services.exe                   1
 +base\system\userinit\userinit.exe                   1
 +base\system\winlogon\winlogon.exe                   1
 +base\system\expand\expand.exe                       1
 +base\system\smss\smss.exe                           1
 +
 +
 +; Dynamic Link Libraries
 +dll\3rdparty\mesa32\mesa32.dll                      1
 +dll\3rdparty\libjpeg\libjpeg.dll                    1
 +dll\3rdparty\libxslt\libxslt.dll                    1
 +dll\3rdparty\dxtn\dxtn.dll                          1   optional
 +
 +dll\cpl\access\access.cpl                           1
 +dll\cpl\appwiz\appwiz.cpl                           1
 +dll\cpl\console\console.dll                         1
 +dll\cpl\desk\desk.cpl                               1
 +dll\cpl\hdwwiz\hdwwiz.cpl                           1
 +dll\cpl\input\input.dll                             1
 +dll\cpl\intl\intl.cpl                               1
 +dll\cpl\joy\joy.cpl                                 1
 +;dll\cpl\liccpa\liccpa.cpl                          1
 +dll\cpl\main\main.cpl                               1
 +dll\cpl\mmsys\mmsys.cpl                             1
 +dll\cpl\ncpa\ncpa.cpl                               1
 +;dll\cpl\odbccp32\odbccp32.cpl                      1
 +dll\cpl\powercfg\powercfg.cpl                       1
 +dll\cpl\sysdm\sysdm.cpl                             1
 +;dll\cpl\telephon\telephon.cpl                      1
 +dll\cpl\timedate\timedate.cpl                       1
 +;dll\cpl\usrmgr\usrmgr.cpl                          1
 +
 +dll\directx\amstream\amstream.dll                   1
 +dll\directx\bdaplgin\bdaplgin.ax                    1
 +dll\directx\dinput\dinput.dll                       1
 +dll\directx\dinput8\dinput8.dll                     1
 +dll\directx\dmusic\dmusic.dll                       1
 +dll\directx\dplay\dplay.dll                         1
 +dll\directx\dplayx\dplayx.dll                       1
 +dll\directx\dsound\dsound.dll                       1
 +dll\directx\dxdiagn\dxdiagn.dll                     1
 +dll\directx\wine\ddraw\ddraw.dll                    1
 +dll\directx\d3d8thk\d3d8thk.dll                     1
 +dll\directx\devenum\devenum.dll                     1
 +dll\directx\ksproxy\ksproxy.ax                      1
 +dll\directx\ksuser\ksuser.dll                       1
 +dll\directx\msdmo\msdmo.dll                         1
 +dll\directx\msdvbnp\msdvbnp.ax                      1
 +dll\directx\msvidctl\msvidctl.dll                   1
 +dll\directx\quartz\quartz.dll                       1
 +dll\directx\qedit\qedit.dll                         1
 +dll\directx\wine\d3d8\d3d8.dll                      1
 +dll\directx\wine\wined3d\wined3d.dll                1
 +dll\directx\wine\d3d9\d3d9.dll                      1
 +
 +dll\keyboard\kbda1\kbda1.dll                        1
 +dll\keyboard\kbda2\kbda2.dll                        1
 +dll\keyboard\kbda3\kbda3.dll                        1
 +dll\keyboard\kbdal\kbdal.dll                        1
 +dll\keyboard\kbdarme\kbdarme.dll                    1
 +dll\keyboard\kbdarmw\kbdarmw.dll                    1
 +dll\keyboard\kbdaze\kbdaze.dll                      1
 +dll\keyboard\kbdazel\kbdazel.dll                    1
 +dll\keyboard\kbdbgm\kbdbgm.dll                      1
 +dll\keyboard\kbdbgt\kbdbgt.dll                      1
 +dll\keyboard\kbdblr\kbdblr.dll                      1
 +dll\keyboard\kbdbr\kbdbr.dll                        1
 +dll\keyboard\kbdbga\kbdbga.dll                      1
 +dll\keyboard\kbdbe\kbdbe.dll                        1
 +dll\keyboard\kbdbur\kbdbur.dll                      1
 +dll\keyboard\kbdcan\kbdcan.dll                      1
 +dll\keyboard\kbdcr\kbdcr.dll                        1
 +dll\keyboard\kbdcz\kbdcz.dll                        1
 +dll\keyboard\kbdcz1\kbdcz1.dll                      1
 +dll\keyboard\kbdda\kbdda.dll                        1
 +dll\keyboard\kbddv\kbddv.dll                        1
 +dll\keyboard\kbdes\kbdes.dll                        1
 +dll\keyboard\kbdest\kbdest.dll                      1
 +dll\keyboard\kbdfc\kbdfc.dll                        1
 +dll\keyboard\kbdfi\kbdfi.dll                        1
 +dll\keyboard\kbdfr\kbdfr.dll                        1
 +dll\keyboard\kbdgeo\kbdgeo.dll                      1
 +dll\keyboard\kbdgerg\kbdgerg.dll                    1
 +dll\keyboard\kbdgneo\kbdgneo.dll                    1
 +dll\keyboard\kbdgrist\kbdgrist.dll                  1
 +dll\keyboard\kbdgr\kbdgr.dll                        1
 +dll\keyboard\kbdhe\kbdhe.dll                        1
 +dll\keyboard\kbdheb\kbdheb.dll                      1
 +dll\keyboard\kbdhu\kbdhu.dll                        1
 +dll\keyboard\kbdic\kbdic.dll                        1
 +dll\keyboard\kbdinasa\kbdinasa.dll                  1
 +dll\keyboard\kbdinben\kbdinben.dll                  1
 +dll\keyboard\kbdindev\kbdindev.dll                  1
 +dll\keyboard\kbdinguj\kbdinguj.dll                  1
 +dll\keyboard\kbdinmal\kbdinmal.dll                  1
 +dll\keyboard\kbdir\kbdir.dll                        1
 +dll\keyboard\kbdit\kbdit.dll                        1
 +dll\keyboard\kbdja\kbdja.dll                        1
 +dll\keyboard\kbdkaz\kbdkaz.dll                      1
 +dll\keyboard\kbdla\kbdla.dll                        1
 +dll\keyboard\kbdlt1\kbdlt1.dll                      1
 +dll\keyboard\kbdlv\kbdlv.dll                        1
 +dll\keyboard\kbdmac\kbdmac.dll                      1
 +dll\keyboard\kbdne\kbdne.dll                        1
 +dll\keyboard\kbdno\kbdno.dll                        1
 +dll\keyboard\kbdpl1\kbdpl1.dll                      1
 +dll\keyboard\kbdpo\kbdpo.dll                        1
 +dll\keyboard\kbdro\kbdro.dll                        1
 +dll\keyboard\kbdru\kbdru.dll                        1
 +dll\keyboard\kbdru1\kbdru1.dll                      1
 +dll\keyboard\kbdsg\kbdsg.dll                        1
 +dll\keyboard\kbdsk\kbdsk.dll                        1
 +dll\keyboard\kbdsk1\kbdsk1.dll                      1
 +dll\keyboard\kbdsw\kbdsw.dll                        1
 +dll\keyboard\kbdtat\kbdtat.dll                      1
 +dll\keyboard\kbdth0\kbdth0.dll                      1
 +dll\keyboard\kbdth1\kbdth1.dll                      1
 +dll\keyboard\kbdth2\kbdth2.dll                      1
 +dll\keyboard\kbdth3\kbdth3.dll                      1
 +dll\keyboard\kbdtuf\kbdtuf.dll                      1
 +dll\keyboard\kbdtuq\kbdtuq.dll                      1
 +dll\keyboard\kbduk\kbduk.dll                        1
 +dll\keyboard\kbdur\kbdur.dll                        1
 +dll\keyboard\kbdurs\kbdurs.dll                      1
 +dll\keyboard\kbdus\kbdus.dll                        1
 +dll\keyboard\kbdusa\kbdusa.dll                      1
 +dll\keyboard\kbdusl\kbdusl.dll                      1
 +dll\keyboard\kbdusr\kbdusr.dll                      1
 +dll\keyboard\kbdusx\kbdusx.dll                      1
 +dll\keyboard\kbduzb\kbduzb.dll                      1
 +dll\keyboard\kbdvntc\kbdvntc.dll                    1
 +dll\keyboard\kbdycc\kbdycc.dll                      1
 +dll\keyboard\kbdycl\kbdycl.dll                      1
 +dll\keyboard\kbdko\kbdko.dll                        1
 +
 +dll\ntdll\ntdll.dll                                 1
 +
 +dll\win32\acledit\acledit.dll                       1
 +dll\win32\aclui\aclui.dll                           1
 +dll\win32\activeds\activeds.dll                     1
 +dll\win32\advapi32\advapi32.dll                     1
 +dll\win32\advpack\advpack.dll                       1
 +dll\win32\actxprxy\actxprxy.dll                     1
 +dll\win32\atl\atl.dll                               1
 +dll\win32\authz\authz.dll                           1
 +dll\win32\avicap32\avicap32.dll                     1
 +dll\win32\avifil32\avifil32.dll                     1
 +dll\win32\batt\batt.dll                             1
 +dll\win32\bcrypt\bcrypt.dll                         1
 +dll\win32\beepmidi\beepmidi.dll                     1
 +dll\win32\browseui\browseui.dll                     1
 +dll\win32\cabinet\cabinet.dll                       1
 +dll\win32\cards\cards.dll                           1
 +dll\win32\cfgmgr32\cfgmgr32.dll                     1
 +dll\win32\clusapi\clusapi.dll                       1
 +dll\win32\comcat\comcat.dll                         1
 +dll\win32\comctl32\comctl32.dll                     1
 +dll\win32\comdlg32\comdlg32.dll                     1
 +dll\win32\compstui\compstui.dll                     1
 +dll\win32\credui\credui.dll                         1
 +dll\win32\crtdll\crtdll.dll                         1
 +dll\win32\crypt32\crypt32.dll                       1
 +dll\win32\cryptdlg\cryptdlg.dll                     1
 +dll\win32\cryptdll\cryptdll.dll                     1
 +dll\win32\cryptnet\cryptnet.dll                     1
 +dll\win32\cryptui\cryptui.dll                       1
 +dll\win32\dbghelp\dbghelp.dll                       1
 +dll\win32\dciman32\dciman32.dll                     1
 +dll\win32\dwmapi\dwmapi.dll                         1
 +dll\win32\devmgr\devmgr.dll                         1
 +dll\win32\dhcpcsvc\dhcpcsvc.dll                     1
 +dll\win32\dnsapi\dnsapi.dll                         1
 +dll\win32\faultrep\faultrep.dll                     1
 +dll\win32\fmifs\fmifs.dll                           1
 +dll\win32\fusion\fusion.dll                         1
 +dll\win32\gdi32\gdi32.dll                           1
 +dll\win32\gdiplus\gdiplus.dll                       1
 +dll\win32\getuname\getuname.dll                     1
 +dll\win32\glu32\glu32.dll                           1
 +dll\win32\hhctrl.ocx\hhctrl.ocx                     1
 +dll\win32\hid\hid.dll                               1
 +dll\win32\hlink\hlink.dll                           1
 +dll\win32\hnetcfg\hnetcfg.dll                       1
 +dll\win32\httpapi\httpapi.dll                       1
 +dll\win32\iccvid\iccvid.dll                         1
 +dll\win32\icmp\icmp.dll                             1
 +dll\win32\imaadp32.acm\imaadp32.acm                 1
 +dll\win32\imagehlp\imagehlp.dll                     1
 +dll\win32\imm32\imm32.dll                           1
 +dll\win32\inetcomm\inetcomm.dll                     1
 +dll\win32\inetmib1\inetmib1.dll                     1
 +dll\win32\initpki\initpki.dll                       1
 +dll\win32\inseng\inseng.dll                         1
 +dll\win32\iphlpapi\iphlpapi.dll                     1
 +dll\win32\itircl\itircl.dll                         1
 +dll\win32\itss\itss.dll                             1
 +dll\win32\jscript\jscript.dll                       1
 +dll\win32\kernel32\kernel32.dll                     1
 +dll\win32\loadperf\loadperf.dll                     1
 +dll\win32\localspl\localspl.dll                     1
 +dll\win32\localui\localui.dll                       1
 +dll\win32\lsasrv\lsasrv.dll                         1
 +dll\win32\lz32\lz32.dll                             1
 +dll\win32\mapi32\mapi32.dll                         1
 +dll\win32\mciavi32\mciavi32.dll                     1
 +dll\win32\mcicda\mcicda.dll                         1
 +dll\win32\mciqtz32\mciqtz32.dll                     1
 +dll\win32\mciseq\mciseq.dll                         1
 +dll\win32\mciwave\mciwave.dll                       1
 +dll\win32\mlang\mlang.dll                           1
 +dll\win32\mmdrv\mmdrv.dll                           1
 +dll\win32\modemui\modemui.dll                       1
 +dll\win32\mpr\mpr.dll                               1
 +dll\win32\mprapi\mprapi.dll                         1
 +dll\win32\msacm32\msacm32.dll                       1
 +dll\win32\msacm32\msacm32.drv\msacm32.drv           1
 +dll\win32\msadp32.acm\msadp32.acm                   1
 +dll\win32\msafd\msafd.dll                           1
 +dll\win32\mscat32\mscat32.dll                       1
 +dll\win32\mscms\mscms.dll                           1
 +dll\win32\mscoree\mscoree.dll                       1
 +dll\win32\msctf\msctf.dll                           1
 +dll\win32\msftedit\msftedit.dll                     1
 +dll\win32\msg711.acm\msg711.acm                     1
 +dll\win32\msgina\msgina.dll                         1
 +dll\win32\msgsm32.acm\msgsm32.acm                   1
 +dll\win32\mshtml\mshtml.dll                         1
 +dll\win32\mshtml.tlb\mshtml.tlb                     1
 +dll\win32\msi\msi.dll                               1
 +dll\win32\msimg32\msimg32.dll                       1
 +dll\win32\msimtf\msimtf.dll                         1
 +dll\win32\msisip\msisip.dll                         1
 +dll\win32\msisys.ocx\msisys.ocx                     1
 +dll\win32\msnet32\msnet32.dll                       1
 +dll\win32\msrle32\msrle32.dll                       1
 +dll\win32\mssign32\mssign32.dll                     1
 +dll\win32\mssip32\mssip32.dll                       1
 +dll\win32\mstask\mstask.dll                         1
 +dll\win32\msvcrt\msvcrt.dll                         1
 +dll\win32\msvcrt20\msvcrt20.dll                     1
 +dll\win32\msvcrt40\msvcrt40.dll                     1
 +dll\win32\msvfw32\msvfw32.dll                       1
 +dll\win32\msvidc32\msvidc32.dll                     1
 +dll\win32\mswsock\mswsock.dll                       1
 +dll\win32\msxml3\msxml3.dll                         1
 +dll\win32\nddeapi\nddeapi.dll                       1
 +dll\win32\netapi32\netapi32.dll                     1
 +dll\win32\netcfgx\netcfgx.dll                       1
 +dll\win32\netid\netid.dll                           1
 +dll\win32\netshell\netshell.dll                     1
 +dll\win32\newdev\newdev.dll                         1
 +dll\win32\ntdsapi\ntdsapi.dll                       1
 +dll\win32\ntlanman\ntlanman.dll                     1
 +dll\win32\ntmarta\ntmarta.dll                       1
 +dll\win32\ntprint\ntprint.dll                       1
 +dll\win32\objsel\objsel.dll                         1
 +dll\win32\odbc32\odbc32.dll                         1
 +dll\win32\odbccp32\odbccp32.dll                     1
 +dll\win32\ole32\ole32.dll                           1
 +dll\win32\oleacc\oleacc.dll                         1
 +dll\win32\oleaut32\oleaut32.dll                     1
 +dll\win32\olecli32\olecli32.dll                     1
 +dll\win32\oledlg\oledlg.dll                         1
 +dll\win32\olepro32\olepro32.dll                     1
 +dll\win32\olesvr32\olesvr32.dll                     1
 +dll\win32\olethk32\olethk32.dll                     1
 +dll\win32\opengl32\opengl32.dll                     1
 +dll\win32\pdh\pdh.dll                               1
 +dll\win32\pidgen\pidgen.dll                         1
 +dll\win32\powrprof\powrprof.dll                     1
 +dll\win32\printui\printui.dll                       1
 +dll\win32\psapi\psapi.dll                           1
 +dll\win32\pstorec\pstorec.dll                       1
 +dll\win32\qmgr\qmgr.dll                             1
 +dll\win32\qmgrprxy\qmgrprxy.dll                     1
 +dll\win32\query\query.dll                           1
 +dll\win32\rasadhlp\rasadhlp.dll                     1
 +dll\win32\rasapi32\rasapi32.dll                     1
 +dll\win32\rasdlg\rasdlg.dll                         1
 +dll\win32\resutils\resutils.dll                     1
 +dll\win32\rasman\rasman.dll                         1
 +dll\win32\riched20\riched20.dll                     1
 +dll\win32\riched32\riched32.dll                     1
 +dll\win32\rpcrt4\rpcrt4.dll                         1
 +dll\win32\rsabase\rsabase.dll                       1
 +dll\win32\rsaenh\rsaenh.dll                         1
 +dll\win32\samlib\samlib.dll                         1
 +dll\win32\samsrv\samsrv.dll                         1
 +dll\win32\sccbase\sccbase.dll                       1
 +dll\win32\schannel\schannel.dll                     1
 +dll\win32\secur32\secur32.dll                       1
 +dll\win32\security\security.dll                     1
 +dll\win32\sensapi\sensapi.dll                       1
 +dll\win32\serialui\serialui.dll                     1
 +dll\win32\setupapi\setupapi.dll                     1
 +dll\win32\sfc\sfc.dll                               1
 +dll\win32\sfc_os\sfc_os.dll                         1
 +dll\win32\shdoclc\shdoclc.dll                       1
 +dll\win32\shdocvw\shdocvw.dll                       1
 +dll\win32\shell32\shell32.dll                       1
 +dll\win32\shfolder\shfolder.dll                     1
 +dll\win32\shimgvw\shimgvw.dll                       1
 +dll\win32\shlwapi\shlwapi.dll                       1
 +dll\win32\slbcsp\slbcsp.dll                         1
 +dll\win32\smdll\smdll.dll                           1
 +dll\win32\snmpapi\snmpapi.dll                       1
 +dll\win32\softpub\softpub.dll                       1
 +dll\win32\spoolss\spoolss.dll                       1
 +dll\win32\srclient\srclient.dll                     1
 +dll\win32\stdole2.tlb\stdole2.tlb                   1
 +dll\win32\stdole32.tlb\stdole32.tlb                 1
 +dll\win32\sti\sti.dll                               1
 +dll\win32\sxs\sxs.dll                               1
 +dll\win32\syssetup\syssetup.dll                     1
 +dll\win32\t2embed\t2embed.dll                       1
 +dll\win32\tapi32\tapi32.dll                         1
 +dll\win32\tapiui\tapiui.dll                         1
 +dll\win32\traffic\traffic.dll                       1
 +dll\win32\twain_32\twain_32.dll                     1
 +dll\win32\uext2\uext2.dll                           1
 +dll\win32\ufat\ufat.dll                             1
 +dll\win32\ufatx\ufatx.dll                           1   optional
 +dll\win32\untfs\untfs.dll                           1
 +dll\win32\updspapi\updspapi.dll                     1
 +dll\win32\url\url.dll                               1
 +dll\win32\urlmon\urlmon.dll                         1
 +dll\win32\user32\user32.dll                         1
 +dll\win32\userenv\userenv.dll                       1
 +dll\win32\usp10\usp10.dll                           1
 +dll\win32\uxtheme\uxtheme.dll                       1
 +dll\win32\vdmdbg\vdmdbg.dll                         1
 +dll\win32\version\version.dll                       1
 +dll\win32\windowscodecs\windowscodecs.dll           1
 +dll\win32\winemp3.acm\winemp3.acm                   1
 +dll\win32\winfax\winfax.dll                         1
 +dll\win32\winhttp\winhttp.dll                       1
 +dll\win32\wininet\wininet.dll                       1
 +dll\win32\winmm\winmm.dll                           1
 +dll\win32\winspool\winspool.drv                     1
 +dll\win32\winsta\winsta.dll                         1
 +dll\win32\wlanapi\wlanapi.dll                       1
 +dll\win32\wintrust\wintrust.dll                     1
 +dll\win32\wldap32\wldap32.dll                       1
 +dll\win32\wmi\wmi.dll                               1
 +dll\win32\ws2_32\ws2_32.dll                         1
 +dll\win32\ws2help\ws2help.dll                       1
 +dll\win32\wshirda\wshirda.dll                       1
 +dll\win32\wshtcpip\wshtcpip.dll                     1
 +dll\win32\wsock32\wsock32.dll                       1
 +dll\win32\wtsapi32\wtsapi32.dll                     1
 +dll\win32\wuapi\wuapi.dll                           1
 +dll\win32\xinput1_1\xinput1_1.dll                   1
 +dll\win32\xinput1_2\xinput1_2.dll                   1
 +dll\win32\xinput1_3\xinput1_3.dll                   1
 +dll\win32\xinput9_1_0\xinput9_1_0.dll               1
 +dll\win32\xmllite\xmllite.dll                       1
 +dll\win32\winmm\midimap\midimap.dll                 1
 +dll\win32\wdmaud.drv\wdmaud.drv                     1
 +
 +; Shell Extensions
 +dll\shellext\deskadp\deskadp.dll                    1
 +dll\shellext\deskmon\deskmon.dll                    1
 +
 +; Drivers
 +drivers\base\bootvid\bootvid.dll                    1
 +drivers\base\beep\beep.sys                          2
 +drivers\base\null\null.sys                          2
 +drivers\base\nmidebug\nmidebug.sys                  2
 +
 +drivers\battery\battc\battc.sys                     2
 +
 +drivers\bus\acpi\cmbatt\cmbatt.sys                  2
 +drivers\bus\acpi\compbatt\compbatt.sys              2
 +
 +drivers\directx\dxapi\dxapi.sys                     2
 +drivers\directx\dxg\dxg.sys                         2
 +drivers\directx\dxgthk\dxgthk.sys                   2
 +
 +drivers\filesystems\fs_rec\fs_rec.sys               2
 +drivers\filesystems\msfs\msfs.sys                   2
 +drivers\filesystems\mup\mup.sys                     2
 +drivers\filesystems\npfs\npfs.sys                   2
 +
 +drivers\input\mouclass\mouclass.sys                 2
 +drivers\input\sermouse\sermouse.sys                 2
 +
 +drivers\ksfilter\ks\ks.sys                          2
 +drivers\multimedia\bdasup\bdasup.sys                2
 +
 +drivers\network\afd\afd.sys                         2
 +drivers\network\ndis\ndis.sys                       2
 +drivers\network\tcpip\tcpip.sys                     2
 +drivers\network\tdi\tdi.sys                         2
 +drivers\network\dd\ne2000\ne2000.sys                2
 +drivers\network\dd\pcnet\pcnet.sys                  2
 +
 +drivers\serial\serenum\serenum.sys                  2
 +drivers\serial\serial\serial.sys                    2
 +
 +drivers\storage\ide\pciide\pciide.sys               2
 +drivers\storage\ide\pciidex\pciidex.sys             2
 +
 +;drivers\usb\miniport\usbohci\usbohci.sys           2
 +;drivers\usb\miniport\usbuhci\usbuhci.sys           2
 +;drivers\usb\usbhub\usbhub.sys                      2
 +;drivers\usb\usbport\usbport.sys                    2
 +drivers\usb\nt4compat\usbdriver\usbdriver.sys       2
 +
 +drivers\video\displays\vga\vgaddi.dll               1
 +drivers\video\displays\framebuf\framebuf.dll        1
 +drivers\video\miniport\vga\vgamp.sys                2
 +drivers\video\miniport\vbe\vbemp.sys                2
 +drivers\video\videoprt\videoprt.sys                 2
 +drivers\video\font\ftfd\ftfd.dll                   1
 +
 +drivers\wdm\audio\filters\kmixer\kmixer.sys         2
 +drivers\wdm\audio\sysaudio\sysaudio.sys             2
 +drivers\wdm\audio\legacy\wdmaud\wdmaud.sys          2
 +drivers\wdm\audio\backpln\portcls\portcls.sys       2
 +drivers\wdm\audio\drm\drmk\drmk.sys                 2
 +drivers\wmi\wmilib.sys                              2
 +
 +; Media
 +media\fonts\DejaVuSans.ttf                          3
 +media\fonts\DejaVuSans-Bold.ttf                     3
 +media\fonts\DejaVuSans-BoldOblique.ttf              3
 +media\fonts\DejaVuSansMono.ttf                      3
 +media\fonts\DejaVuSansMono-Bold.ttf                 3
 +media\fonts\DejaVuSansMono-BoldOblique.ttf          3
 +media\fonts\DejaVuSansMono-Oblique.ttf              3
 +media\fonts\DejaVuSans-Oblique.ttf                  3
 +media\fonts\DejaVuSerif.ttf                         3
 +media\fonts\DejaVuSerif-Bold.ttf                    3
 +media\fonts\DejaVuSerif-BoldItalic.ttf              3
 +media\fonts\DejaVuSerif-Italic.ttf                  3
 +
 +media\fonts\FreeMono.ttf                            3
 +media\fonts\FreeMonoBold.ttf                        3
 +media\fonts\FreeMonoBoldOblique.ttf                 3
 +media\fonts\FreeMonoOblique.ttf                     3
 +
 +media\fonts\LiberationMono-Bold.ttf                 3
 +media\fonts\LiberationMono-BoldItalic.ttf           3
 +media\fonts\LiberationMono-Italic.ttf               3
 +media\fonts\LiberationMono-Regular.ttf              3
 +media\fonts\LiberationSans-Bold.ttf                 3
 +media\fonts\LiberationSans-BoldItalic.ttf           3
 +media\fonts\LiberationSans-Italic.ttf               3
 +media\fonts\LiberationSans-Regular.ttf              3
 +media\fonts\LiberationSerif-Bold.ttf                3
 +media\fonts\LiberationSerif-BoldItalic.ttf          3
 +media\fonts\LiberationSerif-Italic.ttf              3
 +media\fonts\LiberationSerif-Regular.ttf             3
 +
 +media\fonts\Marlett.ttf                             3
 +media\fonts\symbol.ttf                              3
 +media\fonts\tahoma.ttf                              3
 +media\fonts\tahomabd.ttf                            3
 +
 +media\vgafonts\vgafonts.cab                         4
 +
 +media\nls\c_037.nls                                 1
 +media\nls\c_424.nls                                 1
 +media\nls\c_500.nls                                 1
 +media\nls\c_737.nls                                 1
 +media\nls\c_775.nls                                 1
 +media\nls\c_850.nls                                 1
 +media\nls\c_852.nls                                 1
 +media\nls\c_855.nls                                 1
 +media\nls\c_856.nls                                 1
 +media\nls\c_857.nls                                 1
 +media\nls\c_860.nls                                 1
 +media\nls\c_861.nls                                 1
 +media\nls\c_862.nls                                 1
 +media\nls\c_863.nls                                 1
 +media\nls\c_864.nls                                 1
 +media\nls\c_865.nls                                 1
 +media\nls\c_866.nls                                 1
 +media\nls\c_869.nls                                 1
 +media\nls\c_874.nls                                 1
 +media\nls\c_875.nls                                 1
 +media\nls\c_878.nls                                 1
 +media\nls\c_932.nls                                 1
 +media\nls\c_936.nls                                 1
 +media\nls\c_949.nls                                 1
 +media\nls\c_950.nls                                 1
 +media\nls\c_1006.nls                                1
 +media\nls\c_1026.nls                                1
 +media\nls\c_1250.nls                                1
 +media\nls\c_1251.nls                                1
 +media\nls\c_1253.nls                                1
 +media\nls\c_1254.nls                                1
 +media\nls\c_1255.nls                                1
 +media\nls\c_1256.nls                                1
 +media\nls\c_1257.nls                                1
 +media\nls\c_1258.nls                                1
 +media\nls\c_10000.nls                               1
 +media\nls\c_10006.nls                               1
 +media\nls\c_10007.nls                               1
 +media\nls\c_10029.nls                               1
 +media\nls\c_10079.nls                               1
 +media\nls\c_10081.nls                               1
 +media\nls\c_20866.nls                               1
 +media\nls\c_21866.nls                               1
 +media\nls\c_28591.nls                               1
 +media\nls\c_28592.nls                               1
 +media\nls\c_28593.nls                               1
 +media\nls\c_28594.nls                               1
 +media\nls\c_28595.nls                               1
 +media\nls\c_28596.nls                               1
 +media\nls\c_28597.nls                               1
 +media\nls\c_28598.nls                               1
 +media\nls\c_28599.nls                               1
 +media\nls\c_28600.nls                               1
 +media\nls\c_28603.nls                               1
 +media\nls\c_28604.nls                               1
 +media\nls\c_28605.nls                               1
 +media\nls\c_28606.nls                               1
++media\drivers\etc\hosts                             5
 +media\drivers\etc\services                          5
 +media\inf\audio.inf                                 6
 +media\inf\acpi.inf                                  6
 +media\inf\battery.inf                               6
 +media\inf\cdrom.inf                                 6
 +media\inf\cpu.inf                                   6
 +media\inf\display.inf                               6
 +media\inf\font.inf                                  6
 +media\inf\fdc.inf                                   6
 +media\inf\hdc.inf                                   6
 +media\inf\intl.inf                                  6
 +media\inf\layout.inf                                6
 +media\inf\machine.inf                               6
 +media\inf\msmouse.inf                               6
 +media\inf\keyboard.inf                              6
 +media\inf\ks.inf                                    6
 +media\inf\NET_NIC.inf                               6
 +media\inf\netamd.inf                                6
 +media\inf\netisa.inf                                6
 +media\inf\netrtpnt.inf                              6
 +media\inf\nettcpip.inf                              6
 +media\inf\ports.inf                                 6
 +media\inf\scsi.inf                                  6
 +media\inf\syssetup.inf                              6
 +media\inf\usbport.inf                               6
 +media\inf\usb.inf                                   6
 +media\inf\usbstor.inf                               6
 +media\inf\xboxdisp.inf                              6
 +
 +
 +; Media Files
 +media\sounds\ReactOS_LogOn.wav                      8
 +
 +; Ini Files
 +boot\bootdata\system.ini                            4
 +
 +; Regression Testing
 +boot\bootdata\bootcdregtest\regtest.cmd             7   optional
 +
 +; Subsystems
 +subsystems\win32\csrss\csrss.exe                    1
 +subsystems\win32\csrss\win32csr\win32csr.dll        1
 +subsystems\win32\csrss\csrsrv\csrsrv.dll            1
 +subsystems\ntvdm\ntvdm.exe                          1
 +subsystems\win32\win32k\win32k.sys                  1
 +
 +; Optional/proprietary files
 +modules\optional\DroidSansFallback.ttf              3  optional
 +modules\optional\NOTICE_for_Droid_Font.txt          4  optional
 +modules\optional\netkvm2k.inf                       6  optional
 +modules\optional\netkvm2k.cat                       6  optional
 +modules\optional\netkvm.sys                         2  optional
 +modules\optional\alcxwdm.inf                        6  optional
 +modules\optional\alcxwdm.sys                        2  optional
 +modules\optional\mfc42.dll                          1  optional
 +modules\optional\mfc42u.dll                         1  optional
 +modules\optional\mfc71.dll                          1  optional
 +modules\optional\mfc71u.dll                         1  optional
 +modules\optional\msvbvm50.dll                       1  optional
 +modules\optional\msvbvm60.dll                       1  optional
 +modules\optional\msvcirt.dll                        1  optional
 +modules\optional\msvcp71.dll                        1  optional
 +modules\optional\msvcr71.dll                        1  optional
 +modules\optional\vmx_fb.dll                         1  optional
 +modules\optional\vmx_mode.dll                       1  optional
 +modules\optional\vmx_svga.inf                       6  optional
 +modules\optional\vmx_svga.sys                       2  optional
 +modules\optional\wine_gecko-1.0.0-x86.cab           4  optional
 +
 +; Rosapps
 +modules\rosapps\applications\screensavers\cylfrac\cylfrac.scr              1   optional
 +modules\rosapps\applications\screensavers\matrix\matrix.scr                1   optional
 +modules\rosapps\applications\screensavers\blankscr\scrnsave.scr            1   optional
 +modules\rosapps\applications\screensavers\starfield\starfield.scr          1   optional
 +modules\rosapps\applications\screensavers\mazescr\mazescr.scr              1   optional
 +modules\rosapps\applications\screensavers\butterflies\butterflies.scr      1   optional
 +modules\rosapps\applications\cmdutils\comp\comp.exe                                     1   optional
 +modules\rosapps\applications\cmdutils\mode\mode.exe                                     1   optional
 +modules\rosapps\applications\cmdutils\sort\sort.exe                                     1   optional
 +modules\rosapps\applications\cmdutils\tee\tee.exe                                       1   optional
 +modules\rosapps\applications\cmdutils\touch\touch.exe                                   1   optional
 +modules\rosapps\applications\cmdutils\uptime\uptime.exe                                 1   optional
 +modules\rosapps\applications\cmdutils\y\y.exe                                           1   optional
 +modules\rosapps\applications\devutils\gdb2\gdb2.exe                                     1   optional
 +modules\rosapps\applications\devutils\gdihv\gdihv.exe                                   1   optional
 +modules\rosapps\applications\devutils\genguid\genguid.exe                               1   optional
 +modules\rosapps\applications\sysutils\gettype\gettype.exe                               1   optional
 +modules\rosapps\applications\net\ncftp\ncftp.exe                                        1   optional
 +modules\rosapps\applications\net\netreg\netreg.exe                                      1   optional
 +modules\rosapps\applications\net\niclist\niclist.exe                                    1   optional
 +modules\rosapps\applications\net\roshttpd\roshttpd.exe                                  1   optional
 +modules\rosapps\applications\notevil\notevil.exe                                        1   optional
 +modules\rosapps\applications\sysutils\chkdsk\chkdsk.exe                                 1   optional
 +modules\rosapps\applications\sysutils\systeminfo\systeminfo.exe                         1   optional
 +modules\rosapps\applications\sysutils\chklib\chklib.exe                                 1   optional
 +modules\rosapps\applications\sysutils\ctm\ctm.exe                                       1   optional
 +modules\rosapps\applications\sysutils\kill\kill.exe                                     1   optional
 +modules\rosapps\applications\sysutils\lsdd\lsdd.exe                                     1   optional
 +modules\rosapps\applications\sysutils\man\man.exe                                       1   optional
 +modules\rosapps\applications\sysutils\pedump\pedump.exe                                 1   optional
 +modules\rosapps\applications\sysutils\regexpl\regexpl.exe                               1   optional
 +modules\rosapps\applications\sysutils\tcat\tcat.exe                                     1   optional
 +modules\rosapps\applications\sysutils\tlist\tlist.exe                                   1   optional
 +modules\rosapps\applications\sysutils\screenshot\screenshot.exe                         1   optional
 +modules\rosapps\applications\sysutils\utils\binpatch\binpatch.exe                       1   optional
 +modules\rosapps\applications\sysutils\utils\cat\cat.exe                                 1   optional
 +modules\rosapps\applications\sysutils\utils\driver\load\load.exe                        1   optional
 +modules\rosapps\applications\sysutils\utils\driver\unload\unload.exe                    1   optional
 +modules\rosapps\applications\sysutils\utils\infinst\infinst.exe                         1   optional
 +modules\rosapps\applications\sysutils\utils\nts2w32err\nts2w32err.exe                   1   optional
 +modules\rosapps\applications\sysutils\utils\objdir\objdir.exe                           1   optional
 +modules\rosapps\applications\sysutils\utils\partinfo\partinfo.exe                       1   optional
 +modules\rosapps\applications\sysutils\utils\ps\ps.exe                                   1   optional
 +modules\rosapps\applications\sysutils\utils\rosperf\rosperf.exe                         1   optional
 +modules\rosapps\applications\sysutils\utils\stats\stats.exe                             1   optional
 +modules\rosapps\applications\sysutils\utils\tickcount\tickcount.exe                     1   optional
 +modules\rosapps\applications\winfile\winfile.exe                                        1   optional
 +modules\rosapps\demos\maze\maze.exe                                        1   optional
 +modules\rosapps\drivers\green\green.sys                                    2   optional
 +
 +; Rostests
 +modules\rostests\rosautotest\rosautotest.exe                               1   optional
 +modules\rostests\tests\pseh2\pseh2_test.exe                                7   optional
 +modules\rostests\winetests\advapi32\advapi32_winetest.exe                  7   optional
 +modules\rostests\winetests\advpack\advpack_winetest.exe                    7   optional
 +modules\rostests\winetests\browseui\browseui_winetest.exe                  7   optional
 +modules\rostests\winetests\cabinet\cabinet_winetest.exe                    7   optional
 +modules\rostests\winetests\comcat\comcat_winetest.exe                      7   optional
 +modules\rostests\winetests\comctl32\comctl32_winetest.exe                  7   optional
 +modules\rostests\winetests\comdlg32\comdlg32_winetest.exe                  7   optional
 +modules\rostests\winetests\crypt32\crypt32_winetest.exe                    7   optional
 +modules\rostests\winetests\cryptnet\cryptnet_winetest.exe                  7   optional
 +modules\rostests\winetests\dsound\dsound_winetest.exe                      7   optional
 +modules\rostests\winetests\gdi32\gdi32_winetest.exe                        7   optional
 +modules\rostests\winetests\gdiplus\gdiplus_winetest.exe                    7   optional
 +modules\rostests\winetests\hlink\hlink_winetest.exe                        7   optional
 +modules\rostests\winetests\icmp\icmp_winetest.exe                          7   optional
 +modules\rostests\winetests\iphlpapi\iphlpapi_winetest.exe                  7   optional
 +modules\rostests\winetests\jscript\jscript_winetest.exe                    7   optional
 +modules\rostests\winetests\kernel32\kernel32_winetest.exe                  7   optional
 +modules\rostests\winetests\lz32\lz32_winetest.exe                          7   optional
 +modules\rostests\winetests\mapi32\mapi32_winetest.exe                      7   optional
 +modules\rostests\winetests\mlang\mlang_winetest.exe                        7   optional
 +modules\rostests\winetests\mshtml\mshtml_winetest.exe                      7   optional
 +modules\rostests\winetests\msi\msi_winetest.exe                            7   optional
 +modules\rostests\winetests\mstask\mstask_winetest.exe                      7   optional
 +modules\rostests\winetests\msvcrt\msvcrt_winetest.exe                      7   optional
 +modules\rostests\winetests\msxml3\msxml3_winetest.exe                      7   optional
 +modules\rostests\winetests\netapi32\netapi32_winetest.exe                  7   optional
 +modules\rostests\winetests\ntdll\ntdll_winetest.exe                        7   optional
 +modules\rostests\winetests\odbccp32\odbccp32_winetest.exe                  7   optional
 +modules\rostests\winetests\ole32\ole32_winetest.exe                        7   optional
 +modules\rostests\winetests\oleaut32\oleaut32_winetest.exe                  7   optional
 +modules\rostests\winetests\powrprof\powrprof_winetest.exe                  7   optional
 +modules\rostests\winetests\psapi\psapi_winetest.exe                        7   optional
 +modules\rostests\winetests\riched20\riched20_winetest.exe                  7   optional
 +modules\rostests\winetests\rpcrt4\rpcrt4_winetest.exe                      7   optional
 +modules\rostests\winetests\rsabase\rsabase_winetest.exe                    7   optional
 +modules\rostests\winetests\rsaenh\rsaenh_winetest.exe                      7   optional
 +modules\rostests\winetests\schannel\schannel_winetest.exe                  7   optional
 +modules\rostests\winetests\secur32\secur32_winetest.exe                    7   optional
 +modules\rostests\winetests\setupapi\setupapi_winetest.exe                  7   optional
 +modules\rostests\winetests\shdocvw\shdocvw_winetest.exe                    7   optional
 +modules\rostests\winetests\shell32\shell32_winetest.exe                    7   optional
 +modules\rostests\winetests\shlwapi\shlwapi_winetest.exe                    7   optional
 +modules\rostests\winetests\urlmon\urlmon_winetest.exe                      7   optional
 +modules\rostests\winetests\user32\user32_winetest.exe                      7   optional
 +modules\rostests\winetests\usp10\usp10_winetest.exe                        7   optional
 +modules\rostests\winetests\uxtheme\uxtheme_winetest.exe                    7   optional
 +modules\rostests\winetests\version\version_winetest.exe                    7   optional
 +modules\rostests\winetests\winhttp\winhttp_winetest.exe                    7   optional
 +modules\rostests\winetests\wininet\wininet_winetest.exe                    7   optional
 +modules\rostests\winetests\winmm\winmm_winetest.exe                        7   optional
 +modules\rostests\winetests\wintrust\wintrust_winetest.exe                  7   optional
 +modules\rostests\winetests\wlanapi\wlanapi_winetest.exe                    7   optional
 +modules\rostests\winetests\ws2_32\ws2_32_winetest.exe                      7   optional
 +modules\rostests\winetests\xmllite\xmllite_winetest.exe                    7   optional
 +
 +
 +modules\wallpaper\Angelus_02_ROSWP.bmp                                     4   optional
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 6bd69ca,0000000..eb9dcf2
mode 100644,000000..100644
--- /dev/null
@@@ -1,1628 -1,0 +1,1623 @@@
-     PTEB pTeb;
 +#include "precomp.h"
 +
 +#define NDEBUG
 +#include <debug.h>
 +
 +HGDIOBJ stock_objects[NB_STOCK_OBJECTS]; // temp location.
 +
 +HDC
 +FASTCALL
 +IntCreateDICW ( LPCWSTR   lpwszDriver,
 +                LPCWSTR   lpwszDevice,
 +                LPCWSTR   lpwszOutput,
 +                PDEVMODEW lpInitData,
 +                ULONG     iType )
 +{
 + UNICODE_STRING Device, Output;
 + HDC hDC = NULL;
 + BOOL Display = FALSE, Default = FALSE;
 + ULONG UMdhpdev = 0;
 +
 + HANDLE hspool = NULL;
 +
 + if ( !ghSpooler && !LoadTheSpoolerDrv())
 + {
 +    DPRINT1("WinSpooler.Drv Did not load!\n");
 + }
 + else
 + {
 +    DPRINT("WinSpooler.Drv Loaded! hMod -> 0x%x\n", ghSpooler);
 + }
 +
 + if ((!lpwszDevice) && (!lpwszDriver))
 + {
 +     Default = TRUE;  // Ask Win32k to set Default device.
 +     Display = TRUE;   // Most likely to be DISPLAY.
 + }
 + else
 + {
 +    if ((lpwszDevice) && (wcslen(lpwszDevice) != 0))  // First
 +    {
 +      if (!_wcsnicmp(lpwszDevice, L"\\\\.\\DISPLAY",11)) Display = TRUE;
 +      RtlInitUnicodeString(&Device, lpwszDevice);
 +    }
 +    else
 +    {
 +      if (lpwszDriver) // Second
 +      {
 +        if ((!_wcsnicmp(lpwszDriver, L"DISPLAY",7)) ||
 +              (!_wcsnicmp(lpwszDriver, L"\\\\.\\DISPLAY",11))) Display = TRUE;
 +        RtlInitUnicodeString(&Device, lpwszDriver);
 +      }
 +    }
 + }
 +
 + if (lpwszOutput) RtlInitUnicodeString(&Output, lpwszOutput);
 +
 + if (!Display)
 + {
 +    //Handle Print device or something else.
 +    DPRINT1("Not a DISPLAY device! %wZ\n", &Device);
 + }
 +
 + hDC = NtGdiOpenDCW( (Default ? NULL : &Device),
 +                     (PDEVMODEW) lpInitData,
 +                     (lpwszOutput ? &Output : NULL),
 +                      iType,             // DCW 0 and ICW 1.
 +                      Display,
 +                      hspool,
 +                     (PVOID) NULL,       // NULL for now.
 +                     (PVOID) &UMdhpdev );
 +#if 0
 +// Handle something other than a normal dc object.
 + if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
 + {
 +    PDC_ATTR Dc_Attr;
 +    PLDC pLDC;
 +
 +    GdiGetHandleUserData((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr);
 +
 +    pLDC = LocalAlloc(LMEM_ZEROINIT, sizeof(LDC));
 +
 +    Dc_Attr->pvLDC = pLDC;
 +    pLDC->hDC = hDC;
 +    pLDC->iType = LDC_LDC; // 1 (init) local DC, 2 EMF LDC
 +    DbgPrint("DC_ATTR Allocated -> 0x%x\n",Dc_Attr);
 + }
 +#endif
 + return hDC;
 +}
 +
 +
 +/*
 + * @implemented
 + */
 +HDC
 +WINAPI
 +CreateCompatibleDC ( HDC hdc)
 +{
 + HDC rhDC;
 +// PDC_ATTR Dc_Attr;
 +
 + rhDC = NtGdiCreateCompatibleDC(hdc);
 +#if 0
 + if ( hdc && rhDC)
 + {
 +    if (GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr))
 +    {
 +       if ( Dc_Attr->pvLIcm ) IcmCompatibleDC(rhDC, hdc, Dc_Attr);
 +    }
 + }
 +#endif
 + return rhDC;
 +}
 +
 +/*
 + * @implemented
 + */
 +HDC
 +WINAPI
 +CreateDCA (
 +      LPCSTR          lpszDriver,
 +      LPCSTR          lpszDevice,
 +      LPCSTR          lpszOutput,
 +      CONST DEVMODEA  * lpdvmInit
 +      )
 +{
 + ANSI_STRING DriverA, DeviceA, OutputA;
 + UNICODE_STRING DriverU, DeviceU, OutputU;
 + LPDEVMODEW dvmInitW = NULL;
 + HDC hDC;
 +
 +/*
 + * If needed, convert to Unicode
 + * any string parameter.
 + */
 +
 + if (NULL != lpszDriver)
 + {
 +    RtlInitAnsiString(&DriverA, (LPSTR)lpszDriver);
 +    RtlAnsiStringToUnicodeString(&DriverU, &DriverA, TRUE);
 + } else
 +   DriverU.Buffer = NULL;
 + if (NULL != lpszDevice)
 + {
 +   RtlInitAnsiString(&DeviceA, (LPSTR)lpszDevice);
 +   RtlAnsiStringToUnicodeString(&DeviceU, &DeviceA, TRUE);
 + } else
 +   DeviceU.Buffer = NULL;
 + if (NULL != lpszOutput)
 + {
 +   RtlInitAnsiString(&OutputA, (LPSTR)lpszOutput);
 +   RtlAnsiStringToUnicodeString(&OutputU, &OutputA, TRUE);
 + } else
 +   OutputU.Buffer = NULL;
 +
 + if ( lpdvmInit )
 +   dvmInitW = GdiConvertToDevmodeW((LPDEVMODEA)lpdvmInit);
 +
 + hDC = IntCreateDICW ( DriverU.Buffer,
 +                       DeviceU.Buffer,
 +                       OutputU.Buffer,
 +                            lpdvmInit ? dvmInitW : NULL,
 +                                    0 );
 + HEAP_free (dvmInitW);
 +/*
 + * Free Unicode parameters.
 + */
 + RtlFreeUnicodeString(&DriverU);
 + RtlFreeUnicodeString(&DeviceU);
 + RtlFreeUnicodeString(&OutputU);
 +
 +/*
 + * Return the possible DC handle.
 + */
 + return hDC;
 +}
 +
 +
 +/*
 + * @implemented
 + */
 +HDC
 +WINAPI
 +CreateDCW (
 +      LPCWSTR         lpwszDriver,
 +      LPCWSTR         lpwszDevice,
 +      LPCWSTR         lpwszOutput,
 +      CONST DEVMODEW  *lpInitData
 +      )
 +{
 +
 + return  IntCreateDICW ( lpwszDriver,
 +                         lpwszDevice,
 +                         lpwszOutput,
 +              (PDEVMODEW) lpInitData,
 +                                   0 );
 +}
 +
 +
 +/*
 + * @implemented
 + */
 +HDC
 +WINAPI
 +CreateICW(
 +      LPCWSTR         lpszDriver,
 +      LPCWSTR         lpszDevice,
 +      LPCWSTR         lpszOutput,
 +      CONST DEVMODEW *lpdvmInit
 +      )
 +{
 + return IntCreateDICW ( lpszDriver,
 +                        lpszDevice,
 +                        lpszOutput,
 +             (PDEVMODEW) lpdvmInit,
 +                                 1 );
 +}
 +
 +
 +/*
 + * @implemented
 + */
 +HDC
 +WINAPI
 +CreateICA(
 +      LPCSTR          lpszDriver,
 +      LPCSTR          lpszDevice,
 +      LPCSTR          lpszOutput,
 +      CONST DEVMODEA *lpdvmInit
 +      )
 +{
 + NTSTATUS Status;
 + LPWSTR lpszDriverW, lpszDeviceW, lpszOutputW;
 + LPDEVMODEW dvmInitW = NULL;
 + HDC rc = 0;
 +
 + Status = HEAP_strdupA2W ( &lpszDriverW, lpszDriver );
 + if (!NT_SUCCESS (Status))
 +    SetLastError (RtlNtStatusToDosError(Status));
 + else
 +  {
 +    Status = HEAP_strdupA2W ( &lpszDeviceW, lpszDevice );
 +    if (!NT_SUCCESS (Status))
 +      SetLastError (RtlNtStatusToDosError(Status));
 +    else
 +      {
 +      Status = HEAP_strdupA2W ( &lpszOutputW, lpszOutput );
 +      if (!NT_SUCCESS (Status))
 +        SetLastError (RtlNtStatusToDosError(Status));
 +      else
 +        {
 +          if ( lpdvmInit )
 +               dvmInitW = GdiConvertToDevmodeW((LPDEVMODEA)lpdvmInit);
 +
 +               rc = IntCreateDICW ( lpszDriverW,
 +                                    lpszDeviceW,
 +                                    lpszOutputW,
 +                                      lpdvmInit ? dvmInitW : NULL,
 +                                              1 );
 +            HEAP_free (dvmInitW);
 +          HEAP_free ( lpszOutputW );
 +        }
 +      HEAP_free ( lpszDeviceW );
 +      }
 +    HEAP_free ( lpszDriverW );
 +  }
 + return rc;
 +}
 +
 +
 +/*
 + * @implemented
 + */
 +BOOL
 +WINAPI
 +DeleteDC(HDC hDC)
 +{
 +  BOOL Ret = TRUE;
 +  PLDC pLDC = NULL;
 +  HANDLE hPrinter = NULL;
 +  ULONG hType = GDI_HANDLE_GET_TYPE(hDC);
 +
 +  pLDC = GdiGetLDC(hDC);
 +
 +  if (hType != GDILoObjType_LO_DC_TYPE)
 +  {
 +
 +     if ( !pLDC || hType == GDILoObjType_LO_METADC16_TYPE)
 +     {
 +        SetLastError(ERROR_INVALID_HANDLE);
 +        return FALSE;
 +     }
 +     if (pLDC->Flags & LDC_INIT_DOCUMENT) AbortDoc(hDC);
 +     if (pLDC->hPrinter)
 +     {
 +        DocumentEventEx(NULL, pLDC->hPrinter, hDC, DOCUMENTEVENT_DELETEDC, 0, NULL, 0, NULL);
 +        hPrinter = pLDC->hPrinter;
 +        pLDC->hPrinter = NULL;
 +     }
 +  }
 +
 +  Ret = NtGdiDeleteObjectApp(hDC);
 +
 +  if (Ret && pLDC )
 +  {
 +     DPRINT1("Delete the Local DC structure\n");
 +     LocalFree( pLDC );
 +  }
 +  if (hPrinter) fpClosePrinter(hPrinter);
 +  return Ret;
 +}
 +
 +/*
 + * @implemented
 + */
 +BOOL
 +WINAPI
 +DeleteObject(HGDIOBJ hObject)
 +{
 +  UINT Type = 0;
 +
 +  /* From Wine: DeleteObject does not SetLastError() on a null object */
 +  if(!hObject) return FALSE;
 +
 +  if (0 != ((DWORD) hObject & GDI_HANDLE_STOCK_MASK))
 +  { // Relax! This is a normal return!
 +     DPRINT("Trying to delete system object 0x%x\n", hObject);
 +     return TRUE;
 +  }
 +  // If you dont own it?! Get OUT!
 +  if(!GdiIsHandleValid(hObject)) return FALSE;
 +
 +  Type = GDI_HANDLE_GET_TYPE(hObject);
 +
 +  if ((Type == GDI_OBJECT_TYPE_METAFILE) ||
 +      (Type == GDI_OBJECT_TYPE_ENHMETAFILE))
 +     return FALSE;
 +
 +  switch (Type)
 +  {
 +     case GDI_OBJECT_TYPE_DC:
 +       return DeleteDC((HDC) hObject);
 +     case GDI_OBJECT_TYPE_COLORSPACE:
 +       return NtGdiDeleteColorSpace((HCOLORSPACE) hObject);
 +     case GDI_OBJECT_TYPE_REGION:
 +       return DeleteRegion((HRGN) hObject);
 +#if 0
 +     case GDI_OBJECT_TYPE_METADC:
 +       return MFDRV_DeleteObject( hObject );
 +     case GDI_OBJECT_TYPE_EMF:
 +     {
 +       PLDC pLDC = GdiGetLDC(hObject);
 +       if ( !pLDC ) return FALSE;
 +       return EMFDRV_DeleteObject( hObject );
 +     }
 +#endif
 +     case GDI_OBJECT_TYPE_FONT:
 +       break;
 +
 +     case GDI_OBJECT_TYPE_BRUSH:
 +     case GDI_OBJECT_TYPE_EXTPEN:
 +     case GDI_OBJECT_TYPE_PEN:
 +       {
 +          PBRUSH_ATTR Brh_Attr;
 +          PTEB pTeb;
 +
 +          if ((!GdiGetHandleUserData(hObject, (DWORD)Type, (PVOID) &Brh_Attr)) ||
 +              (Brh_Attr == NULL) ) break;
 +
 +          pTeb = NtCurrentTeb();
 +
 +          if (pTeb->Win32ThreadInfo == NULL) break;
 +
 +          if ((pTeb->GdiTebBatch.Offset + sizeof(GDIBSOBJECT)) <= GDIBATCHBUFSIZE)
 +          {
 +             PGDIBSOBJECT pgO = (PGDIBSOBJECT)(&pTeb->GdiTebBatch.Buffer[0] +
 +                                                      pTeb->GdiTebBatch.Offset);
 +             pgO->gbHdr.Cmd = GdiBCDelObj;
 +             pgO->gbHdr.Size = sizeof(GDIBSOBJECT);
 +             pgO->hgdiobj = hObject;
 +
 +             pTeb->GdiTebBatch.Offset += sizeof(GDIBSOBJECT);
 +             pTeb->GdiBatchCount++;
 +             if (pTeb->GdiBatchCount >= GDI_BatchLimit) NtGdiFlush();
 +             return TRUE;
 +          }
 +       break;
 +       }
 +     case GDI_OBJECT_TYPE_BITMAP:
 +     default:
 +       break;
 +  }
 +  return NtGdiDeleteObjectApp(hObject);
 +}
 +
 +INT
 +WINAPI
 +GetArcDirection( HDC hdc )
 +{
 +  return GetDCDWord( hdc, GdiGetArcDirection, 0);
 +}
 +
 +
 +INT
 +WINAPI
 +SetArcDirection( HDC hdc, INT nDirection )
 +{
 +  return GetAndSetDCDWord( hdc, GdiGetSetArcDirection, nDirection, 0, 0, 0 );
 +}
 +
 +
 +HGDIOBJ
 +WINAPI
 +GetDCObject( HDC hDC, INT iType)
 +{
 + if((iType == GDI_OBJECT_TYPE_BRUSH) ||
 +    (iType == GDI_OBJECT_TYPE_EXTPEN)||
 +    (iType == GDI_OBJECT_TYPE_PEN)   ||
 +    (iType == GDI_OBJECT_TYPE_COLORSPACE))
 + {
 +   HGDIOBJ hGO = NULL;
 +   PDC_ATTR Dc_Attr;
 +
 +   if (!hDC) return hGO;
 +
 +   if (!GdiGetHandleUserData((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return NULL;
 +
 +   switch (iType)
 +   {
 +     case GDI_OBJECT_TYPE_BRUSH:
 +          hGO = Dc_Attr->hbrush;
 +          break;
 +
 +     case GDI_OBJECT_TYPE_EXTPEN:
 +     case GDI_OBJECT_TYPE_PEN:
 +          hGO = Dc_Attr->hpen;
 +          break;
 +
 +     case GDI_OBJECT_TYPE_COLORSPACE:
 +          hGO = Dc_Attr->hColorSpace;
 +          break;
 +   }
 +   return hGO;
 + }
 + return NtGdiGetDCObject( hDC, iType );
 +}
 +
 +
 +/*
 + * @implemented
 + *
 + */
 +HGDIOBJ
 +WINAPI
 +GetCurrentObject(HDC hdc,
 +                 UINT uObjectType)
 +{
 +    switch(uObjectType)
 +    {
 +      case OBJ_EXTPEN:
 +      case OBJ_PEN:
 +        uObjectType = GDI_OBJECT_TYPE_PEN;
 +        break;
 +      case OBJ_BRUSH:
 +        uObjectType = GDI_OBJECT_TYPE_BRUSH;
 +        break;
 +      case OBJ_PAL:
 +        uObjectType = GDI_OBJECT_TYPE_PALETTE;
 +        break;
 +      case OBJ_FONT:
 +        uObjectType = GDI_OBJECT_TYPE_FONT;
 +        break;
 +      case OBJ_BITMAP:
 +        uObjectType = GDI_OBJECT_TYPE_BITMAP;
 +        break;
 +      case OBJ_COLORSPACE:
 +        uObjectType = GDI_OBJECT_TYPE_COLORSPACE;
 +        break;
 +      /* tests show that OBJ_REGION is explicitly ignored */
 +      case OBJ_REGION:
 +        return NULL;
 +      /* the SDK only mentions those above */
 +      default:
 +        SetLastError(ERROR_INVALID_PARAMETER);
 +        return NULL;
 +    }
 +    return  GetDCObject(hdc, uObjectType);
 +}
 +
 +/*
 + * @implemented
 + *
 + */
 +int
 +WINAPI
 +GetDeviceCaps(HDC hDC,
 +              int i)
 +{
 +  PDC_ATTR Dc_Attr;
 +  PLDC pLDC;
 +  PDEVCAPS pDevCaps = GdiDevCaps; // Primary display device capabilities.
 +  DPRINT("Device CAPS1\n");
 +
 +  if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
 +  {
 +     if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
 +     {
 +        if ( i == TECHNOLOGY) return DT_METAFILE;
 +        return 0;
 +     }
 +     else
 +     {
 +        pLDC = GdiGetLDC(hDC);
 +        if ( !pLDC )
 +        {
 +           SetLastError(ERROR_INVALID_HANDLE);
 +           return 0;
 +        }
 +        if (!(pLDC->Flags & LDC_DEVCAPS))
 +        {
 +           if (!NtGdiGetDeviceCapsAll(hDC, &pLDC->DevCaps))
 +              SetLastError(ERROR_INVALID_PARAMETER);
 +           pLDC->Flags |= LDC_DEVCAPS;
 +        }
 +        pDevCaps = &pLDC->DevCaps;
 +     }
 +  }
 +  else
 +  {
 +     if (!GdiGetHandleUserData((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr))
 +        return 0;
 +     if (!(Dc_Attr->ulDirty_ & DC_PRIMARY_DISPLAY) )
 +        return NtGdiGetDeviceCaps(hDC,i);
 +  }
 +  DPRINT("Device CAPS2\n");
 +
 +  switch (i)
 +  {
 +    case DRIVERVERSION:
 +      return pDevCaps->ulVersion;
 +
 +    case TECHNOLOGY:
 +      return pDevCaps->ulTechnology;
 +
 +    case HORZSIZE:
 +      return pDevCaps->ulHorzSize;
 +
 +    case VERTSIZE:
 +      return pDevCaps->ulVertSize;
 +
 +    case HORZRES:
 +      return pDevCaps->ulHorzRes;
 +
 +    case VERTRES:
 +      return pDevCaps->ulVertRes;
 +
 +    case LOGPIXELSX:
 +      return pDevCaps->ulLogPixelsX;
 +
 +    case LOGPIXELSY:
 +      return pDevCaps->ulLogPixelsY;
 +
 +    case BITSPIXEL:
 +      return pDevCaps->ulBitsPixel;
 +
 +    case PLANES:
 +      return pDevCaps->ulPlanes;
 +
 +    case NUMBRUSHES:
 +      return -1;
 +
 +    case NUMPENS:
 +      return pDevCaps->ulNumPens;
 +
 +    case NUMFONTS:
 +      return pDevCaps->ulNumFonts;
 +
 +    case NUMCOLORS:
 +      return pDevCaps->ulNumColors;
 +
 +    case ASPECTX:
 +      return pDevCaps->ulAspectX;
 +
 +    case ASPECTY:
 +      return pDevCaps->ulAspectY;
 +
 +    case ASPECTXY:
 +      return pDevCaps->ulAspectXY;
 +
 +    case CLIPCAPS:
 +      return CP_RECTANGLE;
 +
 +    case SIZEPALETTE:
 +      return pDevCaps->ulSizePalette;
 +
 +    case NUMRESERVED:
 +      return 20;
 +
 +    case COLORRES:
 +      return pDevCaps->ulColorRes;
 +
 +    case DESKTOPVERTRES:
 +      return pDevCaps->ulVertRes;
 +
 +    case DESKTOPHORZRES:
 +      return pDevCaps->ulHorzRes;
 +
 +    case BLTALIGNMENT:
 +      return pDevCaps->ulBltAlignment;
 +
 +    case SHADEBLENDCAPS:
 +      return pDevCaps->ulShadeBlend;
 +
 +    case COLORMGMTCAPS:
 +      return pDevCaps->ulColorMgmtCaps;
 +
 +    case PHYSICALWIDTH:
 +      return pDevCaps->ulPhysicalWidth;
 +
 +    case PHYSICALHEIGHT:
 +      return pDevCaps->ulPhysicalHeight;
 +
 +    case PHYSICALOFFSETX:
 +      return pDevCaps->ulPhysicalOffsetX;
 +
 +    case PHYSICALOFFSETY:
 +      return pDevCaps->ulPhysicalOffsetY;
 +
 +    case VREFRESH:
 +      return pDevCaps->ulVRefresh;
 +
 +    case RASTERCAPS:
 +      return pDevCaps->ulRasterCaps;
 +
 +    case CURVECAPS:
 +      return (CC_CIRCLES | CC_PIE | CC_CHORD | CC_ELLIPSES | CC_WIDE |
 +             CC_STYLED | CC_WIDESTYLED | CC_INTERIORS | CC_ROUNDRECT);
 +
 +    case LINECAPS:
 +      return (LC_POLYLINE | LC_MARKER | LC_POLYMARKER | LC_WIDE |
 +             LC_STYLED | LC_WIDESTYLED | LC_INTERIORS);
 +
 +    case POLYGONALCAPS:
 +      return (PC_POLYGON | PC_RECTANGLE | PC_WINDPOLYGON | PC_SCANLINE |
 +             PC_WIDE | PC_STYLED | PC_WIDESTYLED | PC_INTERIORS);
 +
 +    case TEXTCAPS:
 +      return pDevCaps->ulTextCaps;
 +
 +    case PDEVICESIZE:
 +    case SCALINGFACTORX:
 +    case SCALINGFACTORY:
 +    default:
 +      return 0;
 +  }
 +  return 0;
 +}
 +
 +/*
 + * @implemented
 + */
 +DWORD
 +WINAPI
 +GetRelAbs(
 +         HDC  hdc,
 +         DWORD dwIgnore
 +           )
 +{
 +  return GetDCDWord( hdc, GdiGetRelAbs, 0);
 +}
 +
 +
 +/*
 + * @implemented
 + */
 +INT
 +WINAPI
 +SetRelAbs(
 +      HDC hdc,
 +      INT Mode
 +      )
 +{
 +  return GetAndSetDCDWord( hdc, GdiGetSetRelAbs, Mode, 0, 0, 0 );
 +}
 +
 +
 +/*
 + * @implemented
 + */
 +DWORD
 +WINAPI
 +GetAndSetDCDWord( HDC hDC, INT u, DWORD dwIn, DWORD Unk1, DWORD Unk2, DWORD Unk3 )
 +{
 +  BOOL Ret = TRUE;
 +// Handle something other than a normal dc object.
 +  if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
 +  {
 +    if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
 +       return 0; //call MFDRV
 +    else
 +    {
 +       PLDC pLDC = GdiGetLDC(hDC);
 +       if ( !pLDC )
 +       {
 +           SetLastError(ERROR_INVALID_HANDLE);
 +           return 0;
 +       }
 +       if (pLDC->iType == LDC_EMFLDC)
 +       {
 +          Ret = TRUE; //call EMFDRV
 +          if (Ret)
 +             return u;
 +          return 0;
 +       }
 +    }
 +  }
 +  Ret = NtGdiGetAndSetDCDword( hDC, u, dwIn, (DWORD*) &u );
 +  if (Ret)
 +     return u;
 +  else
 +     SetLastError(ERROR_INVALID_HANDLE);
 +  return 0;
 +}
 +
 +
 +/*
 + * @implemented
 + */
 +DWORD
 +WINAPI
 +GetDCDWord( HDC hDC, INT u, DWORD Result )
 +{
 +  BOOL Ret = NtGdiGetDCDword( hDC, u, (DWORD*) &u );
 +  if (!Ret) return Result;
 +  else return u;
 +}
 +
 +
 +/*
 + * @implemented
 + */
 +BOOL
 +WINAPI
 +GetAspectRatioFilterEx(
 +                HDC hdc,
 +                LPSIZE lpAspectRatio
 +                      )
 +{
 +  return NtGdiGetDCPoint( hdc, GdiGetAspectRatioFilter, (LPPOINT) lpAspectRatio );
 +}
 +
 +
 +/*
 + * @implemented
 + */
 +BOOL
 +WINAPI
 +GetDCOrgEx(
 +    HDC hdc,
 +    LPPOINT lpPoint
 +    )
 +{
 +  return NtGdiGetDCPoint( hdc, GdiGetDCOrg, lpPoint );
 +}
 +
 +
 +/*
 + * @implemented
 + */
 +LONG
 +WINAPI
 +GetDCOrg(
 +    HDC hdc
 +    )
 +{
 +  // Officially obsolete by Microsoft
 +  POINT Pt;
 +  if (!GetDCOrgEx(hdc, &Pt))
 +    return 0;
 +  return(MAKELONG(Pt.x, Pt.y));
 +}
 +
 +
 +int
 +GetNonFontObject(HGDIOBJ hGdiObj, int cbSize, LPVOID lpBuffer)
 +{
 +  INT dwType;
 +
 +  hGdiObj = (HANDLE)GdiFixUpHandle(hGdiObj);
 +  dwType = GDI_HANDLE_GET_TYPE(hGdiObj);
 +
 +  if (!lpBuffer) // Should pass it all to Win32k and let god sort it out. ;^)
 +  {
 +    switch(dwType)
 +    {
 +      case GDI_OBJECT_TYPE_PEN:
 +        return sizeof(LOGPEN);
 +      case GDI_OBJECT_TYPE_BRUSH:
 +        return sizeof(LOGBRUSH);
 +      case GDI_OBJECT_TYPE_BITMAP:
 +        return sizeof(BITMAP);
 +      case GDI_OBJECT_TYPE_PALETTE:
 +        return sizeof(WORD);
 +      case GDI_OBJECT_TYPE_EXTPEN: /* we don't know the size, ask win32k */
 +        break;
 +    }
 +  }
 +
 +  switch(dwType)
 +  {
 +    case GDI_OBJECT_TYPE_PEN: //Check the structures and see if A & W are the same.
 +    case GDI_OBJECT_TYPE_EXTPEN:
 +    case GDI_OBJECT_TYPE_BRUSH: // Mixing Apples and Oranges?
 +    case GDI_OBJECT_TYPE_BITMAP:
 +    case GDI_OBJECT_TYPE_PALETTE:
 +      return NtGdiExtGetObjectW(hGdiObj, cbSize, lpBuffer);
 +
 +    case GDI_OBJECT_TYPE_DC:
 +    case GDI_OBJECT_TYPE_REGION:
 +    case GDI_OBJECT_TYPE_METAFILE:
 +    case GDI_OBJECT_TYPE_ENHMETAFILE:
 +    case GDI_OBJECT_TYPE_EMF:
 +      SetLastError(ERROR_INVALID_HANDLE);
 +  }
 +  return 0;
 +}
 +
 +
 +/*
 + * @implemented
 + */
 +int
 +WINAPI
 +GetObjectA(HGDIOBJ hGdiObj, int cbSize, LPVOID lpBuffer)
 +{
 +  ENUMLOGFONTEXDVW LogFont;
 +  DWORD dwType;
 +  INT Result = 0;
 +
 +  dwType = GDI_HANDLE_GET_TYPE(hGdiObj);
 +
 +  if(dwType == GDI_OBJECT_TYPE_COLORSPACE) //Stays here, processes struct A
 +  {
 +     SetLastError(ERROR_NOT_SUPPORTED);
 +     return 0;
 +  }
 +
 +  if (dwType == GDI_OBJECT_TYPE_FONT)
 +  {
 +    if (!lpBuffer)
 +    {
 +      return sizeof(LOGFONTA);
 +    }
 +    if (cbSize == 0)
 +    {
 +      /* Windows does not SetLastError() */
 +      return 0;
 +    }
 +    // ENUMLOGFONTEXDVW is the default size and should be the structure for
 +    // Entry->KernelData for Font objects.
 +    Result = NtGdiExtGetObjectW(hGdiObj, sizeof(ENUMLOGFONTEXDVW), &LogFont);
 +
 +    if (0 == Result)
 +    {
 +      return 0;
 +    }
 +
 +    switch (cbSize)
 +      {
 +         case sizeof(ENUMLOGFONTEXDVA):
 +         // need to move more here.
 +         case sizeof(ENUMLOGFONTEXA):
 +            EnumLogFontExW2A( (LPENUMLOGFONTEXA) lpBuffer, &LogFont.elfEnumLogfontEx );
 +            break;
 +
 +         case sizeof(ENUMLOGFONTA):
 +         // Same here, maybe? Check the structures.
 +         case sizeof(EXTLOGFONTA):
 +         // Same here
 +         case sizeof(LOGFONTA):
 +            LogFontW2A((LPLOGFONTA) lpBuffer, &LogFont.elfEnumLogfontEx.elfLogFont);
 +            break;
 +
 +         default:
 +            SetLastError(ERROR_BUFFER_OVERFLOW);
 +            return 0;
 +      }
 +    return cbSize;
 +  }
 +
 +  return GetNonFontObject(hGdiObj, cbSize, lpBuffer);
 +}
 +
 +
 +/*
 + * @implemented
 + */
 +int
 +WINAPI
 +GetObjectW(HGDIOBJ hGdiObj, int cbSize, LPVOID lpBuffer)
 +{
 +  DWORD dwType = GDI_HANDLE_GET_TYPE(hGdiObj);
 +  INT Result = 0;
 +
 +/*
 +  Check List:
 +  MSDN, "This can be a handle to one of the following: logical bitmap, a brush,
 +  a font, a palette, a pen, or a device independent bitmap created by calling
 +  the CreateDIBSection function."
 + */
 +  if(dwType == GDI_OBJECT_TYPE_COLORSPACE) //Stays here, processes struct W
 +  {
 +     SetLastError(ERROR_NOT_SUPPORTED); // Not supported yet.
 +     return 0;
 +  }
 +
 +  if (dwType == GDI_OBJECT_TYPE_FONT)
 +  {
 +    if (!lpBuffer)
 +    {
 +      return sizeof(LOGFONTW);
 +    }
 +
 +    if (cbSize == 0)
 +    {
 +      /* Windows does not SetLastError() */
 +      return 0;
 +    }
 +    // Poorly written apps are not ReactOS problem!
 +    // We fix it here if the size is larger than the default size.
 +    if( cbSize > (int)sizeof(ENUMLOGFONTEXDVW) ) cbSize = sizeof(ENUMLOGFONTEXDVW);
 +
 +    Result = NtGdiExtGetObjectW(hGdiObj, cbSize, lpBuffer); // Should handle the copy.
 +
 +    if (0 == Result)
 +    {
 +      return 0;
 +    }
 +    return cbSize;
 +  }
 +
 +  return GetNonFontObject(hGdiObj, cbSize, lpBuffer);
 +}
 +
 +
 +/*
 + * @implemented
 + */
 +COLORREF
 +WINAPI
 +GetDCBrushColor(
 +      HDC hdc
 +)
 +{
 +  PDC_ATTR Dc_Attr;
 +
 +  if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return CLR_INVALID;
 +  return (COLORREF) Dc_Attr->ulBrushClr;
 +}
 +
 +/*
 + * @implemented
 + */
 +COLORREF
 +WINAPI
 +GetDCPenColor(
 +      HDC hdc
 +)
 +{
 +  PDC_ATTR Dc_Attr;
 +
 +  if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return CLR_INVALID;
 +  return (COLORREF) Dc_Attr->ulPenClr;
 +}
 +
 +/*
 + * @implemented
 + */
 +COLORREF
 +WINAPI
 +SetDCBrushColor(
 +      HDC hdc,
 +      COLORREF crColor
 +)
 +{
 +  PDC_ATTR Dc_Attr;
 +  COLORREF OldColor = CLR_INVALID;
 +
 +  if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return OldColor;
 +  else
 +  {
 +    OldColor = (COLORREF) Dc_Attr->ulBrushClr;
 +    Dc_Attr->ulBrushClr = (ULONG) crColor;
 +
 +    if ( Dc_Attr->crBrushClr != crColor ) // if same, don't force a copy.
 +    {
 +       Dc_Attr->ulDirty_ |= DIRTY_FILL;
 +       Dc_Attr->crBrushClr = crColor;
 +    }
 +  }
 +  return OldColor;
 +}
 +
 +/*
 + * @implemented
 + */
 +COLORREF
 +WINAPI
 +SetDCPenColor(
 +      HDC hdc,
 +      COLORREF crColor
 +)
 +{
 +  PDC_ATTR Dc_Attr;
 +  COLORREF OldColor = CLR_INVALID;
 +
 +  if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return OldColor;
 +  else
 +  {
 +     OldColor = (COLORREF) Dc_Attr->ulPenClr;
 +     Dc_Attr->ulPenClr = (ULONG) crColor;
 +
 +    if ( Dc_Attr->crPenClr != crColor )
 +    {
 +       Dc_Attr->ulDirty_ |= DIRTY_LINE;
 +       Dc_Attr->crPenClr = crColor;
 +    }
 +  }
 +  return OldColor;
 +}
 +
 +/*
 + * @implemented
 + *
 + */
 +COLORREF
 +WINAPI
 +GetBkColor(HDC hdc)
 +{
 +  PDC_ATTR Dc_Attr;
 +  if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
 +  return Dc_Attr->ulBackgroundClr;
 +}
 +
 +/*
 + * @implemented
 + */
 +COLORREF
 +WINAPI
 +SetBkColor(
 +      HDC hdc,
 +      COLORREF crColor
 +)
 +{
 +  PDC_ATTR Dc_Attr;
 +  COLORREF OldColor = CLR_INVALID;
 +
 +  if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return OldColor;
 +#if 0
 +  if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
 +  {
 +    if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
 +      return MFDRV_SetBkColor( hDC, crColor );
 +    else
 +    {
 +      PLDC pLDC = Dc_Attr->pvLDC;
 +      if ( !pLDC )
 +      {
 +         SetLastError(ERROR_INVALID_HANDLE);
 +         return FALSE;
 +      }
 +      if (pLDC->iType == LDC_EMFLDC)
 +      {
 +        return EMFDRV_SetBkColor( hDC, crColor );
 +      }
 +    }
 +  }
 +#endif
 +  OldColor = (COLORREF) Dc_Attr->ulBackgroundClr;
 +  Dc_Attr->ulBackgroundClr = (ULONG) crColor;
 +
 +  if ( Dc_Attr->crBackgroundClr != crColor )
 +  {
 +     Dc_Attr->ulDirty_ |= (DIRTY_BACKGROUND|DIRTY_LINE|DIRTY_FILL);
 +     Dc_Attr->crBackgroundClr = crColor;
 +  }
 +  return OldColor;
 +}
 +
 +/*
 + * @implemented
 + *
 + */
 +int
 +WINAPI
 +GetBkMode(HDC hdc)
 +{
 +  PDC_ATTR Dc_Attr;
 +  if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
 +  return Dc_Attr->lBkMode;
 +}
 +
 +/*
 + * @implemented
 + *
 + */
 +int
 +WINAPI
 +SetBkMode(HDC hdc,
 +              int iBkMode)
 +{
 +  PDC_ATTR Dc_Attr;
 +  INT OldMode = 0;
 +
 +  if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return OldMode;
 +#if 0
 +  if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
 +  {
 +    if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
 +      return MFDRV_SetBkMode( hdc, iBkMode )
 +    else
 +    {
 +      PLDC pLDC = Dc_Attr->pvLDC;
 +      if ( !pLDC )
 +      {
 +         SetLastError(ERROR_INVALID_HANDLE);
 +         return FALSE;
 +      }
 +      if (pLDC->iType == LDC_EMFLDC)
 +      {
 +        return EMFDRV_SetBkMode( hdc, iBkMode )
 +      }
 +    }
 +  }
 +#endif
 +  OldMode = Dc_Attr->lBkMode;
 +  Dc_Attr->jBkMode = iBkMode; // Processed
 +  Dc_Attr->lBkMode = iBkMode; // Raw
 +  return OldMode;
 +}
 +
 +/*
 + * @implemented
 + *
 + */
 +int
 +WINAPI
 +GetPolyFillMode(HDC hdc)
 +{
 +  PDC_ATTR Dc_Attr;
 +  if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
 +  return Dc_Attr->lFillMode;
 +}
 +
 +/*
 + * @unimplemented
 + */
 +int
 +WINAPI
 +SetPolyFillMode(HDC hdc,
 +                int iPolyFillMode)
 +{
 +  INT fmode;
 +  PDC_ATTR Dc_Attr;
 +#if 0
 +  if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
 +  {
 +    if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
 +      return MFDRV_SetPolyFillMode( hdc, iPolyFillMode )
 +    else
 +    {
 +      PLDC pLDC = GdiGetLDC(hdc);
 +      if ( !pLDC )
 +      {
 +         SetLastError(ERROR_INVALID_HANDLE);
 +         return FALSE;
 +      }
 +      if (pLDC->iType == LDC_EMFLDC)
 +      {
 +        return EMFDRV_SetPolyFillMode( hdc, iPolyFillMode )
 +      }
 +    }
 +  }
 +#endif
 +  if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
 +
 +  if (NtCurrentTeb()->GdiTebBatch.HDC == hdc)
 +  {
 +     if (Dc_Attr->ulDirty_ & DC_MODE_DIRTY)
 +     {
 +       NtGdiFlush(); // Sync up Dc_Attr from Kernel space.
 +       Dc_Attr->ulDirty_ &= ~(DC_MODE_DIRTY|DC_FONTTEXT_DIRTY);
 +     }
 +  }
 +
 +  fmode = Dc_Attr->lFillMode;
 +  Dc_Attr->lFillMode = iPolyFillMode;
 +
 +  return fmode;
 +}
 +
 +/*
 + * @implemented
 + *
 + */
 +int
 +WINAPI
 +GetGraphicsMode(HDC hdc)
 +{
 +  PDC_ATTR Dc_Attr;
 +  if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
 +  return Dc_Attr->iGraphicsMode;
 +}
 +
 +/*
 + * @unimplemented
 + */
 +int
 +WINAPI
 +SetGraphicsMode(HDC hdc,
 +                int iMode)
 +{
 +  INT oMode;
 +  PDC_ATTR Dc_Attr;
 +  if ((iMode < GM_COMPATIBLE) || (iMode > GM_ADVANCED))
 +  {
 +     SetLastError(ERROR_INVALID_PARAMETER);
 +     return 0;
 +  }
 +  if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
 +
 +  if (iMode == Dc_Attr->iGraphicsMode) return iMode;
 +
 +  if (NtCurrentTeb()->GdiTebBatch.HDC == hdc)
 +  {
 +     if (Dc_Attr->ulDirty_ & DC_MODE_DIRTY)
 +     {
 +       NtGdiFlush(); // Sync up Dc_Attr from Kernel space.
 +       Dc_Attr->ulDirty_ &= ~(DC_MODE_DIRTY|DC_FONTTEXT_DIRTY);
 +     }
 +  }
 +/* One would think that setting the graphics mode to GM_COMPATIBLE
 + * would also reset the world transformation matrix to the unity
 + * matrix. However, in Windows, this is not the case. This doesn't
 + * make a lot of sense to me, but that's the way it is.
 + */
 +  oMode = Dc_Attr->iGraphicsMode;
 +  Dc_Attr->iGraphicsMode = iMode;
 +
 +  return oMode;
 +}
 +
 +/*
 + * @implemented
 + */
 +HDC
 +WINAPI
 +ResetDCW(
 +      HDC             hdc,
 +      CONST DEVMODEW  *lpInitData
 +      )
 +{
 +  NtGdiResetDC ( hdc, (PDEVMODEW)lpInitData, NULL, NULL, NULL);
 +  return hdc;
 +}
 +
 +
 +/*
 + * @implemented
 + */
 +HDC
 +WINAPI
 +ResetDCA(
 +      HDC             hdc,
 +      CONST DEVMODEA  *lpInitData
 +      )
 +{
 +  LPDEVMODEW InitDataW;
 +
 +  InitDataW = GdiConvertToDevmodeW((LPDEVMODEA)lpInitData);
 +
 +  NtGdiResetDC ( hdc, InitDataW, NULL, NULL, NULL);
 +  HEAP_free(InitDataW);
 +  return hdc;
 +}
 +
 +
 +/*
 + * @implemented
 + */
 +DWORD
 +WINAPI
 +GetObjectType(
 +      HGDIOBJ h
 +      )
 +{
 +  DWORD Ret = 0;
 +
 +  if(GdiIsHandleValid(h))
 +  {
 +    LONG Type = GDI_HANDLE_GET_TYPE(h);
 +    switch(Type)
 +    {
 +      case GDI_OBJECT_TYPE_PEN:
 +        Ret = OBJ_PEN;
 +        break;
 +      case GDI_OBJECT_TYPE_BRUSH:
 +        Ret = OBJ_BRUSH;
 +        break;
 +      case GDI_OBJECT_TYPE_BITMAP:
 +        Ret = OBJ_BITMAP;
 +        break;
 +      case GDI_OBJECT_TYPE_FONT:
 +        Ret = OBJ_FONT;
 +        break;
 +      case GDI_OBJECT_TYPE_PALETTE:
 +        Ret = OBJ_PAL;
 +        break;
 +      case GDI_OBJECT_TYPE_REGION:
 +        Ret = OBJ_REGION;
 +        break;
 +      case GDI_OBJECT_TYPE_DC:
 +        if ( GetDCDWord( h, GdiGetIsMemDc, 0))
 +        {
 +           Ret = OBJ_MEMDC;
 +        }
 +        else
 +           Ret = OBJ_DC;
 +        break;
 +      case GDI_OBJECT_TYPE_COLORSPACE:
 +        Ret = OBJ_COLORSPACE;
 +        break;
 +      case GDI_OBJECT_TYPE_METAFILE:
 +        Ret = OBJ_METAFILE;
 +        break;
 +      case GDI_OBJECT_TYPE_ENHMETAFILE:
 +        Ret = OBJ_ENHMETAFILE;
 +        break;
 +      case GDI_OBJECT_TYPE_METADC:
 +        Ret = OBJ_METADC;
 +        break;
 +      case GDI_OBJECT_TYPE_EXTPEN:
 +        Ret = OBJ_EXTPEN;
 +        break;
 +
 +      default:
 +        DPRINT1("GetObjectType: Magic 0x%08x not implemented\n", Type);
 +        break;
 +    }
 +  }
 +  else
 +    /* From Wine: GetObjectType does SetLastError() on a null object */
 +    SetLastError(ERROR_INVALID_HANDLE);
 +  return Ret;
 +}
 +
 +
 +/*
 + * @implemented
 + */
 +HGDIOBJ
 +WINAPI
 +GetStockObject(
 +              INT h
 +              )
 +{
 +  HGDIOBJ Ret = NULL;
 +  if ((h < 0) || (h >= NB_STOCK_OBJECTS)) return Ret;
 +  Ret = stock_objects[h];
 +  if (!Ret)
 +  {
 +      HGDIOBJ Obj = NtGdiGetStockObject( h );
 +
 +      if (GdiIsHandleValid(Obj))
 +      {
 +         stock_objects[h] = Obj;
 +         return Obj;
 +      }// Returns Null anyway.
 +  }
 +  return Ret;
 +}
 +
 +/* FIXME: include correct header */
 +HPALETTE WINAPI NtUserSelectPalette(HDC  hDC,
 +                            HPALETTE  hpal,
 +                            BOOL  ForceBackground);
 +
 +HPALETTE
 +WINAPI
 +SelectPalette(
 +    HDC hDC,
 +    HPALETTE hPal,
 +    BOOL bForceBackground)
 +{
 +#if 0
 +  if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
 +  {
 +    if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
 +      return MFDRV_SelectPalette( hDC, hPal, bForceBackground);
 +    else
 +    {
 +      PLDC pLDC = GdiGetLDC(hDC);
 +      if ( !pLDC )
 +      {
 +         SetLastError(ERROR_INVALID_HANDLE);
 +         return NULL;
 +      }
 +      if (pLDC->iType == LDC_EMFLDC)
 +      {
 +        if return EMFDRV_SelectPalette( hDC, hPal, bForceBackground);
 +      }
 +    }
 +  }
 +#endif
 +    return NtUserSelectPalette(hDC, hPal, bForceBackground);
 +}
 +
 +/*
 + * @implemented
 + *
 + */
 +int
 +WINAPI
 +GetMapMode(HDC hdc)
 +{
 +  PDC_ATTR Dc_Attr;
 +  if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
 +  return Dc_Attr->iMapMode;
 +}
 +
 +/*
 + * @implemented
 + */
 +INT
 +WINAPI
 +SetMapMode(
 +      HDC hdc,
 +      INT Mode
 +      )
 +{
 +  PDC_ATTR Dc_Attr;
 +  if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
 +#if 0
 +  if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
 +  {
 +    if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
 +      return MFDRV_SetMapMode(hdc, Mode);
 +    else
 +    {
 +      SetLastError(ERROR_INVALID_HANDLE);
 +      return 0;
 +    }
 +#endif
 +  // Force change if Isotropic is set for recompute.
 +  if ((Mode != Dc_Attr->iMapMode) || (Mode == MM_ISOTROPIC))
 +  {
 +      Dc_Attr->ulDirty_ &= ~SLOW_WIDTHS;
 +      return GetAndSetDCDWord( hdc, GdiGetSetMapMode, Mode, 0, 0, 0 );
 +  }
 +  return Dc_Attr->iMapMode;
 +}
 +
 +/*
 + * @implemented
 + *
 + */
 +int
 +WINAPI
 +GetStretchBltMode(HDC hdc)
 +{
 +  PDC_ATTR Dc_Attr;
 +  if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
 +  return Dc_Attr->lStretchBltMode;
 +}
 +
 +/*
 + * @implemented
 + */
 +int
 +WINAPI
 +SetStretchBltMode(HDC hdc, int iStretchMode)
 +{
 +  INT oSMode;
 +  PDC_ATTR Dc_Attr;
 +#if 0
 +  if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
 +  {
 +    if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
 +      return MFDRV_SetStretchBltMode( hdc, iStretchMode);
 +    else
 +    {
 +      PLDC pLDC = GdiGetLDC(hdc);
 +      if ( !pLDC )
 +      {
 +         SetLastError(ERROR_INVALID_HANDLE);
 +         return 0;
 +      }
 +      if (pLDC->iType == LDC_EMFLDC)
 +      {
 +        return EMFDRV_SetStretchBltMode( hdc, iStretchMode);
 +      }
 +    }
 +  }
 +#endif
 +  if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0;
 +
 +  oSMode = Dc_Attr->lStretchBltMode;
 +  Dc_Attr->lStretchBltMode = iStretchMode;
 +
 +  // Wine returns an error here. We set the default.
 +  if ((iStretchMode <= 0) || (iStretchMode > MAXSTRETCHBLTMODE)) iStretchMode = WHITEONBLACK;
 +
 +  Dc_Attr->jStretchBltMode = iStretchMode;
 +
 +  return oSMode;
 +}
 +
 +/*
 + * @implemented
 + */
 +HFONT
 +WINAPI
 +GetHFONT(HDC hdc)
 +{
 +  PDC_ATTR Dc_Attr;
 +  if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return NULL;
 +  return Dc_Attr->hlfntNew;
 +}
 +
 +
 +/*
 + * @implemented
 + *
 + */
 +HGDIOBJ
 +WINAPI
 +SelectObject(HDC hDC,
 +             HGDIOBJ hGdiObj)
 +{
 +    PDC_ATTR pDc_Attr;
 +    HGDIOBJ hOldObj = NULL;
 +    UINT uType;
-             pTeb = NtCurrentTeb();
-             if (((pTeb->GdiTebBatch.HDC == 0) ||
-                  (pTeb->GdiTebBatch.HDC == hDC)) &&
-                 ((pTeb->GdiTebBatch.Offset + sizeof(GDIBSOBJECT)) <= GDIBATCHBUFSIZE) &&
-                (!(pDc_Attr->ulDirty_ & DC_DIBSECTION)))
 +
 +    if(!GdiGetHandleUserData(hDC, GDI_OBJECT_TYPE_DC, (PVOID)&pDc_Attr))
 +    {
 +      SetLastError(ERROR_INVALID_HANDLE);
 +        return NULL;
 +    }
 +
 +    hGdiObj = GdiFixUpHandle(hGdiObj);
 +    if (!GdiIsHandleValid(hGdiObj))
 +    {
 +        return NULL;
 +    }
 +
 +    uType = GDI_HANDLE_GET_TYPE(hGdiObj);
 +
 +    switch (uType)
 +    {
 +        case GDI_OBJECT_TYPE_REGION:
 +            return (HGDIOBJ)ExtSelectClipRgn(hDC, hGdiObj, RGN_COPY);
 +
 +        case GDI_OBJECT_TYPE_BITMAP:
 +            return NtGdiSelectBitmap(hDC, hGdiObj);
 +
 +        case GDI_OBJECT_TYPE_BRUSH:
 +            hOldObj = pDc_Attr->hbrush;
 +            pDc_Attr->ulDirty_ |= DC_BRUSH_DIRTY;
 +            pDc_Attr->hbrush = hGdiObj;
 +            return hOldObj;
 +//            return NtGdiSelectBrush(hDC, hGdiObj);
 +
 +        case GDI_OBJECT_TYPE_PEN:
 +        case GDI_OBJECT_TYPE_EXTPEN:
 +            hOldObj = pDc_Attr->hpen;
 +            pDc_Attr->ulDirty_ |= DC_PEN_DIRTY;
 +            pDc_Attr->hpen = hGdiObj;
 +            return hOldObj;
 +//            return NtGdiSelectPen(hDC, hGdiObj);
 +
 +        case GDI_OBJECT_TYPE_FONT:
 +            hOldObj = pDc_Attr->hlfntNew;
 +            if (hOldObj == hGdiObj) return hOldObj;
++
 +            pDc_Attr->ulDirty_ &= ~SLOW_WIDTHS;
 +            pDc_Attr->ulDirty_ |= DIRTY_CHARSET;
 +            pDc_Attr->hlfntNew = hGdiObj;
-               PGDIBSOBJECT pgO = (PGDIBSOBJECT)(&pTeb->GdiTebBatch.Buffer[0] +
-                                                 pTeb->GdiTebBatch.Offset);
-               pgO->gbHdr.Cmd = GdiBCSelObj;
-               pgO->gbHdr.Size = sizeof(GDIBSOBJECT);
-               pgO->hgdiobj = hGdiObj;
-               pTeb->GdiTebBatch.Offset += sizeof(GDIBSOBJECT);
-               pTeb->GdiTebBatch.HDC = hDC;
-               pTeb->GdiBatchCount++;
-               if (pTeb->GdiBatchCount >= GDI_BatchLimit) NtGdiFlush();
-               return hOldObj;
++
++            if (!(pDc_Attr->ulDirty_ & DC_DIBSECTION))
 +            {
++                PGDIBSOBJECT pgO;
++
++                pgO = GdiAllocBatchCommand(hDC, GdiBCSelObj);
++                if (pgO)
++                {
++                    pgO->hgdiobj = hGdiObj;
++                    return hOldObj;
++                }
 +            }
++
 +            // default for select object font
 +            return NtGdiSelectFont(hDC, hGdiObj);
 +
 +#if 0
 +        case GDI_OBJECT_TYPE_METADC:
 +            return MFDRV_SelectObject( hDC, hGdiObj);
 +        case GDI_OBJECT_TYPE_EMF:
 +            PLDC pLDC = GdiGetLDC(hDC);
 +            if ( !pLDC ) return NULL;
 +            return EMFDRV_SelectObject( hDC, hGdiObj);
 +#endif
 +        case GDI_OBJECT_TYPE_COLORSPACE:
 +            SetColorSpace(hDC, (HCOLORSPACE) hGdiObj);
 +            return NULL;
 +
 +        case GDI_OBJECT_TYPE_PALETTE:
 +        default:
 +            SetLastError(ERROR_INVALID_FUNCTION);
 +            return NULL;
 +    }
 +
 +    return NULL;
 +}
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 0000000,974bd06..974bd06
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
Simple merge
index 0000000,b5e106b..b5e106b
mode 000000,100644..100644
--- /dev/null
index 0000000,aaac943..aaac943
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 0000000,28b5d3e..28b5d3e
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
Simple merge
index 0000000,60e4eff..60e4eff
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 0000000,304b087..304b087
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
index 0000000,7f09e1b..7f09e1b
mode 000000,100644..100644
--- /dev/null
index 0000000,3a0497e..3a0497e
mode 000000,100644..100644
--- /dev/null
index 0000000,5024787..5024787
mode 000000,100644..100644
--- /dev/null
index 0000000,5024787..5024787
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc lib/lib.rbuild
Simple merge
index 0000000,5e27e2b..5e27e2b
mode 000000,100644..100644
--- /dev/null
index 0000000,51b4d48..51b4d48
mode 000000,100644..100644
--- /dev/null
index 0000000,a80f202..a80f202
mode 000000,100644..100644
--- /dev/null
index 0000000,7e18735..7e18735
mode 000000,100644..100644
--- /dev/null
index 0000000,e2b360a..e2b360a
mode 000000,100644..100644
--- /dev/null
index 0000000,b1dfaaf..b1dfaaf
mode 000000,100644..100644
--- /dev/null
index 0000000,e6269ff..e6269ff
mode 000000,100644..100644
--- /dev/null
index 0000000,bd49be1..bd49be1
mode 000000,100644..100644
--- /dev/null
index 0000000,a5233e5..a5233e5
mode 000000,100644..100644
--- /dev/null
index 0000000,c62d40a..c62d40a
mode 000000,100644..100644
--- /dev/null
index 0000000,7dff17f..7dff17f
mode 000000,100644..100644
--- /dev/null
index 0000000,a0edbe2..a0edbe2
mode 000000,100644..100644
--- /dev/null
index 0000000,7c758a7..7c758a7
mode 000000,100644..100644
--- /dev/null
index 0000000,c7adede..c7adede
mode 000000,100644..100644
--- /dev/null
index 0000000,c049f3f..c049f3f
mode 000000,100644..100644
--- /dev/null
index 0000000,92dbc51..92dbc51
mode 000000,100644..100644
--- /dev/null
index 0000000,b23403b..b23403b
mode 000000,100644..100644
--- /dev/null
index 0000000,9f3e7b0..9f3e7b0
mode 000000,100644..100644
--- /dev/null
index 0000000,f5d3df9..f5d3df9
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
Simple merge
index 0000000,f8352ba..f8352ba
mode 000000,100644..100644
--- /dev/null
index bc2517d,087ab20..087ab20
Binary files differ
index a946963,f2179ab..f2179ab
Binary files differ
index a3fd5a9,78983c5..78983c5
Binary files differ
index ecc9037,0ac8b68..0ac8b68
Binary files differ
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 0000000,8814890..8814890
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 0000000,0cd1e50..0cd1e50
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 34292a8,0000000..79d769c
mode 100644,000000..100644
--- /dev/null
@@@ -1,28 -1,0 +1,30 @@@
 +<?xml version="1.0"?>
 +<!DOCTYPE module SYSTEM "../../../../tools/rbuild/project.dtd">
 +<module name="win32csr" type="win32dll" installbase="system32" installname="win32csr.dll">
 +      <importlibrary definition="win32csr.spec" />
 +      <include base="win32csr">.</include>
 +      <include base="csrss">include</include>
 +      <include base="ReactOS">include/reactos/subsys</include>
 +      <include base="ReactOS">include/reactos/drivers</include>
 +      <include base="console">.</include>
 +      <compilerflag compilerset="gcc">-fms-extensions</compilerflag>
 +      <library>ntdll</library>
 +      <library delayimport="true">user32</library>
 +      <library delayimport="true">gdi32</library>
 +      <library delayimport="true">advapi32</library>
 +      <library>delayimp</library>
 +      <library>win32ksys</library>
 +      <library>psapi</library>
++      <library>pseh</library>
 +      <pch>w32csr.h</pch>
 +      <file>alias.c</file>
 +      <file>conio.c</file>
 +      <file>desktopbg.c</file>
 +      <file>dllmain.c</file>
 +      <file>exitros.c</file>
 +      <file>guiconsole.c</file>
++      <file>harderror.c</file>
 +      <file>tuiconsole.c</file>
 +      <file>appswitch.c</file>
 +      <file>win32csr.rc</file>
 +</module>
Simple merge
Simple merge
Simple merge
Simple merge
index d5a0388,0000000..9a6c076
mode 100644,000000..100644
--- /dev/null
@@@ -1,353 -1,0 +1,353 @@@
- #include <w32k.h>
 +/*
 + * COPYRIGHT:        See COPYING in the top level directory
 + * PROJECT:          ReactOS kernel
 + * PURPOSE:          GDI alpha blending functions
 + * FILE:             subsystems/win32/win32k/eng/alphablend.c
 + * PROGRAMER:        Jason Filby
 + */
 +
++#include <win32k.h>
 +
 +#define NDEBUG
 +#include <debug.h>
 +
 +
 +/*
 + * @implemented
 + */
 +BOOL
 +APIENTRY
 +EngAlphaBlend(IN SURFOBJ *psoDest,
 +              IN SURFOBJ *psoSource,
 +              IN CLIPOBJ *ClipRegion,
 +              IN XLATEOBJ *ColorTranslation,
 +              IN PRECTL DestRect,
 +              IN PRECTL SourceRect,
 +              IN BLENDOBJ *BlendObj)
 +{
 +    RECTL              SourceStretchedRect;
 +    SIZEL              SourceStretchedSize;
 +    HBITMAP            SourceStretchedBitmap = 0;
 +    SURFOBJ*           SourceStretchedObj = NULL;
 +    RECTL              InputRect;
 +    RECTL              OutputRect;
 +    RECTL              ClipRect;
 +    RECTL              CombinedRect;
 +    RECTL              Rect;
 +    POINTL             Translate;
 +    INTENG_ENTER_LEAVE EnterLeaveSource;
 +    INTENG_ENTER_LEAVE EnterLeaveDest;
 +    SURFOBJ*           InputObj;
 +    SURFOBJ*           OutputObj;
 +    LONG               Width;
 +    LONG               ClippingType;
 +    RECT_ENUM          RectEnum;
 +    BOOL               EnumMore;
 +    INT                i;
 +    BOOLEAN            Ret;
 +
 +    DPRINT("EngAlphaBlend(psoDest:0x%p, psoSource:0x%p, ClipRegion:0x%p, ColorTranslation:0x%p,\n", psoDest, psoSource, ClipRegion, ColorTranslation);
 +    DPRINT("              DestRect:{0x%x, 0x%x, 0x%x, 0x%x}, SourceRect:{0x%x, 0x%x, 0x%x, 0x%x},\n",
 +           DestRect->left, DestRect->top, DestRect->right, DestRect->bottom,
 +           SourceRect->left, SourceRect->top, SourceRect->right, SourceRect->bottom);
 +    DPRINT("              BlendObj:{0x%x, 0x%x, 0x%x, 0x%x}\n", BlendObj->BlendFunction.BlendOp,
 +           BlendObj->BlendFunction.BlendFlags, BlendObj->BlendFunction.SourceConstantAlpha,
 +           BlendObj->BlendFunction.AlphaFormat);
 +
 +    /* Validate output */
 +    OutputRect = *DestRect;
 +    if (OutputRect.right < OutputRect.left)
 +    {
 +        OutputRect.left = DestRect->right;
 +        OutputRect.right = DestRect->left;
 +    }
 +    if (OutputRect.bottom < OutputRect.top)
 +    {
 +        OutputRect.left = DestRect->right;
 +        OutputRect.right = DestRect->left;
 +    }
 +
 +    /* Validate input */
 +    InputRect = *SourceRect;
 +    if ( (InputRect.top < 0) || (InputRect.bottom < 0) ||
 +         (InputRect.left < 0) || (InputRect.right < 0) ||
 +         InputRect.right > psoSource->sizlBitmap.cx ||
 +         InputRect.bottom > psoSource->sizlBitmap.cy )
 +    {
 +        SetLastWin32Error(ERROR_INVALID_PARAMETER);
 +        return FALSE;
 +    }
 +
 +    if (psoDest == psoSource &&
 +            !(OutputRect.left >= SourceRect->right || InputRect.left >= OutputRect.right ||
 +              OutputRect.top >= SourceRect->bottom || InputRect.top >= OutputRect.bottom))
 +    {
 +        DPRINT1("Source and destination rectangles overlap!\n");
 +        return FALSE;
 +    }
 +
 +    if (BlendObj->BlendFunction.BlendOp != AC_SRC_OVER)
 +    {
 +        DPRINT1("BlendOp != AC_SRC_OVER (0x%x)\n", BlendObj->BlendFunction.BlendOp);
 +        return FALSE;
 +    }
 +    if (BlendObj->BlendFunction.BlendFlags != 0)
 +    {
 +        DPRINT1("BlendFlags != 0 (0x%x)\n", BlendObj->BlendFunction.BlendFlags);
 +        return FALSE;
 +    }
 +    if ((BlendObj->BlendFunction.AlphaFormat & ~AC_SRC_ALPHA) != 0)
 +    {
 +        DPRINT1("Unsupported AlphaFormat (0x%x)\n", BlendObj->BlendFunction.AlphaFormat);
 +        return FALSE;
 +    }
 +
 +    /* Check if there is anything to draw */
 +    if (ClipRegion != NULL &&
 +            (ClipRegion->rclBounds.left >= ClipRegion->rclBounds.right ||
 +             ClipRegion->rclBounds.top >= ClipRegion->rclBounds.bottom))
 +    {
 +        /* Nothing to do */
 +        return TRUE;
 +    }
 +
 +    /* Stretch source if needed */
 +    if (OutputRect.right - OutputRect.left != InputRect.right - InputRect.left ||
 +            OutputRect.bottom - OutputRect.top != InputRect.bottom - InputRect.top)
 +    {
 +        SourceStretchedSize.cx = OutputRect.right - OutputRect.left;
 +        SourceStretchedSize.cy = OutputRect.bottom - OutputRect.top;
 +        Width = DIB_GetDIBWidthBytes(SourceStretchedSize.cx, BitsPerFormat(psoSource->iBitmapFormat));
 +        /* FIXME: Maybe it is a good idea to use EngCreateDeviceBitmap and IntEngStretchBlt
 +                  if possible to get a HW accelerated stretch. */
 +        SourceStretchedBitmap = EngCreateBitmap(SourceStretchedSize, Width, psoSource->iBitmapFormat,
 +                                                BMF_TOPDOWN | BMF_NOZEROINIT, NULL);
 +        if (SourceStretchedBitmap == 0)
 +        {
 +            DPRINT1("EngCreateBitmap failed!\n");
 +            return FALSE;
 +        }
 +        SourceStretchedObj = EngLockSurface((HSURF)SourceStretchedBitmap);
 +        if (SourceStretchedObj == NULL)
 +        {
 +            DPRINT1("EngLockSurface failed!\n");
 +            EngDeleteSurface((HSURF)SourceStretchedBitmap);
 +            return FALSE;
 +        }
 +
 +        SourceStretchedRect.left = 0;
 +        SourceStretchedRect.right = SourceStretchedSize.cx;
 +        SourceStretchedRect.top = 0;
 +        SourceStretchedRect.bottom = SourceStretchedSize.cy;
 +        if (!IntEngStretchBlt(SourceStretchedObj, psoSource, NULL, NULL, NULL,
 +                           &SourceStretchedRect, SourceRect,
 +                           NULL, NULL, NULL, ROP3_TO_ROP4(SRCCOPY)))
 +        {
 +            DPRINT1("EngStretchBlt failed!\n");
 +            EngFreeMem(SourceStretchedObj->pvBits);
 +            EngUnlockSurface(SourceStretchedObj);
 +            EngDeleteSurface((HSURF)SourceStretchedBitmap);
 +            return FALSE;
 +        }
 +        InputRect.top = SourceStretchedRect.top;
 +        InputRect.bottom = SourceStretchedRect.bottom;
 +        InputRect.left = SourceStretchedRect.left;
 +        InputRect.right = SourceStretchedRect.right;
 +        psoSource = SourceStretchedObj;
 +    }
 +
 +    /* Now call the DIB function */
 +    if (!IntEngEnter(&EnterLeaveSource, psoSource, &InputRect, TRUE, &Translate, &InputObj))
 +    {
 +        if (SourceStretchedObj != NULL)
 +        {
 +            EngFreeMem(SourceStretchedObj->pvBits);
 +            EngUnlockSurface(SourceStretchedObj);
 +        }
 +        if (SourceStretchedBitmap != 0)
 +        {
 +            EngDeleteSurface((HSURF)SourceStretchedBitmap);
 +        }
 +        return FALSE;
 +    }
 +    InputRect.left +=  Translate.x;
 +    InputRect.right +=  Translate.x;
 +    InputRect.top +=  Translate.y;
 +    InputRect.bottom +=  Translate.y;
 +
 +  &nbs