set most of trunk svn property eol-style:native
authorJohannes Anderwald <johannes.anderwald@reactos.org>
Wed, 8 Nov 2006 11:47:44 +0000 (11:47 +0000)
committerJohannes Anderwald <johannes.anderwald@reactos.org>
Wed, 8 Nov 2006 11:47:44 +0000 (11:47 +0000)
svn path=/trunk/; revision=24701

689 files changed:
reactos/base/applications/cacls/lang/De.rc
reactos/base/applications/cacls/lang/Nl.rc
reactos/base/applications/cacls/lang/Ru.rc
reactos/base/applications/control/control.dsp
reactos/base/applications/control/control.dsw
reactos/base/applications/control/lang/Hu.rc
reactos/base/applications/control/lang/Uk.rc
reactos/base/applications/devmgmt/En.rc
reactos/base/applications/devmgmt/about.c
reactos/base/applications/devmgmt/devmgmt.c
reactos/base/applications/devmgmt/devmgmt.rbuild
reactos/base/applications/devmgmt/devmgmt.rc
reactos/base/applications/devmgmt/enumdevices.c
reactos/base/applications/devmgmt/mainwnd.c
reactos/base/applications/devmgmt/manifest.xml
reactos/base/applications/devmgmt/misc.c
reactos/base/applications/devmgmt/precomp.h
reactos/base/applications/devmgmt/resource.h
reactos/base/applications/games/solitaire/ReadMe.txt
reactos/base/applications/games/solitaire/de.rc
reactos/base/applications/games/solitaire/en.rc
reactos/base/applications/games/solitaire/sol.rc
reactos/base/applications/games/winemine/Nl.rc
reactos/base/applications/getfirefox/lang/Fr.rc
reactos/base/applications/getfirefox/lang/Hu.rc
reactos/base/applications/getfirefox/lang/Nl.rc
reactos/base/applications/getfirefox/lang/Sv.rc
reactos/base/applications/ibrowser/De.rc
reactos/base/applications/ibrowser/Fr.rc
reactos/base/applications/ibrowser/Hu.rc
reactos/base/applications/ibrowser/Makefile-MinGW
reactos/base/applications/ibrowser/Makefile-precomp
reactos/base/applications/ibrowser/Ro.rc
reactos/base/applications/ibrowser/Sv.rc
reactos/base/applications/ibrowser/ibrowser.dsp
reactos/base/applications/ibrowser/ibrowser.dsw
reactos/base/applications/ibrowser/ibrowser.rc
reactos/base/applications/ibrowser/ibrowser_intres.rc
reactos/base/applications/ibrowser/make_ibrowser.dsp
reactos/base/applications/ibrowser/readme.txt
reactos/base/applications/imagesoft/about.c
reactos/base/applications/imagesoft/floatwindow.c
reactos/base/applications/imagesoft/imageprop.c
reactos/base/applications/imagesoft/imagesoft.c
reactos/base/applications/imagesoft/imagesoft.rc
reactos/base/applications/imagesoft/imgedwnd.c
reactos/base/applications/imagesoft/lang/En.rc
reactos/base/applications/imagesoft/mainwnd.c
reactos/base/applications/imagesoft/manifest.xml
reactos/base/applications/imagesoft/misc.c
reactos/base/applications/imagesoft/opensave.c
reactos/base/applications/imagesoft/precomp.h
reactos/base/applications/imagesoft/resource.h
reactos/base/applications/imagesoft/tooldock.c
reactos/base/applications/msconfig/lang/Hu.rc
reactos/base/applications/network/ipconfig/En.rc
reactos/base/applications/network/ipconfig/resource.h
reactos/base/applications/network/net/net.rbuild
reactos/base/applications/notepad/notepad.h
reactos/base/applications/regedit/lang/Hu.rc
reactos/base/applications/regedit/lang/Pl.rc
reactos/base/applications/regedit/lang/Sv.rc
reactos/base/applications/regedit/regedit.h
reactos/base/applications/reporterror/lang/Hu.rc
reactos/base/applications/reporterror/reporterror.rc
reactos/base/applications/sc/print.c
reactos/base/applications/sc/sc.rc
reactos/base/applications/screensavers/matrix/Permission.txt
reactos/base/applications/screensavers/matrix/ReadMe.txt
reactos/base/applications/screensavers/matrix/config.c
reactos/base/applications/screensavers/matrix/globals.h
reactos/base/applications/screensavers/matrix/matrix.c
reactos/base/applications/screensavers/matrix/matrix.dsp
reactos/base/applications/screensavers/matrix/matrix.h
reactos/base/applications/screensavers/matrix/matrix.rbuild
reactos/base/applications/screensavers/matrix/matrix.rc
reactos/base/applications/screensavers/matrix/message.c
reactos/base/applications/screensavers/matrix/message.h
reactos/base/applications/screensavers/matrix/password.c
reactos/base/applications/screensavers/matrix/resource.h
reactos/base/applications/screensavers/matrix/screensave.c
reactos/base/applications/screensavers/matrix/settings.c
reactos/base/applications/screensavers/screensavers.rbuild
reactos/base/applications/screenshot/screenshot.c
reactos/base/applications/screenshot/screenshot.h
reactos/base/applications/screenshot/screenshot.rbuild
reactos/base/applications/screenshot/screenshot.rc
reactos/base/applications/servman/De.rc
reactos/base/applications/servman/En.rc
reactos/base/applications/servman/about.c
reactos/base/applications/servman/control.c
reactos/base/applications/servman/create.c
reactos/base/applications/servman/delete.c
reactos/base/applications/servman/export.c
reactos/base/applications/servman/mainwnd.c
reactos/base/applications/servman/misc.c
reactos/base/applications/servman/precomp.h
reactos/base/applications/servman/progress.c
reactos/base/applications/servman/propsheet.c
reactos/base/applications/servman/query.c
reactos/base/applications/servman/resource.h
reactos/base/applications/servman/servman.c
reactos/base/applications/servman/servman.rc
reactos/base/applications/servman/start.c
reactos/base/applications/servman/stop.c
reactos/base/applications/sm/win32err.c
reactos/base/applications/sndvol32/Hu.rc
reactos/base/applications/sndvol32/Nl.rc
reactos/base/applications/taskmgr/Hu.rc
reactos/base/applications/taskmgr/Nl.rc
reactos/base/applications/taskmgr/Sv.rc
reactos/base/applications/taskmgr/Uk.rc
reactos/base/applications/testsets/rpcrt4/context_handles/client.c
reactos/base/applications/testsets/rpcrt4/context_handles/ctx.acf
reactos/base/applications/testsets/rpcrt4/context_handles/ctx.h
reactos/base/applications/testsets/rpcrt4/context_handles/ctx.idl
reactos/base/applications/testsets/rpcrt4/context_handles/ctx_c.c
reactos/base/applications/testsets/rpcrt4/context_handles/ctx_s.c
reactos/base/applications/testsets/rpcrt4/context_handles/server.c
reactos/base/applications/testsets/smss/movefile/movefile.cpp
reactos/base/applications/testsets/smss/movefile/movefile.rbuild
reactos/base/applications/testsets/smss/movefile/movefile.rc
reactos/base/applications/testsets/smss/smss.rbuild
reactos/base/applications/testsets/testsets.rbuild
reactos/base/applications/testsets/user32/drawcaption/capicon.c
reactos/base/applications/testsets/user32/drawcaption/capicon.rc
reactos/base/applications/testsets/user32/drawcaption/drawcap.c
reactos/base/applications/testsets/user32/drawcaption/drawcap.rc
reactos/base/applications/testsets/user32/drawcaption/drawcaption.rbuild
reactos/base/applications/testsets/user32/drawcaption/resource.h
reactos/base/applications/testsets/user32/sysicon/sysicon.c
reactos/base/applications/testsets/user32/sysicon/sysicon.rbuild
reactos/base/applications/testsets/user32/user32.rbuild
reactos/base/applications/tsclient/MissTosca.sln
reactos/base/applications/tsclient/mstsc/mstsc.cpp
reactos/base/applications/tsclient/mstsc/mstsc.vcproj
reactos/base/applications/tsclient/mstsc/stdafx.cpp
reactos/base/applications/tsclient/mstsc/stdafx.h
reactos/base/applications/tsclient/mstscax/mstscax.cpp
reactos/base/applications/tsclient/mstscax/mstscax.vcproj
reactos/base/applications/tsclient/mstscax/stdafx.cpp
reactos/base/applications/tsclient/mstscax/stdafx.h
reactos/base/applications/tsclient/porting-tools/mstscax/mstscax.cpp
reactos/base/applications/tsclient/porting-tools/mstscax/mstscax.def
reactos/base/applications/tsclient/porting-tools/mstscax/mstscax.sln
reactos/base/applications/tsclient/porting-tools/mstscax/mstscax.vcproj
reactos/base/applications/tsclient/porting-tools/mstscax/stdafx.cpp
reactos/base/applications/tsclient/porting-tools/mstscax/stdafx.h
reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/activex.cpp
reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib.idl
reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib.rc
reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_h.h
reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_i.c
reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_redist.idl
reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_redist.rc
reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_redist_h.h
reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/mstsclib_redist_i.c
reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/rdesktop-core-tester.cpp
reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/rdesktop-core-tester.vcproj
reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/stdafx.cpp
reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/stdafx.h
reactos/base/applications/tsclient/porting-tools/rdesktop-core-tester/typelib.rh
reactos/base/applications/tsclient/rdesktop/COPYING
reactos/base/applications/tsclient/rdesktop/Makefile.in
reactos/base/applications/tsclient/rdesktop/README
reactos/base/applications/tsclient/rdesktop/bitmap.c
reactos/base/applications/tsclient/rdesktop/bootstrap
reactos/base/applications/tsclient/rdesktop/cache.c
reactos/base/applications/tsclient/rdesktop/channels.c
reactos/base/applications/tsclient/rdesktop/cliprdr.c
reactos/base/applications/tsclient/rdesktop/config.guess
reactos/base/applications/tsclient/rdesktop/config.sub
reactos/base/applications/tsclient/rdesktop/configure.ac
reactos/base/applications/tsclient/rdesktop/constants.h
reactos/base/applications/tsclient/rdesktop/disk.c
reactos/base/applications/tsclient/rdesktop/disk.h
reactos/base/applications/tsclient/rdesktop/doc/AUTHORS
reactos/base/applications/tsclient/rdesktop/doc/ChangeLog
reactos/base/applications/tsclient/rdesktop/doc/HACKING
reactos/base/applications/tsclient/rdesktop/doc/TODO
reactos/base/applications/tsclient/rdesktop/doc/ipv6.txt
reactos/base/applications/tsclient/rdesktop/doc/keymap-names.txt
reactos/base/applications/tsclient/rdesktop/doc/keymapping.txt
reactos/base/applications/tsclient/rdesktop/doc/licensing.txt
reactos/base/applications/tsclient/rdesktop/doc/lspci-channel.txt
reactos/base/applications/tsclient/rdesktop/doc/patches.txt
reactos/base/applications/tsclient/rdesktop/doc/rdesktop.1
reactos/base/applications/tsclient/rdesktop/doc/redirection.txt
reactos/base/applications/tsclient/rdesktop/doc/seamlessrdp-channel.txt
reactos/base/applications/tsclient/rdesktop/ewmhints.c
reactos/base/applications/tsclient/rdesktop/indent-all.sh
reactos/base/applications/tsclient/rdesktop/install-sh
reactos/base/applications/tsclient/rdesktop/iso.c
reactos/base/applications/tsclient/rdesktop/keymaps/convert-map
reactos/base/applications/tsclient/rdesktop/licence.c
reactos/base/applications/tsclient/rdesktop/lspci.c
reactos/base/applications/tsclient/rdesktop/mcs.c
reactos/base/applications/tsclient/rdesktop/mppc.c
reactos/base/applications/tsclient/rdesktop/orders.c
reactos/base/applications/tsclient/rdesktop/orders.h
reactos/base/applications/tsclient/rdesktop/parse.h
reactos/base/applications/tsclient/rdesktop/printer.c
reactos/base/applications/tsclient/rdesktop/printercache.c
reactos/base/applications/tsclient/rdesktop/proto.h
reactos/base/applications/tsclient/rdesktop/proto.head
reactos/base/applications/tsclient/rdesktop/proto.tail
reactos/base/applications/tsclient/rdesktop/pstcache.c
reactos/base/applications/tsclient/rdesktop/rdesktop-core.vcproj
reactos/base/applications/tsclient/rdesktop/rdesktop.c
reactos/base/applications/tsclient/rdesktop/rdesktop.h
reactos/base/applications/tsclient/rdesktop/rdesktop.spec
reactos/base/applications/tsclient/rdesktop/rdp.c
reactos/base/applications/tsclient/rdesktop/rdp5.c
reactos/base/applications/tsclient/rdesktop/rdpdr.c
reactos/base/applications/tsclient/rdesktop/rdpsnd.c
reactos/base/applications/tsclient/rdesktop/rdpsnd_libao.c
reactos/base/applications/tsclient/rdesktop/rdpsnd_oss.c
reactos/base/applications/tsclient/rdesktop/rdpsnd_sgi.c
reactos/base/applications/tsclient/rdesktop/rdpsnd_sun.c
reactos/base/applications/tsclient/rdesktop/scancodes.h
reactos/base/applications/tsclient/rdesktop/seamless.c
reactos/base/applications/tsclient/rdesktop/seamless.h
reactos/base/applications/tsclient/rdesktop/secure.c
reactos/base/applications/tsclient/rdesktop/serial.c
reactos/base/applications/tsclient/rdesktop/tcp.c
reactos/base/applications/tsclient/rdesktop/types.h
reactos/base/applications/tsclient/rdesktop/uiports/makefile_nanox
reactos/base/applications/tsclient/rdesktop/uiports/makefile_qt
reactos/base/applications/tsclient/rdesktop/uiports/makefile_qte
reactos/base/applications/tsclient/rdesktop/uiports/makefile_svga
reactos/base/applications/tsclient/rdesktop/uiports/makefile_xxx
reactos/base/applications/tsclient/rdesktop/uiports/nanoxreadme.txt
reactos/base/applications/tsclient/rdesktop/uiports/nanoxwin.c
reactos/base/applications/tsclient/rdesktop/uiports/qtereadme.txt
reactos/base/applications/tsclient/rdesktop/uiports/qtewin.cpp
reactos/base/applications/tsclient/rdesktop/uiports/qtewin.h
reactos/base/applications/tsclient/rdesktop/uiports/qtreadme.txt
reactos/base/applications/tsclient/rdesktop/uiports/qtwin.cpp
reactos/base/applications/tsclient/rdesktop/uiports/qtwin.h
reactos/base/applications/tsclient/rdesktop/uiports/readme.txt
reactos/base/applications/tsclient/rdesktop/uiports/svgareadme.txt
reactos/base/applications/tsclient/rdesktop/uiports/svgawin.c
reactos/base/applications/tsclient/rdesktop/uiports/xxxwin.c
reactos/base/applications/tsclient/rdesktop/vnc/vnc.c
reactos/base/applications/tsclient/rdesktop/vnc/vnc.h
reactos/base/applications/tsclient/rdesktop/vnc/x11stubs.c
reactos/base/applications/tsclient/rdesktop/vnc/x11stubs.h
reactos/base/applications/tsclient/rdesktop/xclip.c
reactos/base/applications/tsclient/rdesktop/xkeymap.c
reactos/base/applications/tsclient/rdesktop/xproto.h
reactos/base/applications/tsclient/rdesktop/xwin.c
reactos/base/applications/utils/ps/ps.rbuild
reactos/base/applications/utils/rosperf/gradient.c
reactos/base/applications/utils/sdkparse/sdkparse.dsp
reactos/base/applications/utils/sdkparse/sdkparse.dsw
reactos/base/applications/utils/utils.rbuild
reactos/base/applications/winefile/make_winefile.dsp
reactos/base/applications/winefile/make_winefile.vcproj
reactos/base/applications/winefile/winefile.dsp
reactos/base/applications/winefile/winefile.dsw
reactos/base/applications/winefile/winefile.sln
reactos/base/applications/winefile/winefile.vcproj
reactos/base/applications/winver/winver.c
reactos/base/applications/wordpad/about.c
reactos/base/applications/wordpad/dialogs.c
reactos/base/applications/wordpad/editwnd.c
reactos/base/applications/wordpad/lang/En.rc
reactos/base/applications/wordpad/mainwnd.c
reactos/base/applications/wordpad/manifest.xml
reactos/base/applications/wordpad/misc.c
reactos/base/applications/wordpad/opensave.c
reactos/base/applications/wordpad/precomp.h
reactos/base/applications/wordpad/resource.h
reactos/base/applications/wordpad/wordpad.c
reactos/base/applications/wordpad/wordpad.rbuild
reactos/base/applications/wordpad/wordpad.rc
reactos/base/services/tcpsvcs/discard.c
reactos/base/services/tcpsvcs/quotes
reactos/base/services/umpnpmgr/umpnpmgr.rc
reactos/base/setup/reactos/Cz.rc
reactos/base/setup/reactos/Fr.rc
reactos/base/setup/reactos/Hu.rc
reactos/base/setup/reactos/Nl.rc
reactos/base/setup/reactos/Sv.rc
reactos/base/setup/usetup/inffile.c
reactos/base/setup/usetup/inffile.h
reactos/base/setup/vmwinst/Hu.rc
reactos/base/setup/welcome/Fr.rc
reactos/base/setup/welcome/Hu.rc
reactos/base/setup/welcome/It.rc
reactos/base/setup/welcome/Uk.rc
reactos/base/shell/cmd/De.rc
reactos/base/shell/cmd/Hu.rc
reactos/base/shell/explorer/Make-rosshell-MinGW
reactos/base/shell/explorer/Make-rosshell.mak
reactos/base/shell/explorer/explorer-cn.rc
reactos/base/shell/explorer/explorer.dsp
reactos/base/shell/explorer/explorer.dsw
reactos/base/shell/explorer/explorer.exe.manifest
reactos/base/shell/explorer/explorer.sln
reactos/base/shell/explorer/explorer.vcproj
reactos/base/shell/explorer/make_explorer.dsp
reactos/base/shell/explorer/make_explorer.vcproj
reactos/base/shell/explorer/make_rosshell.dsp
reactos/base/shell/explorer/notifyhook/notifyhook.dsp
reactos/base/shell/explorer/notifyhook/notifyhook.vcproj
reactos/base/shell/explorer/rosshell.dsp
reactos/base/shell/explorer/rosshell.dsw
reactos/base/shell/explorer/utility/shellclasses.dsp
reactos/base/shell/explorer/utility/shellclasses.dsw
reactos/base/shell/explorer/wexplorer.dsw
reactos/base/system/expand/Hu.rc
reactos/base/system/expand/Sv.rc
reactos/base/system/regsvr32/Hu.rc
reactos/base/system/rundll32/Hu.rc
reactos/base/system/userinit/lang/En.rc
reactos/base/system/userinit/lang/Hu.rc
reactos/base/system/userinit/lang/Sv.rc
reactos/base/system/winlogon/Hu.rc
reactos/base/system/winlogon/Sv.rc
reactos/base/system/winlogon/screensaver.c
reactos/boot/bootdata/bootcdregtest/bootcdregtest.rbuild
reactos/boot/bootdata/livecdregtest/livecdregtest.rbuild
reactos/boot/freeldr/bootsect/isobtrt.asm
reactos/boot/freeldr/fdebug/De.rc
reactos/boot/freeldr/fdebug/Hu.rc
reactos/boot/freeldr/fdebug/No.rc
reactos/boot/freeldr/fdebug/Pl.rc
reactos/boot/freeldr/fdebug/fdebug.rbuild
reactos/boot/freeldr/freeldr/include/ui/gui.h
reactos/boot/freeldr/freeldr/include/ui/tui.h
reactos/boot/freeldr/freeldr/include/winldr.h
reactos/boot/freeldr/freeldr/windows/peloader.c
reactos/dll/3rdparty/freetype/README.CVS
reactos/dll/3rdparty/freetype/autogen.sh
reactos/dll/3rdparty/freetype/builds/amiga/makefile
reactos/dll/3rdparty/freetype/builds/amiga/makefile.os4
reactos/dll/3rdparty/freetype/builds/win32/visualc/freetype.dsp
reactos/dll/3rdparty/freetype/builds/win32/visualc/freetype.dsw
reactos/dll/3rdparty/freetype/builds/win32/visualc/freetype.sln
reactos/dll/3rdparty/freetype/builds/win32/visualc/freetype.vcproj
reactos/dll/3rdparty/freetype/src/autofit/module.mk
reactos/dll/3rdparty/freetype/src/autofit/rules.mk
reactos/dll/3rdparty/freetype/src/otvalid/Jamfile
reactos/dll/3rdparty/freetype/src/otvalid/module.mk
reactos/dll/3rdparty/freetype/src/otvalid/rules.mk
reactos/dll/cpl/access/De.rc
reactos/dll/cpl/access/Fr.rc
reactos/dll/cpl/access/Hu.rc
reactos/dll/cpl/access/Pl.rc
reactos/dll/cpl/appwiz/appwiz.dsp
reactos/dll/cpl/appwiz/appwiz.dsw
reactos/dll/cpl/desk/It.rc
reactos/dll/cpl/hdwwiz/Hu.rc
reactos/dll/cpl/hdwwiz/Uk.rc
reactos/dll/cpl/intl/hu.rc
reactos/dll/cpl/intl/uk.rc
reactos/dll/cpl/intl_new/En.rc
reactos/dll/cpl/liccpa/De.rc
reactos/dll/cpl/liccpa/liccpa.def
reactos/dll/cpl/main/Fr.rc
reactos/dll/cpl/main/Hu.rc
reactos/dll/cpl/mmsys/Fr.rc
reactos/dll/cpl/mmsys/Uk.rc
reactos/dll/cpl/ncpa/ncpa.dsp
reactos/dll/cpl/ncpa/ncpa.dsw
reactos/dll/cpl/sysdm/custclicklink.c
reactos/dll/cpl/sysdm/hardprof.c
reactos/dll/cpl/sysdm/licence.c
reactos/dll/cpl/sysdm/precomp.h
reactos/dll/cpl/sysdm/startrec.c
reactos/dll/cpl/timedate/Uk.rc
reactos/dll/directx/ddraw/cleanup.c
reactos/dll/directx/ddraw/soft/surface_callbacks_hel.c
reactos/dll/directx/dsound/dxroslayer/dxros_layer.h
reactos/dll/directx/dsound/dxroslayer/dxrosdrv_querydsounddesc.c
reactos/dll/directx/dsound/dxroslayer/dxrosdrv_querydsoundiface.c
reactos/dll/directx/dsound/dxroslayer/dxroslayer.c
reactos/dll/directx/dsound/dxroslayer/getguidfromstring.c
reactos/dll/directx/dsound/regsvr.c
reactos/dll/keyboard/kbdheb/kbdheb.def
reactos/dll/keyboard/kbdheb/kbdheb.rc
reactos/dll/keyboard/kbdhu/kbdhu.c
reactos/dll/keyboard/kbdhu/kbdhu.def
reactos/dll/keyboard/kbdhu/kbdhu.rc
reactos/dll/keyboard/kbdpo/kbdpo.def
reactos/dll/keyboard/kbdpo/kbdpo.rc
reactos/dll/keyboard/kbdru/kbdru.def
reactos/dll/lib.mak
reactos/dll/ntdll/dbg/dbgui.c
reactos/dll/win32/cfgmgr32/cfgmgr32.def
reactos/dll/win32/devmgr/Hu.rc
reactos/dll/win32/dnsapi/dnsapi/precomp.h
reactos/dll/win32/gdi32/include/gdi32p.h
reactos/dll/win32/icmp/Makefile.in
reactos/dll/win32/icmp/icmp.dsp
reactos/dll/win32/imagehlp/precomp.h
reactos/dll/win32/kernel32/include/baseheap.h
reactos/dll/win32/kernel32/thread/i386/thread.S
reactos/dll/win32/mpr/mpr_Ru.rc
reactos/dll/win32/mpr/mpr_Sv.rc
reactos/dll/win32/mpr/mpr_Uk.rc
reactos/dll/win32/msacm/msacm_De.rc
reactos/dll/win32/msacm/msacm_Hu.rc
reactos/dll/win32/msgina/En.rc
reactos/dll/win32/msgina/gui.c
reactos/dll/win32/msgina/tui.c
reactos/dll/win32/newdev/newdev.spec
reactos/dll/win32/oleaut32/Makefile.in
reactos/dll/win32/oleaut32/oleaut32_Tr.rc
reactos/dll/win32/opengl32/opengl32.dsp
reactos/dll/win32/opengl32/opengl32.dsw
reactos/dll/win32/rpcrt4/ndr_contexth.c
reactos/dll/win32/rpcrt4/ndr_contexth.h
reactos/dll/win32/samsrv/samsrv.c
reactos/dll/win32/samsrv/samsrv.def
reactos/dll/win32/secur32/precomp.h
reactos/dll/win32/setupapi/res/icons/Icon_Licence/Tango.txt
reactos/dll/win32/setupapi/res/icons/icons_res.rc
reactos/dll/win32/setupapi/res/lang/Bg.rc
reactos/dll/win32/setupapi/res/lang/Cs.rc
reactos/dll/win32/setupapi/res/lang/Da.rc
reactos/dll/win32/setupapi/res/lang/De.rc
reactos/dll/win32/setupapi/res/lang/En.rc
reactos/dll/win32/setupapi/res/lang/Eo.rc
reactos/dll/win32/setupapi/res/lang/Es.rc
reactos/dll/win32/setupapi/res/lang/Fi.rc
reactos/dll/win32/setupapi/res/lang/Fr.rc
reactos/dll/win32/setupapi/res/lang/Hu.rc
reactos/dll/win32/setupapi/res/lang/It.rc
reactos/dll/win32/setupapi/res/lang/Ja.rc
reactos/dll/win32/setupapi/res/lang/Ko.rc
reactos/dll/win32/setupapi/res/lang/Nl.rc
reactos/dll/win32/setupapi/res/lang/No.rc
reactos/dll/win32/setupapi/res/lang/Pl.rc
reactos/dll/win32/setupapi/res/lang/Pt.rc
reactos/dll/win32/setupapi/res/lang/Ru.rc
reactos/dll/win32/setupapi/res/lang/Sv.rc
reactos/dll/win32/setupapi/res/lang/Tr.rc
reactos/dll/win32/shdocvw/Hu.rc
reactos/dll/win32/shell32/avi_res.rc
reactos/dll/win32/shell32/bitmap_res.rc
reactos/dll/win32/shell32/icon_res.rc
reactos/dll/win32/shell32/res/avis/Licence/Tango.txt
reactos/dll/win32/shell32/res/icons/Icon_Licence/Tango.txt
reactos/dll/win32/shlwapi/Makefile.in
reactos/dll/win32/shlwapi/shlwapi_Hu.rc
reactos/dll/win32/syssetup/syssetup_Hu.rc
reactos/dll/win32/user32/Hu.rc
reactos/dll/win32/user32/windows/spy.c
reactos/dll/win32/userenv/Hu.rc
reactos/dll/win32/vdmdbg/vdmdbg.c
reactos/dll/win32/vdmdbg/vdmdbg.def
reactos/dll/win32/vdmdbg/vdmdbg.h
reactos/dll/win32/wininet/inet_ntop.c
reactos/dll/win32/wininet/wininet_Hu.rc
reactos/dll/win32/wininet/wininet_Tr.rc
reactos/dll/win32/winmm/midimap/midimap.drv.spec
reactos/dll/win32/winmm/midimap/midimap.spec
reactos/dll/win32/winmm/wavemap/msacm.drv.spec
reactos/dll/win32/winmm/wavemap/msacm.spec
reactos/dll/win32/winmm/winmm_Hu.rc
reactos/dll/win32/winsta/winsta.def
reactos/drivers/base/bootvid/bootvid.def
reactos/drivers/base/bootvid/vid.c
reactos/drivers/base/bootvid/vid_vga.c
reactos/drivers/base/bootvid/vid_vgatext.c
reactos/drivers/base/bootvid/vid_xbox.c
reactos/drivers/test/kmtest/ntos_ex.c
reactos/drivers/test/kmtest/ntos_ob.c
reactos/drivers/usb/miniport/common/usbcommon_types.h
reactos/drivers/usb/miniport/usbohci/ohci.c
reactos/drivers/usb/miniport/usbuhci/uhci.h
reactos/drivers/usb/nt4compat/usbdriver/devmgr.h
reactos/drivers/usb/nt4compat/usbdriver/events.h
reactos/drivers/usb/nt4compat/usbdriver/irplist.h
reactos/drivers/usb/nt4compat/usbdriver/mouse.c
reactos/drivers/usb/nt4compat/usbdriver/mouse.h
reactos/drivers/usb/usbd/usbd.def
reactos/drivers/usb/usbd/usbd.rc
reactos/drivers/usb/usbport/core_drivers/usbkey.c
reactos/hal/halx86/generic/irq.S
reactos/hal/halx86/generic/systimer.S
reactos/include/ddk/ddkernel.h
reactos/include/psdk/amvideo.h
reactos/include/psdk/in6addr.h
reactos/include/psdk/inaddr.h
reactos/include/psdk/intrin.h
reactos/include/psdk/ndrtypes.h
reactos/include/psdk/ntgdi.h
reactos/include/psdk/sdkddkver.h
reactos/include/reactos/arc/setupblk.h
reactos/include/reactos/chew/chew.h
reactos/include/reactos/idl/lsa.acf
reactos/include/reactos/idl/pnp.idl
reactos/include/reactos/idl/svcctl.idl
reactos/include/reactos/rosldr.h
reactos/include/reactos/win32k/ntgdibad.h
reactos/include/reactos/win32k/ntusrtyp.h
reactos/include/reactos/wine/guiddef.h
reactos/lib/3rdparty/bzip2/dlltest.dsp
reactos/lib/3rdparty/bzip2/libbz2.dsp
reactos/lib/3rdparty/expat/examples/elements.dsp
reactos/lib/3rdparty/expat/examples/elements.vcproj
reactos/lib/3rdparty/expat/examples/outline.dsp
reactos/lib/3rdparty/expat/examples/outline.vcproj
reactos/lib/3rdparty/expat/expat.dsw
reactos/lib/3rdparty/expat/gennmtab/gennmtab.dsp
reactos/lib/3rdparty/expat/lib/expat.dsp
reactos/lib/3rdparty/expat/lib/expat_static.dsp
reactos/lib/3rdparty/expat/lib/expatw.dsp
reactos/lib/3rdparty/expat/lib/expatw_static.dsp
reactos/lib/3rdparty/expat/tests/benchmark/benchmark.dsp
reactos/lib/3rdparty/expat/tests/benchmark/benchmark.dsw
reactos/lib/3rdparty/expat/xmlwf/xmlwf.dsp
reactos/lib/3rdparty/expat/xmlwf/xmlwf.vcproj
reactos/lib/3rdparty/zlib/contrib/asm386/zlibvc.dsp
reactos/lib/3rdparty/zlib/contrib/asm386/zlibvc.dsw
reactos/lib/3rdparty/zlib/contrib/minizip/zlibvc.dsp
reactos/lib/3rdparty/zlib/contrib/minizip/zlibvc.dsw
reactos/lib/cmlib/cmdata.h
reactos/lib/cmlib/cminit.c
reactos/lib/cmlib/cmlib.h
reactos/lib/cmlib/cmlib.mak
reactos/lib/cmlib/cmlib.rbuild
reactos/lib/cmlib/hivebin.c
reactos/lib/cmlib/hivecell.c
reactos/lib/cmlib/hivedata.h
reactos/lib/cmlib/hiveinit.c
reactos/lib/cmlib/hivesum.c
reactos/lib/cmlib/hivewrt.c
reactos/lib/crt/math/i386/atan_asm.s
reactos/lib/crt/math/i386/log10_asm.s
reactos/lib/crt/math/pow_asm.c
reactos/lib/crt/math/s_modf.c
reactos/lib/intrlck/i386/compareexchange.c
reactos/lib/intrlck/i386/decrement.c
reactos/lib/intrlck/i386/exchange.c
reactos/lib/intrlck/i386/exchangeadd.c
reactos/lib/intrlck/i386/increment.c
reactos/lib/recyclebin/openclose.c
reactos/lib/recyclebin/readme.txt
reactos/lib/recyclebin/recyclebin.c
reactos/lib/recyclebin/recyclebin.h
reactos/lib/recyclebin/recyclebin.rbuild
reactos/lib/recyclebin/recyclebin_private.h
reactos/lib/recyclebin/recyclebin_v5.c
reactos/lib/recyclebin/recyclebin_v5.h
reactos/lib/recyclebin/refcount.c
reactos/lib/rtl/debug.c
reactos/lib/rtl/i386/rtlmem.s
reactos/lib/rtl/i386/rtlswap.S
reactos/lib/rtl/rtlp.h
reactos/lib/rtl/sprintf.c
reactos/lib/rtl/swprintf.c
reactos/lib/rtl/vectoreh.c
reactos/lib/smlib/precomp.h
reactos/lib/string/abs.c
reactos/lib/string/atoi.c
reactos/lib/string/atoi64.c
reactos/lib/string/atol.c
reactos/lib/string/bsearch.c
reactos/lib/string/itoa.c
reactos/lib/string/itow.c
reactos/lib/string/labs.c
reactos/lib/string/lfind.c
reactos/lib/string/mbstowcs.c
reactos/lib/string/rand.c
reactos/lib/string/splitp.c
reactos/lib/string/strrev.c
reactos/lib/string/strset.c
reactos/lib/string/strtol.c
reactos/lib/string/strtoul.c
reactos/lib/string/wcsnset.c
reactos/lib/string/wcsrev.c
reactos/lib/string/wcstol.c
reactos/lib/string/wcstombs.c
reactos/lib/string/wcstoul.c
reactos/lib/string/wtoi.c
reactos/lib/string/wtoi64.c
reactos/lib/string/wtol.c
reactos/media/doc/win32k_refs.txt
reactos/media/doc/winsta and desktops.txt
reactos/media/drivers/etc/KDBinit
reactos/media/inf/acpi.inf
reactos/media/inf/display.inf
reactos/media/inf/fdc.inf
reactos/media/inf/hdc.inf
reactos/media/inf/keyboard.inf
reactos/media/inf/machine.inf
reactos/media/inf/msmouse.inf
reactos/media/inf/netamd.inf
reactos/media/inf/netisa.inf
reactos/media/inf/netrtpnt.inf
reactos/media/inf/nettcpip.inf
reactos/media/inf/ports.inf
reactos/media/inf/usb.inf
reactos/media/inf/usbport.inf
reactos/media/inf/usbstor.inf
reactos/media/inf/xboxdisp.inf
reactos/media/wallpapers/wallpapers.txt
reactos/ntoskrnl/KrnlFun.c
reactos/ntoskrnl/deprecated/irq.c
reactos/ntoskrnl/deprecated/irqhand.S
reactos/ntoskrnl/ex/atom.c
reactos/ntoskrnl/ex/i386/ioport.S
reactos/ntoskrnl/ex/keyedevt.c
reactos/ntoskrnl/include/internal/hal.h
reactos/ntoskrnl/include/internal/i386/intrin_i.h
reactos/ntoskrnl/include/internal/io_x.h
reactos/ntoskrnl/include/internal/ke_x.h
reactos/ntoskrnl/include/internal/ob_x.h
reactos/ntoskrnl/include/internal/ps_i.h
reactos/ntoskrnl/include/internal/ps_x.h
reactos/ntoskrnl/include/internal/vdm.h
reactos/ntoskrnl/io/iomgr/drvrlist.c
reactos/ntoskrnl/io/iomgr/iofunc.c
reactos/ntoskrnl/ke/except.c
reactos/ntoskrnl/ke/i386/clock.S
reactos/ntoskrnl/ke/i386/cpu.c
reactos/ntoskrnl/ke/i386/mtrr.c
reactos/ntoskrnl/ke/i386/patpge.c
reactos/ntoskrnl/ke/i386/usercall.c
reactos/ntoskrnl/ke/i386/v86vdm.c
reactos/ntoskrnl/ke/krnlinit.c
reactos/ntoskrnl/ke/thrdobj.c
reactos/ntoskrnl/ke/thrdschd.c
reactos/ntoskrnl/lpc/ntlpc/close.c
reactos/ntoskrnl/lpc/ntlpc/complete.c
reactos/ntoskrnl/lpc/ntlpc/connect.c
reactos/ntoskrnl/lpc/ntlpc/create.c
reactos/ntoskrnl/lpc/ntlpc/listen.c
reactos/ntoskrnl/lpc/ntlpc/lpc.h
reactos/ntoskrnl/lpc/ntlpc/lpc_x.h
reactos/ntoskrnl/lpc/ntlpc/port.c
reactos/ntoskrnl/lpc/ntlpc/reply.c
reactos/ntoskrnl/lpc/ntlpc/send.c
reactos/ntoskrnl/tests/symtest.c
reactos/ntoskrnl/vdm/vdmexec.c
reactos/ntoskrnl/vdm/vdmmain.c
reactos/proxy.mak
reactos/regtests/winetests/cabinet/cabinet.rbuild
reactos/regtests/winetests/cabinet/testlist.c
reactos/regtests/winetests/msi/msi.rbuild
reactos/regtests/winetests/msi/testlist.c
reactos/regtests/winetests/msvcrt/dir.c
reactos/regtests/winetests/msvcrt/msvcrt_test.dsp
reactos/subsystems/ntvdm/Hu.rc
reactos/subsystems/win32/win32k/include/bitmaps.h
reactos/subsystems/win32/win32k/include/brush.h
reactos/subsystems/win32/win32k/include/coord.h
reactos/subsystems/win32/win32k/include/dc.h
reactos/subsystems/win32/win32k/include/driver.h
reactos/subsystems/win32/win32k/include/gdifloat.h
reactos/subsystems/win32/win32k/include/gdiobj.h
reactos/subsystems/win32/win32k/include/misc.h
reactos/subsystems/win32/win32k/include/ntuser.h
reactos/subsystems/win32/win32k/include/pen.h
reactos/subsystems/win32/win32k/include/region.h
reactos/subsystems/win32/win32k/include/userfuncs.h
reactos/subsystems/win32/win32k/misc/i386/atan2_asm.s
reactos/subsystems/win32/win32k/misc/i386/ceil_asm.s
reactos/subsystems/win32/win32k/misc/i386/cos_asm.s
reactos/subsystems/win32/win32k/misc/i386/floor_asm.s
reactos/subsystems/win32/win32k/misc/i386/sin_asm.s
reactos/subsystems/win32/win32k/misc/usrheap.c
reactos/subsystems/win32/win32k/ntuser/ntuser.c
reactos/subsystems/win32/win32k/ntuser/session.c
reactos/tools/create_nls/unicode.org/ReactOS/ReadMe
reactos/tools/create_nls/unicode.org/ReactOS/ibmcp861.diff
reactos/tools/pefixup.mak
reactos/tools/raddr2line.mak
reactos/tools/rbuild/backend/msvc/genguid.cpp
reactos/tools/rbuild/backend/msvc/msvc.cpp
reactos/tools/rbuild/backend/msvc/msvc.h
reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp
reactos/tools/rbuild/makefile
reactos/tools/rbuild/rbuild.dsp
reactos/tools/rbuild/rbuild.dsw
reactos/tools/rbuild/rbuild.sln
reactos/tools/rbuild/rbuild.vcproj
reactos/tools/sysreg/namedpipe_reader.cpp
reactos/tools/sysreg/namedpipe_reader.h
reactos/tools/sysreg/os_support.cpp
reactos/tools/sysreg/os_support.h
reactos/tools/sysreg/unicode.cpp
reactos/tools/sysreg/unicode.h
reactos/tools/tools-check.mak
reactos/tools/winebuild/winebuild.mak

index ccbc65e..99dc7a0 100644 (file)
@@ -1,79 +1,79 @@
-/*\r
- *  German language file by Daniel Reimer <EmuandCo> 2006-06-15\r
- */\r
-\r
-LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
-\r
-IDS_HELP, "Ändert Datei-ACLs (Access Control List) oder zeigt sie an.\n\n\\r
-CACLS Dateiname [/T] [/E] [/C] [/G Benutzer:Zugriff] [/R Benutzer [...]]\n\\r
-                [/P Benutzer:Zugriff [...]] [/D Benutzer [...]]\n\\r
-  Dateiname            ACLs für angegebene Datei anzeigen.\n\\r
-  /T                   ACLs der angegebenen Datei im aktuellen Verzeichnis\n\\r
-                       und allen Unterverzeichnissen ändern.\n\\r
-  /E                   ACL bearbeiten anstatt sie zu ersetzen.\n\\r
-  /C                   Ändern der ACLs bei Zugriffsverletzung fortsetzen.\n\\r
-  /G Benutzer:Zugriff  Angegebene Zugriffsarten zulassen.\n\\r
-                       Zugriff kann sein: R Lesen\n\\r
-                                          W  Schreiben\n\\r
-                                          C  Ändern (Schreiben)\n\\r
-                                          F  Vollzugriff\n\\r
-  /R Benutzer          Zugriffsrechte des Benutzers aufheben (gültig mit /E).\n\\r
-  /P Benutzer:Zugriff  Zugriffsrechte des Benutzers ersetzen.\n\\r
-                       Zugriff kann sein: N  Kein\n\\r
-                                          R  Lesen\n\\r
-                                          W  Schreiben\n\\r
-                                          C  Ändern (Schreiben)\n\\r
-                                          F  Vollzugriff\n\\r
-   /D Benutzer         Zugriff für Benutzer verweigern.\n\\r
-Platzhalterzeichen (Wildcards) werden für Dateiname unterstützt.\n\\r
-Mehrere Benutzer können in einem Befehl angegeben werden.\n\n\\r
-Abkürzungen:\n\\r
-   CI - Containervererbung.\n\\r
-        Der ACE-Eintrag wird von Verzeichnissen geerbt.\n\\r
-   OI - Objektvererbung.\n\\r
-        Der ACE-Eintrag wird von Dateien geerbt.\n\\r
-   IO - Nur vererben.\n\\r
-        Der ACE-Eintrag bezieht sich nicht auf\n\\r
-        die aktuelle Datei/das aktuelle Verzeichnis.\n"\r
-\r
-IDS_ABBR_CI, "(CI)"\r
-IDS_ABBR_OI, "(OI)"\r
-IDS_ABBR_IO, "(IO)"\r
-IDS_ABBR_FULL, "F"\r
-IDS_ABBR_READ, "R"\r
-IDS_ABBR_WRITE, "W"\r
-IDS_ABBR_CHANGE, "C"\r
-IDS_ABBR_NONE, "N"\r
-IDS_ALLOW, ""\r
-IDS_DENY, "(DENY)"\r
-IDS_SPECIAL_ACCESS, "(special access:)"\r
-IDS_GENERIC_READ, "GENERIC_READ"\r
-IDS_GENERIC_WRITE, "GENERIC_WRITE"\r
-IDS_GENERIC_EXECUTE, "GENERIC_EXECUTE"\r
-IDS_GENERIC_ALL, "GENERIC_ALL"\r
-IDS_FILE_GENERIC_EXECUTE, "FILE_GENERIC_EXECUTE"\r
-IDS_FILE_GENERIC_READ, "FILE_GENERIC_READ"\r
-IDS_FILE_GENERIC_WRITE, "FILE_GENERIC_WRITE"\r
-IDS_FILE_READ_DATA, "FILE_READ_DATA"\r
-IDS_FILE_WRITE_DATA, "FILE_WRITE_DATA"\r
-IDS_FILE_APPEND_DATA, "FILE_APPEND_DATA"\r
-IDS_FILE_READ_EA, "FILE_READ_EA"\r
-IDS_FILE_WRITE_EA, "FILE_WRITE_EA"\r
-IDS_FILE_EXECUTE, "FILE_EXECUTE"\r
-IDS_FILE_DELETE_CHILD, "FILE_DELETE_CHILD"\r
-IDS_FILE_READ_ATTRIBUTES, "FILE_READ_ATTRIBUTES"\r
-IDS_FILE_WRITE_ATTRIBUTES, "FILE_WRITE_ATTRIBUTES"\r
-IDS_MAXIMUM_ALLOWED, "MAXIMUM_ALLOWED"\r
-IDS_ACCESS_SYSTEM_SECURITY, "ACCESS_SYSTEM_SECURITY"\r
-IDS_SPECIFIC_RIGHTS_ALL, "SPECIFIC_RIGHTS_ALL"\r
-IDS_STANDARD_RIGHTS_REQUIRED, "STANDARD_RIGHTS_REQUIRED"\r
-IDS_SYNCHRONIZE, "SYNCHRONIZE"\r
-IDS_WRITE_OWNER, "WRITE_OWNER"\r
-IDS_WRITE_DAC, "WRITE_DAC"\r
-IDS_READ_CONTROL, "READ_CONTROL"\r
-IDS_DELETE, "DELETE"\r
-IDS_STANDARD_RIGHTS_ALL, "STANDARD_RIGHTS_ALL"\r
-}\r
+/*
+ *  German language file by Daniel Reimer <EmuandCo> 2006-06-15
+ */
+
+LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
+
+STRINGTABLE DISCARDABLE
+{
+
+IDS_HELP, "Ändert Datei-ACLs (Access Control List) oder zeigt sie an.\n\n\
+CACLS Dateiname [/T] [/E] [/C] [/G Benutzer:Zugriff] [/R Benutzer [...]]\n\
+                [/P Benutzer:Zugriff [...]] [/D Benutzer [...]]\n\
+  Dateiname            ACLs für angegebene Datei anzeigen.\n\
+  /T                   ACLs der angegebenen Datei im aktuellen Verzeichnis\n\
+                       und allen Unterverzeichnissen ändern.\n\
+  /E                   ACL bearbeiten anstatt sie zu ersetzen.\n\
+  /C                   Ändern der ACLs bei Zugriffsverletzung fortsetzen.\n\
+  /G Benutzer:Zugriff  Angegebene Zugriffsarten zulassen.\n\
+                       Zugriff kann sein: R Lesen\n\
+                                          W  Schreiben\n\
+                                          C  Ändern (Schreiben)\n\
+                                          F  Vollzugriff\n\
+  /R Benutzer          Zugriffsrechte des Benutzers aufheben (gültig mit /E).\n\
+  /P Benutzer:Zugriff  Zugriffsrechte des Benutzers ersetzen.\n\
+                       Zugriff kann sein: N  Kein\n\
+                                          R  Lesen\n\
+                                          W  Schreiben\n\
+                                          C  Ändern (Schreiben)\n\
+                                          F  Vollzugriff\n\
+   /D Benutzer         Zugriff für Benutzer verweigern.\n\
+Platzhalterzeichen (Wildcards) werden für Dateiname unterstützt.\n\
+Mehrere Benutzer können in einem Befehl angegeben werden.\n\n\
+Abkürzungen:\n\
+   CI - Containervererbung.\n\
+        Der ACE-Eintrag wird von Verzeichnissen geerbt.\n\
+   OI - Objektvererbung.\n\
+        Der ACE-Eintrag wird von Dateien geerbt.\n\
+   IO - Nur vererben.\n\
+        Der ACE-Eintrag bezieht sich nicht auf\n\
+        die aktuelle Datei/das aktuelle Verzeichnis.\n"
+
+IDS_ABBR_CI, "(CI)"
+IDS_ABBR_OI, "(OI)"
+IDS_ABBR_IO, "(IO)"
+IDS_ABBR_FULL, "F"
+IDS_ABBR_READ, "R"
+IDS_ABBR_WRITE, "W"
+IDS_ABBR_CHANGE, "C"
+IDS_ABBR_NONE, "N"
+IDS_ALLOW, ""
+IDS_DENY, "(DENY)"
+IDS_SPECIAL_ACCESS, "(special access:)"
+IDS_GENERIC_READ, "GENERIC_READ"
+IDS_GENERIC_WRITE, "GENERIC_WRITE"
+IDS_GENERIC_EXECUTE, "GENERIC_EXECUTE"
+IDS_GENERIC_ALL, "GENERIC_ALL"
+IDS_FILE_GENERIC_EXECUTE, "FILE_GENERIC_EXECUTE"
+IDS_FILE_GENERIC_READ, "FILE_GENERIC_READ"
+IDS_FILE_GENERIC_WRITE, "FILE_GENERIC_WRITE"
+IDS_FILE_READ_DATA, "FILE_READ_DATA"
+IDS_FILE_WRITE_DATA, "FILE_WRITE_DATA"
+IDS_FILE_APPEND_DATA, "FILE_APPEND_DATA"
+IDS_FILE_READ_EA, "FILE_READ_EA"
+IDS_FILE_WRITE_EA, "FILE_WRITE_EA"
+IDS_FILE_EXECUTE, "FILE_EXECUTE"
+IDS_FILE_DELETE_CHILD, "FILE_DELETE_CHILD"
+IDS_FILE_READ_ATTRIBUTES, "FILE_READ_ATTRIBUTES"
+IDS_FILE_WRITE_ATTRIBUTES, "FILE_WRITE_ATTRIBUTES"
+IDS_MAXIMUM_ALLOWED, "MAXIMUM_ALLOWED"
+IDS_ACCESS_SYSTEM_SECURITY, "ACCESS_SYSTEM_SECURITY"
+IDS_SPECIFIC_RIGHTS_ALL, "SPECIFIC_RIGHTS_ALL"
+IDS_STANDARD_RIGHTS_REQUIRED, "STANDARD_RIGHTS_REQUIRED"
+IDS_SYNCHRONIZE, "SYNCHRONIZE"
+IDS_WRITE_OWNER, "WRITE_OWNER"
+IDS_WRITE_DAC, "WRITE_DAC"
+IDS_READ_CONTROL, "READ_CONTROL"
+IDS_DELETE, "DELETE"
+IDS_STANDARD_RIGHTS_ALL, "STANDARD_RIGHTS_ALL"
+}
index fa514f4..5604712 100644 (file)
@@ -1,75 +1,75 @@
-LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
-\r
-IDS_HELP, "ACL's (Access Control Lists, toegangslijsten) van bestanden weergeven\nof bewerken\n\nCACLS bestandsnaam [/T] [/E] [/C] [/G gebr:toeg] [/R gebruiker [...]]\n\\r
-                   [/P gebr:toeg [...]] [/D gebruiker [...]]\n\\r
-   bestandsnaam    ACL's weergeven.\n\\r
-   /T              ACL's wijzigen van opgegeven bestanden in\n\\r
-                   de huidige map en alle submappen.\n\\r
-   /E              ACL bewerken in plaats van vervangen.\n\\r
-   /C              Doorgaan bij toegang geweigerd.\n\\r
-   /G gebr:toeg    Opgegeven gebruiker toegangsrechten verlenen.\n\\r
-                   Toeg kan zijn: R  Lezen\n\\r
-                                  W  Schrijven\n\\r
-                                  C  Wijzigen (schrijven)\n\\r
-                                  F  Volledig beheer\n\\r
-   /R gebruiker    Toegangsrechten van opgegeven gebruiker intrekken.\n\\r
-                   [alleen geldig met /E].\n\\r
-   /P gebr:toeg    Toegangsrechten van opgegeven gebruiker vervangen.\n\\r
-                   Toeg kan zijn: N  Geen\n\\r
-                                  R  Lezen\n\\r
-                                  W  Schrijven\n\\r
-                                  C  Wijzigen (schrijven)\n\\r
-                                  F  Volledig beheer\n\\r
-   /D gebruiker    Opgegeven gebruiker toegang weigeren.\n\\r
-U kunt jokertekens gebruiken om meerdere bestanden op te geven in een\n\\r
-opdracht. U kunt meerdere gebruikers opgeven in een opdracht.\n\n\\r
-Afkortingen:\n\\r
-   CI - Container Inherit.\n\\r
-        De toegangslijst wordt door mappen overgenomen.\n\\r
-   OI - Object Inherit.\n\\r
-        De toegangslijst wordt door bestanden overgenomen.\n\\r
-   IO - Inherit Only.\n\\r
-        De toegangslijst is niet van toepassing op het huidige bestand of\n\\r
-        de huidige map.\n"\r
-\r
-IDS_ABBR_CI, "(CI)"\r
-IDS_ABBR_OI, "(OI)"\r
-IDS_ABBR_IO, "(IO)"\r
-IDS_ABBR_FULL, "F"\r
-IDS_ABBR_READ, "R"\r
-IDS_ABBR_WRITE, "W"\r
-IDS_ABBR_CHANGE, "C"\r
-IDS_ABBR_NONE, "N"\r
-IDS_ALLOW, ""\r
-IDS_DENY, "(DENY)"\r
-IDS_SPECIAL_ACCESS, "(speciale toegang:)"\r
-IDS_GENERIC_READ, "GENERIC_READ"\r
-IDS_GENERIC_WRITE, "GENERIC_WRITE"\r
-IDS_GENERIC_EXECUTE, "GENERIC_EXECUTE"\r
-IDS_GENERIC_ALL, "GENERIC_ALL"\r
-IDS_FILE_GENERIC_EXECUTE, "FILE_GENERIC_EXECUTE"\r
-IDS_FILE_GENERIC_READ, "FILE_GENERIC_READ"\r
-IDS_FILE_GENERIC_WRITE, "FILE_GENERIC_WRITE"\r
-IDS_FILE_READ_DATA, "FILE_READ_DATA"\r
-IDS_FILE_WRITE_DATA, "FILE_WRITE_DATA"\r
-IDS_FILE_APPEND_DATA, "FILE_APPEND_DATA"\r
-IDS_FILE_READ_EA, "FILE_READ_EA"\r
-IDS_FILE_WRITE_EA, "FILE_WRITE_EA"\r
-IDS_FILE_EXECUTE, "FILE_EXECUTE"\r
-IDS_FILE_DELETE_CHILD, "FILE_DELETE_CHILD"\r
-IDS_FILE_READ_ATTRIBUTES, "FILE_READ_ATTRIBUTES"\r
-IDS_FILE_WRITE_ATTRIBUTES, "FILE_WRITE_ATTRIBUTES"\r
-IDS_MAXIMUM_ALLOWED, "MAXIMUM_ALLOWED"\r
-IDS_ACCESS_SYSTEM_SECURITY, "ACCESS_SYSTEM_SECURITY"\r
-IDS_SPECIFIC_RIGHTS_ALL, "SPECIFIC_RIGHTS_ALL"\r
-IDS_STANDARD_RIGHTS_REQUIRED, "STANDARD_RIGHTS_REQUIRED"\r
-IDS_SYNCHRONIZE, "SYNCHRONIZE"\r
-IDS_WRITE_OWNER, "WRITE_OWNER"\r
-IDS_WRITE_DAC, "WRITE_DAC"\r
-IDS_READ_CONTROL, "READ_CONTROL"\r
-IDS_DELETE, "DELETE"\r
-IDS_STANDARD_RIGHTS_ALL, "STANDARD_RIGHTS_ALL"\r
-}\r
+LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
+
+STRINGTABLE DISCARDABLE
+{
+
+IDS_HELP, "ACL's (Access Control Lists, toegangslijsten) van bestanden weergeven\nof bewerken\n\nCACLS bestandsnaam [/T] [/E] [/C] [/G gebr:toeg] [/R gebruiker [...]]\n\
+                   [/P gebr:toeg [...]] [/D gebruiker [...]]\n\
+   bestandsnaam    ACL's weergeven.\n\
+   /T              ACL's wijzigen van opgegeven bestanden in\n\
+                   de huidige map en alle submappen.\n\
+   /E              ACL bewerken in plaats van vervangen.\n\
+   /C              Doorgaan bij toegang geweigerd.\n\
+   /G gebr:toeg    Opgegeven gebruiker toegangsrechten verlenen.\n\
+                   Toeg kan zijn: R  Lezen\n\
+                                  W  Schrijven\n\
+                                  C  Wijzigen (schrijven)\n\
+                                  F  Volledig beheer\n\
+   /R gebruiker    Toegangsrechten van opgegeven gebruiker intrekken.\n\
+                   [alleen geldig met /E].\n\
+   /P gebr:toeg    Toegangsrechten van opgegeven gebruiker vervangen.\n\
+                   Toeg kan zijn: N  Geen\n\
+                                  R  Lezen\n\
+                                  W  Schrijven\n\
+                                  C  Wijzigen (schrijven)\n\
+                                  F  Volledig beheer\n\
+   /D gebruiker    Opgegeven gebruiker toegang weigeren.\n\
+U kunt jokertekens gebruiken om meerdere bestanden op te geven in een\n\
+opdracht. U kunt meerdere gebruikers opgeven in een opdracht.\n\n\
+Afkortingen:\n\
+   CI - Container Inherit.\n\
+        De toegangslijst wordt door mappen overgenomen.\n\
+   OI - Object Inherit.\n\
+        De toegangslijst wordt door bestanden overgenomen.\n\
+   IO - Inherit Only.\n\
+        De toegangslijst is niet van toepassing op het huidige bestand of\n\
+        de huidige map.\n"
+
+IDS_ABBR_CI, "(CI)"
+IDS_ABBR_OI, "(OI)"
+IDS_ABBR_IO, "(IO)"
+IDS_ABBR_FULL, "F"
+IDS_ABBR_READ, "R"
+IDS_ABBR_WRITE, "W"
+IDS_ABBR_CHANGE, "C"
+IDS_ABBR_NONE, "N"
+IDS_ALLOW, ""
+IDS_DENY, "(DENY)"
+IDS_SPECIAL_ACCESS, "(speciale toegang:)"
+IDS_GENERIC_READ, "GENERIC_READ"
+IDS_GENERIC_WRITE, "GENERIC_WRITE"
+IDS_GENERIC_EXECUTE, "GENERIC_EXECUTE"
+IDS_GENERIC_ALL, "GENERIC_ALL"
+IDS_FILE_GENERIC_EXECUTE, "FILE_GENERIC_EXECUTE"
+IDS_FILE_GENERIC_READ, "FILE_GENERIC_READ"
+IDS_FILE_GENERIC_WRITE, "FILE_GENERIC_WRITE"
+IDS_FILE_READ_DATA, "FILE_READ_DATA"
+IDS_FILE_WRITE_DATA, "FILE_WRITE_DATA"
+IDS_FILE_APPEND_DATA, "FILE_APPEND_DATA"
+IDS_FILE_READ_EA, "FILE_READ_EA"
+IDS_FILE_WRITE_EA, "FILE_WRITE_EA"
+IDS_FILE_EXECUTE, "FILE_EXECUTE"
+IDS_FILE_DELETE_CHILD, "FILE_DELETE_CHILD"
+IDS_FILE_READ_ATTRIBUTES, "FILE_READ_ATTRIBUTES"
+IDS_FILE_WRITE_ATTRIBUTES, "FILE_WRITE_ATTRIBUTES"
+IDS_MAXIMUM_ALLOWED, "MAXIMUM_ALLOWED"
+IDS_ACCESS_SYSTEM_SECURITY, "ACCESS_SYSTEM_SECURITY"
+IDS_SPECIFIC_RIGHTS_ALL, "SPECIFIC_RIGHTS_ALL"
+IDS_STANDARD_RIGHTS_REQUIRED, "STANDARD_RIGHTS_REQUIRED"
+IDS_SYNCHRONIZE, "SYNCHRONIZE"
+IDS_WRITE_OWNER, "WRITE_OWNER"
+IDS_WRITE_DAC, "WRITE_DAC"
+IDS_READ_CONTROL, "READ_CONTROL"
+IDS_DELETE, "DELETE"
+IDS_STANDARD_RIGHTS_ALL, "STANDARD_RIGHTS_ALL"
+}
index daec9a7..79f7c9f 100644 (file)
@@ -1,75 +1,75 @@
-LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT\r
-\r
-STRINGTABLE DISCARDABLE\r
-{\r
-\r
-IDS_HELP, "Îòîáðàæàåò èëè èçìåíÿåò ñïèñêè äîñòóïà (ACLs) ê ôàéëàì\n\n\\r
-CACLS èìÿ_Ôàéëà [/T] [/E] [/C] [/G èìÿ:ïðàâî [...]] [/R èìÿ [...]]\n\\r
-               [/P èìÿ:ïðàâî[...]] [/D èìÿ [...]]\n\\r
-   èìÿ_ôàéëà     Âûâîä ñïèñêîâ ACL.\n\\r
-   /T            Çàìåíà ñïèñêîâ ACL äëÿ óêàçàííûõ ôàéëîâ â òåêóùåì êàòàëîãå\n\\r
-                 è âñåõ ïîäêàòàëîãàõ.\n\\r
-   /E            Ðåäàêòèðîâàíèå ñïèñêà ACL âìåñòî åãî çàìåíû.\n\\r
-   /C            Ïðîäîëæàòü ïðè îøèáêàõ îòêàçà äîñòóïà.\n\\r
-   /G èìÿ:ïðàâî  Ïðåäîñòàâëåíèå óêàçàííîìó ïîëüçîâàòåëþ ïðàâ äîñòóïà.\n\\r
-                 Ïðàâî ìîæåò áûòü: R  ×òåíèå\n\\r
-                                   W  Çàïèñü\n\\r
-                                   C  Èçìåíåíèå (çàïèñü)\n\\r
-                                   F  Ïîëíûé êîíòðîëü\n\\r
-   /R èìÿ        Îòîçâàòü ïðàâà äîñòóïà äëÿ óêàçàííîãî ïîëüçîâàòåëÿ\n\\r
-                 (âåðíî òîëüêî ñ /E).\n\\r
-   /P èìÿ:ïðàâî  Çàìåíèòü ïðàâà óêàçàííîãî ïîëüçîâàòåëÿ.\n\\r
-                 Ïðàâî ìîæåò áûòü: N  Íåò äîñòóïà\n\\r
-                                   R  ×òåíèå\n\\r
-                                   W  Çàïèñü\n\\r
-                                   C  Èçìåíåíèå (çàïèñü)\n\\r
-                                   F  Ïîëíûé äîñòóï\n\\r
-   /D èìÿ        Çàïðåòèòü äîñòóï äëÿ óêàçàííîãî ïîëüçîâàòåëÿ.\n\\r
- êîìàíäå ìîæíî èñïîëüçîâàòü øàáëîíû äëÿ îáðàáîòêè áîëåå îäíîãî ôàéëà.\n\\r
- êîìàíäå ìîæíî óêàçûâàòü áîëåå îäíîãî ïîëüçîâàòåëÿ.\n\n\\r
-Ñîêðàùåíèÿ:\n\\r
-   CI - Íàñëåäîâàíèå êîíòåéíåðàìè.\n\\r
-        ACE áóäåò óíàñëåäîâàí ïàïêàìè.\n\\r
-   OI - Íàñëåäîâàíèå îáúåêòàìè.\n\\r
-        ACE áóäåò óíàñëåäîâàí ôàéëàìè.\n\\r
-   IO - Òîëüêî íàñëåäîâàííîå.\n\\r
-        ACE íå áóäåò ïðèìåí¸í ê äàííîìó ôàéëó/ïàïêå.\n"\r
-\r
-IDS_ABBR_CI, "(CI)"\r
-IDS_ABBR_OI, "(OI)"\r
-IDS_ABBR_IO, "(IO)"\r
-IDS_ABBR_FULL, "F"\r
-IDS_ABBR_READ, "R"\r
-IDS_ABBR_WRITE, "W"\r
-IDS_ABBR_CHANGE, "C"\r
-IDS_ABBR_NONE, "N"\r
-IDS_ALLOW, ""\r
-IDS_DENY, "(DENY)"\r
-IDS_SPECIAL_ACCESS, "(ñïåöèàëüíûé äîñòóï:)"\r
-IDS_GENERIC_READ, "GENERIC_READ"\r
-IDS_GENERIC_WRITE, "GENERIC_WRITE"\r
-IDS_GENERIC_EXECUTE, "GENERIC_EXECUTE"\r
-IDS_GENERIC_ALL, "GENERIC_ALL"\r
-IDS_FILE_GENERIC_EXECUTE, "FILE_GENERIC_EXECUTE"\r
-IDS_FILE_GENERIC_READ, "FILE_GENERIC_READ"\r
-IDS_FILE_GENERIC_WRITE, "FILE_GENERIC_WRITE"\r
-IDS_FILE_READ_DATA, "FILE_READ_DATA"\r
-IDS_FILE_WRITE_DATA, "FILE_WRITE_DATA"\r
-IDS_FILE_APPEND_DATA, "FILE_APPEND_DATA"\r
-IDS_FILE_READ_EA, "FILE_READ_EA"\r
-IDS_FILE_WRITE_EA, "FILE_WRITE_EA"\r
-IDS_FILE_EXECUTE, "FILE_EXECUTE"\r
-IDS_FILE_DELETE_CHILD, "FILE_DELETE_CHILD"\r
-IDS_FILE_READ_ATTRIBUTES, "FILE_READ_ATTRIBUTES"\r
-IDS_FILE_WRITE_ATTRIBUTES, "FILE_WRITE_ATTRIBUTES"\r
-IDS_MAXIMUM_ALLOWED, "MAXIMUM_ALLOWED"\r
-IDS_ACCESS_SYSTEM_SECURITY, "ACCESS_SYSTEM_SECURITY"\r
-IDS_SPECIFIC_RIGHTS_ALL, "SPECIFIC_RIGHTS_ALL"\r
-IDS_STANDARD_RIGHTS_REQUIRED, "STANDARD_RIGHTS_REQUIRED"\r
-IDS_SYNCHRONIZE, "SYNCHRONIZE"\r
-IDS_WRITE_OWNER, "WRITE_OWNER"\r
-IDS_WRITE_DAC, "WRITE_DAC"\r
-IDS_READ_CONTROL, "READ_CONTROL"\r
-IDS_DELETE, "DELETE"\r
-IDS_STANDARD_RIGHTS_ALL, "STANDARD_RIGHTS_ALL"\r
-}\r
+LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
+
+STRINGTABLE DISCARDABLE
+{
+
+IDS_HELP, "Îòîáðàæàåò èëè èçìåíÿåò ñïèñêè äîñòóïà (ACLs) ê ôàéëàì\n\n\
+CACLS èìÿ_Ôàéëà [/T] [/E] [/C] [/G èìÿ:ïðàâî [...]] [/R èìÿ [...]]\n\
+               [/P èìÿ:ïðàâî[...]] [/D èìÿ [...]]\n\
+   èìÿ_ôàéëà     Âûâîä ñïèñêîâ ACL.\n\
+   /T            Çàìåíà ñïèñêîâ ACL äëÿ óêàçàííûõ ôàéëîâ â òåêóùåì êàòàëîãå\n\
+                 è âñåõ ïîäêàòàëîãàõ.\n\
+   /E            Ðåäàêòèðîâàíèå ñïèñêà ACL âìåñòî åãî çàìåíû.\n\
+   /C            Ïðîäîëæàòü ïðè îøèáêàõ îòêàçà äîñòóïà.\n\
+   /G èìÿ:ïðàâî  Ïðåäîñòàâëåíèå óêàçàííîìó ïîëüçîâàòåëþ ïðàâ äîñòóïà.\n\
+                 Ïðàâî ìîæåò áûòü: R  ×òåíèå\n\
+                                   W  Çàïèñü\n\
+                                   C  Èçìåíåíèå (çàïèñü)\n\
+                                   F  Ïîëíûé êîíòðîëü\n\
+   /R èìÿ        Îòîçâàòü ïðàâà äîñòóïà äëÿ óêàçàííîãî ïîëüçîâàòåëÿ\n\
+                 (âåðíî òîëüêî ñ /E).\n\
+   /P èìÿ:ïðàâî  Çàìåíèòü ïðàâà óêàçàííîãî ïîëüçîâàòåëÿ.\n\
+                 Ïðàâî ìîæåò áûòü: N  Íåò äîñòóïà\n\
+                                   R  ×òåíèå\n\
+                                   W  Çàïèñü\n\
+                                   C  Èçìåíåíèå (çàïèñü)\n\
+                                   F  Ïîëíûé äîñòóï\n\
+   /D èìÿ        Çàïðåòèòü äîñòóï äëÿ óêàçàííîãî ïîëüçîâàòåëÿ.\n\
+ êîìàíäå ìîæíî èñïîëüçîâàòü øàáëîíû äëÿ îáðàáîòêè áîëåå îäíîãî ôàéëà.\n\
+ êîìàíäå ìîæíî óêàçûâàòü áîëåå îäíîãî ïîëüçîâàòåëÿ.\n\n\
+Ñîêðàùåíèÿ:\n\
+   CI - Íàñëåäîâàíèå êîíòåéíåðàìè.\n\
+        ACE áóäåò óíàñëåäîâàí ïàïêàìè.\n\
+   OI - Íàñëåäîâàíèå îáúåêòàìè.\n\
+        ACE áóäåò óíàñëåäîâàí ôàéëàìè.\n\
+   IO - Òîëüêî íàñëåäîâàííîå.\n\
+        ACE íå áóäåò ïðèìåí¸í ê äàííîìó ôàéëó/ïàïêå.\n"
+
+IDS_ABBR_CI, "(CI)"
+IDS_ABBR_OI, "(OI)"
+IDS_ABBR_IO, "(IO)"
+IDS_ABBR_FULL, "F"
+IDS_ABBR_READ, "R"
+IDS_ABBR_WRITE, "W"
+IDS_ABBR_CHANGE, "C"
+IDS_ABBR_NONE, "N"
+IDS_ALLOW, ""
+IDS_DENY, "(DENY)"
+IDS_SPECIAL_ACCESS, "(ñïåöèàëüíûé äîñòóï:)"
+IDS_GENERIC_READ, "GENERIC_READ"
+IDS_GENERIC_WRITE, "GENERIC_WRITE"
+IDS_GENERIC_EXECUTE, "GENERIC_EXECUTE"
+IDS_GENERIC_ALL, "GENERIC_ALL"
+IDS_FILE_GENERIC_EXECUTE, "FILE_GENERIC_EXECUTE"
+IDS_FILE_GENERIC_READ, "FILE_GENERIC_READ"
+IDS_FILE_GENERIC_WRITE, "FILE_GENERIC_WRITE"
+IDS_FILE_READ_DATA, "FILE_READ_DATA"
+IDS_FILE_WRITE_DATA, "FILE_WRITE_DATA"
+IDS_FILE_APPEND_DATA, "FILE_APPEND_DATA"
+IDS_FILE_READ_EA, "FILE_READ_EA"
+IDS_FILE_WRITE_EA, "FILE_WRITE_EA"
+IDS_FILE_EXECUTE, "FILE_EXECUTE"
+IDS_FILE_DELETE_CHILD, "FILE_DELETE_CHILD"
+IDS_FILE_READ_ATTRIBUTES, "FILE_READ_ATTRIBUTES"
+IDS_FILE_WRITE_ATTRIBUTES, "FILE_WRITE_ATTRIBUTES"
+IDS_MAXIMUM_ALLOWED, "MAXIMUM_ALLOWED"
+IDS_ACCESS_SYSTEM_SECURITY, "ACCESS_SYSTEM_SECURITY"
+IDS_SPECIFIC_RIGHTS_ALL, "SPECIFIC_RIGHTS_ALL"
+IDS_STANDARD_RIGHTS_REQUIRED, "STANDARD_RIGHTS_REQUIRED"
+IDS_SYNCHRONIZE, "SYNCHRONIZE"
+IDS_WRITE_OWNER, "WRITE_OWNER"
+IDS_WRITE_DAC, "WRITE_DAC"
+IDS_READ_CONTROL, "READ_CONTROL"
+IDS_DELETE, "DELETE"
+IDS_STANDARD_RIGHTS_ALL, "STANDARD_RIGHTS_ALL"
+}
index c2cdcea..df29787 100644 (file)
-# Microsoft Developer Studio Project File - Name="control" - Package Owner=<4>\r
-# Microsoft Developer Studio Generated Build File, Format Version 6.00\r
-# ** DO NOT EDIT **\r
-\r
-# TARGTYPE "Win32 (x86) Application" 0x0101\r
-\r
-CFG=control - Win32 Debug\r
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,\r
-!MESSAGE use the Export Makefile command and run\r
-!MESSAGE \r
-!MESSAGE NMAKE /f "control.mak".\r
-!MESSAGE \r
-!MESSAGE You can specify a configuration when running NMAKE\r
-!MESSAGE by defining the macro CFG on the command line. For example:\r
-!MESSAGE \r
-!MESSAGE NMAKE /f "control.mak" CFG="control - Win32 Debug"\r
-!MESSAGE \r
-!MESSAGE Possible choices for configuration are:\r
-!MESSAGE \r
-!MESSAGE "control - Win32 Release" (based on "Win32 (x86) Application")\r
-!MESSAGE "control - Win32 Debug" (based on "Win32 (x86) Application")\r
-!MESSAGE \r
-\r
-# Begin Project\r
-# PROP AllowPerConfigDependencies 0\r
-# PROP Scc_ProjName ""\r
-# PROP Scc_LocalPath ""\r
-CPP=cl.exe\r
-MTL=midl.exe\r
-RSC=rc.exe\r
-\r
-!IF  "$(CFG)" == "control - Win32 Release"\r
-\r
-# PROP BASE Use_MFC 0\r
-# PROP BASE Use_Debug_Libraries 0\r
-# PROP BASE Output_Dir "Release"\r
-# PROP BASE Intermediate_Dir "Release"\r
-# PROP BASE Target_Dir ""\r
-# PROP Use_MFC 0\r
-# PROP Use_Debug_Libraries 0\r
-# PROP Output_Dir "Release"\r
-# PROP Intermediate_Dir "Release"\r
-# PROP Ignore_Export_Lib 0\r
-# PROP Target_Dir ""\r
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c\r
-# ADD CPP /nologo /W3 /GX /O2 /I "../../../" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c\r
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
-# ADD BASE RSC /l 0x407 /d "NDEBUG"\r
-# ADD RSC /l 0x407 /d "NDEBUG" /d "MS_COMPILER"\r
-BSC32=bscmake.exe\r
-# ADD BASE BSC32 /nologo\r
-# ADD BSC32 /nologo\r
-LINK32=link.exe\r
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386\r
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib /nologo /subsystem:windows /machine:I386\r
-# Begin Custom Build\r
-TargetDir=.\Release\r
-TargetName=control\r
-InputPath=.\Release\control.exe\r
-InputName=control\r
-SOURCE="$(InputPath)"\r
-\r
-"C:\reactos\reactos\$(InputName).EXE" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"\r
-       copy $(TargetDir)\$(TargetName).EXE C:\reactos\reactos\r
-\r
-# End Custom Build\r
-\r
-!ELSEIF  "$(CFG)" == "control - Win32 Debug"\r
-\r
-# PROP BASE Use_MFC 0\r
-# PROP BASE Use_Debug_Libraries 1\r
-# PROP BASE Output_Dir "Debug"\r
-# PROP BASE Intermediate_Dir "Debug"\r
-# PROP BASE Target_Dir ""\r
-# PROP Use_MFC 0\r
-# PROP Use_Debug_Libraries 1\r
-# PROP Output_Dir "Debug"\r
-# PROP Intermediate_Dir "Debug"\r
-# PROP Ignore_Export_Lib 0\r
-# PROP Target_Dir ""\r
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c\r
-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../../" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "UNICODE" /D "_UNICODE" /YX /FD /GZ /c\r
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
-# ADD BASE RSC /l 0x407 /d "_DEBUG"\r
-# ADD RSC /l 0x407 /d "_DEBUG" /d "MS_COMPILER"\r
-BSC32=bscmake.exe\r
-# ADD BASE BSC32 /nologo\r
-# ADD BSC32 /nologo\r
-LINK32=link.exe\r
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept\r
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept\r
-# Begin Custom Build\r
-TargetDir=.\Debug\r
-TargetName=control\r
-InputPath=.\Debug\control.exe\r
-InputName=control\r
-SOURCE="$(InputPath)"\r
-\r
-"C:\reactos\reactos\$(InputName).EXE" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"\r
-       copy $(TargetDir)\$(TargetName).EXE C:\reactos\reactos\r
-\r
-# End Custom Build\r
-\r
-!ENDIF \r
-\r
-# Begin Target\r
-\r
-# Name "control - Win32 Release"\r
-# Name "control - Win32 Debug"\r
-# Begin Group "Source Files"\r
-\r
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"\r
-# Begin Source File\r
-\r
-SOURCE=.\control.c\r
-# End Source File\r
-# End Group\r
-# Begin Group "Header Files"\r
-\r
-# PROP Default_Filter "h;hpp;hxx;hm;inl"\r
-# End Group\r
-# Begin Group "Resource Files"\r
-\r
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"\r
-# Begin Source File\r
-\r
-SOURCE=.\config.ico\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\control.rc\r
-# End Source File\r
-# End Group\r
-# End Target\r
-# End Project\r
+# Microsoft Developer Studio Project File - Name="control" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Application" 0x0101
+
+CFG=control - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "control.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "control.mak" CFG="control - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "control - Win32 Release" (based on "Win32 (x86) Application")
+!MESSAGE "control - Win32 Debug" (based on "Win32 (x86) Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "control - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /I "../../../" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "NDEBUG"
+# ADD RSC /l 0x407 /d "NDEBUG" /d "MS_COMPILER"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib /nologo /subsystem:windows /machine:I386
+# Begin Custom Build
+TargetDir=.\Release
+TargetName=control
+InputPath=.\Release\control.exe
+InputName=control
+SOURCE="$(InputPath)"
+
+"C:\reactos\reactos\$(InputName).EXE" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+       copy $(TargetDir)\$(TargetName).EXE C:\reactos\reactos
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "control - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../../" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "UNICODE" /D "_UNICODE" /YX /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x407 /d "_DEBUG"
+# ADD RSC /l 0x407 /d "_DEBUG" /d "MS_COMPILER"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# Begin Custom Build
+TargetDir=.\Debug
+TargetName=control
+InputPath=.\Debug\control.exe
+InputName=control
+SOURCE="$(InputPath)"
+
+"C:\reactos\reactos\$(InputName).EXE" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+       copy $(TargetDir)\$(TargetName).EXE C:\reactos\reactos
+
+# End Custom Build
+
+!ENDIF 
+
+# Begin Target
+
+# Name "control - Win32 Release"
+# Name "control - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\control.c
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# Begin Source File
+
+SOURCE=.\config.ico
+# End Source File
+# Begin Source File
+
+SOURCE=.\control.rc
+# End Source File
+# End Group
+# End Target
+# End Project
index d7d3aa5..1beaf5d 100644 (file)
@@ -1,29 +1,29 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00\r
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!\r
-\r
-###############################################################################\r
-\r
-Project: "control"=.\control.dsp - Package Owner=<4>\r
-\r
-Package=<5>\r
-{{{\r
-}}}\r
-\r
-Package=<4>\r
-{{{\r
-}}}\r
-\r
-###############################################################################\r
-\r
-Global:\r
-\r
-Package=<5>\r
-{{{\r
-}}}\r
-\r
-Package=<3>\r
-{{{\r
-}}}\r
-\r
-###############################################################################\r
-\r
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "control"=.\control.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
index 2c391db..3c9d388 100644 (file)
@@ -1,28 +1,28 @@
-// Hungarian language resource file (talley, 2005-10-12)\r
-\r
-LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Menu\r
-//\r
-\r
-IDM_MAINMENU MENU DISCARDABLE \r
-BEGIN\r
-    POPUP "&Fájl"\r
-    BEGIN\r
-        MENUITEM "&Bezárás",                      IDM_CLOSE\r
-    END\r
-    POPUP "&Nézet"\r
-    BEGIN\r
-        MENUITEM "Nagy ikonok",                 IDM_LARGEICONS\r
-        MENUITEM "Kis ikonok",                 IDM_SMALLICONS\r
-        MENUITEM "Lista",                        IDM_LIST\r
-        MENUITEM "Részletek",                     IDM_DETAILS\r
-    END\r
-    POPUP "Súgó"\r
-    BEGIN\r
-        MENUITEM "Névjegy",                       IDM_ABOUT\r
-    END\r
-END\r
-\r
+// Hungarian language resource file (talley, 2005-10-12)
+
+LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDM_MAINMENU MENU DISCARDABLE 
+BEGIN
+    POPUP "&Fájl"
+    BEGIN
+        MENUITEM "&Bezárás",                      IDM_CLOSE
+    END
+    POPUP "&Nézet"
+    BEGIN
+        MENUITEM "Nagy ikonok",                 IDM_LARGEICONS
+        MENUITEM "Kis ikonok",                 IDM_SMALLICONS
+        MENUITEM "Lista",                        IDM_LIST
+        MENUITEM "Részletek",                     IDM_DETAILS
+    END
+    POPUP "Súgó"
+    BEGIN
+        MENUITEM "Névjegy",                       IDM_ABOUT
+    END
+END
+
index 2fdfe73..4d99e6f 100644 (file)
@@ -1,34 +1,34 @@
-/*\r
- * PROJECT:     ReactOS System Control Panel\r
- * LICENSE:     GPL - See COPYING in the top level directory\r
- * FILE:        base/applications/control/Uk.rc\r
- * PURPOSE:     Ukraianian Language File for ReactOS System Control Panel\r
- * PROGRAMMERS: temarez\r
- */\r
-\r
-LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Menu\r
-//\r
-\r
-IDM_MAINMENU MENU DISCARDABLE \r
-BEGIN\r
-    POPUP "&Ôàéë"\r
-    BEGIN\r
-        MENUITEM "&Çàêðèòè",                    IDM_CLOSE\r
-    END\r
-    POPUP "&Âèãëÿä"\r
-    BEGIN\r
-        MENUITEM "&Âåëèê³ ²êîíêè",              IDM_LARGEICONS\r
-        MENUITEM "&Ìàë³ ²êîíêè",                IDM_SMALLICONS\r
-        MENUITEM "&Ñïèñîê",                     IDM_LIST\r
-        MENUITEM "&Ïîäðîáèö³",                  IDM_DETAILS\r
-    END\r
-    POPUP "&Äîâ³äêà"\r
-    BEGIN\r
-        MENUITEM "&Ïðî ïðîãðàìó",               IDM_ABOUT\r
-    END\r
-END\r
-\r
+/*
+ * PROJECT:     ReactOS System Control Panel
+ * LICENSE:     GPL - See COPYING in the top level directory
+ * FILE:        base/applications/control/Uk.rc
+ * PURPOSE:     Ukraianian Language File for ReactOS System Control Panel
+ * PROGRAMMERS: temarez
+ */
+
+LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDM_MAINMENU MENU DISCARDABLE 
+BEGIN
+    POPUP "&Ôàéë"
+    BEGIN
+        MENUITEM "&Çàêðèòè",                    IDM_CLOSE
+    END
+    POPUP "&Âèãëÿä"
+    BEGIN
+        MENUITEM "&Âåëèê³ ²êîíêè",              IDM_LARGEICONS
+        MENUITEM "&Ìàë³ ²êîíêè",                IDM_SMALLICONS
+        MENUITEM "&Ñïèñîê",                     IDM_LIST
+        MENUITEM "&Ïîäðîáèö³",                  IDM_DETAILS
+    END
+    POPUP "&Äîâ³äêà"
+    BEGIN
+        MENUITEM "&Ïðî ïðîãðàìó",               IDM_ABOUT
+    END
+END
+
index 3026500..d0dec9c 100644 (file)
@@ -1,79 +1,79 @@
-IDR_MAINMENU MENU\r
-BEGIN\r
-  POPUP "&File"\r
-  BEGIN\r
-    MENUITEM "E&xit",                   IDC_EXIT\r
-  END\r
-  POPUP "Action"\r
-  BEGIN\r
-    MENUITEM "Print",                   IDC_PRINT, GRAYED\r
-    MENUITEM SEPARATOR\r
-    MENUITEM "Properties",              IDC_PROP, GRAYED\r
-    MENUITEM SEPARATOR\r
-    MENUITEM "Help",                    IDC_PROGHELP, GRAYED\r
-  END\r
-  POPUP "View"\r
-  BEGIN\r
-    MENUITEM "Devices by type",         IDC_DEVBYTYPE, CHECKED\r
-    MENUITEM "Devices by connection",   IDC_STATIC, GRAYED\r
-    MENUITEM "Resources by type",       IDC_STATIC, GRAYED\r
-    MENUITEM "Resources by connection", IDC_STATIC, GRAYED\r
-  END\r
-  POPUP "Help"\r
-  BEGIN\r
-    MENUITEM "Help",                    IDC_PROGHELP\r
-    MENUITEM "About",                   IDC_ABOUT\r
-  END\r
-END\r
-\r
-IDR_POPUP MENU\r
-BEGIN\r
-  POPUP "popup"\r
-  BEGIN\r
-    MENUITEM "Properties",              IDC_PROP, GRAYED\r
-    MENUITEM SEPARATOR\r
-    MENUITEM "Help",                    IDC_PROGHELP\r
-  END\r
-END\r
-\r
-IDD_ABOUTBOX DIALOGEX 22,16,190,182\r
-CAPTION "About Device Manager"\r
-FONT 8,"Tahoma",0,0\r
-STYLE WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME\r
-BEGIN\r
-  LTEXT "Device Manager v0.1\nCopyright (C) 2006\nby Ged Murphy (gedmurphy@gmail.com)", IDC_STATIC, 48, 7, 130, 26\r
-  PUSHBUTTON "Close", IDOK, 75, 162, 44, 15\r
-  ICON IDI_MAIN_ICON, IDC_STATIC, 10, 10, 7, 30\r
-  EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE\r
-END\r
-\r
-STRINGTABLE DISCARDABLE\r
-BEGIN\r
-  IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA."\r
-END\r
-\r
-STRINGTABLE DISCARDABLE\r
-BEGIN\r
-  IDS_TOOLTIP_PROP      "Properties"\r
-  IDS_TOOLTIP_REFRESH   "Refresh"\r
-  IDS_TOOLTIP_HELP      "Help"\r
-  IDS_TOOLTIP_EXIT      "Exit"\r
-END\r
-\r
-/* Hints */\r
-STRINGTABLE DISCARDABLE\r
-BEGIN\r
-  IDS_HINT_BLANK        " "\r
-  IDS_HINT_EXIT         " Exits the program."\r
-  IDS_HINT_REFRESH      " Refresh the service list."\r
-  IDS_HINT_PROP         " Open property sheet for the current selection."\r
-  IDS_HINT_HELP         " Display help window."\r
-  IDS_HINT_ABOUT        " About ReactOS Device Manager."\r
-\r
-  IDS_HINT_SYS_RESTORE  " Restores this window to normal size."\r
-  IDS_HINT_SYS_MOVE     " Moves this window."\r
-  IDS_HINT_SYS_SIZE     " Resizes this window."\r
-  IDS_HINT_SYS_MINIMIZE " Collapses this window to an icon."\r
-  IDS_HINT_SYS_MAXIMIZE " Expands this window to fill this screen."\r
-  IDS_HINT_SYS_CLOSE    " Closes this window."\r
-END\r
+IDR_MAINMENU MENU
+BEGIN
+  POPUP "&File"
+  BEGIN
+    MENUITEM "E&xit",                   IDC_EXIT
+  END
+  POPUP "Action"
+  BEGIN
+    MENUITEM "Print",                   IDC_PRINT, GRAYED
+    MENUITEM SEPARATOR
+    MENUITEM "Properties",              IDC_PROP, GRAYED
+    MENUITEM SEPARATOR
+    MENUITEM "Help",                    IDC_PROGHELP, GRAYED
+  END
+  POPUP "View"
+  BEGIN
+    MENUITEM "Devices by type",         IDC_DEVBYTYPE, CHECKED
+    MENUITEM "Devices by connection",   IDC_STATIC, GRAYED
+    MENUITEM "Resources by type",       IDC_STATIC, GRAYED
+    MENUITEM "Resources by connection", IDC_STATIC, GRAYED
+  END
+  POPUP "Help"
+  BEGIN
+    MENUITEM "Help",                    IDC_PROGHELP
+    MENUITEM "About",                   IDC_ABOUT
+  END
+END
+
+IDR_POPUP MENU
+BEGIN
+  POPUP "popup"
+  BEGIN
+    MENUITEM "Properties",              IDC_PROP, GRAYED
+    MENUITEM SEPARATOR
+    MENUITEM "Help",                    IDC_PROGHELP
+  END
+END
+
+IDD_ABOUTBOX DIALOGEX 22,16,190,182
+CAPTION "About Device Manager"
+FONT 8,"Tahoma",0,0
+STYLE WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
+BEGIN
+  LTEXT "Device Manager v0.1\nCopyright (C) 2006\nby Ged Murphy (gedmurphy@gmail.com)", IDC_STATIC, 48, 7, 130, 26
+  PUSHBUTTON "Close", IDOK, 75, 162, 44, 15
+  ICON IDI_MAIN_ICON, IDC_STATIC, 10, 10, 7, 30
+  EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+  IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA."
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+  IDS_TOOLTIP_PROP      "Properties"
+  IDS_TOOLTIP_REFRESH   "Refresh"
+  IDS_TOOLTIP_HELP      "Help"
+  IDS_TOOLTIP_EXIT      "Exit"
+END
+
+/* Hints */
+STRINGTABLE DISCARDABLE
+BEGIN
+  IDS_HINT_BLANK        " "
+  IDS_HINT_EXIT         " Exits the program."
+  IDS_HINT_REFRESH      " Refresh the service list."
+  IDS_HINT_PROP         " Open property sheet for the current selection."
+  IDS_HINT_HELP         " Display help window."
+  IDS_HINT_ABOUT        " About ReactOS Device Manager."
+
+  IDS_HINT_SYS_RESTORE  " Restores this window to normal size."
+  IDS_HINT_SYS_MOVE     " Moves this window."
+  IDS_HINT_SYS_SIZE     " Resizes this window."
+  IDS_HINT_SYS_MINIMIZE " Collapses this window to an icon."
+  IDS_HINT_SYS_MAXIMIZE " Expands this window to fill this screen."
+  IDS_HINT_SYS_CLOSE    " Closes this window."
+END
index c453048..ed20b21 100644 (file)
@@ -1,62 +1,62 @@
-/*\r
- * PROJECT:     ReactOS Device Managment\r
- * LICENSE:     GPL - See COPYING in the top level directory\r
- * FILE:        base/system/devmgmt/about.c\r
- * PURPOSE:     About dialog box message handler\r
- * COPYRIGHT:   Copyright 2006 Ged Murphy <gedmurphy@gmail.com>\r
- *\r
- */\r
-\r
-#include "precomp.h"\r
-\r
-BOOL CALLBACK\r
-AboutDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-    HWND  hLicenseEditWnd;\r
-    HICON hIcon = NULL;\r
-    TCHAR strLicense[700];\r
-\r
-    switch (message)\r
-    {\r
-    case WM_INITDIALOG:\r
-\r
-        hIcon = (HICON)LoadImage(hInstance,\r
-                                 MAKEINTRESOURCE(IDI_MAIN_ICON),\r
-                                 IMAGE_ICON,\r
-                                 16,\r
-                                 16,\r
-                                 0);\r
-\r
-        SendMessage(hDlg,\r
-                    WM_SETICON,\r
-                    ICON_SMALL,\r
-                    (LPARAM)hIcon);\r
-\r
-        hLicenseEditWnd = GetDlgItem(hDlg,\r
-                                     IDC_LICENSE_EDIT);\r
-\r
-        LoadString(hInstance,\r
-                   IDS_LICENSE,\r
-                   strLicense,\r
-                   sizeof(strLicense) / sizeof(TCHAR));\r
-\r
-        SetWindowText(hLicenseEditWnd,\r
-                      strLicense);\r
-\r
-        return TRUE;\r
-\r
-    case WM_COMMAND:\r
-\r
-        if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL))\r
-        {\r
-            DestroyIcon(hIcon);\r
-            EndDialog(hDlg,\r
-                      LOWORD(wParam));\r
-            return TRUE;\r
-        }\r
-\r
-        break;\r
-    }\r
-\r
-    return FALSE;\r
-}\r
+/*
+ * PROJECT:     ReactOS Device Managment
+ * LICENSE:     GPL - See COPYING in the top level directory
+ * FILE:        base/system/devmgmt/about.c
+ * PURPOSE:     About dialog box message handler
+ * COPYRIGHT:   Copyright 2006 Ged Murphy <gedmurphy@gmail.com>
+ *
+ */
+
+#include "precomp.h"
+
+BOOL CALLBACK
+AboutDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+{
+    HWND  hLicenseEditWnd;
+    HICON hIcon = NULL;
+    TCHAR strLicense[700];
+
+    switch (message)
+    {
+    case WM_INITDIALOG:
+
+        hIcon = (HICON)LoadImage(hInstance,
+                                 MAKEINTRESOURCE(IDI_MAIN_ICON),
+                                 IMAGE_ICON,
+                                 16,
+                                 16,
+                                 0);
+
+        SendMessage(hDlg,
+                    WM_SETICON,
+                    ICON_SMALL,
+                    (LPARAM)hIcon);
+
+        hLicenseEditWnd = GetDlgItem(hDlg,
+                                     IDC_LICENSE_EDIT);
+
+        LoadString(hInstance,
+                   IDS_LICENSE,
+                   strLicense,
+                   sizeof(strLicense) / sizeof(TCHAR));
+
+        SetWindowText(hLicenseEditWnd,
+                      strLicense);
+
+        return TRUE;
+
+    case WM_COMMAND:
+
+        if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL))
+        {
+            DestroyIcon(hIcon);
+            EndDialog(hDlg,
+                      LOWORD(wParam));
+            return TRUE;
+        }
+
+        break;
+    }
+
+    return FALSE;
+}
index afb233b..2a0b984 100644 (file)
@@ -1,67 +1,67 @@
-/*\r
- * PROJECT:     ReactOS Device Managment\r
- * LICENSE:     GPL - See COPYING in the top level directory\r
- * FILE:        base/system/devmgmt/devmgmt.c\r
- * PURPOSE:     Program HQ\r
- * COPYRIGHT:   Copyright 2006 Ged Murphy <gedmurphy@gmail.com>\r
- *\r
- */\r
-\r
-#include "precomp.h"\r
-\r
-HINSTANCE hInstance;\r
-HANDLE ProcessHeap;\r
-\r
-int WINAPI\r
-WinMain(HINSTANCE hThisInstance,\r
-        HINSTANCE hPrevInstance,\r
-        LPSTR lpCmdLine,\r
-        int nCmdShow)\r
-{\r
-    LPTSTR lpAppName;\r
-    HWND hMainWnd;\r
-    MSG Msg;\r
-    int Ret = 1;\r
-    INITCOMMONCONTROLSEX icex;\r
-\r
-    hInstance = hThisInstance;\r
-    ProcessHeap = GetProcessHeap();\r
-\r
-    icex.dwSize = sizeof(INITCOMMONCONTROLSEX);\r
-    icex.dwICC = ICC_BAR_CLASSES | ICC_COOL_CLASSES;\r
-    InitCommonControlsEx(&icex);\r
-\r
-    if (!AllocAndLoadString(&lpAppName,\r
-                            hInstance,\r
-                            IDS_APPNAME))\r
-    {\r
-        return 1;\r
-    }\r
-\r
-    if (InitMainWindowImpl())\r
-    {\r
-        hMainWnd = CreateMainWindow(lpAppName,\r
-                                    nCmdShow);\r
-        if (hMainWnd != NULL)\r
-        {\r
-            /* pump the message queue */\r
-            while( GetMessage( &Msg, NULL, 0, 0 ) )\r
-            {\r
-                TranslateMessage(&Msg);\r
-                DispatchMessage(&Msg);\r
-\r
-            }\r
-\r
-            Ret = 0;\r
-        }\r
-\r
-        UninitMainWindowImpl();\r
-    }\r
-\r
-    LocalFree((HLOCAL)lpAppName);\r
-\r
-    return Ret;\r
-}\r
-\r
-\r
-\r
+/*
+ * PROJECT:     ReactOS Device Managment
+ * LICENSE:     GPL - See COPYING in the top level directory
+ * FILE:        base/system/devmgmt/devmgmt.c
+ * PURPOSE:     Program HQ
+ * COPYRIGHT:   Copyright 2006 Ged Murphy <gedmurphy@gmail.com>
+ *
+ */
+
+#include "precomp.h"
+
+HINSTANCE hInstance;
+HANDLE ProcessHeap;
+
+int WINAPI
+WinMain(HINSTANCE hThisInstance,
+        HINSTANCE hPrevInstance,
+        LPSTR lpCmdLine,
+        int nCmdShow)
+{
+    LPTSTR lpAppName;
+    HWND hMainWnd;
+    MSG Msg;
+    int Ret = 1;
+    INITCOMMONCONTROLSEX icex;
+
+    hInstance = hThisInstance;
+    ProcessHeap = GetProcessHeap();
+
+    icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
+    icex.dwICC = ICC_BAR_CLASSES | ICC_COOL_CLASSES;
+    InitCommonControlsEx(&icex);
+
+    if (!AllocAndLoadString(&lpAppName,
+                            hInstance,
+                            IDS_APPNAME))
+    {
+        return 1;
+    }
+
+    if (InitMainWindowImpl())
+    {
+        hMainWnd = CreateMainWindow(lpAppName,
+                                    nCmdShow);
+        if (hMainWnd != NULL)
+        {
+            /* pump the message queue */
+            while( GetMessage( &Msg, NULL, 0, 0 ) )
+            {
+                TranslateMessage(&Msg);
+                DispatchMessage(&Msg);
+
+            }
+
+            Ret = 0;
+        }
+
+        UninitMainWindowImpl();
+    }
+
+    LocalFree((HLOCAL)lpAppName);
+
+    return Ret;
+}
+
+
+
index 4c41615..55a1cf1 100644 (file)
@@ -1,29 +1,29 @@
-<?xml version="1.0"?>\r
-<rbuild xmlns:xi="http://www.w3.org/2001/XInclude">\r
-       <module name="devmgmt" type="win32gui" installbase="system32" installname="devmgmt.exe">\r
-       <include base="devmgmt">.</include>\r
-               <define name="UNICODE" />\r
-               <define name="_UNICODE" />\r
-               <define name="__REACTOS__" />\r
-               <define name="__USE_W32API" />\r
-               <define name="_WIN32_IE">0x600</define>\r
-               <define name="_WIN32_WINNT">0x501</define>\r
-               <library>ntdll</library>\r
-               <library>setupapi</library>\r
-               <library>gdi32</library>\r
-               <library>kernel32</library>\r
-               <library>user32</library>\r
-               <library>comctl32</library>\r
-               <library>advapi32</library>\r
-               <library>devmgr</library>\r
-               <compilationunit name="unit.c">\r
-                       <file>about.c</file>\r
-                       <file>devmgmt.c</file>\r
-                       <file>enumdevices.c</file>\r
-                       <file>mainwnd.c</file>\r
-                       <file>misc.c</file>\r
-               </compilationunit>\r
-               <file>devmgmt.rc</file>\r
-               <pch>precomp.h</pch>\r
-       </module>\r
-</rbuild>\r
+<?xml version="1.0"?>
+<rbuild xmlns:xi="http://www.w3.org/2001/XInclude">
+       <module name="devmgmt" type="win32gui" installbase="system32" installname="devmgmt.exe">
+       <include base="devmgmt">.</include>
+               <define name="UNICODE" />
+               <define name="_UNICODE" />
+               <define name="__REACTOS__" />
+               <define name="__USE_W32API" />
+               <define name="_WIN32_IE">0x600</define>
+               <define name="_WIN32_WINNT">0x501</define>
+               <library>ntdll</library>
+               <library>setupapi</library>
+               <library>gdi32</library>
+               <library>kernel32</library>
+               <library>user32</library>
+               <library>comctl32</library>
+               <library>advapi32</library>
+               <library>devmgr</library>
+               <compilationunit name="unit.c">
+                       <file>about.c</file>
+                       <file>devmgmt.c</file>
+                       <file>enumdevices.c</file>
+                       <file>mainwnd.c</file>
+                       <file>misc.c</file>
+               </compilationunit>
+               <file>devmgmt.rc</file>
+               <pch>precomp.h</pch>
+       </module>
+</rbuild>
index 9821767..badc2d9 100644 (file)
@@ -1,29 +1,29 @@
-#include <windows.h>\r
-#include <commctrl.h>\r
-#include "resource.h"\r
-\r
-#define REACTOS_STR_FILE_DESCRIPTION  "ReactOS Device Manager\0"\r
-#define REACTOS_STR_INTERNAL_NAME     "devmgmt\0"\r
-#define REACTOS_STR_ORIGINAL_FILENAME "devmgmt.exe\0"\r
-#include <reactos/version.rc>\r
-\r
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\r
-\r
-1 24 DISCARDABLE "manifest.xml"\r
-\r
-STRINGTABLE DISCARDABLE\r
-BEGIN\r
-  IDS_APPNAME "ReactOS Device Manager"\r
-END\r
-\r
-IDI_MAIN_ICON   ICON    "res/computer.ico"\r
-IDB_ROOT_IMAGE  BITMAP  "res/root.bmp"\r
-\r
-/* main toolbar icons */\r
-IDB_PROP    BITMAP DISCARDABLE "res/properties.bmp"\r
-IDB_REFRESH BITMAP DISCARDABLE "res/refresh.bmp"\r
-IDB_HELP    BITMAP DISCARDABLE "res/help.bmp"\r
-IDB_EXIT    BITMAP DISCARDABLE "res/exit.bmp"\r
-\r
-\r
-#include "En.rc"\r
+#include <windows.h>
+#include <commctrl.h>
+#include "resource.h"
+
+#define REACTOS_STR_FILE_DESCRIPTION  "ReactOS Device Manager\0"
+#define REACTOS_STR_INTERNAL_NAME     "devmgmt\0"
+#define REACTOS_STR_ORIGINAL_FILENAME "devmgmt.exe\0"
+#include <reactos/version.rc>
+
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+
+1 24 DISCARDABLE "manifest.xml"
+
+STRINGTABLE DISCARDABLE
+BEGIN
+  IDS_APPNAME "ReactOS Device Manager"
+END
+
+IDI_MAIN_ICON   ICON    "res/computer.ico"
+IDB_ROOT_IMAGE  BITMAP  "res/root.bmp"
+
+/* main toolbar icons */
+IDB_PROP    BITMAP DISCARDABLE "res/properties.bmp"
+IDB_REFRESH BITMAP DISCARDABLE "res/refresh.bmp"
+IDB_HELP    BITMAP DISCARDABLE "res/help.bmp"
+IDB_EXIT    BITMAP DISCARDABLE "res/exit.bmp"
+
+
+#include "En.rc"
index 9ba735f..ba4fa3b 100644 (file)
-/*\r
- * PROJECT:     ReactOS Device Managment\r
- * LICENSE:     GPL - See COPYING in the top level directory\r
- * FILE:        base/system/devmgmt/enumdevices.c\r
- * PURPOSE:     Enumerates all devices on the local machine\r
- * COPYRIGHT:   Copyright 2006 Ged Murphy <gedmurphy@gmail.com>\r
- *\r
- */\r
-\r
-#include "precomp.h"\r
-\r
-static SP_CLASSIMAGELIST_DATA ImageListData;\r
-static HDEVINFO hDevInfo;\r
-\r
-\r
-VOID\r
-FreeDeviceStrings(HWND hTreeView)\r
-{\r
-    HTREEITEM hItem;\r
-\r
-    hItem = TreeView_GetRoot(hTreeView);\r
-\r
-    if (hItem)\r
-    {\r
-        hItem = TreeView_GetChild(hTreeView,\r
-                                  hItem);\r
-        /* loop the parent items */\r
-        while (hItem)\r
-        {\r
-            hItem = TreeView_GetChild(hTreeView,\r
-                                      hItem);\r
-            if (hItem == NULL)\r
-                break;\r
-\r
-            /* loop the child items and free the DeviceID */\r
-            while (TRUE)\r
-            {\r
-                HTREEITEM hOldItem;\r
-                TV_ITEM tvItem;\r
-                //TCHAR Buf[100];\r
-\r
-                tvItem.hItem = hItem;\r
-                tvItem.mask = TVIF_PARAM;// | TVIF_TEXT;\r
-                //tvItem.pszText = Buf;\r
-                //tvItem.cchTextMax = 99;\r
-\r
-                (void)TreeView_GetItem(hTreeView, &tvItem);\r
-\r
-                //MessageBox(NULL, Buf, NULL, 0);\r
-\r
-                HeapFree(GetProcessHeap(),\r
-                         0,\r
-                         (LPTSTR)tvItem.lParam);\r
-\r
-                hOldItem = hItem;\r
-\r
-                hItem = TreeView_GetNextSibling(hTreeView,\r
-                                                hItem);\r
-                if (hItem == NULL)\r
-                {\r
-                    hItem = hOldItem;\r
-                    break;\r
-                }\r
-            }\r
-\r
-            hItem = TreeView_GetParent(hTreeView,\r
-                                       hItem);\r
-            hItem = TreeView_GetNextSibling(hTreeView,\r
-                                            hItem);\r
-        }\r
-    }\r
-}\r
-\r
-\r
-VOID\r
-OpenPropSheet(HWND hTreeView,\r
-              HTREEITEM hItem)\r
-{\r
-    TV_ITEM tvItem;\r
-\r
-    tvItem.hItem = hItem;\r
-    tvItem.mask = TVIF_PARAM;\r
-\r
-    if (TreeView_GetItem(hTreeView, &tvItem) &&\r
-        (LPTSTR)tvItem.lParam != NULL)\r
-    {\r
-        DevicePropertiesExW(hTreeView,\r
-                            NULL,\r
-                            (LPTSTR)tvItem.lParam,\r
-                            0,\r
-                            FALSE);\r
-    }\r
-\r
-}\r
-\r
-\r
-static HTREEITEM\r
-InsertIntoTreeView(HWND hTreeView,\r
-                   HTREEITEM hRoot,\r
-                   LPTSTR lpLabel,\r
-                   LPTSTR DeviceID,\r
-                   INT DevImage,\r
-                   LONG DevProb)\r
-{\r
-    TV_ITEM tvi;\r
-    TV_INSERTSTRUCT tvins;\r
-\r
-    ZeroMemory(&tvi, sizeof(tvi));\r
-    ZeroMemory(&tvins, sizeof(tvins));\r
-\r
-    tvi.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE;\r
-    tvi.pszText = lpLabel;\r
-    tvi.cchTextMax = lstrlen(lpLabel);\r
-    tvi.lParam = (LPARAM)DeviceID;\r
-    tvi.iImage = DevImage;\r
-    tvi.iSelectedImage = DevImage;\r
-\r
-    if (DevProb != 0)\r
-    {\r
-        tvi.stateMask = TVIS_OVERLAYMASK;\r
-\r
-        if (DevProb == CM_PROB_DISABLED)\r
-        {\r
-            /* FIXME: set the overlay icon */\r
-        }\r
-\r
-    }\r
-\r
-    tvins.item = tvi;\r
-    tvins.hParent = hRoot;\r
-\r
-    return TreeView_InsertItem(hTreeView, &tvins);\r
-}\r
-\r
-\r
-static INT\r
-EnumDeviceClasses(INT ClassIndex,\r
-                  LPTSTR DevClassName,\r
-                  LPTSTR DevClassDesc,\r
-                  BOOL *DevPresent,\r
-                  INT *ClassImage)\r
-{\r
-    GUID ClassGuid;\r
-    HKEY KeyClass;\r
-    TCHAR ClassName[MAX_CLASS_NAME_LEN];\r
-    DWORD RequiredSize = MAX_CLASS_NAME_LEN;\r
-    UINT Ret;\r
-\r
-    *DevPresent = FALSE;\r
-    *DevClassName = _T('\0');\r
-\r
-    Ret = CM_Enumerate_Classes(ClassIndex,\r
-                               &ClassGuid,\r
-                               0);\r
-    if (Ret != CR_SUCCESS)\r
-    {\r
-        /* all classes enumerated */\r
-        if(Ret == CR_NO_SUCH_VALUE)\r
-        {\r
-            hDevInfo = NULL;\r
-            return -1;\r
-        }\r
-\r
-        if (Ret == CR_INVALID_DATA)\r
-            ; /*FIXME: what should we do here? */\r
-\r
-        /* handle other errors... */\r
-    }\r
-\r
-    if (SetupDiClassNameFromGuid(&ClassGuid,\r
-                                 ClassName,\r
-                                 RequiredSize,\r
-                                 &RequiredSize))\r
-    {\r
-        lstrcpy(DevClassName, ClassName);\r
-    }\r
-\r
-    if (!SetupDiGetClassImageIndex(&ImageListData,\r
-                                   &ClassGuid,\r
-                                   ClassImage))\r
-    {\r
-        /* FIXME: can we do this?\r
-         * Set the blank icon: IDI_SETUPAPI_BLANK = 41\r
-         * it'll be image 24 in the imagelist */\r
-        *ClassImage = 24;\r
-    }\r
-\r
-    /* Get device info for all devices of a particular class */\r
-    hDevInfo = SetupDiGetClassDevs(&ClassGuid,\r
-                                   NULL,\r
-                                   NULL,\r
-                                   DIGCF_PRESENT);\r
-    if (hDevInfo == INVALID_HANDLE_VALUE)\r
-    {\r
-        hDevInfo = NULL;\r
-        return 0;\r
-    }\r
-\r
-    KeyClass = SetupDiOpenClassRegKeyEx(&ClassGuid,\r
-                                        MAXIMUM_ALLOWED,\r
-                                        DIOCR_INSTALLER,\r
-                                        NULL,\r
-                                        0);\r
-    if (KeyClass != INVALID_HANDLE_VALUE)\r
-    {\r
-\r
-        LONG dwSize = MAX_DEV_LEN;\r
-\r
-        if (RegQueryValue(KeyClass,\r
-                          NULL,\r
-                          DevClassDesc,\r
-                          &dwSize) != ERROR_SUCCESS)\r
-        {\r
-            *DevClassDesc = _T('\0');\r
-        }\r
-    }\r
-    else\r
-    {\r
-        return -3;\r
-    }\r
-\r
-    *DevPresent = TRUE;\r
-\r
-    RegCloseKey(KeyClass);\r
-\r
-    return 0;\r
-}\r
-\r
-\r
-static LONG\r
-EnumDevices(INT index,\r
-            LPTSTR DeviceClassName,\r
-            LPTSTR DeviceName,\r
-            LPTSTR *DeviceID)\r
-{\r
-    SP_DEVINFO_DATA DeviceInfoData;\r
-    CONFIGRET cr;\r
-    ULONG Status, ProblemNumber;\r
-    DWORD DevIdSize;\r
-\r
-    *DeviceName = _T('\0');\r
-    *DeviceID = NULL;\r
-\r
-    ZeroMemory(&DeviceInfoData, sizeof(SP_DEVINFO_DATA));\r
-    DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);\r
-\r
-    if (!SetupDiEnumDeviceInfo(hDevInfo,\r
-                               index,\r
-                               &DeviceInfoData))\r
-    {\r
-        /* no such device */\r
-        return -1;\r
-    }\r
-\r
-    /* get the device ID */\r
-    if (!SetupDiGetDeviceInstanceId(hDevInfo,\r
-                                    &DeviceInfoData,\r
-                                    NULL,\r
-                                    0,\r
-                                    &DevIdSize))\r
-    {\r
-        if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)\r
-        {\r
-            (*DeviceID) = (LPTSTR)HeapAlloc(GetProcessHeap(),\r
-                                            0,\r
-                                            DevIdSize * sizeof(TCHAR));\r
-            if (*DeviceID)\r
-            {\r
-                if (!SetupDiGetDeviceInstanceId(hDevInfo,\r
-                                                &DeviceInfoData,\r
-                                                *DeviceID,\r
-                                                DevIdSize,\r
-                                                NULL))\r
-                {\r
-                    HeapFree(GetProcessHeap(),\r
-                             0,\r
-                             *DeviceID);\r
-                    *DeviceID = NULL;\r
-                }\r
-            }\r
-        }\r
-    }\r
-\r
-    /* get the device's friendly name */\r
-    if (!SetupDiGetDeviceRegistryProperty(hDevInfo,\r
-                                          &DeviceInfoData,\r
-                                          SPDRP_FRIENDLYNAME,\r
-                                          0,\r
-                                          (BYTE*)DeviceName,\r
-                                          MAX_DEV_LEN,\r
-                                          NULL))\r
-    {\r
-        /* if the friendly name fails, try the description instead */\r
-        SetupDiGetDeviceRegistryProperty(hDevInfo,\r
-                                         &DeviceInfoData,\r
-                                         SPDRP_DEVICEDESC,\r
-                                         0,\r
-                                         (BYTE*)DeviceName,\r
-                                         MAX_DEV_LEN,\r
-                                         NULL);\r
-    }\r
-\r
-    cr = CM_Get_DevNode_Status_Ex(&Status,\r
-                                  &ProblemNumber,\r
-                                  DeviceInfoData.DevInst,\r
-                                  0,\r
-                                  NULL);\r
-    if (cr == CR_SUCCESS && (Status & DN_HAS_PROBLEM))\r
-    {\r
-        return ProblemNumber;\r
-    }\r
-\r
-    return 0;\r
-}\r
-\r
-\r
-VOID\r
-ListDevicesByType(HWND hTreeView,\r
-                  HTREEITEM hRoot)\r
-{\r
-    HTREEITEM hDevItem;\r
-    TCHAR DevName[MAX_DEV_LEN];\r
-    TCHAR DevDesc[MAX_DEV_LEN];\r
-    LPTSTR DeviceID = NULL;\r
-    BOOL DevExist = FALSE;\r
-    INT ClassRet;\r
-    INT index = 0;\r
-    INT DevImage;\r
-\r
-    do\r
-    {\r
-        ClassRet = EnumDeviceClasses(index,\r
-                                     DevName,\r
-                                     DevDesc,\r
-                                     &DevExist,\r
-                                     &DevImage);\r
-\r
-        if ((ClassRet != -1) && (DevExist))\r
-        {\r
-            TCHAR DeviceName[MAX_DEV_LEN];\r
-            INT DevIndex = 0;\r
-            LONG Ret;\r
-\r
-            if (DevDesc[0] != _T('\0'))\r
-            {\r
-                hDevItem = InsertIntoTreeView(hTreeView,\r
-                                              hRoot,\r
-                                              DevDesc,\r
-                                              NULL,\r
-                                              DevImage,\r
-                                              0);\r
-            }\r
-            else\r
-            {\r
-                hDevItem = InsertIntoTreeView(hTreeView,\r
-                                              hRoot,\r
-                                              DevName,\r
-                                              NULL,\r
-                                              DevImage,\r
-                                              0);\r
-            }\r
-\r
-            do\r
-            {\r
-                Ret = EnumDevices(DevIndex,\r
-                                  DevName,\r
-                                  DeviceName,\r
-                                  &DeviceID);\r
-                if (Ret >= 0)\r
-                {\r
-                    InsertIntoTreeView(hTreeView,\r
-                                       hDevItem,\r
-                                       DeviceName,\r
-                                       DeviceID,\r
-                                       DevImage,\r
-                                       Ret);\r
-                }\r
-\r
-                DevIndex++;\r
-\r
-            } while (Ret != -1);\r
-\r
-            /* kill InfoList initialized in EnumDeviceClasses */\r
-            if (hDevInfo)\r
-            {\r
-                SetupDiDestroyDeviceInfoList(hDevInfo);\r
-                hDevInfo = NULL;\r
-            }\r
-\r
-            /* don't insert classes with no devices */\r
-            if (!TreeView_GetChild(hTreeView,\r
-                                   hDevItem))\r
-            {\r
-                (void)TreeView_DeleteItem(hTreeView,\r
-                                          hDevItem);\r
-            }\r
-            else\r
-            {\r
-                (void)TreeView_SortChildren(hTreeView,\r
-                                            hDevItem,\r
-                                            0);\r
-            }\r
-        }\r
-\r
-        index++;\r
-\r
-    } while (ClassRet != -1);\r
-\r
-    (void)TreeView_Expand(hTreeView,\r
-                          hRoot,\r
-                          TVE_EXPAND);\r
-\r
-    (void)TreeView_SortChildren(hTreeView,\r
-                                hRoot,\r
-                                0);\r
-}\r
-\r
-\r
-HTREEITEM\r
-InitTreeView(HWND hTreeView)\r
-{\r
-    HTREEITEM hRoot;\r
-    HBITMAP hComp;\r
-    TCHAR ComputerName[MAX_PATH];\r
-    DWORD dwSize = MAX_PATH;\r
-    INT RootImage;\r
-\r
-    (void)TreeView_DeleteAllItems(hTreeView);\r
-\r
-    /* get the device image List */\r
-    ImageListData.cbSize = sizeof(ImageListData);\r
-    SetupDiGetClassImageList(&ImageListData);\r
-\r
-    hComp = LoadBitmap(hInstance,\r
-                       MAKEINTRESOURCE(IDB_ROOT_IMAGE));\r
-\r
-    ImageList_Add(ImageListData.ImageList,\r
-                  hComp,\r
-                  NULL);\r
-\r
-    DeleteObject(hComp);\r
-\r
-    (void)TreeView_SetImageList(hTreeView,\r
-                                ImageListData.ImageList,\r
-                                TVSIL_NORMAL);\r
-\r
-    if (!GetComputerName(ComputerName,\r
-                         &dwSize))\r
-    {\r
-        ComputerName[0] = _T('\0');\r
-    }\r
-\r
-    RootImage = ImageList_GetImageCount(ImageListData.ImageList) - 1;\r
-\r
-    /* insert the root item into the tree */\r
-    hRoot = InsertIntoTreeView(hTreeView,\r
-                               NULL,\r
-                               ComputerName,\r
-                               NULL,\r
-                               RootImage,\r
-                               0);\r
-\r
-    return hRoot;\r
-}\r
+/*
+ * PROJECT:     ReactOS Device Managment
+ * LICENSE:     GPL - See COPYING in the top level directory
+ * FILE:        base/system/devmgmt/enumdevices.c
+ * PURPOSE:     Enumerates all devices on the local machine
+ * COPYRIGHT:   Copyright 2006 Ged Murphy <gedmurphy@gmail.com>
+ *
+ */
+
+#include "precomp.h"
+
+static SP_CLASSIMAGELIST_DATA ImageListData;
+static HDEVINFO hDevInfo;
+
+
+VOID
+FreeDeviceStrings(HWND hTreeView)
+{
+    HTREEITEM hItem;
+
+    hItem = TreeView_GetRoot(hTreeView);
+
+    if (hItem)
+    {
+        hItem = TreeView_GetChild(hTreeView,
+                                  hItem);
+        /* loop the parent items */
+        while (hItem)
+        {
+            hItem = TreeView_GetChild(hTreeView,
+                                      hItem);
+            if (hItem == NULL)
+                break;
+
+            /* loop the child items and free the DeviceID */
+            while (TRUE)
+            {
+                HTREEITEM hOldItem;
+                TV_ITEM tvItem;
+                //TCHAR Buf[100];
+
+                tvItem.hItem = hItem;
+                tvItem.mask = TVIF_PARAM;// | TVIF_TEXT;
+                //tvItem.pszText = Buf;
+                //tvItem.cchTextMax = 99;
+
+                (void)TreeView_GetItem(hTreeView, &tvItem);
+
+                //MessageBox(NULL, Buf, NULL, 0);
+
+                HeapFree(GetProcessHeap(),
+                         0,
+                         (LPTSTR)tvItem.lParam);
+
+                hOldItem = hItem;
+
+                hItem = TreeView_GetNextSibling(hTreeView,
+                                                hItem);
+                if (hItem == NULL)
+                {
+                    hItem = hOldItem;
+                    break;
+                }
+            }
+
+            hItem = TreeView_GetParent(hTreeView,
+                                       hItem);
+            hItem = TreeView_GetNextSibling(hTreeView,
+                                            hItem);
+        }
+    }
+}
+
+
+VOID
+OpenPropSheet(HWND hTreeView,
+              HTREEITEM hItem)
+{
+    TV_ITEM tvItem;
+
+    tvItem.hItem = hItem;
+    tvItem.mask = TVIF_PARAM;
+
+    if (TreeView_GetItem(hTreeView, &tvItem) &&
+        (LPTSTR)tvItem.lParam != NULL)
+    {
+        DevicePropertiesExW(hTreeView,
+                            NULL,
+                            (LPTSTR)tvItem.lParam,
+                            0,
+                            FALSE);
+    }
+
+}
+
+
+static HTREEITEM
+InsertIntoTreeView(HWND hTreeView,
+                   HTREEITEM hRoot,
+                   LPTSTR lpLabel,
+                   LPTSTR DeviceID,
+                   INT DevImage,
+                   LONG DevProb)
+{
+    TV_ITEM tvi;
+    TV_INSERTSTRUCT tvins;
+
+    ZeroMemory(&tvi, sizeof(tvi));
+    ZeroMemory(&tvins, sizeof(tvins));
+
+    tvi.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
+    tvi.pszText = lpLabel;
+    tvi.cchTextMax = lstrlen(lpLabel);
+    tvi.lParam = (LPARAM)DeviceID;
+    tvi.iImage = DevImage;
+    tvi.iSelectedImage = DevImage;
+
+    if (DevProb != 0)
+    {
+        tvi.stateMask = TVIS_OVERLAYMASK;
+
+        if (DevProb == CM_PROB_DISABLED)
+        {
+            /* FIXME: set the overlay icon */
+        }
+
+    }
+
+    tvins.item = tvi;
+    tvins.hParent = hRoot;
+
+    return TreeView_InsertItem(hTreeView, &tvins);
+}
+
+
+static INT
+EnumDeviceClasses(INT ClassIndex,
+                  LPTSTR DevClassName,
+                  LPTSTR DevClassDesc,
+                  BOOL *DevPresent,
+                  INT *ClassImage)
+{
+    GUID ClassGuid;
+    HKEY KeyClass;
+    TCHAR ClassName[MAX_CLASS_NAME_LEN];
+    DWORD RequiredSize = MAX_CLASS_NAME_LEN;
+    UINT Ret;
+
+    *DevPresent = FALSE;
+    *DevClassName = _T('\0');
+
+    Ret = CM_Enumerate_Classes(ClassIndex,
+                               &ClassGuid,
+                               0);
+    if (Ret != CR_SUCCESS)
+    {
+        /* all classes enumerated */
+        if(Ret == CR_NO_SUCH_VALUE)
+        {
+            hDevInfo = NULL;
+            return -1;
+        }
+
+        if (Ret == CR_INVALID_DATA)
+            ; /*FIXME: what should we do here? */
+
+        /* handle other errors... */
+    }
+
+    if (SetupDiClassNameFromGuid(&ClassGuid,
+                                 ClassName,
+                                 RequiredSize,
+                                 &RequiredSize))
+    {
+        lstrcpy(DevClassName, ClassName);
+    }
+
+    if (!SetupDiGetClassImageIndex(&ImageListData,
+                                   &ClassGuid,
+                                   ClassImage))
+    {
+        /* FIXME: can we do this?
+         * Set the blank icon: IDI_SETUPAPI_BLANK = 41
+         * it'll be image 24 in the imagelist */
+        *ClassImage = 24;
+    }
+
+    /* Get device info for all devices of a particular class */
+    hDevInfo = SetupDiGetClassDevs(&ClassGuid,
+                                   NULL,
+                                   NULL,
+                                   DIGCF_PRESENT);
+    if (hDevInfo == INVALID_HANDLE_VALUE)
+    {
+        hDevInfo = NULL;
+        return 0;
+    }
+
+    KeyClass = SetupDiOpenClassRegKeyEx(&ClassGuid,
+                                        MAXIMUM_ALLOWED,
+                                        DIOCR_INSTALLER,
+                                        NULL,
+                                        0);
+    if (KeyClass != INVALID_HANDLE_VALUE)
+    {
+
+        LONG dwSize = MAX_DEV_LEN;
+
+        if (RegQueryValue(KeyClass,
+                          NULL,
+                          DevClassDesc,
+                          &dwSize) != ERROR_SUCCESS)
+        {
+            *DevClassDesc = _T('\0');
+        }
+    }
+    else
+    {
+        return -3;
+    }
+
+    *DevPresent = TRUE;
+
+    RegCloseKey(KeyClass);
+
+    return 0;
+}
+
+
+static LONG
+EnumDevices(INT index,
+            LPTSTR DeviceClassName,
+            LPTSTR DeviceName,
+            LPTSTR *DeviceID)
+{
+    SP_DEVINFO_DATA DeviceInfoData;
+    CONFIGRET cr;
+    ULONG Status, ProblemNumber;
+    DWORD DevIdSize;
+
+    *DeviceName = _T('\0');
+    *DeviceID = NULL;
+
+    ZeroMemory(&DeviceInfoData, sizeof(SP_DEVINFO_DATA));
+    DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
+
+    if (!SetupDiEnumDeviceInfo(hDevInfo,
+                               index,
+                               &DeviceInfoData))
+    {
+        /* no such device */
+        return -1;
+    }
+
+    /* get the device ID */
+    if (!SetupDiGetDeviceInstanceId(hDevInfo,
+                                    &DeviceInfoData,
+                                    NULL,
+                                    0,
+                                    &DevIdSize))
+    {
+        if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
+        {
+            (*DeviceID) = (LPTSTR)HeapAlloc(GetProcessHeap(),
+                                            0,
+                                            DevIdSize * sizeof(TCHAR));
+            if (*DeviceID)
+            {
+                if (!SetupDiGetDeviceInstanceId(hDevInfo,
+                                                &DeviceInfoData,
+                                                *DeviceID,
+                                                DevIdSize,
+                                                NULL))
+                {
+                    HeapFree(GetProcessHeap(),
+                             0,
+                             *DeviceID);
+                    *DeviceID = NULL;
+                }
+            }
+        }
+    }
+
+    /* get the device's friendly name */
+    if (!SetupDiGetDeviceRegistryProperty(hDevInfo,
+                                          &DeviceInfoData,
+                                          SPDRP_FRIENDLYNAME,
+                                          0,
+                                          (BYTE*)DeviceName,
+                                          MAX_DEV_LEN,
+                                          NULL))
+    {
+        /* if the friendly name fails, try the description instead */
+        SetupDiGetDeviceRegistryProperty(hDevInfo,
+                                         &DeviceInfoData,
+                                         SPDRP_DEVICEDESC,
+                                         0,
+                                         (BYTE*)DeviceName,
+                                         MAX_DEV_LEN,
+                                         NULL);
+    }
+
+    cr = CM_Get_DevNode_Status_Ex(&Status,
+                                  &ProblemNumber,
+                                  DeviceInfoData.DevInst,
+                                  0,
+                                  NULL);
+    if (cr == CR_SUCCESS && (Status & DN_HAS_PROBLEM))
+    {
+        return ProblemNumber;
+    }
+
+    return 0;
+}
+
+
+VOID
+ListDevicesByType(HWND hTreeView,
+                  HTREEITEM hRoot)
+{
+    HTREEITEM hDevItem;
+    TCHAR DevName[MAX_DEV_LEN];
+    TCHAR DevDesc[MAX_DEV_LEN];
+    LPTSTR DeviceID = NULL;
+    BOOL DevExist = FALSE;
+    INT ClassRet;
+    INT index = 0;
+    INT DevImage;
+
+    do
+    {
+        ClassRet = EnumDeviceClasses(index,
+                                     DevName,
+                                     DevDesc,
+                                     &DevExist,
+                                     &DevImage);
+
+        if ((ClassRet != -1) && (DevExist))
+        {
+            TCHAR DeviceName[MAX_DEV_LEN];
+            INT DevIndex = 0;
+            LONG Ret;
+
+            if (DevDesc[0] != _T('\0'))
+            {
+                hDevItem = InsertIntoTreeView(hTreeView,
+                                              hRoot,
+                                              DevDesc,
+                                              NULL,
+                                              DevImage,
+                                              0);
+            }
+            else
+            {
+                hDevItem = InsertIntoTreeView(hTreeView,
+                                              hRoot,
+                                              DevName,
+                                              NULL,
+                                              DevImage,
+                                              0);
+            }
+
+            do
+            {
+                Ret = EnumDevices(DevIndex,
+                                  DevName,
+                                  DeviceName,
+                                  &DeviceID);
+                if (Ret >= 0)
+                {
+                    InsertIntoTreeView(hTreeView,
+                                       hDevItem,
+                                       DeviceName,
+                                       DeviceID,
+                                       DevImage,
+                                       Ret);
+                }
+
+                DevIndex++;
+
+            } while (Ret != -1);
+
+            /* kill InfoList initialized in EnumDeviceClasses */
+            if (hDevInfo)
+            {
+                SetupDiDestroyDeviceInfoList(hDevInfo);
+                hDevInfo = NULL;
+            }
+
+            /* don't insert classes with no devices */
+            if (!TreeView_GetChild(hTreeView,
+                                   hDevItem))
+            {
+                (void)TreeView_DeleteItem(hTreeView,
+                                          hDevItem);
+            }
+            else
+            {
+                (void)TreeView_SortChildren(hTreeView,
+                                            hDevItem,
+                                            0);
+            }
+        }
+
+        index++;
+
+    } while (ClassRet != -1);
+
+    (void)TreeView_Expand(hTreeView,
+                          hRoot,
+                          TVE_EXPAND);
+
+    (void)TreeView_SortChildren(hTreeView,
+                                hRoot,
+                                0);
+}
+
+
+HTREEITEM
+InitTreeView(HWND hTreeView)
+{
+    HTREEITEM hRoot;
+    HBITMAP hComp;
+    TCHAR ComputerName[MAX_PATH];
+    DWORD dwSize = MAX_PATH;
+    INT RootImage;
+
+    (void)TreeView_DeleteAllItems(hTreeView);
+
+    /* get the device image List */
+    ImageListData.cbSize = sizeof(ImageListData);
+    SetupDiGetClassImageList(&ImageListData);
+
+    hComp = LoadBitmap(hInstance,
+                       MAKEINTRESOURCE(IDB_ROOT_IMAGE));
+
+    ImageList_Add(ImageListData.ImageList,
+                  hComp,
+                  NULL);
+
+    DeleteObject(hComp);
+
+    (void)TreeView_SetImageList(hTreeView,
+                                ImageListData.ImageList,
+                                TVSIL_NORMAL);
+
+    if (!GetComputerName(ComputerName,
+                         &dwSize))
+    {
+        ComputerName[0] = _T('\0');
+    }
+
+    RootImage = ImageList_GetImageCount(ImageListData.ImageList) - 1;
+
+    /* insert the root item into the tree */
+    hRoot = InsertIntoTreeView(hTreeView,
+                               NULL,
+                               ComputerName,
+                               NULL,
+                               RootImage,
+                               0);
+
+    return hRoot;
+}
index a43e680..9ad17c9 100644 (file)
-/*\r
- * PROJECT:     ReactOS Device Managment\r
- * LICENSE:     GPL - See COPYING in the top level directory\r
- * FILE:        base/system/devmgmt/mainwnd.c\r
- * PURPOSE:     Main window message handler\r
- * COPYRIGHT:   Copyright 2006 Ged Murphy <gedmurphy@gmail.com>\r
- *\r
- */\r
-\r
-#include "precomp.h"\r
-\r
-static const TCHAR szMainWndClass[] = TEXT("DevMgmtWndClass");\r
-\r
-\r
-/* Toolbar buttons */\r
-TBBUTTON Buttons [] =\r
-{   /* iBitmap, idCommand, fsState, fsStyle, bReserved[2], dwData, iString */\r
-    {TBICON_PROP,    IDC_PROP,    TBSTATE_INDETERMINATE, BTNS_BUTTON, {0}, 0, 0},   /* properties */\r
-    {TBICON_REFRESH, IDC_REFRESH, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0},   /* refresh */\r
-\r
-    /* Note: First item for a seperator is its width in pixels */\r
-    {15, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0},                           /* separator */\r
-\r
-    {TBICON_HELP,    IDC_PROGHELP,TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 },  /* help */\r
-    {TBICON_EXIT,    IDC_EXIT,    TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 },  /* exit */\r
-\r
-};\r
-\r
-\r
-/* menu hints */\r
-static const MENU_HINT MainMenuHintTable[] = {\r
-    /* File Menu */\r
-    {IDC_EXIT,     IDS_HINT_EXIT},\r
-\r
-    /* Action Menu */\r
-    {IDC_REFRESH,  IDS_HINT_REFRESH},\r
-    {IDC_PROP,     IDS_HINT_PROP},\r
-\r
-    /* Help Menu */\r
-    {IDC_PROGHELP, IDS_HINT_HELP},\r
-    {IDC_ABOUT,    IDS_HINT_ABOUT}\r
-};\r
-\r
-/* system menu hints */\r
-static const MENU_HINT SystemMenuHintTable[] = {\r
-    {SC_RESTORE,    IDS_HINT_SYS_RESTORE},\r
-    {SC_MOVE,       IDS_HINT_SYS_MOVE},\r
-    {SC_SIZE,       IDS_HINT_SYS_SIZE},\r
-    {SC_MINIMIZE,   IDS_HINT_SYS_MINIMIZE},\r
-    {SC_MAXIMIZE,   IDS_HINT_SYS_MAXIMIZE},\r
-    {SC_CLOSE,      IDS_HINT_SYS_CLOSE},\r
-};\r
-\r
-\r
-static BOOL\r
-MainWndMenuHint(PMAIN_WND_INFO Info,\r
-                WORD CmdId,\r
-                const MENU_HINT *HintArray,\r
-                DWORD HintsCount,\r
-                UINT DefHintId)\r
-{\r
-    BOOL Found = FALSE;\r
-    const MENU_HINT *LastHint;\r
-    UINT HintId = DefHintId;\r
-\r
-    LastHint = HintArray + HintsCount;\r
-    while (HintArray != LastHint)\r
-    {\r
-        if (HintArray->CmdId == CmdId)\r
-        {\r
-            HintId = HintArray->HintId;\r
-            Found = TRUE;\r
-            break;\r
-        }\r
-        HintArray++;\r
-    }\r
-\r
-    StatusBarLoadString(Info->hStatus,\r
-                        SB_SIMPLEID,\r
-                        hInstance,\r
-                        HintId);\r
-\r
-    return Found;\r
-}\r
-\r
-\r
-static VOID\r
-UpdateMainStatusBar(PMAIN_WND_INFO Info)\r
-{\r
-    if (Info->hStatus != NULL)\r
-    {\r
-        SendMessage(Info->hStatus,\r
-                    SB_SIMPLE,\r
-                    (WPARAM)Info->InMenuLoop,\r
-                    0);\r
-    }\r
-}\r
-\r
-\r
-static BOOL\r
-CreateToolbar(PMAIN_WND_INFO Info)\r
-{\r
-    INT NumButtons = sizeof(Buttons) / sizeof(Buttons[0]);\r
-\r
-    Info->hTool = CreateWindowEx(0,\r
-                                 TOOLBARCLASSNAME,\r
-                                 NULL,\r
-                                 WS_CHILD | WS_VISIBLE | TBSTYLE_FLAT | TBSTYLE_TOOLTIPS,\r
-                                 0, 0, 0, 0,\r
-                                 Info->hMainWnd,\r
-                                 (HMENU)IDC_TOOLBAR,\r
-                                 hInstance,\r
-                                 NULL);\r
-    if(Info->hTool != NULL)\r
-    {\r
-        HIMAGELIST hImageList;\r
-\r
-        SendMessage(Info->hTool,\r
-                    TB_SETEXTENDEDSTYLE,\r
-                    0,\r
-                    TBSTYLE_EX_HIDECLIPPEDBUTTONS);\r
-\r
-        SendMessage(Info->hTool,\r
-                    TB_BUTTONSTRUCTSIZE,\r
-                    sizeof(Buttons[0]),\r
-                    0);\r
-\r
-        hImageList = InitImageList(IDB_PROP,\r
-                                   IDB_EXIT,\r
-                                   16,\r
-                                   16);\r
-        if (hImageList == NULL)\r
-            return FALSE;\r
-\r
-        ImageList_Destroy((HIMAGELIST)SendMessage(Info->hTool,\r
-                                                  TB_SETIMAGELIST,\r
-                                                  0,\r
-                                                  (LPARAM)hImageList));\r
-\r
-        SendMessage(Info->hTool,\r
-                    TB_ADDBUTTONS,\r
-                    NumButtons,\r
-                    (LPARAM)Buttons);\r
-\r
-        return TRUE;\r
-    }\r
-\r
-    return FALSE;\r
-}\r
-\r
-\r
-static BOOL\r
-CreateTreeView(PMAIN_WND_INFO Info)\r
-{\r
-    Info->hTreeView = CreateWindowEx(0,\r
-                                     WC_TREEVIEW,\r
-                                     NULL,\r
-                                     WS_CHILD | WS_VISIBLE | WS_BORDER | TVS_HASLINES |\r
-                                      TVS_HASBUTTONS | TVS_SHOWSELALWAYS | TVS_LINESATROOT,\r
-                                     0, 0, 0, 0,\r
-                                     Info->hMainWnd,\r
-                                     (HMENU)IDC_TREEVIEW,\r
-                                     hInstance,\r
-                                     NULL);\r
-    if (Info->hTreeView == NULL)\r
-    {\r
-        DisplayString(_T("Could not create TreeView."));\r
-        return FALSE;\r
-    }\r
-\r
-    return TRUE;\r
-}\r
-\r
-static BOOL\r
-CreateStatusBar(PMAIN_WND_INFO Info)\r
-{\r
-    INT StatWidths[] = {110, -1}; /* widths of status bar */\r
-\r
-    Info->hStatus = CreateWindowEx(0,\r
-                                   STATUSCLASSNAME,\r
-                                   NULL,\r
-                                   WS_CHILD | WS_VISIBLE | SBARS_SIZEGRIP,\r
-                                   0, 0, 0, 0,\r
-                                   Info->hMainWnd,\r
-                                   (HMENU)IDC_STATUSBAR,\r
-                                   hInstance,\r
-                                   NULL);\r
-    if(Info->hStatus == NULL)\r
-        return FALSE;\r
-\r
-\r
-    SendMessage(Info->hStatus,\r
-                SB_SETPARTS,\r
-                sizeof(StatWidths) / sizeof(INT),\r
-                (LPARAM)StatWidths);\r
-\r
-    return TRUE;\r
-}\r
-\r
-\r
-static DWORD WINAPI\r
-DeviceEnumThread(LPVOID lpParameter)\r
-{\r
-    HTREEITEM hRoot;\r
-    HWND *hTreeView;\r
-\r
-    hTreeView = (HWND *)lpParameter;\r
-\r
-    if (*hTreeView)\r
-        FreeDeviceStrings(*hTreeView);\r
-\r
-    hRoot = InitTreeView(*hTreeView);\r
-    if (hRoot)\r
-    {\r
-        ListDevicesByType(*hTreeView, hRoot);\r
-        return 0;\r
-    }\r
-\r
-    return -1;\r
-}\r
-\r
-\r
-static BOOL\r
-InitMainWnd(PMAIN_WND_INFO Info)\r
-{\r
-    HANDLE DevEnumThread;\r
-    HMENU hMenu;\r
-\r
-    if (!CreateToolbar(Info))\r
-        DisplayString(_T("error creating toolbar"));\r
-\r
-    if (!CreateTreeView(Info))\r
-    {\r
-        DisplayString(_T("error creating list view"));\r
-        return FALSE;\r
-    }\r
-\r
-    if (!CreateStatusBar(Info))\r
-        DisplayString(_T("error creating status bar"));\r
-\r
-    /* make 'properties' bold */\r
-    hMenu = GetMenu(Info->hMainWnd);\r
-    hMenu = GetSubMenu(hMenu, 1);\r
-    SetMenuDefaultItem(hMenu, IDC_PROP, FALSE);\r
-\r
-    /* Create Popup Menu */\r
-    Info->hShortcutMenu = LoadMenu(hInstance,\r
-                                   MAKEINTRESOURCE(IDR_POPUP));\r
-    Info->hShortcutMenu = GetSubMenu(Info->hShortcutMenu,\r
-                                     0);\r
-    SetMenuDefaultItem(Info->hShortcutMenu, IDC_PROP, FALSE);\r
-\r
-    /* create seperate thread to emum devices */\r
-    DevEnumThread = CreateThread(NULL,\r
-                                 0,\r
-                                 DeviceEnumThread,\r
-                                 &Info->hTreeView,\r
-                                 0,\r
-                                 NULL);\r
-    if (!DevEnumThread)\r
-    {\r
-        DisplayString(_T("Failed to enumerate devices"));\r
-        return FALSE;\r
-    }\r
-\r
-    CloseHandle(DevEnumThread);\r
-    return TRUE;\r
-}\r
-\r
-\r
-static VOID\r
-OnContext(PMAIN_WND_INFO Info,\r
-          LPARAM lParam)\r
-{\r
-    HTREEITEM hSelected;\r
-    POINT pt;\r
-    RECT rc;\r
-\r
-    INT xPos = GET_X_LPARAM(lParam);\r
-    INT yPos = GET_Y_LPARAM(lParam);\r
-\r
-    hSelected = TreeView_GetSelection(Info->hTreeView);\r
-\r
-    if (TreeView_GetItemRect(Info->hTreeView,\r
-                         hSelected,\r
-                         &rc,\r
-                         TRUE))\r
-    {\r
-        if (GetCursorPos(&pt) &&\r
-            ScreenToClient(Info->hTreeView, &pt) &&\r
-            PtInRect(&rc, pt))\r
-        {\r
-            TrackPopupMenuEx(Info->hShortcutMenu,\r
-                             TPM_RIGHTBUTTON,\r
-                             xPos,\r
-                             yPos,\r
-                             Info->hMainWnd,\r
-                             NULL);\r
-        }\r
-    }\r
-}\r
-\r
-\r
-static VOID\r
-OnNotify(PMAIN_WND_INFO Info,\r
-         LPARAM lParam)\r
-{\r
-    LPNMHDR pnmhdr = (LPNMHDR)lParam;\r
-\r
-    switch (pnmhdr->code)\r
-    {\r
-        case TVN_SELCHANGED:\r
-        {\r
-            LPNM_TREEVIEW pnmtv = (LPNM_TREEVIEW)lParam;\r
-\r
-            if (!TreeView_GetChild(Info->hTreeView,\r
-                                   pnmtv->itemNew.hItem))\r
-            {\r
-                SendMessage(Info->hTool,\r
-                            TB_SETSTATE,\r
-                            IDC_PROP,\r
-                            (LPARAM)MAKELONG(TBSTATE_ENABLED, 0));\r
-\r
-                EnableMenuItem(GetMenu(Info->hMainWnd), IDC_PROP, MF_ENABLED);\r
-                EnableMenuItem(Info->hShortcutMenu, IDC_PROP, MF_ENABLED);\r
-            }\r
-            else\r
-            {\r
-                SendMessage(Info->hTool,\r
-                            TB_SETSTATE,\r
-                            IDC_PROP,\r
-                            (LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0));\r
-\r
-                EnableMenuItem(GetMenu(Info->hMainWnd), IDC_PROP, MF_GRAYED);\r
-                EnableMenuItem(Info->hShortcutMenu, IDC_PROP, MF_GRAYED);\r
-            }\r
-        }\r
-        break;\r
-\r
-        case NM_DBLCLK:\r
-        {\r
-            HTREEITEM hSelected = TreeView_GetSelection(Info->hTreeView);\r
-\r
-            if (!TreeView_GetChild(Info->hTreeView,\r
-                                   hSelected))\r
-            {\r
-                OpenPropSheet(Info->hTreeView,\r
-                              hSelected);\r
-            }\r
-        }\r
-        break;\r
-\r
-        case NM_RCLICK:\r
-        {\r
-            TV_HITTESTINFO HitTest;\r
-\r
-            if (GetCursorPos(&HitTest.pt) &&\r
-                ScreenToClient(Info->hTreeView, &HitTest.pt))\r
-            {\r
-                if (TreeView_HitTest(Info->hTreeView, &HitTest))\r
-                    (void)TreeView_SelectItem(Info->hTreeView, HitTest.hItem);\r
-            }\r
-        }\r
-        break;\r
-\r
-        case TTN_GETDISPINFO:\r
-        {\r
-            LPTOOLTIPTEXT lpttt;\r
-            UINT idButton;\r
-\r
-            lpttt = (LPTOOLTIPTEXT)lParam;\r
-\r
-            idButton = (UINT)lpttt->hdr.idFrom;\r
-            switch (idButton)\r
-            {\r
-                case IDC_PROP:\r
-                    lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_PROP);\r
-                break;\r
-\r
-                case IDC_REFRESH:\r
-                    lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_REFRESH);\r
-                break;\r
-\r
-                case IDC_PROGHELP:\r
-                    lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_HELP);\r
-                break;\r
-\r
-                case IDC_EXIT:\r
-                    lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_EXIT);\r
-                break;\r
-            }\r
-        }\r
-        break;\r
-    }\r
-}\r
-\r
-\r
-static VOID\r
-MainWndCommand(PMAIN_WND_INFO Info,\r
-               WORD CmdId,\r
-               HWND hControl)\r
-{\r
-    UNREFERENCED_PARAMETER(hControl);\r
-\r
-    switch (CmdId)\r
-    {\r
-        case IDC_PROP:\r
-        {\r
-            HTREEITEM hSelected = TreeView_GetSelection(Info->hTreeView);\r
-            OpenPropSheet(Info->hTreeView,\r
-                          hSelected);\r
-        }\r
-        break;\r
-\r
-        case IDC_REFRESH:\r
-        {\r
-            HANDLE DevEnumThread;\r
-\r
-            SendMessage(Info->hTool,\r
-                        TB_SETSTATE,\r
-                        IDC_PROP,\r
-                        (LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0));\r
-\r
-            EnableMenuItem(GetMenu(Info->hMainWnd), IDC_PROP, MF_GRAYED);\r
-            EnableMenuItem(Info->hShortcutMenu, IDC_PROP, MF_GRAYED);\r
-\r
-            /* create seperate thread to emum devices */\r
-            DevEnumThread = CreateThread(NULL,\r
-                                         0,\r
-                                         DeviceEnumThread,\r
-                                         &Info->hTreeView,\r
-                                         0,\r
-                                         NULL);\r
-            if (!DevEnumThread)\r
-            {\r
-                DisplayString(_T("Failed to enumerate devices"));\r
-                break;\r
-            }\r
-\r
-            CloseHandle(DevEnumThread);\r
-        }\r
-        break;\r
-\r
-        case IDC_PROGHELP:\r
-        {\r
-            DisplayString(_T("Help is not yet implemented\n"));\r
-            SetFocus(Info->hTreeView);\r
-        }\r
-        break;\r
-\r
-        case IDC_EXIT:\r
-        {\r
-            PostMessage(Info->hMainWnd,\r
-                        WM_CLOSE,\r
-                        0,\r
-                        0);\r
-        }\r
-        break;\r
-\r
-        case IDC_ABOUT:\r
-        {\r
-            DialogBox(hInstance,\r
-                      MAKEINTRESOURCE(IDD_ABOUTBOX),\r
-                      Info->hMainWnd,\r
-                      (DLGPROC)AboutDialogProc);\r
-\r
-            SetFocus(Info->hTreeView);\r
-        }\r
-        break;\r
-\r
-    }\r
-}\r
-\r
-\r
-static VOID CALLBACK\r
-MainWndResize(PMAIN_WND_INFO Info,\r
-              WORD cx,\r
-              WORD cy)\r
-{\r
-    RECT rcClient, rcTool, rcStatus;\r
-    int lvHeight, iToolHeight, iStatusHeight;\r
-\r
-    /* Size toolbar and get height */\r
-    SendMessage(Info->hTool, TB_AUTOSIZE, 0, 0);\r
-    GetWindowRect(Info->hTool, &rcTool);\r
-    iToolHeight = rcTool.bottom - rcTool.top;\r
-\r
-    /* Size status bar and get height */\r
-    SendMessage(Info->hStatus, WM_SIZE, 0, 0);\r
-    GetWindowRect(Info->hStatus, &rcStatus);\r
-    iStatusHeight = rcStatus.bottom - rcStatus.top;\r
-\r
-    /* Calculate remaining height and size list view */\r
-    GetClientRect(Info->hMainWnd, &rcClient);\r
-    lvHeight = rcClient.bottom - iToolHeight - iStatusHeight;\r
-    SetWindowPos(Info->hTreeView,\r
-                 NULL,\r
-                 0,\r
-                 iToolHeight,\r
-                 rcClient.right,\r
-                 lvHeight,\r
-                 SWP_NOZORDER);\r
-}\r
-\r
-\r
-static LRESULT CALLBACK\r
-MainWndProc(HWND hwnd,\r
-            UINT msg,\r
-            WPARAM wParam,\r
-            LPARAM lParam)\r
-{\r
-    PMAIN_WND_INFO Info;\r
-    LRESULT Ret = 0;\r
-\r
-    /* Get the window context */\r
-    Info = (PMAIN_WND_INFO)GetWindowLongPtr(hwnd,\r
-                                            GWLP_USERDATA);\r
-    if (Info == NULL && msg != WM_CREATE)\r
-    {\r
-        goto HandleDefaultMessage;\r
-    }\r
-\r
-    switch(msg)\r
-    {\r
-        case WM_CREATE:\r
-        {\r
-            Info = (PMAIN_WND_INFO)(((LPCREATESTRUCT)lParam)->lpCreateParams);\r
-\r
-            /* Initialize the main window context */\r
-            Info->hMainWnd = hwnd;\r
-\r
-            SetWindowLongPtr(hwnd,\r
-                             GWLP_USERDATA,\r
-                             (LONG_PTR)Info);\r
-\r
-            if (!InitMainWnd(Info))\r
-                SendMessage(hwnd, WM_CLOSE, 0, 0);\r
-\r
-            /* Show the window */\r
-            ShowWindow(hwnd,\r
-                       Info->nCmdShow);\r
-\r
-        }\r
-        break;\r
-\r
-        case WM_SIZE:\r
-        {\r
-            MainWndResize(Info,\r
-                          LOWORD(lParam),\r
-                          HIWORD(lParam));\r
-        }\r
-        break;\r
-\r
-        case WM_NOTIFY:\r
-        {\r
-            OnNotify(Info, lParam);\r
-        }\r
-        break;\r
-\r
-        case WM_CONTEXTMENU:\r
-        {\r
-            OnContext(Info, lParam);\r
-        }\r
-        break;\r
-\r
-        case WM_COMMAND:\r
-        {\r
-            MainWndCommand(Info,\r
-                           LOWORD(wParam),\r
-                           (HWND)lParam);\r
-            goto HandleDefaultMessage;\r
-        }\r
-\r
-        case WM_MENUSELECT:\r
-        {\r
-            if (Info->hStatus != NULL)\r
-            {\r
-                if (!MainWndMenuHint(Info,\r
-                                     LOWORD(wParam),\r
-                                     MainMenuHintTable,\r
-                                     sizeof(MainMenuHintTable) / sizeof(MainMenuHintTable[0]),\r
-                                     IDS_HINT_BLANK))\r
-                {\r
-                    MainWndMenuHint(Info,\r
-                                    LOWORD(wParam),\r
-                                    SystemMenuHintTable,\r
-                                    sizeof(SystemMenuHintTable) / sizeof(SystemMenuHintTable[0]),\r
-                                    IDS_HINT_BLANK);\r
-                }\r
-            }\r
-        }\r
-        break;\r
-\r
-        case WM_ENTERMENULOOP:\r
-        {\r
-            Info->InMenuLoop = TRUE;\r
-            UpdateMainStatusBar(Info);\r
-            break;\r
-        }\r
-\r
-        case WM_EXITMENULOOP:\r
-        {\r
-            Info->InMenuLoop = FALSE;\r
-            UpdateMainStatusBar(Info);\r
-            break;\r
-        }\r
-\r
-        case WM_CLOSE:\r
-        {\r
-            FreeDeviceStrings(Info->hTreeView);\r
-            DestroyMenu(Info->hShortcutMenu);\r
-            DestroyWindow(hwnd);\r
-        }\r
-        break;\r
-\r
-        case WM_DESTROY:\r
-        {\r
-            HeapFree(ProcessHeap,\r
-                     0,\r
-                     Info);\r
-            SetWindowLongPtr(hwnd,\r
-                             GWLP_USERDATA,\r
-                             0);\r
-\r
-            /* Break the message queue loop */\r
-            PostQuitMessage(0);\r
-        }\r
-        break;\r
-\r
-        default:\r
-        {\r
-HandleDefaultMessage:\r
-\r
-            Ret = DefWindowProc(hwnd,\r
-                                msg,\r
-                                wParam,\r
-                                lParam);\r
-        }\r
-        break;\r
-    }\r
-    return Ret;\r
-}\r
-\r
-\r
-\r
-HWND\r
-CreateMainWindow(LPCTSTR lpCaption,\r
-                 int nCmdShow)\r
-{\r
-    PMAIN_WND_INFO Info;\r
-    HWND hMainWnd = NULL;\r
-\r
-    Info = (PMAIN_WND_INFO)HeapAlloc(ProcessHeap,\r
-                                     HEAP_ZERO_MEMORY,\r
-                                     sizeof(MAIN_WND_INFO));\r
-\r
-    if (Info != NULL)\r
-    {\r
-        Info->nCmdShow = nCmdShow;\r
-\r
-        hMainWnd = CreateWindowEx(WS_EX_WINDOWEDGE,\r
-                                  szMainWndClass,\r
-                                  lpCaption,\r
-                                  WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS,\r
-                                  CW_USEDEFAULT,\r
-                                  CW_USEDEFAULT,\r
-                                  600,\r
-                                  450,\r
-                                  NULL,\r
-                                  NULL,\r
-                                  hInstance,\r
-                                  Info);\r
-        if (hMainWnd == NULL)\r
-        {\r
-            GetError();\r
-            HeapFree(ProcessHeap,\r
-                     0,\r
-                     Info);\r
-        }\r
-    }\r
-\r
-    return hMainWnd;\r
-}\r
-\r
-BOOL\r
-InitMainWindowImpl(VOID)\r
-{\r
-    WNDCLASSEX wc = {0};\r
-\r
-    wc.cbSize = sizeof(WNDCLASSEX);\r
-    wc.lpfnWndProc = MainWndProc;\r
-    wc.hInstance = hInstance;\r
-    wc.hIcon = LoadIcon(hInstance,\r
-                        MAKEINTRESOURCE(IDI_MAIN_ICON));\r
-    wc.hCursor = LoadCursor(NULL,\r
-                            IDC_ARROW);\r
-    wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);\r
-    wc.lpszMenuName = MAKEINTRESOURCE(IDR_MAINMENU);\r
-    wc.lpszClassName = szMainWndClass;\r
-    wc.hIconSm = (HICON)LoadImage(hInstance,\r
-                                  MAKEINTRESOURCE(IDI_MAIN_ICON),\r
-                                  IMAGE_ICON,\r
-                                  16,\r
-                                  16,\r
-                                  LR_SHARED);\r
-\r
-    return RegisterClassEx(&wc) != (ATOM)0;\r
-}\r
-\r
-\r
-VOID\r
-UninitMainWindowImpl(VOID)\r
-{\r
-    UnregisterClass(szMainWndClass,\r
-                    hInstance);\r
-}\r
-\r
-\r
+/*
+ * PROJECT:     ReactOS Device Managment
+ * LICENSE:     GPL - See COPYING in the top level directory
+ * FILE:        base/system/devmgmt/mainwnd.c
+ * PURPOSE:     Main window message handler
+ * COPYRIGHT:   Copyright 2006 Ged Murphy <gedmurphy@gmail.com>
+ *
+ */
+
+#include "precomp.h"
+
+static const TCHAR szMainWndClass[] = TEXT("DevMgmtWndClass");
+
+
+/* Toolbar buttons */
+TBBUTTON Buttons [] =
+{   /* iBitmap, idCommand, fsState, fsStyle, bReserved[2], dwData, iString */
+    {TBICON_PROP,    IDC_PROP,    TBSTATE_INDETERMINATE, BTNS_BUTTON, {0}, 0, 0},   /* properties */
+    {TBICON_REFRESH, IDC_REFRESH, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0},   /* refresh */
+
+    /* Note: First item for a seperator is its width in pixels */
+    {15, 0, TBSTATE_ENABLED, BTNS_SEP, {0}, 0, 0},                           /* separator */
+
+    {TBICON_HELP,    IDC_PROGHELP,TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 },  /* help */
+    {TBICON_EXIT,    IDC_EXIT,    TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, 0 },  /* exit */
+
+};
+
+
+/* menu hints */
+static const MENU_HINT MainMenuHintTable[] = {
+    /* File Menu */
+    {IDC_EXIT,     IDS_HINT_EXIT},
+
+    /* Action Menu */
+    {IDC_REFRESH,  IDS_HINT_REFRESH},
+    {IDC_PROP,     IDS_HINT_PROP},
+
+    /* Help Menu */
+    {IDC_PROGHELP, IDS_HINT_HELP},
+    {IDC_ABOUT,    IDS_HINT_ABOUT}
+};
+
+/* system menu hints */
+static const MENU_HINT SystemMenuHintTable[] = {
+    {SC_RESTORE,    IDS_HINT_SYS_RESTORE},
+    {SC_MOVE,       IDS_HINT_SYS_MOVE},
+    {SC_SIZE,       IDS_HINT_SYS_SIZE},
+    {SC_MINIMIZE,   IDS_HINT_SYS_MINIMIZE},
+    {SC_MAXIMIZE,   IDS_HINT_SYS_MAXIMIZE},
+    {SC_CLOSE,      IDS_HINT_SYS_CLOSE},
+};
+
+
+static BOOL
+MainWndMenuHint(PMAIN_WND_INFO Info,
+                WORD CmdId,
+                const MENU_HINT *HintArray,
+                DWORD HintsCount,
+                UINT DefHintId)
+{
+    BOOL Found = FALSE;
+    const MENU_HINT *LastHint;
+    UINT HintId = DefHintId;
+
+    LastHint = HintArray + HintsCount;
+    while (HintArray != LastHint)
+    {
+        if (HintArray->CmdId == CmdId)
+        {
+            HintId = HintArray->HintId;
+            Found = TRUE;
+            break;
+        }
+        HintArray++;
+    }
+
+    StatusBarLoadString(Info->hStatus,
+                        SB_SIMPLEID,
+                        hInstance,
+                        HintId);
+
+    return Found;
+}
+
+
+static VOID
+UpdateMainStatusBar(PMAIN_WND_INFO Info)
+{
+    if (Info->hStatus != NULL)
+    {
+        SendMessage(Info->hStatus,
+                    SB_SIMPLE,
+                    (WPARAM)Info->InMenuLoop,
+                    0);
+    }
+}
+
+
+static BOOL
+CreateToolbar(PMAIN_WND_INFO Info)
+{
+    INT NumButtons = sizeof(Buttons) / sizeof(Buttons[0]);
+
+    Info->hTool = CreateWindowEx(0,
+                                 TOOLBARCLASSNAME,
+                                 NULL,
+                                 WS_CHILD | WS_VISIBLE | TBSTYLE_FLAT | TBSTYLE_TOOLTIPS,
+                                 0, 0, 0, 0,
+                                 Info->hMainWnd,
+                                 (HMENU)IDC_TOOLBAR,
+                                 hInstance,
+                                 NULL);
+    if(Info->hTool != NULL)
+    {
+        HIMAGELIST hImageList;
+
+        SendMessage(Info->hTool,
+                    TB_SETEXTENDEDSTYLE,
+                    0,
+                    TBSTYLE_EX_HIDECLIPPEDBUTTONS);
+
+        SendMessage(Info->hTool,
+                    TB_BUTTONSTRUCTSIZE,
+                    sizeof(Buttons[0]),
+                    0);
+
+        hImageList = InitImageList(IDB_PROP,
+                                   IDB_EXIT,
+                                   16,
+                                   16);
+        if (hImageList == NULL)
+            return FALSE;
+
+        ImageList_Destroy((HIMAGELIST)SendMessage(Info->hTool,
+                                                  TB_SETIMAGELIST,
+                                                  0,
+                                                  (LPARAM)hImageList));
+
+        SendMessage(Info->hTool,
+                    TB_ADDBUTTONS,
+                    NumButtons,
+                    (LPARAM)Buttons);
+
+        return TRUE;
+    }
+
+    return FALSE;
+}
+
+
+static BOOL
+CreateTreeView(PMAIN_WND_INFO Info)
+{
+    Info->hTreeView = CreateWindowEx(0,
+                                     WC_TREEVIEW,
+                                     NULL,
+                                     WS_CHILD | WS_VISIBLE | WS_BORDER | TVS_HASLINES |
+                                      TVS_HASBUTTONS | TVS_SHOWSELALWAYS | TVS_LINESATROOT,
+                                     0, 0, 0, 0,
+                                     Info->hMainWnd,
+                                     (HMENU)IDC_TREEVIEW,
+                                     hInstance,
+                                     NULL);
+    if (Info->hTreeView == NULL)
+    {
+        DisplayString(_T("Could not create TreeView."));
+        return FALSE;
+    }
+
+    return TRUE;
+}
+
+static BOOL
+CreateStatusBar(PMAIN_WND_INFO Info)
+{
+    INT StatWidths[] = {110, -1}; /* widths of status bar */
+
+    Info->hStatus = CreateWindowEx(0,
+                                   STATUSCLASSNAME,
+                                   NULL,
+                                   WS_CHILD | WS_VISIBLE | SBARS_SIZEGRIP,
+                                   0, 0, 0, 0,
+                                   Info->hMainWnd,
+                                   (HMENU)IDC_STATUSBAR,
+                                   hInstance,
+                                   NULL);
+    if(Info->hStatus == NULL)
+        return FALSE;
+
+
+    SendMessage(Info->hStatus,
+                SB_SETPARTS,
+                sizeof(StatWidths) / sizeof(INT),
+                (LPARAM)StatWidths);
+
+    return TRUE;
+}
+
+
+static DWORD WINAPI
+DeviceEnumThread(LPVOID lpParameter)
+{
+    HTREEITEM hRoot;
+    HWND *hTreeView;
+
+    hTreeView = (HWND *)lpParameter;
+
+    if (*hTreeView)
+        FreeDeviceStrings(*hTreeView);
+
+    hRoot = InitTreeView(*hTreeView);
+    if (hRoot)
+    {
+        ListDevicesByType(*hTreeView, hRoot);
+        return 0;
+    }
+
+    return -1;
+}
+
+
+static BOOL
+InitMainWnd(PMAIN_WND_INFO Info)
+{
+    HANDLE DevEnumThread;
+    HMENU hMenu;
+
+    if (!CreateToolbar(Info))
+        DisplayString(_T("error creating toolbar"));
+
+    if (!CreateTreeView(Info))
+    {
+        DisplayString(_T("error creating list view"));
+        return FALSE;
+    }
+
+    if (!CreateStatusBar(Info))
+        DisplayString(_T("error creating status bar"));
+
+    /* make 'properties' bold */
+    hMenu = GetMenu(Info->hMainWnd);
+    hMenu = GetSubMenu(hMenu, 1);
+    SetMenuDefaultItem(hMenu, IDC_PROP, FALSE);
+
+    /* Create Popup Menu */
+    Info->hShortcutMenu = LoadMenu(hInstance,
+                                   MAKEINTRESOURCE(IDR_POPUP));
+    Info->hShortcutMenu = GetSubMenu(Info->hShortcutMenu,
+                                     0);
+    SetMenuDefaultItem(Info->hShortcutMenu, IDC_PROP, FALSE);
+
+    /* create seperate thread to emum devices */
+    DevEnumThread = CreateThread(NULL,
+                                 0,
+                                 DeviceEnumThread,
+                                 &Info->hTreeView,
+                                 0,
+                                 NULL);
+    if (!DevEnumThread)
+    {
+        DisplayString(_T("Failed to enumerate devices"));
+        return FALSE;
+    }
+
+    CloseHandle(DevEnumThread);
+    return TRUE;
+}
+
+
+static VOID
+OnContext(PMAIN_WND_INFO Info,
+          LPARAM lParam)
+{
+    HTREEITEM hSelected;
+    POINT pt;
+    RECT rc;
+
+    INT xPos = GET_X_LPARAM(lParam);
+    INT yPos = GET_Y_LPARAM(lParam);
+
+    hSelected = TreeView_GetSelection(Info->hTreeView);
+
+    if (TreeView_GetItemRect(Info->hTreeView,
+                         hSelected,
+                         &rc,
+                         TRUE))
+    {
+        if (GetCursorPos(&pt) &&
+            ScreenToClient(Info->hTreeView, &pt) &&
+            PtInRect(&rc, pt))
+        {
+            TrackPopupMenuEx(Info->hShortcutMenu,
+                             TPM_RIGHTBUTTON,
+                             xPos,
+                             yPos,
+                             Info->hMainWnd,
+                             NULL);
+        }
+    }
+}
+
+
+static VOID
+OnNotify(PMAIN_WND_INFO Info,
+         LPARAM lParam)
+{
+    LPNMHDR pnmhdr = (LPNMHDR)lParam;
+
+    switch (pnmhdr->code)
+    {
+        case TVN_SELCHANGED:
+        {
+            LPNM_TREEVIEW pnmtv = (LPNM_TREEVIEW)lParam;
+
+            if (!TreeView_GetChild(Info->hTreeView,
+                                   pnmtv->itemNew.hItem))
+            {
+                SendMessage(Info->hTool,
+                            TB_SETSTATE,
+                            IDC_PROP,
+                            (LPARAM)MAKELONG(TBSTATE_ENABLED, 0));
+
+                EnableMenuItem(GetMenu(Info->hMainWnd), IDC_PROP, MF_ENABLED);
+                EnableMenuItem(Info->hShortcutMenu, IDC_PROP, MF_ENABLED);
+            }
+            else
+            {
+                SendMessage(Info->hTool,
+                            TB_SETSTATE,
+                            IDC_PROP,
+                            (LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0));
+
+                EnableMenuItem(GetMenu(Info->hMainWnd), IDC_PROP, MF_GRAYED);
+                EnableMenuItem(Info->hShortcutMenu, IDC_PROP, MF_GRAYED);
+            }
+        }
+        break;
+
+        case NM_DBLCLK:
+        {
+            HTREEITEM hSelected = TreeView_GetSelection(Info->hTreeView);
+
+            if (!TreeView_GetChild(Info->hTreeView,
+                                   hSelected))
+            {
+                OpenPropSheet(Info->hTreeView,
+                              hSelected);
+            }
+        }
+        break;
+
+        case NM_RCLICK:
+        {
+            TV_HITTESTINFO HitTest;
+
+            if (GetCursorPos(&HitTest.pt) &&
+                ScreenToClient(Info->hTreeView, &HitTest.pt))
+            {
+                if (TreeView_HitTest(Info->hTreeView, &HitTest))
+                    (void)TreeView_SelectItem(Info->hTreeView, HitTest.hItem);
+            }
+        }
+        break;
+
+        case TTN_GETDISPINFO:
+        {
+            LPTOOLTIPTEXT lpttt;
+            UINT idButton;
+
+            lpttt = (LPTOOLTIPTEXT)lParam;
+
+            idButton = (UINT)lpttt->hdr.idFrom;
+            switch (idButton)
+            {
+                case IDC_PROP:
+                    lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_PROP);
+                break;
+
+                case IDC_REFRESH:
+                    lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_REFRESH);
+                break;
+
+                case IDC_PROGHELP:
+                    lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_HELP);
+                break;
+
+                case IDC_EXIT:
+                    lpttt->lpszText = MAKEINTRESOURCE(IDS_TOOLTIP_EXIT);
+                break;
+            }
+        }
+        break;
+    }
+}
+
+
+static VOID
+MainWndCommand(PMAIN_WND_INFO Info,
+               WORD CmdId,
+               HWND hControl)
+{
+    UNREFERENCED_PARAMETER(hControl);
+
+    switch (CmdId)
+    {
+        case IDC_PROP:
+        {
+            HTREEITEM hSelected = TreeView_GetSelection(Info->hTreeView);
+            OpenPropSheet(Info->hTreeView,
+                          hSelected);
+        }
+        break;
+
+        case IDC_REFRESH:
+        {
+            HANDLE DevEnumThread;
+
+            SendMessage(Info->hTool,
+                        TB_SETSTATE,
+                        IDC_PROP,
+                        (LPARAM)MAKELONG(TBSTATE_INDETERMINATE, 0));
+
+            EnableMenuItem(GetMenu(Info->hMainWnd), IDC_PROP, MF_GRAYED);
+            EnableMenuItem(Info->hShortcutMenu, IDC_PROP, MF_GRAYED);
+
+            /* create seperate thread to emum devices */
+            DevEnumThread = CreateThread(NULL,
+                                         0,
+                                         DeviceEnumThread,
+                                         &Info->hTreeView,
+                                         0,
+                                         NULL);
+            if (!DevEnumThread)
+            {
+                DisplayString(_T("Failed to enumerate devices"));
+                break;
+            }
+
+            CloseHandle(DevEnumThread);
+        }
+        break;
+
+        case IDC_PROGHELP:
+        {
+            DisplayString(_T("Help is not yet implemented\n"));
+            SetFocus(Info->hTreeView);
+        }
+        break;
+
+        case IDC_EXIT:
+        {
+            PostMessage(Info->hMainWnd,
+                        WM_CLOSE,
+                        0,
+                        0);
+        }
+        break;
+
+        case IDC_ABOUT:
+        {
+            DialogBox(hInstance,
+                      MAKEINTRESOURCE(IDD_ABOUTBOX),
+                      Info->hMainWnd,
+                      (DLGPROC)AboutDialogProc);
+
+            SetFocus(Info->hTreeView);
+        }
+        break;
+
+    }
+}
+
+
+static VOID CALLBACK
+MainWndResize(PMAIN_WND_INFO Info,
+              WORD cx,
+              WORD cy)
+{
+    RECT rcClient, rcTool, rcStatus;
+    int lvHeight, iToolHeight, iStatusHeight;
+
+    /* Size toolbar and get height */
+    SendMessage(Info->hTool, TB_AUTOSIZE, 0, 0);
+    GetWindowRect(Info->hTool, &rcTool);
+    iToolHeight = rcTool.bottom - rcTool.top;
+
+    /* Size status bar and get height */
+    SendMessage(Info->hStatus, WM_SIZE, 0, 0);
+    GetWindowRect(Info->hStatus, &rcStatus);
+    iStatusHeight = rcStatus.bottom - rcStatus.top;
+
+    /* Calculate remaining height and size list view */
+    GetClientRect(Info->hMainWnd, &rcClient);
+    lvHeight = rcClient.bottom - iToolHeight - iStatusHeight;
+    SetWindowPos(Info->hTreeView,
+                 NULL,
+                 0,
+                 iToolHeight,
+                 rcClient.right,
+                 lvHeight,
+                 SWP_NOZORDER);
+}
+
+
+static LRESULT CALLBACK
+MainWndProc(HWND hwnd,
+            UINT msg,
+            WPARAM wParam,
+            LPARAM lParam)
+{
+    PMAIN_WND_INFO Info;
+    LRESULT Ret = 0;
+
+    /* Get the window context */
+    Info = (PMAIN_WND_INFO)GetWindowLongPtr(hwnd,
+                                            GWLP_USERDATA);
+    if (Info == NULL && msg != WM_CREATE)
+    {
+        goto HandleDefaultMessage;
+    }
+
+    switch(msg)
+    {
+        case WM_CREATE:
+        {
+            Info = (PMAIN_WND_INFO)(((LPCREATESTRUCT)lParam)->lpCreateParams);
+
+            /* Initialize the main window context */
+            Info->hMainWnd = hwnd;
+
+            SetWindowLongPtr(hwnd,
+                             GWLP_USERDATA,
+                             (LONG_PTR)Info);
+
+            if (!InitMainWnd(Info))
+                SendMessage(hwnd, WM_CLOSE, 0, 0);
+
+            /* Show the window */
+            ShowWindow(hwnd,
+                       Info->nCmdShow);
+
+        }
+        break;
+
+        case WM_SIZE:
+        {
+            MainWndResize(Info,
+                          LOWORD(lParam),
+                          HIWORD(lParam));
+        }
+        break;
+
+        case WM_NOTIFY:
+        {
+            OnNotify(Info, lParam);
+        }
+        break;
+
+        case WM_CONTEXTMENU:
+        {
+            OnContext(Info, lParam);
+        }
+        break;
+
+        case WM_COMMAND:
+        {
+            MainWndCommand(Info,
+                           LOWORD(wParam),
+                           (HWND)lParam);
+            goto HandleDefaultMessage;
+        }
+
+        case WM_MENUSELECT:
+        {
+            if (Info->hStatus != NULL)
+            {
+                if (!MainWndMenuHint(Info,
+                                     LOWORD(wParam),
+                                     MainMenuHintTable,
+                                     sizeof(MainMenuHintTable) / sizeof(MainMenuHintTable[0]),
+                                     IDS_HINT_BLANK))
+                {
+                    MainWndMenuHint(Info,
+                                    LOWORD(wParam),
+                                    SystemMenuHintTable,
+                                    sizeof(SystemMenuHintTable) / sizeof(SystemMenuHintTable[0]),
+                                    IDS_HINT_BLANK);
+                }
+            }
+        }
+        break;
+
+        case WM_ENTERMENULOOP:
+        {
+            Info->InMenuLoop = TRUE;
+            UpdateMainStatusBar(Info);
+            break;
+        }
+
+        case WM_EXITMENULOOP:
+        {
+            Info->InMenuLoop = FALSE;
+            UpdateMainStatusBar(Info);
+            break;
+        }
+
+        case WM_CLOSE:
+        {
+            FreeDeviceStrings(Info->hTreeView);
+            DestroyMenu(Info->hShortcutMenu);
+            DestroyWindow(hwnd);
+        }
+        break;
+
+        case WM_DESTROY:
+        {
+            HeapFree(ProcessHeap,
+                     0,
+                     Info);
+            SetWindowLongPtr(hwnd,
+                             GWLP_USERDATA,
+                             0);
+
+            /* Break the message queue loop */
+            PostQuitMessage(0);
+        }
+        break;
+
+        default:
+        {
+HandleDefaultMessage:
+
+            Ret = DefWindowProc(hwnd,
+                                msg,
+                                wParam,
+                                lParam);
+        }
+        break;
+    }
+    return Ret;
+}
+
+
+
+HWND
+CreateMainWindow(LPCTSTR lpCaption,
+                 int nCmdShow)
+{
+    PMAIN_WND_INFO Info;
+    HWND hMainWnd = NULL;
+
+    Info = (PMAIN_WND_INFO)HeapAlloc(ProcessHeap,
+                                     HEAP_ZERO_MEMORY,
+                                     sizeof(MAIN_WND_INFO));
+
+    if (Info != NULL)
+    {
+        Info->nCmdShow = nCmdShow;
+
+        hMainWnd = CreateWindowEx(WS_EX_WINDOWEDGE,
+                                  szMainWndClass,
+                                  lpCaption,
+                                  WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
+                                  CW_USEDEFAULT,
+                                  CW_USEDEFAULT,
+                                  600,
+                                  450,
+                                  NULL,
+                                  NULL,
+                                  hInstance,
+                                  Info);
+        if (hMainWnd == NULL)
+        {
+            GetError();
+            HeapFree(ProcessHeap,
+                     0,
+                     Info);
+        }
+    }
+
+    return hMainWnd;
+}
+
+BOOL
+InitMainWindowImpl(VOID)
+{
+    WNDCLASSEX wc = {0};
+
+    wc.cbSize = sizeof(WNDCLASSEX);
+    wc.lpfnWndProc = MainWndProc;
+    wc.hInstance = hInstance;
+    wc.hIcon = LoadIcon(hInstance,
+                        MAKEINTRESOURCE(IDI_MAIN_ICON));
+    wc.hCursor = LoadCursor(NULL,
+                            IDC_ARROW);
+    wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
+    wc.lpszMenuName = MAKEINTRESOURCE(IDR_MAINMENU);
+    wc.lpszClassName = szMainWndClass;
+    wc.hIconSm = (HICON)LoadImage(hInstance,
+                                  MAKEINTRESOURCE(IDI_MAIN_ICON),
+                                  IMAGE_ICON,
+                                  16,
+                                  16,
+                                  LR_SHARED);
+
+    return RegisterClassEx(&wc) != (ATOM)0;
+}
+
+
+VOID
+UninitMainWindowImpl(VOID)
+{
+    UnregisterClass(szMainWndClass,
+                    hInstance);
+}
+
+